{"version":3,"sources":["webpack:///./node_modules/devextreme-vue/core/strategy/vue2/configuration.js","webpack:///./node_modules/devextreme/esm/core/utils/dependency_injector.js","webpack:///./node_modules/devextreme/esm/core/utils/object.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:///./src/services/Axios.js","webpack:///./src/views/taxipoint/users/Index.vue","webpack:///./src/services/Subuser.js","webpack:///./src/views/taxipoint/users/data.js","webpack:///src/views/taxipoint/users/Index.vue","webpack:///./src/views/taxipoint/users/Index.vue?56b2","webpack:///./src/views/taxipoint/users/Index.vue?e2b9","webpack:///./node_modules/devextreme-vue/core/index.js","webpack:///./node_modules/devextreme-vue/tree-view.js","webpack:///./node_modules/devextreme-vue/core/config.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/templates-manager.js","webpack:///./node_modules/devextreme/esm/core/config.js","webpack:///./node_modules/devextreme/esm/core/utils/variable_wrapper.js","webpack:///./node_modules/devextreme/esm/core/utils/window.js","webpack:///./node_modules/devextreme/esm/core/memorized_callbacks.js","webpack:///./node_modules/devextreme/esm/core/dom_adapter.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue3/index.js","webpack:///./node_modules/devextreme/esm/core/polyfills/weak_map.js","webpack:///./node_modules/devextreme-vue/core/helpers.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/errors.js","webpack:///./node_modules/devextreme/esm/core/utils/common.js","webpack:///./node_modules/devextreme/esm/events/index.js","webpack:///./src/views/taxipoint/users/Index.vue?0e3e","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/config.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/core/utils/browser.js","webpack:///./node_modules/devextreme/esm/core/utils/array.js","webpack:///./node_modules/devextreme-vue/core/templates-manager.js","webpack:///./node_modules/devextreme/esm/core/utils/string.js","webpack:///./node_modules/vue-perfect-scrollbar/dist/index.js","webpack:///./node_modules/devextreme/esm/core/errors.js","webpack:///./node_modules/devextreme/esm/core/utils/console.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/core/utils/call_once.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/core/utils/data.js","webpack:///./node_modules/devextreme/esm/events/core/event_registrator_callbacks.js","webpack:///./node_modules/devextreme/esm/core/utils/extend.js","webpack:///./node_modules/devextreme/esm/core/utils/type.js","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.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-vue/core/strategy/vue2/extension-component.js","webpack:///./node_modules/devextreme/esm/core/utils/deferred.js","webpack:///./src/services/Company.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/index.js","webpack:///./node_modules/devextreme-vue/core/component.js","webpack:///./node_modules/devextreme/esm/core/version.js","webpack:///./node_modules/devextreme/esm/core/utils/error.js","webpack:///./node_modules/devextreme/esm/core/element_data.js","webpack:///./node_modules/devextreme/esm/core/utils/inflector.js","webpack:///./node_modules/devextreme/esm/core/utils/style.js","webpack:///./node_modules/devextreme/esm/core/utils/size.js","webpack:///./node_modules/devextreme/esm/core/utils/html_parser.js","webpack:///./node_modules/devextreme/esm/core/renderer_base.js","webpack:///./node_modules/devextreme/esm/core/renderer.js","webpack:///./node_modules/devextreme/esm/core/component_registrator_callbacks.js","webpack:///./node_modules/devextreme/esm/events/core/event_registrator.js","webpack:///./node_modules/devextreme/esm/core/remove_event.js","webpack:///./node_modules/devextreme/esm/core/utils/public_component.js","webpack:///./node_modules/devextreme/esm/core/component_registrator.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/esm/localization/default_messages.js","webpack:///./node_modules/devextreme/esm/localization/message.js","webpack:///./node_modules/devextreme/esm/core/utils/ready_callbacks.js","webpack:///./node_modules/devextreme/esm/core/utils/resize_callbacks.js","webpack:///./node_modules/devextreme/esm/core/events_strategy.js","webpack:///./node_modules/devextreme/esm/core/utils/storage.js","webpack:///./node_modules/devextreme/esm/core/utils/view_port.js","webpack:///./node_modules/devextreme/esm/core/devices.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/events/utils/add_namespace.js","webpack:///./node_modules/devextreme/esm/ui/widget/selectors.js","webpack:///./node_modules/devextreme/esm/events/utils/index.js","webpack:///./node_modules/devextreme/esm/events/core/wheel.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.rule.js","webpack:///./node_modules/devextreme/esm/core/polyfills/promise.js","webpack:///./node_modules/devextreme/esm/ui/themes.js","webpack:///./node_modules/devextreme/esm/ui/themes_callback.js","webpack:///./node_modules/devextreme/esm/ui/widget/ui.errors.js","webpack:///./node_modules/devextreme/esm/core/action.js","webpack:///./node_modules/devextreme/esm/core/utils/comparator.js","webpack:///./node_modules/devextreme/esm/core/options/utils.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/core/utils/dom.js","webpack:///./node_modules/devextreme/esm/events/visibility_change.js","webpack:///./node_modules/devextreme/esm/core/templates/template_base.js","webpack:///./node_modules/devextreme/esm/core/templates/function_template.js","webpack:///./node_modules/devextreme/esm/core/templates/empty_template.js","webpack:///./node_modules/devextreme/esm/core/templates/child_default_template.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/esm/core/template_manager.js","webpack:///./node_modules/devextreme/esm/core/element.js","webpack:///./node_modules/devextreme/esm/events/core/keyboard_processor.js","webpack:///./node_modules/devextreme/esm/core/utils/support.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/mspointer.js","webpack:///./node_modules/devextreme/esm/events/pointer/observer.js","webpack:///./node_modules/devextreme/esm/events/pointer/mouse.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/events/short.js","webpack:///./node_modules/devextreme/esm/core/dom_component.js","webpack:///./node_modules/devextreme/esm/animation/frame.js","webpack:///./node_modules/devextreme/esm/events/utils/event_nodes_disposing.js","webpack:///./node_modules/devextreme/esm/events/core/emitter.js","webpack:///./node_modules/devextreme/esm/events/core/emitter_registrator.js","webpack:///./node_modules/devextreme/esm/core/utils/version.js","webpack:///./node_modules/devextreme/esm/events/click.js","webpack:///./node_modules/devextreme/esm/events/core/emitter.feedback.js","webpack:///./node_modules/devextreme/esm/events/hover.js","webpack:///./node_modules/devextreme/esm/ui/widget/ui.widget.js","webpack:///./node_modules/devextreme/esm/core/utils/math.js","webpack:///./node_modules/devextreme/esm/localization/utils.js","webpack:///./node_modules/devextreme/esm/localization/ldml/number.js","webpack:///./node_modules/devextreme/esm/localization/currency.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/ui/validation_engine.js","webpack:///./node_modules/devextreme/esm/animation/translator.js","webpack:///./node_modules/devextreme/esm/animation/easing.js","webpack:///./node_modules/devextreme/esm/core/utils/position.js","webpack:///./node_modules/devextreme/esm/animation/position.js","webpack:///./node_modules/devextreme/esm/animation/fx.js","webpack:///./node_modules/devextreme/esm/events/gesture/emitter.gesture.js","webpack:///./node_modules/devextreme/esm/events/drag.js","webpack:///./node_modules/devextreme/esm/mobile/hide_callback.js","webpack:///./node_modules/devextreme/esm/ui/resizable.js","webpack:///./node_modules/devextreme/esm/ui/widget/swatch_container.js","webpack:///./node_modules/devextreme/esm/ui/overlay/z_index.js","webpack:///./node_modules/devextreme/esm/ui/overlay/ui.overlay.js","webpack:///./node_modules/devextreme/esm/ui/validation_message.js","webpack:///./node_modules/devextreme/esm/ui/editor/editor.js","webpack:///./node_modules/devextreme/esm/ui/text_box/texteditor_button_collection/button.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.clear.js","webpack:///./node_modules/devextreme/esm/ui/widget/utils.ink_ripple.js","webpack:///./node_modules/devextreme/esm/core/utils/icon.js","webpack:///./node_modules/devextreme/esm/ui/button.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/load_indicator.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/ui/text_box/text_box.js","webpack:///./node_modules/devextreme/esm/ui/text_box.js","webpack:///./node_modules/devextreme/esm/ui/widget/ui.search_box_mixin.js","webpack:///./node_modules/devextreme/esm/ui/check_box.js","webpack:///./node_modules/devextreme/esm/data/errors.js","webpack:///./node_modules/devextreme/esm/data/utils.js","webpack:///./node_modules/devextreme/esm/data/array_query.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/data/store_helper.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/data/array_utils.js","webpack:///./node_modules/devextreme/esm/data/abstract_store.js","webpack:///./node_modules/devextreme/esm/data/custom_store.js","webpack:///./node_modules/devextreme/esm/core/utils/queue.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/devextreme/esm/core/http_request.js","webpack:///./node_modules/devextreme/esm/core/utils/ajax.js","webpack:///./node_modules/devextreme/esm/data/array_store.js","webpack:///./node_modules/devextreme/esm/data/data_source/utils.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/data_helper.js","webpack:///./node_modules/devextreme/esm/ui/collection/item.js","webpack:///./node_modules/devextreme/esm/events/hold.js","webpack:///./node_modules/devextreme/esm/events/contextmenu.js","webpack:///./node_modules/devextreme/esm/core/templates/bindable_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.strategy.js","webpack:///./node_modules/devextreme/esm/ui/collection/ui.collection_widget.edit.strategy.plain.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/array_compare.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/ui/collection/ui.collection_widget.edit.js","webpack:///./node_modules/devextreme/esm/ui/hierarchical_collection/ui.hierarchical_collection_widget.js","webpack:///./node_modules/devextreme/esm/events/double_click.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.events.emitter.gesture.scroll.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/animator.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scrollbar.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.simulated.js","webpack:///./node_modules/devextreme/esm/core/utils/scroll_rtl_behavior.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.native.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.device.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.js","webpack:///./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_relative_offset.js","webpack:///./node_modules/devextreme/esm/renovation/ui/scroll_view/common/consts.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-vue/core/strategy/vue2/configuration-component.js","webpack:///./node_modules/devextreme/esm/core/guid.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/constants.js","webpack:///./node_modules/devextreme-vue/core/vue-helper.js","webpack:///./node_modules/devextreme-vue/core/configuration-component.js","webpack:///./node_modules/devextreme/esm/core/class.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","BaseClass","inherit","object","InjectedClass","instance","initialFields","injectFields","injectionObject","initial","key","inject","resetInjection","orderEach","Clone","map","func","keys","sort","x","y","isNumberX","isNumberY","assignValueToProperty","target","property","assignByReference","isWrapped","deepExtendArraySafe","changes","extendComplexObject","prevValue","newValue","goDeeper","initDxExtensionComponent","vue_1","component_1","vue_helper_1","defineComponent","extends","initBaseComponent","created","nodeOptions","getNodeOptions","$_isExtension","$_attachTo","attachTo","mounted","$el","setAttribute","componentOptions","$_hasOwner","methods","element","$_createWidget","pullAllChildren","isFragment","directChildren","allChildren","pullConfigComponents","node","patchFlag","children","nodes","componentInfo","getComponentInfo","$_optionName","componentChildren","configurationChildren","$_predefinedProps","getNormalizedProps","props","$_isCollectionItem","$_expectedChildren","$_config","$_innerChanges","Callback","_list","_queue","_firing","_fired","_firingIndexes","_fireCore","context","firingIndexes","list","stopOnFalse","step","result","pop","add","fn","unique","has","remove","index","indexOf","splice","empty","fireWith","queue","syncStrategy","memory","shift","fire","fired","Callbacks","url","Promise","resolve","reject","axios","concat","API","then","response","error","put","data","del","delete","post","render","_vm","_c","_self","attrs","validateForm","addPrompt","on","clearFields","saveData","$event","scrollbarTag","$vs","rtl","tag","staticClass","settings","_v","preventDefault","directives","rawName","expression","model","email","callback","$$v","errors","_s","first","password","ref","treeViewRef","permission_list","treeViewSelectionChanged","treeViewContentReady","scopedSlots","_u","item","label","at_least_one_permission","editPrompt","updateData","edited_permission_list","users","_ref","_l","tr","indextr","permission","permissions","listItem","selected","$set","_e","stopPropagation","editData","deleteData","slot","searchQuery","total_items","total_pages","currentx","staticRenderFns","PREFIX","_save","_filter","_update","id","_delete","path","expanded","items","components","VuePerfectScrollbar","DxTreeView","computed","treeView","$refs","any","selectedPermission","$store","getters","watch","val","getSubusers","current_company","deep","original_permissions","editedRow","maxScrollbarLength","wheelSpeed","items_per_page","state","company","companyID","deleteIndex","beforeMount","JSON","parse","stringify","e","syncSelection","getSelectedNodes","itemData","_this","company_id","loading","text","res","close","obj","notify","title","responseTitle","responseMessage","iconPack","icon","color","catch","handleCatch","finally","tempObj","f","g","idx","val2","find","val1","_this2","user_id","localPermissions","console","log","u","dialog","type","accept","deleteRecord","acceptText","_this3","_this4","page","undefined","_sub_users","total","per_page","last_page","message","__createBinding","create","m","k","k2","__setModuleDefault","v","__importStar","mod","__esModule","createExtensionComponent","createConfigurationComponent","createComponent","vue2Stategy","vue3Stategy","version_1","strategy","isVue3","__importDefault","DxSearchEditorOptions","DxOptions","DxItem","DxButton","tree_view_1","index_1","index_2","accessKey","String","activeStateEnabled","Boolean","animationEnabled","createChildren","Function","dataSource","dataStructure","disabled","disabledExpr","displayExpr","elementAttr","expandAllEnabled","expandedExpr","expandEvent","expandNodesRecursive","focusStateEnabled","hasItemsExpr","height","Number","hint","hoverStateEnabled","itemHoldTimeout","itemsExpr","itemTemplate","keyExpr","noDataText","onContentReady","onDisposing","onInitialized","onItemClick","onItemCollapsed","onItemContextMenu","onItemExpanded","onItemHold","onItemRendered","onItemSelectionChanged","onSelectAllValueChanged","onSelectionChanged","parentIdExpr","rootValue","rtlEnabled","scrollDirection","searchEditorOptions","searchEnabled","searchExpr","searchMode","searchTimeout","searchValue","selectAllText","selectByClick","selectedExpr","selectionMode","selectNodesRecursive","showCheckBoxesMode","tabIndex","useNativeScrolling","virtualModeEnabled","visible","width","emits","$_instance","beforeCreate","$_WidgetClass","location","hasItems","html","parentId","template","bindingOptions","onClick","onFocusIn","onFocusOut","stylingMode","useSubmitBehavior","validationGroup","buttons","inputAttr","isValid","mask","maskChar","maskInvalidMessage","maskRules","maxLength","mode","onChange","onCopy","onCut","onEnterKey","onInput","onKeyDown","onKeyPress","onKeyUp","onPaste","onValueChanged","placeholder","readOnly","showClearButton","showMaskMode","spellcheck","useMaskedValue","validationError","validationErrors","validationMessageMode","validationStatus","valueChangeEvent","button","getOption","deepWatch","setOptions","TemplatesManager","config_1","templates_discovering_1","dom_adapter_1","events_1","constants_1","_slots","_templates","_isDirty","_component","discover","slots","allKeysAreEqual","_prepareTemplates","resetDirtyFlag","name_1","createDxTemplate","scopeData","container","document","createElement","appendChild","mountedTemplate","mountTemplate","setClass","DX_TEMPLATE_WRAPPER_CLASS","nodeType","Node","TEXT_NODE","removalListener","nodeName","style","display","one","DX_REMOVE_EVENT","$destroy","defaultCurrency","oDataFilterToLower","serverDecimalSeparator","decimalSeparator","thousandsSeparator","forceIsoDateParsing","wrapActionsBeforeExecute","useLegacyStoreResult","useJQuery","editorStylingMode","useLegacyVisibleIndex","floatingActionButtonConfig","closeIcon","position","at","my","offset","maxSpeedDialActionCount","shading","direction","optionsParser","optionsString","trim","charAt","ex","Error","deprecatedFields","configMethod","newConfig","deprecatedField","DevExpress","isWritableWrapped","wrap","unwrap","hasWindowValue","window","hasWindow","windowObject","getWindow","hasProperty","prop","getNavigator","navigator","userAgent","MemorizedCallbacks","callbacks","_","_len","_key","ELEMENT_NODE","DOCUMENT_NODE","nativeDOMAdapterStrategy","querySelectorAll","selector","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","doc","ownerDocument","tagName","_document","ns","createElementNS","createTextNode","isNode","isElementNode","isTextNode","isDocument","parentNode","removeChild","parentElement","newElement","nextSiblingElement","insertBefore","getAttribute","removeAttribute","textContent","className","isAdd","classList","resultClassName","classNameSupported","elementClass","classNames","classIndex","activeElement","body","createDocumentFragment","documentElement","selection","readyState","head","event","addEventListener","removeEventListener","configuration_component_1","extension_component_1","initDxComponent","setVModel","initDxConfiguration","weakMap","WeakMap","uppercaseFirst","toUpperCase","substr","lowercaseFirst","toLowerCase","camelize","toComparable","Date","getTime","value1","value2","forEachChildNode","el","childNodes","obj1","obj2","obj1Keys","obj1Keys_1","getOptionValue","optionPath","parts","TEMPLATE_MULTIPLE_ROOTS_ERROR","executingName","ensureDefined","defaultValue","executeAsync","action","deferred","normalizedContext","task","promise","abort","clearTimeout","timerId","rejectWith","done","resolveWith","setTimeout","delayedFuncs","delayedNames","delayedDeferreds","deferExecute","oldExecutingName","currentDelayedCount","fail","deferRender","deferUpdate","deferRenderer","that","deferUpdater","findBestMatches","targetFilter","mapFn","bestMatches","maxMatchCount","itemSrc","matchCount","paramName","targetValue","match","mismatch","valueItem","splitPair","raw","_raw$x","_raw$y","h","pairToObject","preventRound","pair","parseFloat","parseInt","isFinite","getKeyHash","toString","keyHash","escapeRegExp","string","replace","noop","asyncNoop","grep","elements","checkFunction","invert","check","expectedCheck","arraysEqualByValue","array1","array2","depth","equalByValue","objectsEqualByValue","object1","object2","strict","propertyName","_propertyName","maxEqualityDepth","comparisonResult","off","trigger","triggerHandler","Event","useLegacyTemplateEngine","VueType","errors_1","TEMPLATE_PROP","Vue","asConfigurable","$vnode","hasTemplate","templates","slotName","$scopedSlots","$slots","$children","childComponent","defaultSlot","templateName","getSlot","parent","eventBus","$on","$forceUpdate","content","destroyed","$off","hasProp","propName","$options","hasVModelValue","vnode","VMODEL_NAME","$","eventName","getVueVersion","currentVersion","version","webkitRegExp","ieRegExp","ie11RegExp","msEdge","mozillaRegExp","browserFromUA","ua","exec","browserName","browserVersion","webkit","test","_fromUA","isIE11","msie","isEmpty","entity","wrapToArray","inArray","array","toArray","uniqueValues","Set","removeDuplicates","from","what","merge","condition","groupBy","cb","reduce","rendered","onRendered","counter","appContext","app","unmount","encodeHtml","encodeRegExp","RegExp","str","format","placeholderReg","SPACE_REGEXP","module","r","l","d","a","containerWidth","containerHeight","contentWidth","contentHeight","isRtl","css","isNegativeScroll","scrollLeft","negativeScrollAdjustment","scrollWidth","clientWidth","scrollbarXRail","appendTo","scrollbarX","scrollbarXActive","scrollbarXWidth","scrollbarXLeft","scrollbarXBottom","toInt","isScrollbarXUsingBottom","scrollbarXTop","railBorderXWidth","railXMarginWidth","railXWidth","railXRatio","scrollbarYRail","scrollbarY","scrollbarYActive","scrollbarYHeight","scrollbarYTop","scrollbarYRight","isScrollbarYUsingRight","scrollbarYLeft","scrollbarYOuterWidth","outerWidth","railBorderYWidth","railYMarginHeight","railYHeight","railYRatio","minScrollbarLength","Math","max","min","left","bottom","scrollTop","top","right","clientHeight","scrollHeight","contains","queryChildren","suppressScrollX","scrollXMarginOffset","suppressScrollY","scrollYMarginOffset","isEditable","removePsClasses","startScrolling","stopScrolling","env","isWebKit","supportsTouch","DocumentTouch","supportsIePointer","msMaxTouchPoints","createEvent","initEvent","dispatchEvent","lastTop","lastLeft","getComputedStyle","swicher","tagname","scrollHanle","update","__init","_ps_inited","initialize","__uninit","destroy","$route","updated","$nextTick","activated","deactivated","beforeDestroy","events","unbind","unbindAll","eventElements","eventElement","once","floor","random","substring","handlers","swipePropagation","swipeEasing","useBothWheelAxes","wheelPropagation","theme","getBoundingClientRect","pageY","pageYOffset","pageX","pageXOffset","isDefaultPrevented","defaultPrevented","contentDocument","shadowRoot","which","metaKey","altKey","shiftKey","ctrlKey","deltaX","deltaY","wheelDeltaX","wheelDeltaY","deltaMode","wheelDelta","querySelector","overflow","overflowX","overflowY","onwheel","onmousewheel","getSelection","getRangeAt","commonAncestorContainer","setInterval","clearInterval","offsetLeft","offsetWidth","offsetTop","offsetHeight","abs","w","targetTouches","pointerType","MSPOINTER_TYPE_MOUSE","b","PointerEvent","MSPointerEvent","keyboard","wheel","touch","_scopeId","esModule","$createElement","_t","refs","media","sourceMap","insertAt","nextSibling","firstChild","singleton","styleSheet","cssText","sources","btoa","unescape","encodeURIComponent","getElementsByTagName","DEBUG","locals","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","getConsoleMethod","method","logger","info","warn","assert","configComponent","Ctor","propsData","callOnce","_wrappedHandler","BaseComponent","DxComponent","children_processing_1","configuration_1","templates_manager_1","extend","inheritAttrs","provide","$_processChildren","$attrs","beforeUpdate","child","initOptionChangedFunc","getConfig","getInnerChanges","$_templatesManager","beginUpdate","isDirty","_b","$_pendingOptions","name_2","$_applyConfigurationChanges","endUpdate","dispose","componentsCountChanged","removed","resetOption","thisComponent","$_getIntegrationOptions","$_createEmitters","integrationOptions","watchMethod","$_getWatchMethod","$_getExtraIntegrationOptions","name_3","valueGetter","valueChangeCallback","skipImmediate","oldValue","_children","$listeners","listenerName","cleanWidgetNode","removedNodes","childNode","isExtension","hasAttribute","restoreNodes","onInitializing","childExtension","componentInstance","each","configurationTemplate","namedTeplates","declaredTemplates","getChildren","componentChildren_1","configurationDefaultTemplate","clearConfiguration","newContent","getConfigurationOptions","mount","$_updatedHandler","unmounted","unwrapVariable","bracketsToDots","expr","readPropValue","assignPropValue","propValue","unwrapObservables","prepareOptions","compileGetter","functionAsIs","functionsAsIs","hasDefaultValue","current","pathPart","next","combineGetters","compiledGetters","getter","last","pathItem","ensurePropValueDefined","compileSetter","lastLevelIndex","currentValue","levelIndex","propertyValue","isPropertyFunc","caseSensitive","valueOf","extendFromObject","source","overrideExistingValues","sourceValue","sourceValueIsArray","clone","types","typeOfObject","isBoolean","isExponential","isNumeric","isDate","isDefined","isFunction","isString","isNaN","isObject","isEmptyObject","isPlainObject","proto","getPrototypeOf","ctor","constructor","isPrimitive","isWindow","isRenderer","jquery","dxRenderer","isPromise","isDeferred","isEvent","_extends","touchPropsToHook","touchPropHook","touches","changedTouches","EMPTY_EVENT_NAME","NATIVE_EVENTS_TO_SUBSCRIBE","mouseenter","mouseleave","pointerenter","pointerleave","NATIVE_EVENTS_TO_TRIGGER","focusin","focusout","NO_BUBBLE_EVENTS","forcePassiveFalseEventNames","EVENT_PROPERTIES","matchesSafe","elementMatches","skipEvent","elementDataMap","guid","special","specialData","eventObject","getField","field","callMethod","methodName","eventsEngine","getHandler","normalizeOnArguments","iterate","handlersController","getHandlersController","addHandler","oneTimeHandler","normalizeOffArguments","removeHandler","normalizeTriggerArguments","extraParameters","callHandlers","noBubble","isPropagationStopped","parents","getParents","parentDataByEvent","currentTarget","callNativeMethod","applyForEach","itemArgs","itemElement","detectPassiveEventHandlersSupport","isSupported","passiveEventHandlersSupported","compareDocumentPosition","DOCUMENT_POSITION_CONTAINS","elementData","eventNameParts","namespaces","eventNameIsDefined","handleObjects","nativeHandler","eventData","callHandler","secondaryTargetIsInside","handlerArgs","relatedTarget","handleObject","wrappedHandler","delegateTarget","namespace","nativeListenerOptions","firstHandlerForTheType","shouldAddNativeListener","getNativeHandler","passive","removeListener","listen","removeByEventName","removedHandler","skip","isSubset","lastHandlerForTheType","shouldRemoveNativeListener","elementDataIsEmpty","forceStop","handleCallback","isImmediatePropagationStopped","subscribeName","original","checked","src","originalEvent","normalizeEventArguments","_propagationStopped","_immediatePropagationStopped","_defaultPrevented","propagationStopped","stopImmediatePropagation","iterateEventNames","nativeMethodName","localName","calculateWhich","charCode","keyCode","1","2","3","4","EventClass","addProperty","hook","eventInstance","writable","_src$view","srcIsEvent","view","timeStamp","now","beforeSetStrategy","afterSetStrategy","engine","subscribeGlobal","offArgs","DxExtensionComponent","deferredConfig","_DeferredObj","_state","_promise","always","callbackResult","fromPromise","whenFunc","contexts","resolvedCount","updateState","Deferred","when","_withdraw","_listPayments","_upload_logo","_update_settings","_update_charity","_charity_details","_list_venues","_list_bookings","_filter_bookings","_dashboard_record","_sms_payments","_statistics","_advance_statistics","_filter_bookings_without_pagination","DxConfiguration","callbacks_1","includeAttrs","getAttrs","attributes","attr","attrValue","defaultSlots","getComponentInstance","beforeUnmount","getComponentProps","getVModelValue","templatesRenderAsynchronously","childExtenton","ERROR_URL","ERROR_MESSAGES","baseErrors","makeError","combineMessage","formatMessage","formatDetails","details","getErrorUrl","__id","__details","dataMap","strategyChanging","beforeCleanDataFunc","afterCleanDataFunc","setDataStrategy","cleanData","beforeCleanData","removeData","cleanDataRecursive","cleanSelf","childElements","_normalize","_upperCaseFirst","_chop","dasherize","upperFirst","humanize","titleize","jsPrefixes","cssPrefixes","Webkit","Moz","O","ms","getStyles","forEachPrefixes","callBack","cssPrefixesCount","jsPrefix","prefixedProp","lowerPrefixedProp","styleProp","originalName","stylePropPrefix","specific","pxExceptions","normalizeStyleProp","getSizeByStyles","elementStyles","styles","getElementBoxParams","beforeName","afterName","padding","border","margin","getBoxSizingOffset","boxParams","size","boxSizing","getSize","include","clientRect","getClientRects","boundingClientRect","paddings","borders","margins","isTagName","tagWrappers","tagsCount","startTags","endTags","thead","td","col","tbody","colgroup","caption","tfoot","th","renderer","parseHTML","fragment","tags","firstRootTag","tagWrapper","innerHTML","lastChild","isTablePart","initRender","getBody","getDocument","repeatMethod","setAttributeValue","attrName","show","toggle","hide","toggleClass","removeAttr","setProperty","addClass","removeClass","hasClass","_className","partialName","isOuter","isInner","getDocumentElement","sizeAdjustment","isBorderBox","setStyle","append","appendElements","wrapTR","tBodies","insertElement","setCss","prepend","prependTo","insertAfter","before","after","wrapper","wrapInner","contents","replaceWith","is","removeElement","detach","setText","cloneNode","elementId","queryId","isVisible","j","not","siblings","parentChildNodes","eq","closest","prev","previousSibling","emptyArray","getWindowByElement","defaultView","rect","win","docElem","clientTop","clientLeft","offsetParent","marginTop","marginLeft","parentOffset","offsetProp","scrollWindow","scrollTo","directionStrategy","rendererWrapper","registerEvent","bindType","delegateType","unshift","removeEvent","eventPropName","$element","setup","COMPONENT_NAMES_DATA_KEY","ANONYMOUS_COMPONENT_DATA_KEY","componentNames","nextAnonymousComponent","getName","componentClass","newName","generatedName","attachInstanceToElement","disposeFn","getInstanceByElement","registerComponent","registerRendererComponent","isMemberInvoke","memberName","memberArgs","getInstance","member","memberValue","nb","nn","PARENT_LOCALE_SEPARATOR","parentLocale","parentLocales","locale","lastIndexOf","DEFAULT_LOCALE","currentLocale","getValueByClosestLocale","isRootLocale","defaultMessages","en","Yes","No","Cancel","Clear","Done","Loading","Select","Search","Back","OK","baseDictionary","getDataByLocale","localeData","newMessages","messageLocalization","_dictionary","load","messages","_localizablePrefix","localizablePrefix","localizeString","regex","escapeString","prefix","escape","localizationKey","defaultResult","localizeNode","nodeItem","nodeValue","localizedValue","getMessagesByLocales","getDictionary","onlyNew","core","getFormatter","_getFormatterBase","formatter","isReady","getReadyState","doScroll","subscribeReady","readyCallbacks","windowExists","resizeCallbacks","prevSize","originalCallbacksAdd","originalCallbacksRemove","formatSize","innerWidth","innerHeight","handleResize","changedDimension","setPrevSize","owner","_events","_owner","eventArgs","eventHandler","addFn","originalAdd","getSessionStorage","sessionStorage","ready","changeCallback","$originalViewPort","$current","isNewViewportFound","prevViewPort","originalViewPort","KNOWN_UA_TABLE","iPhone","iPhone5","iPhone6","iPhone6plus","iPad","iPadMini","androidPhone","androidTablet","msSurface","desktop","DEFAULT_DEVICE","deviceType","platform","phone","tablet","android","ios","generic","grade","mac","uaParsers","isPhone","isTablet","isDesktop","isMac","isIPhone4","screen","worseThan4_4","_window","_realDevice","_getDevice","_currentDevice","_currentOrientation","_eventsStrategy","changed","_recalculateOrientation","deviceOrName","_forced","_getDeviceOrNameFromWindowScope","_getDeviceNameFromSessionStorage","forceDevice","tinyHippos","device","realDevice","isSimulator","_deviceClasses","_getCssClasses","_isSimulator","self","isRippleEmulator","deviceName","_fromConfig","getItem","shortcuts","parser","$window","orientation","fireEvent","windowWidth","_currentWidth","_changeOrientation","devices","viewPortElement","attachCssClasses","viewPort","prevViewport","detachCssClasses","real","isFocusingOnCaretChange","getCaret","input","range","start","selectionStart","end","selectionEnd","setCaret","force","getActiveElement","isModernAndroidDevice","isInputEventsL2Supported","addNamespace","eventNames","focusableFn","isTabIndexNotNaN","isDisabled","isDefaultFocus","isHyperlink","isFocusable","isContentEditable","href","focusable","tabbable","focused","KEY_MAP","backspace","tab","enter","pageup","pagedown","home","arrowleft","arrowup","arrowright","arrowdown","alt","control","up","down","multiply","spacebar","subtract","esc","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","pointer","fixMethod","copyEvent","isDxEvent","eventSource","isNativeMouseEvent","isNativeTouchEvent","isPointerEvent","isMouseEvent","isDxMouseWheelEvent","isTouchEvent","_ref3","time","eventDelta","to","hasTouches","pointers","skipEvents","needSkipEvent","$target","isDropDown","touchInEditable","isTextArea","isInputFocused","normalizeKeyName","_ref4","isKeySupported","fromCharCode","getChar","_ref5","isCommandKeyPressed","_ref6","EVENT_NAME","EVENT_NAMESPACE","NATIVE_EVENT_NAME","PIXEL_MODE","DELTA_MUTLIPLIER","_wheelHandler","teardown","deltaZ","delta","_normalizeDelta","EMPTY_CHAR","BaseMaskRule","_value","rule","_next","rawValue","handle","_prepareHandlingArgs","_config$str","_config$start","_config$length","handlingProperty","reset","clear","isAccepted","adjustedCaret","caret","isForwardDirection","char","_adjustedForward","_adjustedBackward","EmptyMaskRule","MaskRule","rest","_tryAcceptChar","_accepted","_isAllowed","acceptedChar","fullText","_isAccepted","callBase","_isValid","allowedChars","StubMaskRule","hasValueProperty","nextArgs","resolver","all","promises","$activeThemeLink","knownThemes","currentThemeName","pendingThemeName","themeClasses","themeReadyCallback","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","viewPortChanged","initDeferred","DX_LINK_SELECTOR","THEME_ATTR","ACTIVE_ATTR","DX_HAIRLINES_CLASS","ANY_THEME","defaultTimeout","THEME_MARKER_PREFIX","readThemeMarker","fontFamily","waitForThemeLoad","themeName","waitStartTime","intervalCleared","handleLoaded","isPendingThemeLoaded","isLoaded","isTimeout","anyThemePending","themeMarker","processMarkup","$allThemeLinks","link","fullThemeName","isActive","resolveFullThemeName","desiredThemeName","desiredThemeParts","knownThemeName","themeData","knownThemeParts","initContext","newContext","currentThemeData","isAutoInit","_autoInit","loadCallback","_forceTimeout","getCssClasses","themeNameParts","isMaterial","pixelRatio","devicePixelRatio","$tester","outerHeight","isTheme","themeRegExp","isGeneric","autoInit","_action","_context","_beforeExecute","beforeExecute","_afterExecute","afterExecute","_validatingTargetName","validatingTargetName","excludeValidators","_excludeValidators","cancel","handled","argsBag","_validateAction","_executeAction","executors","_executor$validate","executor","validate","_executor$execute","execute","registerExecutor","createValidatorByTargetElement","hasNegation","equals","oldValueIsNaN","newValueIsNaN","cachedGetters","convertRulesToOptions","rules","currentDevice","ruleOptions","deviceFilter","deviceMatch","normalizeOptions","getFieldName","getParentName","getNestedOptionValue","optionsObject","cachedSetters","optionsByReference","_optionsByReference","_changingCallback","_changedCallback","_namePreparedCallbacks","rulesOptions","fieldName","silent","valueName","_prepareRelevantNames","_setPreparedValue","defaultOptions","deprecatedOptions","_deprecatedCallback","_startChangeCallback","_endChangeCallback","_default","_deprecated","_deprecatedNames","_initDeprecatedNames","_optionManager","onRelevantNamesPrepared","_setRelevantNames","_cachedOptions","_rules","_initialOptions","_getByRules","_setByReference","normalizedName","_normalizeName","_setField","_clearField","fieldObject","previousFieldName","deprecate","_notifyDeprecated","alias","onChanging","onChanged","initialValue","areFunctions","_initial","isGetter","aliasName","_postponedOperations","postponedPromise","completePromise","operation","getEventName","actionName","isInnerOption","Component","_deprecatedOptions","_getDefaultOptions","defaultOptionsRules","_defaultOptionsRules","applyRules","_convertRulesToOptions","isInitial","_optionChangedCallbacks","_disposingCallbacks","NAME","eventsStrategy","_updateLockCount","postponedOperations","_createOptions","_setOptionsByReference","_setDeprecatedOptions","_getOptionsByReference","_getDeprecatedOptions","_initialized","_optionChanging","onDeprecated","_logDeprecatedOptionWarning","_notifyOptionChanged","onStartChange","onEndChange","addRules","_setOptionsByDevice","_initOptions","_createOptionChangedAction","since","_optionChangedAction","_createActionByOption","_disposingAction","_createDisposingAction","_disposed","_initializing","callPostponedOperations","_isInitializingRequired","_initializeComponent","_init","_lockUpdate","_unlockUpdate","_isUpdateAllowed","_commitUpdate","optionNames","getAliasesByName","_defaultActionArgs","_cancelOptionChange","_optionChanged","actionSource","actionValue","_defaultActionConfig","actionFunc","hasEvent","_len2","_key2","_createAction","beforeActionExecute","wrappedAction","onActionCreated","hasActionSubscription","isDeprecated","resetActiveElement","blur","clearSelection","removeAllRanges","closestCommonParent","startTarget","endTarget","$startTarget","$endTarget","$startParents","$endParents","startingParent","extractTemplateMarkup","templateTag","$node","normalizeTemplateElement","clipboardText","clipboard","clipboardData","getData","setData","triggerVisibilityChangeEvent","changeHandlers","triggerShownEvent","triggerHidingEvent","triggerResizeEvent","renderedCallbacks","$result","_renderCore","_ensureResultInContainer","$container","resultInContainer","resultInBody","super","_render","currentTemplateEngine","templateEngines","registerTemplateEngine","templateEngine","setTemplateEngine","getCurrentTemplateEngine","compile","jQuery","tmpl","jsrender","Mustache","Hogan","Handlebars","doT","_element","transclude","_compiledTemplate","findTemplates","suitableTemplatesByName","rawTemplates","templatesMap","_findBestMatches$","suitableTemplate","addOneRenderedCall","templateResult","getNormalizedTemplateArgs","validateTemplateSource","templateSource","templateKey","defaultCreateElement","acquireIntegrationTemplate","isAsyncTemplate","skipTemplates","integrationTemplate","acquireTemplate","createTemplate","defaultTemplates","ANONYMOUS_TEMPLATE_NAME","TEMPLATE_OPTIONS_NAME","TEMPLATE_WRAPPER_CLASS","DX_POLYMORPH_WIDGET_TEMPLATE","widgetName","widget","widgetElement","widgetOptions","_createComponent","anonymousTemplateName","_tempTemplates","_defaultTemplates","_anonymousTemplateName","_createElement","_createTemplateIfNeeded","useDeferUpdateForTemplates","tempTemplate","_extractTemplates","anonymousTemplateMeta","_extractAnonymousTemplate","suitableTemplates","_ref2","_createTemplate","$anonymousTemplate","$notJunkTemplateContent","isEmptyText","cachedTemplate","templateSourceResult","getPublicElement","COMPOSITION_START_EVENT","COMPOSITION_END_EVENT","KEYDOWN_EVENT","NAMESPACE","KeyboardProcessor","_keydown","_compositionStart","_compositionEnd","focusTarget","_focusTarget","_handler","_processFunction","isNotFocusTarget","shouldSkipProcessing","_isComposingJustFinished","_isComposing","process","_toggleProcessingWithContext","toggleProcessing","keyName","code","ctrl","maxTouchPoints","pointerEnabled","transitionEndEventNames","webkitTransition","MozTransition","OTransition","msTransition","transition","supportProp","isNativeScrollingSupported","isObsoleteAndroid","isNativeScrollDevice","inputType","detectTouchEvents","hasWindowProperty","detectPointerEvent","isPointerEnabled","canUsePointerEvent","touchEvents","pointerEvents","touchPointersPresent","transitionEndEventName","nativeScrolling","POINTER_EVENTS_NAMESPACE","BaseStrategy","originalEvents","_eventName","_originalEvents","_handlerCount","_isNoBubble","_getDelegateTarget","_fireEvent","mozilla","_setSelector","handleObj","_selector","_getSelector","dxpointerdown","dxpointermove","dxpointerup","dxpointercancel","dxpointerover","dxpointerout","dxpointerenter","dxpointerleave","normalizeTouchEvent","pointerId","identifier","skipTouchWithSameIdentifier","pointerEvent","TouchStrategy","_pointerId","normalize","addEventsListener","Observer","eventMap","pointerEquals","onPointerAdding","getPointerIndex","removePointer","activateStrategy","isPrimary","MsPointerStrategy","resetObserver","normalizeMouseEvent","MouseStrategy","activate","MouseAndTouchStrategy","EVENT_LOCK_TIMEOUT","isMouse","_skipNextEvents","_mouseLocked","_unlockMouseTimer","normalizer","getStrategy","support","browser","EventStrategy","move","leave","over","out","executeAction","active","inactive","opts","showTimeout","hideTimeout","timeout","resize","hover","visibility","shown","hiding","focusIn","focusOut","hasDocumentProperty","_ref7","dxClick","click","keyboardProcessors","generateListenerId","listenerId","_getProcessor","abstract","DOMComponent","_useTemplates","createDefaultOptions","_customClass","_$element","_dispose","_getSynchronizableOptionsForCreateComponent","_visibilityChanged","_dimensionChanged","_attachWindowResizeCallback","_initTemplateManager","instanceCustomRules","_classCustomRules","isCustomOption","_isDimensionChangeSupported","windowResizeCallBack","_windowResizeCallBack","_initMarkup","_renderElementAttributes","_toggleRTLDirection","_renderVisibilityChange","_renderDimensions","_attachVisibilityChangeHandlers","class","_attachDimensionChangeHandlers","_isVisibilityChangeSupported","_getOptionValue","_isCssUpdateRequired","_isHidden","_isVisible","_checkVisibilityChanged","_clean","modelByElement","_requireRefresh","_renderComponent","_templateManager","_detachWindowResizeCallback","synchronizableOptions","nestedComponentOptions","nestedComponentConfig","_extendConfig","optionChangedHandler","extendConfig","_modelByElement","_invalidate","cssClass","renderRequired","_refresh","_updateDOMComponent","_removeAttributes","_removeClasses","initialOption","_getAnonymousTemplateName","_initTemplates","extractTemplates","anonymousTemplate","_getTemplate","getTemplate","_setOptionWithoutOptionChange","FRAME_ANIMATION_STEP_TIME","request","requestID","setAnimationFrameMethods","nativeRequest","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","nativeCancel","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","oCancelAnimationFrame","msCancelAnimationFrame","canceledRequests","requestId","REMOVE_EVENT_NAME","nodesByEvent","subscribeNodesDisposing","unsubscribeNodesDisposing","Emitter","_cancelCallback","_acceptCallback","getElement","validatePointers","allowInterruptionByMouseWheel","configure","addCancelCallback","removeCancelCallback","_cancel","addAcceptCallback","removeAcceptCallback","_accept","_requestAccept","_acceptRequestEvent","_forgetAccept","params","_getEmitterTarget","delegateSelector","MANAGER_EVENT","EMITTER_DATA","EventManager","_attachHandlers","_proxiedCancelHandler","_cancelHandler","_proxiedAcceptHandler","_acceptHandler","_pointerDownHandler","_pointerMoveHandler","_pointerUpHandler","_mouseWheelHandler","_eachEmitter","activeEmitters","_activeEmitters","emitter","_applyToEmitters","arg","resetEmitter","_updateEmitters","_isSetChanged","_cleanEmitters","_fetchEmitters","currentSet","_closestEmitter","previousSet","_emittersSet","setChanged","handleEmitter","emitters","acceptedEmitter","_cancelEmitter","canceledEmitter","emitterIndex","_allowInterruptionByMouseWheel","_adjustWheelEvent","allowInterruption","closestGestureEmitter","gesture","getDirection","verticalGestureDirection","eventManager","EMITTER_SUBSCRIPTION_DATA","registerEmitter","emitterConfig","emitterClass","emitterName","emitterEvents","bubble","subscriptions","disposeEmitter","maxLevel","normalizeArg","xItem","yItem","CLICK_EVENT_NAME","TOUCH_BOUNDARY","isInput","misc","ClickEmitter","_makeElementClickable","_blurPrevented","_startTarget","_startEventData","_eventOutOfElement","_clickAnimationFrame","_fireClickEvent","targetChanged","gestureDelta","boundsExceeded","useNativeClick","isNativeClickEvent","prevented","lastFiredEvent","onNodeRemove","clickHandler","eventAlreadyFired","DXCLICK_FIRED","leftButton","useNative","desktopDevice","blurPrevented","activeFeedback","ACTIVE_EVENT_NAME","INACTIVE_EVENT_NAME","ACTIVE_TIMEOUT","INACTIVE_TIMEOUT","FeedbackEvent","_timeout","_fire","_schedule","stop","_timer","FeedbackEmitter","_active","_inactive","activeTimeout","inactiveTimeout","activeChildExists","childJustActivated","_initEvents","eventTarget","mouseEvent","deferFeedback","skipTimers","lockInactive","lock","HOVERSTART_NAMESPACE","HOVERSTART","POINTERENTER_NAMESPACED_EVENT_NAME","HOVEREND_NAMESPACE","HOVEREND","POINTERLEAVE_NAMESPACED_EVENT_NAME","Hover","_handlerArrayKeyPath","_eventNamespace","_originalEventName","HoverStart","HoverEnd","Widget","_feedbackHideTimeout","_feedbackShowTimeout","_supportedKeys","hoveredElement","onKeyboardHandled","ignoreParentReadOnly","_initContentReadyAction","_innerWidgetOptionChanged","innerWidget","getOptionsFromContainer","cache","optionsContainer","syncOptions","_contentReadyAction","_toggleDisabledState","_toggleVisibility","_renderHint","_isFocusable","_renderFocusTarget","_renderContent","_renderFocusState","_attachFeedbackEvents","_attachHoverEvents","_toggleIndependentState","_renderContentImpl","_fireContentReadyAction","_detachKeyboardEvents","_toggleActiveState","_eventBindingTarget","_cleanFocusState","_resetActiveState","setAria","_attachKeyboardEvents","_attachFocusEvents","_renderAccessKey","_getActiveElement","_activeStateUnit","_detachFocusEvents","_updateFocusState","isFocused","_toggleFocusClass","$focusTarget","_hasFocusClass","_getKeyboardListeners","hasChildListeners","hasKeyboardEventHandler","shouldAttach","_keyboardListenerId","_keyboardEventBindingTarget","_keyboardHandler","onlyChildProcessing","keyboardListeners","listener","_hoverStartHandler","_hoverEndHandler","_focusEventTarget","_focusInHandler","_focusOutHandler","_hover","$previous","_findHoverTarget","newHoveredElement","_setWidgetOption","widgetOptionMap","_updatedHover","_refreshFocusState","_ready","_isReady","_getAriaTarget","currentKeys","sign","fitIntoRange","minValue","maxValue","isMinValueUndefined","isMaxValueUndefined","DECIMAL_BASE","roundByAbs","valueSign","round","adjustValue","precision","precisionMultiplier","pow","roundMultiplier","intermediateValue","toFixed","valuePrecision","adjustedValue","DEFAULT_CONFIG","ESCAPING_CHAR","MAXIMUM_NUMBER_LENGTH","getGroupSizes","formatString","getSignParts","signParts","reverseString","reverse","isPercentFormat","removeStubs","getNonRequiredDigitCount","floatFormat","getRequiredDigitCount","normalizeValueString","valuePart","minDigitCount","maxDigitCount","applyGroups","valueString","groupSizes","groups","groupSize","formatNumberPart","formatPart","escapeIndex","isEscape","getFloatPointIndex","signFormatParts","isPositiveZero","isPositive","numberFormat","floatPointIndex","floatFormatParts","minFloatPrecision","maxFloatPrecision","minIntegerPrecision","maxIntegerPrecision","unlimitedIntegerDigits","integerLength","floatPrecision","valueParts","valueIntegerPart","valueFloatPart","integerString","floatString","_formatNumberCore","formatConfig","currencyPart","getCurrencySymbol","symbol","getOpenXmlCurrencyFormat","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","it","ja","jgo","jmc","jv","ka","kab","kam","kde","kea","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","root","ru","rw","rwk","sa","sah","saq","sat","sbp","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","ur","uz","vai","vi","vun","wae","wo","xh","xog","yav","yi","yo","yue","zgh","zh","zu","detectCurrencySymbolRegex","formattersCache","Intl","NumberFormat","getCurrencyFormatter","currency","_normalizeFormatConfig","minimumIntegerDigits","useGrouping","maximumFractionDigits","_getPrecisionConfig","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","base","minPower","maxPower","number","_getNumberByPower","_formatNumber","powerPostfix","_formatNumberExponential","powString","_addZeroes","multiplier","_addGroupSeparators","toPrecision","_getSeparators","getDecimalSeparator","getThousandsSeparator","convertDigits","toStandard","digits","fromFirstDigit","toFirstDigit","fromLastDigit","regExp","charCodeAt","getNegativeEtalonRegExp","separators","digitalRegExp","negativeEtalon","getSign","numberConfig","formatterConfig","cleanedText","_calcSignificantDigits","NaN","parsed","integer","fractional","calcDigitsAfterLeadingZeros","STATUS","valid","invalid","pending","rulesValidators","required","valueArray","every","itemValue","_validate","ignoreEmptyValue","_isValueEmpty","useCultureSettings","validNumber","numeric","validValue","validator","dataGetter","extraParams","validationCallback","reevaluate","_getWrappedPromise","err","comparisonTarget","otherValue","comparisonType","pattern","stringLength","custom","async","compare","GroupConfig","group","validators","_pendingValidators","_onValidatorStatusChanged","_resetValidationInfo","brokenRules","status","complete","_unsubscribeFromAllChangeEvents","validatorResult","_addPendingValidator","_subscribeToChangeEvents","_raiseValidatedEvent","_updateValidationInfo","_validationInfo","_unsubscribeFromChangeEvents","foundValidator","orderedRules","foundRules","_orderBrokenRules","_resolveIfComplete","_removePendingValidator","_updateBrokenRules","_synchronizeValidationInfo","ValidationEngine","$dxGroup","dxValidationGroup","addGroup","getGroupConfig","defaultFormattedMessage","defaultMessage","brokenRule","_rules$","validationRules","pendingRules","asyncRuleItems","ruleValidationResult","ruleValidator","_addBrokenRule","_setDefaultMessage","_validateAsyncRules","_synchronizeGroupValidationInfo","_result$brokenRules","groupConfig","_validationGroup","asyncResults","validateResult","asyncResult","ruleResult","_getPatchedRuleResult","_updateRuleConfig","_getAsyncRulesResult","registerValidator","validatorsInGroup","isDefaultGroup","isValidationGroupInstance","removeRegisteredValidator","_shouldRemoveGroup","removeGroup","initedOptions","synchronizeValidationOptions","newStatus","initGroups","TRANSLATOR_DATA_KEY","TRANSFORM_MATRIX_REGEX","TRANSLATE_REGEX","locate","translate","getTranslate","isPercentValue","cacheTranslate","clearCache","getTranslateCss","xValueString","yValueString","transformValue","matrix","is3D","z","transform","resetPosition","finishTransition","originalTransition","stylesConfig","parseTranslate","translateString","CSS_TRANSITION_EASING_REGEX","TransitionTimingFuncMap","linear","swing","ease","polynomBezier","x1","y1","x2","y2","Cx","Bx","Ax","Cy","By","Ay","bezierX","derivativeX","easing","convertTransitionTimingFuncToEasing","cssTransitionEasing","forceName","coeffs","easingName","getEasing","scrollbarWidth","getDefaultAlignment","isRtlEnabled","getBoundingRect","horzRe","vertRe","collisionRe","scaleRe","IS_SAFARI","safari","normalizeAlign","normalizeOffset","normalizeCollision","getAlignFactor","align","inverseAlign","calculateOversize","bounds","oversize","myLocation","collisionSide","initMyLocation","atLocation","atAlign","atSize","myAlign","mySize","collisionResolvers","fit","flip","inverseData","flipfit","none","calculateScrollbarWidth","$scrollDiv","defaultPositionResult","calculatePosition","$what","currentOffset","of","collision","boundary","boundaryOffset","visualViewport","ofRect","getOffsetWithoutScale","windowHeight","hZoomLevel","vZoomLevel","boundaryWidth","boundaryHeight","$boundary","boundaryPosition","preciser","precise","$startElement","_currentElement$getAt","_style$match","$currentElement","currentElement","scale","targetPosition","calculate","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","delay","transitionEndFired","simulatedTransitionEndFired","transitionEndEventFullName","cleanup","waitForJSCompleteTimer","fx","_simulatedTransitionEndDelay","transitionDelay","transitionDuration","transitionTimingFunction","jumpToEnd","FrameAnimationStrategy","_normalizeValue","_parseTransform","frameAnimation","draw","animationFrameId","delayTimeout","_animationStep","transformString","part","translateData","scaleData","rotateData","_calcStepValue","currentDuration","calcValueRecursively","endPropValue","numericValue","FallbackToNoAnimationStrategy","isSynchronous","getAnimationStrategy","animationStrategies","frame","noAnimation","baseConfigValidator","animationType","typeMessage","isObjectConfigValidator","isStringConfigValidator","CustomAnimationConfigurator","CssAnimationConfigurator","validateConfig","SlideAnimationConfigurator","positioningConfig","setupPosition","_setUpConfig","_initNewPosition","relativeValue","_getRelativeValue","FadeAnimationConfigurator","_from$opacity","_to$opacity","defaultFromOpacity","defaultToOpacity","fromOpacity","opacity","toOpacity","skipElementInitialStyles","PopAnimationConfigurator","fromScale","toScale","_getCssTransform","animationConfigurators","slide","slideIn","slideOut","fade","fadeIn","fadeOut","getAnimationConfigurator","defaultJSConfig","defaultCssConfig","setupAnimationOnElement","configurator","onElementAnimationComplete","animation","startAnimationOnElement","isStarted","stopAnimationOnElement","startTimeout","scopedRemoveEvent","subscribeToRemoveEvent","createAnimation","initialConfig","defaultConfig","pushInAnimationQueue","queueData","getAnimQueueData","writeAnimQueueData","isAnimating","shiftFromAnimationQueue","destroyAnimQueueData","executeAnimation","currentPosition","animationTypes","SLEEP","INITED","STARTED","IMMEDIATE_TOUCH_BOUNDARY","IMMEDIATE_TIMEOUT","supportPointerEvents","setGestureCover","$cover","cursor","gestureCover","gestureCoverStrategy","GestureEmitter","immediate","_stage","_toggleGestureCover","_needSkipEvent","_startEvent","_setupImmediateTimer","_immediateTimer","_immediateAccepted","_directionConfirmed","_resetActiveElement","_clearSelection","_adjustStartEvent","_start","_move","touchBoundary","_getTouchBoundary","horizontalMove","_validateMove","verticalMove","bothAccepted","horizontalAccepted","verticalAccepted","mainAxis","crossAxis","_toggleGestureCoverImpl","_end","_stop","initialTouchBoundary","newBoundary","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","knownDropTarget","updateEventsCounter","eventsCount","handlersCount","getItemDelegatedTargets","dropTargetIndex","dropTargetSelectors","$delegatedTargets","getItemConfig","getItemPosition","dropTargetConfig","itemPositionFunc","getItemSize","itemSizeFunc","DragEmitter","_initEvent","_maxLeftOffset","maxLeftOffset","_maxRightOffset","maxRightOffset","_maxTopOffset","maxTopOffset","_maxBottomOffset","maxBottomOffset","dropTargets","targetElements","_dropTargets","iterator","dragOffset","_calculateOffset","_processDropTargets","_cancelPreventDefault","_calculateXOffset","_calculateYOffset","_fitOffset","minOffset","maxOffset","_findDropTarget","sameTarget","_currentDropTarget","_fireDropTargetEvent","draggingElement","_checkDropTargetActive","delegatedTarget","$delegatedTarget","_checkDropTarget","activeTarget","$prevTarget","isDraggingElement","targetSize","checkDropTarget","hideCallback","indexOfCallback","hasCallback","RESIZABLE","RESIZABLE_CLASS","RESIZABLE_RESIZING_CLASS","RESIZABLE_HANDLE_CLASS","RESIZABLE_HANDLE_TOP_CLASS","RESIZABLE_HANDLE_BOTTOM_CLASS","RESIZABLE_HANDLE_LEFT_CLASS","RESIZABLE_HANDLE_RIGHT_CLASS","RESIZABLE_HANDLE_CORNER_CLASS","DRAGSTART_START_EVENT_NAME","DRAGSTART_EVENT_NAME","DRAGSTART_END_EVENT_NAME","SIDE_BORDER_WIDTH_STYLES","Resizable","handles","stepPrecision","area","minWidth","maxWidth","minHeight","maxHeight","onResizeStart","onResize","onResizeEnd","roundStepValue","_renderHandles","_renderActions","_resizeStartAction","_resizeEndAction","_resizeAction","_handles","directions","handleName","_renderHandle","_attachEventHandlers","$handle","_dragStartHandler","_dragHandler","_dragEndHandler","handleElement","_detachEventHandlers","_toggleEventHandlers","shouldAttachEvents","_toggleResizingClass","_movingSides","_getMovingSides","_elementLocation","elementRect","_elementSize","_renderDragOffsets","_getArea","handleWidth","handleHeight","handleOffset","areaOffset","scrollOffset","_getAreaScrollOffset","scrollX","scrollY","_getBorderWidth","borderWidth","sides","_getOffset","_renderWidth","_renderHeight","steps","strictPrecision","_getStrictOffset","_getSimpleOffset","xPos","yPos","newXShift","newYShift","separatorOffset","isSmallOffset","newOffsetX","newOffsetY","hasCornerTopLeftClass","hasCornerTopRightClass","hasCornerBottomLeftClass","hasCornerBottomRightClass","_getAreaFromObject","_getAreaFromElement","isElement","areaElement","_correctAreaGeometry","$area","areaBorderLeft","areaBorderTop","SWATCH_CONTAINER_CLASS_PREFIX","getSwatchContainer","swatchContainer","viewport","swatchClassRegex","swatchClass","viewportSwatchContainer","baseZIndex","zIndexStack","ZIndex","baseIndex","zIndex","OVERLAY_CLASS","OVERLAY_WRAPPER_CLASS","OVERLAY_CONTENT_CLASS","OVERLAY_SHADER_CLASS","OVERLAY_MODAL_CLASS","INNER_OVERLAY_CLASS","INVISIBLE_STATE_CLASS","RTL_DIRECTION_CLASS","ACTIONS","OVERLAY_STACK","DISABLED_STATE_CLASS","PREVENT_SAFARI_SCROLLING_CLASS","TAB_KEY","POSITION_ALIASES","center","firefoxDesktop","iOS","hasSafariAddressBar","forceRepaint","_proxiedDocumentDownHandler","Overlay","allowedOffsets","_allowedOffsets","_changePosition","upArrow","downArrow","leftArrow","rightArrow","deferRendering","shadingColor","closeOnOutsideClick","onShowing","onShown","onHiding","onHidden","contentTemplate","dragEnabled","resizeEnabled","innerOverlay","hideTopOverlayHandler","closeOnTargetScroll","onPositioned","propagateOutsideClick","ignoreChildEvents","_checkParentVisibility","_fixedPosition","$wrapper","_$wrapper","_$content","_initActions","_initCloseOnOutsideClickHandler","_initTabTerminatorHandler","_initInnerOverlayClass","_toggleViewPortSubscription","_initHideTopOverlayHandler","_initTarget","_initContainer","pathParts","_$container","_hideTopOverlayHandler","_actions","_documentDownHandler","_showAnimationProcessing","_stopAnimation","isAttachedTarget","isInnerOverlay","outsideClick","_outsideClickHandler","addDefaultTemplates","_isTopOverlay","overlayStack","_overlayStack","tabbableElements","_findTabbableBounds","_zIndexInitValue","_viewPortChangeHandle","_viewPortChangeHandler","_renderVisibilityAnimate","_show","_hide","_normalizePosition","_position","_getAnimationConfig","_parentHidden","_isParentHidden","_currentVisible","_isShown","showAnimation","_normalizeAnimation","startShowAnimation","completeShowAnimation","_isHidingActionCanceled","_renderVisibility","_isShowingActionCanceled","_animate","_toggleSafariScrolling","_stopShowTimer","_asyncShowTimeout","hideAnimation","startHideAnimation","completeHideAnimation","hidingArgs","_forceFocusLost","_toggleShading","_toggleSubscriptions","_that$_actions","_hideAnimationProcessing","shouldResetActiveElement","completeCallback","startCallback","_updateZIndexStackPosition","showingArgs","_moveFromContainer","_moveToContainer","_renderGeometry","pushToStack","_zIndex","_toggleTabTerminator","_proxiedTabTerminatorHandler","_tabKeyHandler","enabled","$elements","elementsCount","$firstTabbable","$lastTabbable","isTabOnLast","isShiftTabOnFirst","isEmptyTabList","isOutsideTarget","$focusElement","_toggleHideTopOverlayCallback","_toggleParentsScrollSubscription","subscribe","closeOnScroll","$parents","scrollEvent","_proxiedTargetParentsScrollHandler","_targetParentsScrollHandler","_$prevTargetParents","closeHandled","_appendContentToElement","shouldDeferRendering","isParentHidden","_contentAlreadyRendered","$parent","isHidden","whenContentRendered","contentTemplateOption","$content","noModel","_renderDrag","_renderResize","_renderScrollTerminator","$dragTarget","_getDragTarget","startEventName","updateEventName","_dragUpdateHandler","_resizable","_resizeEndHandler","_getDragResizeContainer","_positionChangeHandled","$scrollTerminator","terminatorEventName","isNative","isWheel","isMouseMove","isScrollByWheel","cancelable","_prevOffset","isContainerDefined","_deltaSize","_isWindow","fullPageHeight","fullPageWidth","prevOffset","targetOffset","deltaSize","isAllowedDrag","shaderOffset","_getContainer","_detachWrapperToContainer","_attachWrapperToContainer","containerDefined","renderContainer","_fixHeightAfterSafariAddressBarResizing","isDimensionChanged","_renderGeometryImpl","_renderWrapper","resultPosition","_renderPosition","_fixWrapperPosition","_useFixedPosition","_shouldFixBodyPosition","_bodyScrollTop","scrollingEnabled","_renderWrapperDimensions","_renderWrapperPosition","wrapperWidth","wrapperHeight","positionOf","_renderOverlayBoundaryOffset","_transformStringPosition","positionAliases","_deferShowTimer","_animateDeferred","showing","animateDeferred","repaint","INVALID_MESSAGE","INVALID_MESSAGE_AUTO","INVALID_MESSAGE_ALWAYS","INVALID_MESSAGE_CONTENT","VALIDATION_MESSAGE_MIN_WIDTH","ValidationMessage","_renderInnerHtml","positionRequest","describedElement","updateMaxWidth","_updatePosition","_toggleModeClass","_updateContentId","contentId","validationErrorMessage","separator","_target$outerWidth","targetWidth","positionSide","verticalPositions","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","validationMessageOffset","validationBoundary","Editor","showValidationMessageTimeout","validationRequest","initValidationOptions","validationTooltipOptions","_createValueChangeAction","_valueChangeAction","_suppressValueChangeAction","_valueChangeActionSuppressed","_resumeValueChangeAction","_toggleReadOnlyState","_setSubmitElementName","_renderValidationState","_raiseValueChangeAction","_valueChangeArgs","_valueChangeEventInstance","_saveValueChangeEvent","isValidationMessageShownOnFocus","_canValueBeChangedByClick","_this$_validationMess","$validationMessageWrapper","_validationMessage","_getStylingModePrefix","_renderStylingMode","optionValue","allowedStylingClasses","stylingModeClass","defaultOptionValue","platformOptionValue","_getValidationErrors","_disposeValidationMessage","_$validationMessage","_toggleValidationClasses","isInvalid","_getValidationMessageTarget","_bindInnerWidgetOptions","_toggleBackspaceHandler","isReadOnly","$eventTarget","$submitElement","_getSubmitElement","_setValidationMessageOption","_this$_validationMess2","optionKey","_hasActiveElement","_this$_validationMess3","editor","isEditor","$placeMarker","_isRendered","_create","_attachEvents","_addPlaceMarker","_shouldRender","pointerDown","STATE_INVISIBLE_CLASS","TEXTEDITOR_CLEAR_BUTTON_CLASS","TEXTEDITOR_CLEAR_ICON_CLASS","TEXTEDITOR_ICON_CLASS","TEXTEDITOR_SHOW_CLEAR_BUTTON_CLASS","_addToContainer","_isClearButtonVisible","$button","editorName","_clearValueHandler","$editor","_legacyRender","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","useHoldAnimation","waveSizeCoefficient","isCentered","wavesNumber","durations","getDurations","showWave","hideWave","getInkRipple","getWaves","inkRipple","$currentWave","getWaveStyleConfig","elementWidth","elementHeight","elementDiagonal","sqrt","waveSize","$wave","wave","hidingTimeout","hideSelectedWave","showingTimeout","showingWaveHandler","durationCss","showingScale","hidingScale","hidingOpacity","animationDuration","ICON_CLASS","SVG_ICON_CLASS","getImageSourceType","getImageContainer","useInkRipple","_clickAction","_validationGroupConfig","findGroup","_templateData","iconPosition","needValidate","_submitInput","_renderType","_renderInkRipple","_renderClick","_updateAriaLabel","_updateContent","$icon","$textContainer","_updateClick","_updateType","_updateStylingMode","_updateSubmitInput","_executeClickAction","isOnlyIconButton","_inkRipple","changeWaveVisibility","_attachActiveEvents","submitAction","_getSubmitAction","_$submitInput","space","ariaTarget","_getContentData","$template","_getTemplateByOption","$submitInput","_renderSubmitInput","_findGroup","CUSTOM_BUTTON_HOVERED_CLASS","_isDisabled","_prepareIntegrationOptions","isUpdated","isDefinedByUser","TEXTEDITOR_BUTTONS_CONTAINER_CLASS","checkButtonInfo","buttonInfo","checkNamesUniqueness","existingNames","isPredefinedButtonName","predefinedButtonsInfo","defaultButtonsInfo","names","isStringButton","isDefaultButton","defaultButtonInfo","buttonsInfo","targetLocation","$buttonsContainer","_compileButtonInfo","_createButton","buttonName","_renderButtons","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","fontSize","_removeMarkupForAnimation","_removeMarkupForImage","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","checkButtonsOptionType","TextEditorBase","_buttonCollection","_getDefaultButtons","_$beforeButtonsContainer","_$afterButtonsContainer","displayValueFormatter","showValidationMark","_input","_isFocused","_inputWrapper","_buttonsContainer","_isControlKey","_updateButtonsStyling","_renderInput","_renderInputType","_renderPlaceholder","_renderProps","_renderValue","_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","$input","_applyInputAttributes","inputAttrName","customAttributes","inputAttributes","_getDefaultAttributes","defaultAttributes","autocomplete","_updateButtons","updateButtons","buttonInstance","getButton","renderInputPromise","_renderInputValue","displayValue","_renderDisplayText","_toggleEmptinessEventHandler","_isValueValid","validity","_toggleEmptiness","_togglePlaceholder","_toggleSpellcheckState","_toggleTabIndex","_readOnlyPropValue","_renderPlaceholderMarkup","_attachPlaceholderEvents","_$placeholder","placeholderText","$placeholder","startEvent","_placeholder","_clearValue","_refreshEvents","_keyPressHandler","_keyDownHandler","isCtrlEnter","isNewValue","_renderValueChangeEvent","keyPressEvent","_renderValueEventName","keyDownEvent","_valueChangeEventHandler","_cleanValueChangeEvent","valueChangeNamespace","textChangeNamespace","_isInput","_preventNestedFocusEvent","_isNestedTarget","_focusClassTarget","formattedValue","_enterKeyAction","_enterKeyHandlerUp","_updateValue","_refreshFocusEvent","_setInputType","focus","MASK_EVENT_NAMESPACE","BLUR_EVENT","DIRECTION","FORWARD","BACKWARD","_getStrategyName","newCaret","_caret","handlerName","editorInput","getHandleEventNames","subscriptionName","getEventHandler","_attachChangeEventHandlers","editorOption","_suppressCaretChanging","_changeHandler","_showMaskPlaceholder","_direction","_adjustCaret","_maskRulesChain","_caretTimeout","editorCaret","selectedText","_maskKeyHandler","_clearDragTimer","_dragTimer","_convertToValue","_keyPressHandled","pastedText","restText","accepted","_handleChain","inputVal","_inputHandlerTimer","_isAutoFill","_validateMask","keyPressHandled","_hasSelection","_handleKey","_backspaceHandlerTimeout","BACKSPACE_INPUT_TYPE","_isControlKeyFired","_backspaceInputHandled","_handleBackspaceInput","_autoFillHandler","inputValue","afterBackspaceHandler","needAdjustCaret","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","isSpaceChar","C","A","isNumericChar","TextEditorMask","keyHandlerMap","_maskStrategy","parentHandler","_$hiddenElement","_initMaskStrategy","_renderHiddenElement","_attachMouseWheelEventHandlers","hasMouseWheelHandler","_onMouseWheel","mouseWheelAction","_renderMask","_removeHiddenElement","detachEvents","attachEvents","_parseMask","_renderMaskedValue","_changedValue","changeEvent","_maskRules","_parseMaskRule","currentMaskChar","isEscapedChar","_getMaskRule","ruleConfig","rulePattern","_normalizeChainArguments","chainArgs","_isMaskedValueMode","_replaceSelectedText","textBefore","textAfter","edited","_shouldShowMask","submitElementValue","_getPreparedValue","handledCount","_textValue","_replaceMaskCharWithEmpty","keyHandler","_handleSelection","previousText","raiseInputEvent","runWithoutEventProcessing","_handleKeyChain","_moveCaret","emptyChars","chars","maskRuleIndex","_typingDirection","editorSpecific","_updateHiddenElement","_updateMaskOption","_processEmptyMask","ignoreKeys","TEXTBOX_CLASS","SEARCHBOX_CLASS","SEARCH_ICON_CLASS","TextBox","_showClearButton","_renderMaxLengthHandlers","_renderSearchMode","_isAndroidOrIE","_onKeyDownCutOffHandler","_onChangeCutOffHandler","_toggleMaxLengthProp","_getMaxLength","_renderSearchIcon","_$searchIcon","$searchIcon","actualMaxLength","_cutOffExtraChar","textInput","isMaskSpecified","_renderSearch","searchBoxClassName","_addWidgetPrefix","rootElementClassName","_removeSearchBox","editorOptions","_getSearchEditorOptions","_searchEditor","_$searchEditorElement","userEditorOptions","searchText","_valueChangeDeferred","_valueChangeTimeout","_itemContainer","getOperationBySearchMode","_cleanAria","role","activedescendant","_dataSource","searchOperation","CHECKBOX_CLASS","CHECKBOX_ICON_CLASS","CHECKBOX_CHECKED_CLASS","CHECKBOX_CONTAINER_CLASS","CHECKBOX_TEXT_CLASS","CHECKBOX_HAS_TEXT_CLASS","CHECKBOX_INDETERMINATE_CLASS","CHECKBOX_FEEDBACK_HIDE_TIMEOUT","CheckBox","_renderSubmitElement","_renderIcon","_renderText","_$submitElement","_renderInkWave","dxEvent","doRender","waveIndex","_$icon","textValue","_$text","_clickHandler","indeterminate","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","errorHandler","_errorHandler","XHR_ERROR_UNLOAD","normalizeBinaryCriterion","crit","normalizeSortingInfo","desc","dir","unloading","textStatusMessages","parsererror","xhr","textStatus","statusText","aggregators","count","seed","sum","avg","finalize","processRequestResultLock","lockDeferred","lockCount","obtain","release","keysEqual","key1","key2","isUnaryOperation","isGroupOperator","isGroupCriterion","second","trivialPromise","rejectedPromise","throttle","timeoutId","lastArgs","throttleChanges","throttled","Iterator","countable","ArrayIterator","WrappedIterator","iter","MapIterator","mapper","hasNext","defaultCompare","xValue","yValue","SortIterator","_wrap","thenBy","sortedIter","_ensureSorted","_compare","_unwrap","record","wrappedItem","xIndex","yIndex","rulesCount","compareResult","compileCriteria","compileEquals","negate","ops","isConjunctiveOperator","isConjunctiveNextOperator","op","criteria","getterValue","FilterIterator","GroupIterator","_ensureGrouped","groupedIter","hash","SelectIterator","SliceIterator","take","pos","arrayQueryImpl","queryOptions","handleError","aggregateCore","aggregator","accumulator","standardAggregate","select","chainQuery","selectProp","enumerate","sortBy","MAX_VALUE","aggregate","remoteQueryImpl","tasks","createTask","executorTask","_adapterFactory","_adapter","_taskQueue","_currentTask","_mergedSortArgs","rejectWithNotify","mergeSortTask","adapter","optimize","unmergedTasks","extra","clientChain","query","queryImpl","remote","impl","multiLevelGroup","groupInfo","arrangeSortingInfo","sortInfo","filteredGroup","queryByOptions","isCountQuery","keepInitialKeyOrder","DataConverter","_dataStructure","_itemsCount","_visibleItemsCount","_indexByKey","_convertItemsToNodes","parentKey","_getParentId","_convertItemToNode","_checkForDuplicateId","internalFields","_itemHasChildren","_dataAccessors","_dataType","_getUniqueKey","keyGetter","itemKey","isCorrectKey","getItemsCount","_rootValue","_makeObjectFromPrimitive","childrenKeys","setChildrenKeys","getParentNode","setters","_convertToPublicNode","publicNode","convertToPublicNodes","publicNodes","_getByKey","setDataAccessors","accessors","getIndexByKey","getByKey","currentElementKey","getVisibleItemsCount","updateIndexByKey","updateChildrenKeys","removeChildrenKeys","createPlainStructure","dataType","EXPANDED","SELECTED","DISABLED","DataAdapter","_defaultOptions","dataConverter","dataAccessors","_selectedNodesKeys","_expandedNodesKeys","_createInternalDataStructure","getTreeNodes","setOption","_updateSelection","multipleSelection","recursiveSelection","recursiveExpansion","onNodeChanged","_initialDataStructure","search","_updateExpansion","_setChildrenSelection","_setParentSelection","_updateNodesKeysArray","_updateOneBranch","_setParentExpansion","_getDataBySelectionMode","_isNodeVisible","toggleSelection","getFullData","isSelected","_toggleChildrenSelection","_iterateParents","newParentState","_calculateSelectedState","_setFieldState","getNodeByKey","_iterateChildren","recursive","processedKeys","nodeKey","itemsCount","selectedItemsCount","invisibleItemsCount","isChildInvisible","childState","_markChildren","_removeNode","_addNode","_updateFields","getSelectedNodesKeys","getExpandedNodesKeys","getNodeByItem","getNodesByItems","getRootNodes","getPublicNode","getChildrenNodes","addItem","removeItem","selectRecursive","isSingleModeUnselect","_isSingleModeUnselect","selectionState","toggleNodeDisabledState","toggleSelectAll","lastSelectedKey","selectionRequired","isAllSelected","toggleExpansion","isFiltered","_filterDataStructure","_createCriteria","searchFilter","filterValue","lookForParents","hasKey","keyOrKeys","findItems","keyInfo","groupCount","childItems","collapsedItems","indexByKey","getItems","generateDataByKeyMap","_dataByKeyMap","_dataByKeyMapLength","dataByKeyMap","arrayLength","keyOf","getCacheValue","getHasKeyCacheValue","setDataByKeyMapValue","cloneInstance","instanceWithoutPrototype","createObjectWithChanges","applyBatch","useInsertIndex","immutable","disableCache","logError","resultItems","insert","getErrorResult","isBatch","errorCode","newTarget","keyValue","storeImpl","Store","_useDefaultSearch","_customLoadOptions","_keyGetter","_requireKey","_withLock","_loadImpl","createQuery","totalCount","_totalCountImpl","byKey","extraOptions","_addFailHandlers","_byKeyImpl","_insertImpl","callbackValues","callbackKey","_updateImpl","beforePushArgs","waitFor","_pushImpl","_removeImpl","registerClass","inheritor","members","TOTAL_COUNT","LOAD","BY_KEY","INSERT","UPDATE","REMOVE","ensureRequiredFuncOption","throwInvalidUserFuncResult","createUserFuncFailureHandler","pendingDeferred","errorMessageFromXhr","promiseArguments","getResponseHeader","invokeUserLoad","store","userResult","userFunc","_loadFunc","invokeUserTotalCountFunc","_totalCountFunc","invokeUserByKeyFunc","_byKeyFunc","runRawLoad","userFuncOptions","continuation","__rawData","loadPromise","__rawDataPromise","_cacheRawData","rawData","runRawLoadWithQuery","countOnly","userData","itemsQuery","totalCountQuery","rawDataQuery","waitList","requireTotalCount","runRawLoadWithKey","len","CustomStore","useDefaultSearch","loadMode","_loadMode","cacheRawData","_insertFunc","_removeFunc","clearRawDataCache","_byKeyViaLoad","serverResponse","createQueue","discardPendingTasks","_tasks","_busy","removeTaskCallback","busy","_objectWithoutPropertiesLoose","nativeXMLHttpRequest","getXhr","XMLHttpRequest","SUCCESS","ERROR","TIMEOUT","NO_CONTENT","PARSER_ERROR","isStatusSuccess","hasContent","paramsConvert","createScript","script","removeScript","scriptNode","appendToHead","getHead","evalScript","evalCrossDomainScript","loadHandler","getAcceptHeader","scriptAccept","accepts","xml","json","jsonp","getContentTypeHeader","defaultContentType","upload","getMethod","contentType","getDataFromResponse","responseType","responseText","postProcess","isCrossDomain","crossDomain","originAnchor","urlAnchor","protocol","host","setHttpTimeout","customStatus","getJsonpOptions","callbackName","jsonpCallback","callbackParameter","getRequestOptions","headers","paramsAlreadyString","parameters","getRequestHeaders","Accept","sendRequest","needScriptEvaluation","requestOptions","open","username","onreadystatechange","onprogress","onloadstart","onabort","xhrFields","setRequestHeader","beforeSend","send","ArrayStore","initialArray","_array","_excluded","CANCELED_TOKEN","normalizeStoreLoadOptionAccessorArguments","originalArguments","mapGroup","level","restItem","mapRecursive","mapDataRespectingGrouping","normalizeLoadResult","_data","createCustomStoreFromLoadFunc","storeConfig","createStoreFromConfig","createCustomStoreFromUrl","normalizationOptions","ajax","fromUrlLoadMode","normalizeDataSourceOptions","paginate","_counter","_deferreds","operationId","DataSource","_options$reshapeOnPus","_store","_changedTime","needThrottling","pushAggregationTimeout","pushDeferred","lastPushWaiters","throttlingTimeout","throttlingPushHandler","storePushPending","_onPush","_onPushHandler","_aggregationTimeoutId","_storeLoadOptions","_extractLoadOptions","_mapFunc","_postProcessFunc","_pageIndex","pageIndex","_pageSize","pageSize","_loadingCount","_loadQueue","_createLoadQueue","_searchValue","_searchOperation","_searchExpr","_paginate","_reshapeOnPush","reshapeOnPush","_operationManager","_items","_userData","_totalCount","_isLoaded","_isLastPage","_this$_delayedLoadTas","_delayedLoadTask","cancelAll","customNames","newIndex","normalizedArgs","generateStoreLoadOptionAccessor","newFilter","_len3","_key3","argc","_this$_store","_changeLoadingCount","increment","oldLoading","isLoading","newLoading","beginLoading","endLoading","_len4","_key4","date","_fireChanged","_createStoreLoadOptions","_scheduleFailCallbacks","refresh","searchString","_applyMapFunction","loadTask","_loadFromStore","loadOperation","_scheduleLoadCallbacks","_scheduleChangedCallbacks","_createLoadOperation","groupLevel","dataSourceChanges","storeLoadOptions","_addSearchFilter","_addSearchOptions","loadOptions","handleSuccess","loadResult","_processStoreLoadResult","resolvePendingDeferred","_applyPostProcessFunction","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","_refreshDataSource","_initDataSource","_loadDataSource","widgetDataSourceOptions","dataSourceType","dataSourceOptions","_isSharedDataSource","_dataSourceType","_addDataSourceHandlers","_addDataSourceChangeHandler","_addDataSourceLoadErrorHandler","_addDataSourceLoadingChangedHandler","_addReadyWatcher","_proxiedDataSourceChangedHandler","_proxiedDataSourceLoadErrorHandler","_proxiedDataSourceLoadingChangedHandler","_loadSingle","loadSingle","isLastPage","_isDataSourceLoading","getDataSource","ITEM_CONTENT_PLACEHOLDER_CLASS","forcibleWatcher","filteredCallback","CollectionItem","_rawData","_watchers","_renderWatchers","_startWatcher","_renderDisabled","_renderVisible","exprGetter","fieldGetter","watcher","_dirty","setDataField","_updateOwnerFocus","ownerComponent","_resetItemFocus","HOLD_EVENT_NAME","HOLD_TIMEOUT","HoldEmitter","_startTimer","holdTimeout","_holdTimer","_touchWasMoved","_stopTimer","CONTEXTMENU_NAMESPACE","CONTEXTMENU_NAMESPACED_EVENT_NAME","HOLD_NAMESPACED_EVENT_NAME","hold","CONTEXTMENU_EVENT_NAME","ContextMenu","_contextMenuHandler","_holdHandler","_fireContextMenu","watchChanges","fields","fieldsMap","fieldsDispose","globalDispose","dataWithRawFields","resolvedData","missedFields","watchHandlers","_fields","_fieldsMap","_watchMethod","COLLECTION_CLASS","ITEM_CLASS","CONTENT_CLASS_POSTFIX","ITEM_DATA_KEY","ITEM_INDEX_KEY","ITEM_TEMPLATE_ID_PREFIX","ITEMS_OPTIONS_NAME","SELECTED_ITEM_CLASS","ITEM_RESPONSE_WAIT_CLASS","EMPTY_COLLECTION","ITEM_PATH_REGEX","FOCUS_PAGE_UP","FOCUS_PAGE_DOWN","CollectionWidget","$itemElement","_itemClickHandler","_moveFocus","pageUp","pageDown","selectOnFocus","loopItemFocus","onFocusedItemChanged","_itemAttributes","itemTemplateProperty","focusOnSelectedItem","focusedElement","visibleExpr","_compileDisplayGetter","_cleanRenderedItems","_displayGetter","_initItemsFromMarkup","_initDefaultItemTemplate","_getFieldsMap","_prepareDefaultItemTemplate","_getBindableFields","rawItems","isTemplateRequired","_prepareItemTemplate","templateId","_saveTemplate","_dataSourceOptions","_renderedItemsCount","$focusedElement","_setFocusedItem","$activeItem","_getActiveItem","_updateFocusedItemState","activeElements","lastIndex","$newTarget","$items","_getAvailableItems","_prevItem","_nextItem","_getVisibleItems","$itemElements","_itemElements","targetIndex","$last","$item","loop","$first","_selectFocusedItem","selectItem","needCleanItemId","_refreshActiveDescendant","_refreshItemId","_updateParentActiveDescendant","getFocusedItemId","_findItemElementByItem","itemElements","_itemDataKey","_getIndexByItem","_itemOptionChanged","ItemClass","_refreshItem","isDisabling","_getItemData","_itemIndexKey","_renderItem","itemPath","_renderEmptyMessage","_createItemRenderAction","_attachHoldEvent","_attachContextMenuEvent","_loadNextPage","_expectNextPageLoading","_startIndexForAppendedItems","_expectLastItemLoading","_forgetNextPageLoading","_dataSourceChangedHandler","newItems","_shouldAppendItems","_refreshContent","_prepareContent","_dataSourceLoadErrorHandler","_allowDynamicItemsAppend","_cleanItemContainer","_itemFocusTimeout","_itemClass","_itemContentClass","_selectedItemClass","_itemResponseWaitClass","_itemSelector","_attachClickEvent","itemSelector","clickEventNamespace","pointerDownEventNamespace","pointerDownAction","_itemPointerDownHandler","_itemDXEventHandler","_itemFocusHandler","$closestItem","$closestFocusable","_closestFocusable","_forcePointerDownFocus","$itemContainer","_getHoldTimeout","_itemHoldHandler","_shouldFireHoldEvent","_itemContextMenuHandler","_shouldFireContextMenuEvent","_renderItems","$itemToReplace","$itemFrame","_renderItemFrame","_setElementData","_attachItemClickEvent","$itemContent","_getItemContent","renderContentPromise","_renderItemContent","contentClass","defaultTemplateName","_postprocessRenderItem","itemContent","itemIndex","_executeItemRenderAction","_itemEventHandlerByHandler","itemTemplateName","_getItemTemplateName","_addItemContentClasses","$templateResult","_createItemByTemplate","_renderItemContentByNode","classes","_appendItemToContainer","_itemOptions","_getItemRenderAction","_itemRenderAction","category","templateProperty","renderArgs","_emptyMessageContainer","hideNoData","_$noData","handlerOptionName","actionArgs","actionConfig","_itemEventHandler","initiator","_itemEventHandlerImpl","_closestItemElement","_extendActionArgs","_getSummaryItemsWidth","includeMargin","_focusedItemId","itemsContainer","EditStrategy","collectionWidget","_collectionWidget","getIndexByItemData","getItemDataByIndex","getKeysByItems","getItemsByKeys","itemsGetter","getKeyByIndex","resultIndex","_denormalizeItemIndex","_equalKeys","_isKeySpecified","beginCache","_cache","endCache","getNormalizedIndex","_isNormalizedItemIndex","_isItemIndex","_normalizeItemIndex","_isNode","_getNormalizedItemIndex","getIndex","getItemElement","_getItemByNormalizedIndex","normalizedItemIndex","deleteItemAtIndex","itemPlacementFunc","movingIndex","destinationIndex","_itemsFromSameParent","moveItemAtIndexToIndex","PlainEditStrategy","_getPlainItems","movedItemData","_setOption","_clearItemKeys","addedItemKeys","removedItemKeys","addedItems","removedItems","selectedItems","selectedItemKeys","equalKeys","equalByReference","getSelectableItems","preserve","isDeselect","isSelectAll","_loadFilteredData","remoteFilter","localFilter","filterLength","encodeURI","needLoadAllData","maxFilterLengthInRequest","dataFields","filteredItems","updateSelectedItemKeyHash","keyHashIndices","keyIndices","_isAnyItemSelected","isItemSelected","_getFullSelectAllState","plainItems","dataFilter","selectedItemsLength","disabledItemKeys","_getVisibleSelectAllState","hasSelectedItems","hasUnselectedItems","getItemData","isSelectableItem","isItemKeySelected","getSelectedItems","selectionFilter","getSelectedItemKeys","needResetSelectionFilter","_addSelectionFilter","removeSelectedItem","addSelectedItem","setSelectedItems","isItemDataSelected","_getKeyExpr","keyField","_normalizeKey","_getFilterByKey","_findSubFilter","filterString","subFilter","_isLastSubFilter","_addFilterOperator","filterOperator","_denormalizeFilter","currentFilter","currentOperation","needAddFilter","_removeSameFilter","filterIndex","isKeyOperatorsAfterRemoved","_isKeyFilter","_hasKeyFiltersOnlyStartingFromIndex","_normalizeFilter","_removeFilterByIndex","_isSimpleKeyFilter","inverted","_filterIndex","getSelectAllState","isKeysEqual","oldKeys","newKeys","SelectionFilterCreator","selectedItemKeyHashesMap","functionFilter","selectedKeyHashesMap","getFilterForPlainKey","getLocalFilter","getExpr","filterExpr","filterExprPart","itemKeyValue","currentKeyExpr","currentKeyValue","getCombinedFilter","dataSourceFilter","combinedFilter","_initSelectedItemKeyHash","_preserveSelectionUpdate","keyIndicesToRemoveMap","keyIndex","isBatchDeselect","_batchRemoveSelectedItems","_loadSelectedItemsCore","selectionFilterCreator","deselectedItems","_replaceSelectionUpdate","internalKeys","_warnOnIncorrectKeys","allowNullValue","_isMultiSelectEnabled","_requestInProgress","_this$_lastLoadDeferr","_lastLoadDeferred","_concatRequestsItems","oldRequestItems","updatedKeys","added","_collectLastRequestData","isDeselectAll","multiSelectEnabled","lastRequestData","_lastRequestData","_shouldMergeWithLastRequest","_updateKeysByLastRequestData","_this$_lastRequestDat","_this$_lastRequestDat2","_loadSelectedItems","ignoreDisabledItems","_getKeyHash","_indexOfSelectedItemKey","_getSelectedIndexByKey","ignoreIndicesMap","_getSelectedIndexByHash","indices","selectedIndex","_shiftSelectedKeyIndices","currentKeyIndex","currentKey","currentKeyHash","currentKeyIndices","_updateAddedItemKeys","_updateRemovedItemKeys","oldSelectedKeys","oldSelectedItems","_isItemSelectionInProgress","checkPending","_this$_lastRequestDat3","shouldCheckPending","visibleOnly","selectedKeys","_selectionStrategy","_focusedItemIndex","filterIsChanged","setSelection","deselect","_keys","_addSelectedItem","_removeSelectedItem","_setSelectedItems","changeItemSelection","isSelectedItemsChanged","isSelectable","isDataItem","changeItemSelectionWhenShiftKeyPressed","_resetItemSelectionWhenShiftKeyPressed","clearSelectedItems","_shiftFocusedItemIndex","_resetFocusedItemIndex","itemIndexStep","focusedItem","focusedData","focusedKey","isFocusedItemSelected","selectAll","isOnePage","_onePageSelectAll","deselectAll","ITEM_DELETING_DATA_KEY","NOT_EXISTING_INDEX","indexExists","selectedItem","selectionByClick","onItemReordered","onItemDeleting","onItemDeleted","_userOptions","_initEditStrategy","_initKeyGetter","_initSelectionModule","_getKeysByItems","_editStrategy","_getItemsByKeys","_getKeyByIndex","_getIndexByKey","_getIndexByItemData","_getCombinedFilter","_nullValueSelectionSupported","_selection","_updateSelectedItems","customQueryParams","Strategy","_getSelectedItemIndices","_rendering","_syncSelectionOptions","_normalizeSelectedItems","_rendered","byOption","_chooseSelectOption","selectedItemIndex","isOptionDefined","_compareKeys","newSelection","currentSelection","normalizedSelection","_itemSelectHandler","unselectItem","_selectedItemElement","_isItemSelected","_processSelectableItem","_setAriaSelected","selectionChangePromise","_selectionChangePromise","normalizedIndex","addedSelection","removedSelection","_addSelection","_removeSelection","_fireSelectionChangeEvent","_clearSelectedItems","_waitDeletingPrepare","deletingActionArgs","deletePromise","deletePromiseExists","deletePromiseResolved","argumentsSpecified","shouldDelete","_deleteItemFromDS","disabledState","dataStore","_tryRefreshLastPage","_refreshLastPage","_updateSelectionAfterDelete","_updateIndicesAfterIndex","_simulateOptionChange","_deleteItemElementByIndex","_afterItemElementDeleted","deletedActionArgs","changingOption","deleteItem","itemResponseWaitClass","reorderItem","toItemElement","$movingItem","$destinationItem","canMoveItems","fromIndex","toIndex","HierarchicalCollectionWidget","_initAccessors","_initDataAdapter","_initDynamicTemplates","_createDataAdapterAccessors","_dataAdapter","_getDataAdapterOptions","_getIconContainer","_getTextContainer","_getPopoutContainer","_addContentClasses","_itemsGetter","_getAccessors","accessor","_compileAccessor","_getChildNodes","_hasChildren","setter","optionExpr","getterName","setterName","newAccessor","_addWidgetClass","_widgetClass","_disabledGetter","DBLCLICK_EVENT_NAME","DBLCLICK_NAMESPACE","NAMESPACED_CLICK_EVENT","DBLCLICK_TIMEOUT","DblClick","_forgetLastClick","_firstClickTarget","_lastClickTimeStamp","timeBetweenClicks","isSimulated","isDouble","SCROLL_INIT_EVENT","SCROLL_START_EVENT","SCROLL_MOVE_EVENT","SCROLL_END_EVENT","SCROLL_STOP_EVENT","SCROLL_CANCEL_EVENT","Locker","NAMESPACED_SCROLL_EVENT","_locked","_proxiedScroll","_scroll","TimeoutLocker","_prepare","_forget","_clearTimer","WheelLocker","_lastWheelDirection","_checkDirectionChanged","directionChange","PointerLocker","ios8_greater","android5_greater","_scrollFrame","_checkFrame","ScrollEmitter","FRAME_DURATION","_pointerLocker","_wheelLocker","scrollTarget","skipCheck","_prevEventData","isScrollingEvent","_savedEventData","currentEventData","endEventDelta","velocity","velocityMultiplier","Animator","_finished","_stopped","_proxiedStepCore","_stepCore","_stepAnimationFrame","_isStopped","_isFinished","_complete","_step","inProgress","SCROLLBAR","SCROLLABLE_SCROLLBAR_CLASS","SCROLLABLE_SCROLLBAR_ACTIVE_CLASS","SCROLLABLE_SCROLL_CLASS","SCROLLABLE_SCROLL_CONTENT_CLASS","HOVER_ENABLED_STATE","HORIZONTAL","THUMB_MIN_SIZE","SCROLLBAR_VISIBLE","onScroll","onHover","never","activeScrollbar","Scrollbar","visibilityMode","containerSize","contentSize","expandable","scaleRatio","_isHovered","_renderThumb","_renderDirection","_attachPointerDownHandler","_isHoverMode","_$thumb","isThumb","_dimension","_prop","feedbackOn","feedbackOff","cursorEnter","_needScrollbar","cursorLeave","_adjustVisibility","_baseContainerToContentRatio","moveTo","scrollBarLocation","_calculateScrollBarPosition","_thumbRatio","baseContainerSize","baseContentSize","_realContainerToContentRatio","thumbSize","containerToContentRatio","_normalizeSize","hoveredScrollable","activeScrollable","SCROLLABLE_SIMULATED","SCROLLABLE_STRATEGY","SCROLLABLE_SIMULATED_CURSOR","SCROLLABLE_SIMULATED_KEYBOARD","SCROLLABLE_SIMULATED_CLASS","SCROLLABLE_SCROLLBARS_ALWAYSVISIBLE","VERTICAL","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","_location","_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","dimension","dimensionName","translateOffset","_maxScrollPropValue","_translateOffset","_hideScrollbar","_completeDeferred","_scrollToBounds","_bounceAction","_setupBounce","boundLocation","bounceDistance","nextLocation","_initHandler","_stopScrolling","_prepareThumbScrolling","scrollbarClicked","_isScrollbar","_moveToMouseLocation","_thumbScrolling","_isThumb","_crossThumbScrolling","_isAnyThumbScrolling","_isThumbScrollingHandler","mouseLocation","_containerToContentRatio","_startHandler","_showScrollbar","_moveHandler","_scrollBy","_scrollByHandler","_endHandler","_inertiaHandler","_resetThumbScrolling","_suppressInertia","_inertiaEnabled","_stopHandler","_disposeHandler","_updateHandler","_moveToBounds","_resetScaleRatio","_updateLocation","_updateBounds","_updateScrollbar","_getMaxOffset","_getMinOffset","_contentSize","_containerSize","locationChanged","_scrollAction","_createActionsHandler","actions","scroll","bounce","isOverflowHidden","containerScrollSize","_validateEvent","_isContent","_scrollByContent","_reachedMin","_reachedMax","_cursorEnterHandler","_cursorLeaveHandler","SimulatedStrategy","scrollable","_isLocked","_isDirection","_allowedDirection","_createScrollers","_attachKeyboardHandler","_attachCursorHandlers","_scrollers","_createScroller","_scrollerOptions","scrollByContent","scrollByThumb","scrollbarVisible","bounceEnabled","inertiaEnabled","isAnyThumbScrolling","_applyScaleRatio","_getPropByDirection","_eventHandler","isThumbScrollingVertical","isThumbScrollingHorizontal","handleInit","_suppressDirections","_eventForUserAction","_prepareDirections","_eachScroller","_validDirections","handleStart","_startAction","_saveActive","_resetActive","handleMove","_adjustDistance","distance","_tryGetDevicePixelRatio","handleEnd","_refreshCursorState","_endAction","handleCancel","handleStop","handleScroll","_updateRtlConfig","_updateHandlerTimeout","_scrollByLine","_scrollByPage","_scrollToHome","_scrollToEnd","lines","scrollBy","_wheelProp","_dimensionByProp","createActions","_createActionHandler","_updateAction","_createScrollerActions","actionHandler","_createActionArgs","horizontal","scrollerX","vertical","scrollerY","_getScrollOffset","_scrollOffset","reachedLeft","reachedRight","reachedTop","reachedBottom","deferreds","disabledChanged","_hoverHandled","$scrollable","targetScrollable","allowedDirections","_allowedDirections","touchDirection","verticalScroller","horizontalScroller","_isHorizontalAndRtlEnabled","updateRtlPosition","needInitializeRtlConfig","_rtlConfig","scrollRight","windowPixelRatio","_getWindowDevicePixelRatio","skipUpdating","_validateWheel","_wheelDirection","reachedMin","reachedMax","contentGreaterThanContainer","locatedNotAtBound","scrollFromMin","scrollFromMax","validated","_validateWheelTimer","getScrollRtlBehavior","insertAdjacentHTML","lastElementChild","initiallyPositive","hasNegative","decreasing","positive","SCROLLABLE_NATIVE","SCROLLABLE_NATIVE_CLASS","SCROLLABLE_SCROLLBAR_SIMULATED","SCROLLABLE_SCROLLBARS_HIDDEN","HIDE_SCROLLBAR_TIMEOUT","NativeStrategy","_useSimulatedScrollbar","_isScrollInverted","_isScrollbarVisible","_renderScrollbars","isFirstRender","_moveScrollbars","_scrollbars","_hideScrollbarTimeout","_renderScrollbar","_eachScrollbar","scrollbar","_isReachedRight","_isReachedLeft","_normalizeOffsetLeft","showScrollbar","_hideScrollbars","_updateDimensions","_updateScrollbars","_componentContentSize","scrollableNativeRegexp","_removeScrollbars","_getScrollSign","_isScrolledInMaxDirection","deviceDependentOptions","_device","SCROLLABLE","SCROLLABLE_CLASS","SCROLLABLE_DISABLED_CLASS","SCROLLABLE_CONTAINER_CLASS","SCROLLABLE_WRAPPER_CLASS","SCROLLABLE_CONTENT_CLASS","BOTH","Scrollable","onUpdated","onStart","onEnd","onBounce","useSimulatedScrollbar","useKeyboard","updateManually","_setUseSimulatedScrollbar","_initScrollableMarkup","_updateRtlPosition","_savedScrollOffset","_renderStrategy","_renderDisabledState","_createActions","_strategy","initEventData","_updateIfNeed","_lock","_unlock","_createStrategy","_resetInactiveDirection","inactiveProp","_getInactiveProp","_normalizeLocation","_updateAllowedDirection","_allowedDirectionValue","_isRtlNativeStrategy","scrollToElement","elementInsideContent","elementIsInsideContent","scrollPosition","getScrollElementPosition","isVertical","startOffset","endOffset","elementPositionRelativeToContent","_elementPositionRelativeToContent","elementPosition","elementSize","scrollLocation","clientSize","startDistance","endDistance","_hasScrollContent","getRelativeOffset","targetElement","sourceElement","parentOffsetElement","currentElementRect","parentOffsetElementRect","DIRECTION_VERTICAL","DIRECTION_HORIZONTAL","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","_initSelectedItems","_fireSelectionChanged","_createSelectAllValueChangedAction","_selectAllValueChangedAction","_fireSelectAllValueChanged","_checkBoxModeChange","selectAllExists","_$selectAllItem","_renderSelectAllItem","dxCheckBox","getScrollable","_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","_renderToggleItemVisibilityIconClick","isHiddenNode","nodeContainerExists","completionCallback","_animateNodeContainer","_loadNestedItemsWithUpdate","actualNodeData","_areNodesExists","_appendItems","keyOfRootItem","fullData","nodeHeight","_fireExpandedStateUpdatedEvent","isExpanded","hasNewItems","$loadIndicator","_onSelectAllCheckboxValueChanged","_toggleSelectAll","_updateItemsUI","$checkbox","_changeCheckboxValue","_toggleNodeDisabledState","checkbox","_isLastSelectedBranch","selectedNodesKeys","_isLastRequired","isSingleMode","getSelectedNodeKeys","_fireItemSelectionChanged","needFireSelectAllChanged","nodeSelection","selectAllCheckbox","$parentNode","parentValue","_createEventHandler","clickSelector","pointerDownSelector","pointerDownEvent","_updateSelectionToFirstItem","startIndex","_updateSelectionToLastItem","_setFocusedItemTimeout","_findNonDisabledNodes","$nodes","FOCUS_UP","FOCUS_DOWN","FOCUS_FIRST","FOCUS_LAST","FOCUS_LEFT","FOCUS_RIGHT","_nodeElements","$prevItem","prevItemElement","_getNodeItemElement","$nextItem","nextItemElement","$firstItem","$lastItem","_expandFocusedContainer","_collapseFocusedContainer","$focusedNode","_getClosestNonDisabledNode","nodeElement","collapsedNode","decodeURI","updateDimensions","expandItem","collapseItem","getNodes","unselectAll","expandAll","dataAdapter","collapseAll","scrollToItem","keyOrItemOrElement","nodeKeysToExpand","scrollCallback","_expandNodes","scrollToElementTopLeft","relativeOffset","containerElement","keysToExpand","resultCallback","callbacksByNodes","TreeViewSearch","_updateSearch","_repaintContainer","_updateDataAdapter","rootNodes","isSearchMode","parentPath","Guid","_generate","toJSON","getNodeTypeOfComponent","saveComponentInstance","usedConfigurationProps","hasChildren","subTree","$_componentInstance","findConfigurationComponents","hasInlineTemplate","createApp","setAppContext","modelValue","setCustomPluginsData","parentAppContext","setPrototypeOf","provides","mixins","childType","isConfiguration","wrapOverridden","baseProto","prevCallBase","clonePrototype","redefine","overridden","argument","classObj","hasClassObjOwnProperty","isES6Class","_includedCtors","_includedPostCtors","subclassOf","parentClass","hasParentProperty","baseClass","copyStatic","hasOwn","destination","classImpl","includedCtors","includedPostCtors"],"mappings":"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","file":"js/chunk-723bb586.89cfa6d7.js","sourcesContent":["/*!\n * devextreme-vue\n * Version: 21.1.6\n * Build date: Mon Sep 27 2021\n *\n * Copyright (c) 2012 - 2021 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/core/utils/dependency_injector.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/core/utils/object.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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","/*!\n * devextreme-vue\n * Version: 21.1.6\n * Build date: Mon Sep 27 2021\n *\n * Copyright (c) 2012 - 2021 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 created: function () {\n var nodeOptions = vue_helper_1.getNodeOptions(this);\n nodeOptions.$_isExtension = true;\n nodeOptions.$_attachTo = this.attachTo.bind(this);\n },\n mounted: function () {\n this.$el.setAttribute(\"isExtension\", \"true\");\n var componentOptions = vue_helper_1.getNodeOptions(this);\n if (componentOptions && componentOptions.$_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: 21.1.6\n * Build date: Mon Sep 27 2021\n *\n * Copyright (c) 2012 - 2021 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.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}\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}\n","/**\r\n * DevExtreme (esm/core/utils/callbacks.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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// import Vue from 'vue'\r\n// import VueResource from 'vue-resource'\r\nimport { API, MAIN_DOMAIN } from '@/environment'\r\nimport axios from '../http/axios/index'\r\n// import store from '@/store/store'\r\n\r\n// Vue.use(VueResource)\r\n\r\n/**\r\n * @param {String} url\r\n * @return { Promise }\r\n */\r\nexport const get = (url) => {\r\n return new Promise((resolve, reject) => {\r\n axios.get(`${API}/${url}`).then(response => {\r\n resolve(response)\r\n }, error => {\r\n reject(error)\r\n })\r\n })\r\n}\r\n\r\n/**\r\n * Used to Insert Record\r\n * @param {String} url String\r\n * @param {Object} data Object\r\n * @return { Promise } mixed\r\n */\r\n\r\nexport const put = (url, data) => {\r\n return new Promise((resolve, reject) => {\r\n axios.put(`${API}/${url}`, data || {}).then(response => {\r\n resolve(response)\r\n }, error => {\r\n reject(error)\r\n })\r\n })\r\n}\r\n\r\n/**\r\n * Used to Insert Record\r\n * @param {String} url String\r\n * @param {Object} data Object\r\n * @return { Promise } mixed\r\n */\r\n\r\nexport const patch = (url, data) => {\r\n return new Promise((resolve, reject) => {\r\n axios.patch(`${API}/${url}`, data || {}).then(response => {\r\n resolve(response)\r\n }, error => {\r\n reject(error)\r\n })\r\n })\r\n}\r\n\r\n/**\r\n * Used to Delete Record\r\n * @param {String} url String\r\n * @return { Promise } mixed\r\n */\r\nexport const del = (url) => {\r\n return new Promise((resolve, reject) => {\r\n axios.delete(`${API}/${url}`).then(response => {\r\n resolve(response)\r\n }, error => {\r\n reject(error)\r\n })\r\n })\r\n}\r\n\r\nexport const delWithBody = (url, body) =>\r\n axios.delete(`${API}/${url}`, { body })\r\n\r\n/**\r\n * Used to Insert/Update record\r\n * @param {String} url String\r\n * @param { Object } data Object\r\n * @return { Promise } mixed\r\n */\r\nexport const post = (url, data) => {\r\n return new Promise((resolve, reject) => {\r\n axios.post(`${API}/${url}`, data).then(response => {\r\n resolve(response)\r\n }, error => {\r\n reject(error)\r\n })\r\n })\r\n}\r\n\r\n\r\n/**\r\n * Used to Insert/Update record\r\n * @param {String} url String\r\n * @param { Object } data Object\r\n * @return { Promise } mixed\r\n */\r\n export const post_to_base = (url, data) => {\r\n return new Promise((resolve, reject) => {\r\n axios.post(`${MAIN_DOMAIN}/${url}`, data).then(response => {\r\n resolve(response)\r\n }, error => {\r\n reject(error)\r\n })\r\n })\r\n}\r\n\r\n\r\n// axios.interceptors.response.use(\r\n// response => {\r\n// return response;\r\n// },\r\n// error => {\r\n// if (error.response.status === 401) {\r\n// store.dispatch(\"auth/doLogout\").then(() => {\r\n// this.$acl.change(\"admin\");\r\n// localStorage.removeItem(\"userInfo\");\r\n// this.$router.push(\"/login\").catch(() => { });\r\n// });\r\n// }\r\n// }\r\n// );\r\n\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('vx-card',[_c('vs-prompt',{attrs:{\"title\":\"Add User\",\"accept-text\":\"Save\",\"is-valid\":_vm.validateForm,\"active\":_vm.addPrompt},on:{\"cancel\":_vm.clearFields,\"accept\":_vm.saveData,\"close\":_vm.clearFields,\"update:active\":function($event){_vm.addPrompt=$event}}},[_c(_vm.scrollbarTag,{key:_vm.$vs.rtl,tag:\"component\",staticClass:\"scroll-area p-4\",attrs:{\"settings\":_vm.settings}},[_c('h4',{staticClass:\"text-primary\"},[_vm._v(\"Credentials\")]),_c('form',{on:{\"submit\":function($event){$event.preventDefault();}}},[_c('vs-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required|email'),expression:\"'required|email'\"}],staticClass:\"w-full mb-2\",attrs:{\"data-vv-validate-on\":\"blur\",\"name\":\"email\",\"label\":\"Email\"},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}}),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.errors.has('email')),expression:\"errors.has('email')\"}],staticClass:\"text-danger text-sm\"},[_vm._v(\"\\n \"+_vm._s(_vm.errors.first(\"email\"))+\"\\n \")]),_c('vs-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"w-full mb-2\",attrs:{\"type\":\"password\",\"data-vv-validate-on\":\"blur\",\"name\":\"password\",\"label\":\"Password\"},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}}),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.errors.has('password')),expression:\"errors.has('password')\"}],staticClass:\"text-danger text-sm\"},[_vm._v(\"\\n \"+_vm._s(_vm.errors.first(\"password\"))+\"\\n \")]),_c('div',{staticClass:\"form\"},[_c('h4',{staticClass:\"text-primary\"},[_vm._v(\"Permissions\")]),_c('DxTreeView',{ref:_vm.treeViewRef,attrs:{\"id\":\"treeview\",\"width\":340,\"height\":320,\"items\":_vm.permission_list,\"show-check-boxes-mode\":\"normal\",\"selection-mode\":\"multiple\",\"select-nodes-recursive\":true,\"select-by-click\":true},on:{\"selection-changed\":_vm.treeViewSelectionChanged,\"content-ready\":_vm.treeViewContentReady},scopedSlots:_vm._u([{key:\"item\",fn:function(item){return [_vm._v(\"\\n \"+_vm._s(item.data.label)+\"\\n \")]}}])})],1)],1)])],1),_c('vs-prompt',{staticClass:\"export-options\",attrs:{\"title\":\"Edit Permissions\",\"accept-text\":\"Update\",\"is-valid\":_vm.at_least_one_permission,\"active\":_vm.editPrompt},on:{\"cancel\":_vm.clearFields,\"accept\":_vm.updateData,\"close\":_vm.clearFields,\"update:active\":function($event){_vm.editPrompt=$event}}},[_c('DxTreeView',{ref:_vm.treeViewRef,attrs:{\"id\":\"treeview\",\"width\":340,\"height\":320,\"items\":_vm.edited_permission_list,\"show-check-boxes-mode\":\"normal\",\"selection-mode\":\"multiple\",\"select-nodes-recursive\":true,\"select-by-click\":true},on:{\"selection-changed\":_vm.treeViewSelectionChanged,\"content-ready\":_vm.treeViewContentReady},scopedSlots:_vm._u([{key:\"item\",fn:function(item){return [_vm._v(\"\\n \"+_vm._s(item.data.label)+\"\\n \")]}}])})],1),_c('div',{staticClass:\"export-table\"},[_c('vs-table',{attrs:{\"data\":_vm.users},scopedSlots:_vm._u([{key:\"default\",fn:function({ data }){return _vm._l((data),function(tr,indextr){return _c('vs-tr',{key:indextr,attrs:{\"data\":tr}},[_c('vs-td',{staticClass:\"w-12\"},[_vm._v(_vm._s(tr.email))]),_c('vs-td',[(tr.permission)?_vm._l((tr.permission.permissions),function(listItem,index){return _c('div',{key:index},[(\n listItem.selected &&\n listItem.label != 'GeneratePaymentLink'\n )?_c('vs-chip',{staticClass:\"ag-grid-cell-chip\",attrs:{\"transparent\":\"\",\"color\":\"primary\"},model:{value:(listItem.selected),callback:function ($$v) {_vm.$set(listItem, \"selected\", $$v)},expression:\"listItem.selected\"}},[_vm._v(_vm._s(listItem.label))]):_vm._e()],1)}):_vm._e()],2),_c('vs-td',{staticClass:\"whitespace-no-wrap\"},[_c('feather-icon',{attrs:{\"icon\":\"EditIcon\",\"svgClasses\":\"w-5 h-5 hover:text-primary stroke-current\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.editData(tr)}}}),_c('feather-icon',{staticClass:\"ml-2\",attrs:{\"icon\":\"TrashIcon\",\"svgClasses\":\"w-5 h-5 hover:text-danger stroke-current\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.deleteData(tr)}}})],1)],1)})}}])},[_c('template',{slot:\"header\"},[_c('vs-button',{staticClass:\"bg-primary-gradient py-4 mb-5 w-full sm:w-1/2 md:w-1/2 lg:w-1/6 xl:w-1/6\",attrs:{\"icon-pack\":\"feather\",\"icon\":\"icon-plus\"},on:{\"click\":function($event){_vm.addPrompt = true}}},[_vm._v(\"\\n Add User\\n \")]),_c('vs-input',{staticClass:\"mb-5 w-full sm:w-1/2 md:w-1/2 lg:w-1/2 xl:w-1/2 input-rounded-full\",attrs:{\"icon-no-border\":\"\",\"icon\":\"icon-search\",\"icon-pack\":\"feather\"},model:{value:(_vm.searchQuery),callback:function ($$v) {_vm.searchQuery=$$v},expression:\"searchQuery\"}})],1),_c('template',{slot:\"thead\"},[_c('vs-th',[_vm._v(\"Email\")]),_c('vs-th',[_vm._v(\"Permissions\")]),_c('vs-th',[_vm._v(\"Actions\")])],1)],2),_c('div',{staticClass:\"my-5\"},[(_vm.total_items && !_vm.searchQuery)?_c('vs-pagination',{attrs:{\"total\":_vm.total_pages},model:{value:(_vm.currentx),callback:function ($$v) {_vm.currentx=$$v},expression:\"currentx\"}}):_vm._e()],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import * as axios from './Axios'\r\n\r\nconst PREFIX = 'admin/subuser'\r\n\r\n\r\nexport const _save = data => axios.post(`${PREFIX}/save`, data);\r\nexport const _filter = data => axios.post(`${PREFIX}/filter`, data);\r\nexport const _update = (id, data) => axios.put(`${PREFIX}/${id}/update`, data);\r\nexport const _delete = id => axios.del(`${PREFIX}/${id}/delete`)\r\n\r\n","export const permission_list = [\r\n\r\n {\r\n\r\n id: 1,\r\n label: \"Dashboard\",\r\n path: \"/dashboard\",\r\n expanded: true,\r\n },\r\n {\r\n id: 2,\r\n label: \"Venues\",\r\n path: \"/venues\",\r\n expanded: true,\r\n items: [\r\n {\r\n id: 3,\r\n label: \"List Venues\",\r\n path: \"/venues\",\r\n },\r\n {\r\n id: 4,\r\n label: \"Add Venues\",\r\n path: \"/venue/add\"\r\n },\r\n {\r\n id: 5,\r\n label: \"Edit Venues\",\r\n path: \"/venue/edit\"\r\n },\r\n {\r\n id: 6,\r\n label: \"Show Venues\",\r\n path: \"/venue/view\"\r\n },\r\n\r\n ]\r\n },\r\n {\r\n id: 7,\r\n label: \"Bookings\",\r\n path: \"/bookings\",\r\n },\r\n {\r\n id: 8,\r\n label: \"Statistics\",\r\n path: \"/statistics\",\r\n },\r\n {\r\n id: 9,\r\n label: \"Companies\",\r\n path: \"/companies\",\r\n },\r\n {\r\n id: 10,\r\n label: \"Payments\",\r\n\r\n path: \"/payments\",\r\n },\r\n {\r\n id: 11,\r\n label: \"Services\",\r\n path: \"/services/SMSPAY\",\r\n expanded: true,\r\n items: [\r\n {\r\n id: 12,\r\n label: \"Show Sms payments\",\r\n path: \"/services/SMSPAY\",\r\n key:'Services'\r\n },\r\n {\r\n id: 13,\r\n label: \"Make payment link\",\r\n path: \"/services/pay-by-link\",\r\n key:'Services'\r\n\r\n },\r\n {\r\n id: 14,\r\n label: \"Make Refund\",\r\n path: \"/refund\",\r\n },\r\n\r\n ]\r\n },\r\n\r\n];\r\n","\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=d50ace6a&scoped=true\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\nimport style0 from \"./Index.vue?vue&type=style&index=0&id=d50ace6a&prod&lang=css&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d50ace6a\",\n null\n \n)\n\nexport default component.exports","/*!\n * devextreme-vue\n * Version: 21.1.6\n * Build date: Mon Sep 27 2021\n *\n * Copyright (c) 2012 - 2021 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","/*!\n * devextreme-vue\n * Version: 21.1.6\n * Build date: Mon Sep 27 2021\n *\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DxSearchEditorOptions = exports.DxOptions = exports.DxItem = exports.DxButton = exports.DxTreeView = void 0;\nvar tree_view_1 = __importDefault(require(\"devextreme/ui/tree_view\"));\nvar index_1 = require(\"./core/index\");\nvar index_2 = require(\"./core/index\");\nvar DxTreeView = index_1.createComponent({\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n animationEnabled: Boolean,\n createChildren: Function,\n dataSource: [Array, Object, String],\n dataStructure: String,\n disabled: Boolean,\n disabledExpr: [Function, String],\n displayExpr: [Function, String],\n elementAttr: {},\n expandAllEnabled: Boolean,\n expandedExpr: [Function, String],\n expandEvent: String,\n expandNodesRecursive: Boolean,\n focusStateEnabled: Boolean,\n hasItemsExpr: [Function, String],\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n itemHoldTimeout: Number,\n items: Array,\n itemsExpr: [Function, String],\n itemTemplate: {},\n keyExpr: [Function, String],\n noDataText: String,\n onContentReady: Function,\n onDisposing: Function,\n onInitialized: Function,\n onItemClick: Function,\n onItemCollapsed: Function,\n onItemContextMenu: Function,\n onItemExpanded: Function,\n onItemHold: Function,\n onItemRendered: Function,\n onItemSelectionChanged: Function,\n onOptionChanged: Function,\n onSelectAllValueChanged: Function,\n onSelectionChanged: Function,\n parentIdExpr: [Function, String],\n rootValue: {},\n rtlEnabled: Boolean,\n scrollDirection: String,\n searchEditorOptions: Object,\n searchEnabled: Boolean,\n searchExpr: [Array, Function, String],\n searchMode: String,\n searchTimeout: Number,\n searchValue: String,\n selectAllText: String,\n selectByClick: Boolean,\n selectedExpr: [Function, String],\n selectionMode: String,\n selectNodesRecursive: Boolean,\n showCheckBoxesMode: String,\n tabIndex: Number,\n useNativeScrolling: Boolean,\n virtualModeEnabled: Boolean,\n visible: Boolean,\n width: [Function, Number, String]\n },\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:animationEnabled\": null,\n \"update:createChildren\": null,\n \"update:dataSource\": null,\n \"update:dataStructure\": null,\n \"update:disabled\": null,\n \"update:disabledExpr\": null,\n \"update:displayExpr\": null,\n \"update:elementAttr\": null,\n \"update:expandAllEnabled\": null,\n \"update:expandedExpr\": null,\n \"update:expandEvent\": null,\n \"update:expandNodesRecursive\": null,\n \"update:focusStateEnabled\": null,\n \"update:hasItemsExpr\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:itemHoldTimeout\": null,\n \"update:items\": null,\n \"update:itemsExpr\": null,\n \"update:itemTemplate\": null,\n \"update:keyExpr\": null,\n \"update:noDataText\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onInitialized\": null,\n \"update:onItemClick\": null,\n \"update:onItemCollapsed\": null,\n \"update:onItemContextMenu\": null,\n \"update:onItemExpanded\": null,\n \"update:onItemHold\": null,\n \"update:onItemRendered\": null,\n \"update:onItemSelectionChanged\": null,\n \"update:onOptionChanged\": null,\n \"update:onSelectAllValueChanged\": null,\n \"update:onSelectionChanged\": null,\n \"update:parentIdExpr\": null,\n \"update:rootValue\": null,\n \"update:rtlEnabled\": null,\n \"update:scrollDirection\": null,\n \"update:searchEditorOptions\": null,\n \"update:searchEnabled\": null,\n \"update:searchExpr\": null,\n \"update:searchMode\": null,\n \"update:searchTimeout\": null,\n \"update:searchValue\": null,\n \"update:selectAllText\": null,\n \"update:selectByClick\": null,\n \"update:selectedExpr\": null,\n \"update:selectionMode\": null,\n \"update:selectNodesRecursive\": null,\n \"update:showCheckBoxesMode\": null,\n \"update:tabIndex\": null,\n \"update:useNativeScrolling\": null,\n \"update:virtualModeEnabled\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n computed: {\n instance: function () {\n return this.$_instance;\n }\n },\n beforeCreate: function () {\n this.$_WidgetClass = tree_view_1.default;\n this.$_expectedChildren = {\n item: { isCollectionItem: true, optionName: \"items\" },\n searchEditorOptions: { isCollectionItem: false, optionName: \"searchEditorOptions\" }\n };\n }\n});\nexports.DxTreeView = DxTreeView;\nvar DxButton = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:location\": null,\n \"update:name\": null,\n \"update:options\": null,\n },\n props: {\n location: String,\n name: String,\n options: Object\n }\n});\nexports.DxButton = DxButton;\nDxButton.$_optionName = \"buttons\";\nDxButton.$_isCollectionItem = true;\nDxButton.$_expectedChildren = {\n options: { isCollectionItem: false, optionName: \"options\" }\n};\nvar DxItem = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:disabled\": null,\n \"update:expanded\": null,\n \"update:hasItems\": null,\n \"update:html\": null,\n \"update:icon\": null,\n \"update:id\": null,\n \"update:items\": null,\n \"update:parentId\": null,\n \"update:selected\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:visible\": null,\n },\n props: {\n disabled: Boolean,\n expanded: Boolean,\n hasItems: Boolean,\n html: String,\n icon: String,\n id: [Number, String],\n items: Array,\n parentId: [Number, String],\n selected: Boolean,\n template: {},\n text: String,\n visible: Boolean\n }\n});\nexports.DxItem = DxItem;\nDxItem.$_optionName = \"items\";\nDxItem.$_isCollectionItem = true;\nvar DxOptions = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:bindingOptions\": null,\n \"update:disabled\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:icon\": null,\n \"update:onClick\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:rtlEnabled\": null,\n \"update:stylingMode\": null,\n \"update:tabIndex\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:type\": null,\n \"update:useSubmitBehavior\": null,\n \"update:validationGroup\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n bindingOptions: {},\n disabled: Boolean,\n elementAttr: {},\n focusStateEnabled: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n icon: String,\n onClick: Function,\n onContentReady: Function,\n onDisposing: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n rtlEnabled: Boolean,\n stylingMode: String,\n tabIndex: Number,\n template: {},\n text: String,\n type: String,\n useSubmitBehavior: Boolean,\n validationGroup: String,\n visible: Boolean,\n width: [Function, Number, String]\n }\n});\nexports.DxOptions = DxOptions;\nDxOptions.$_optionName = \"options\";\nvar DxSearchEditorOptions = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:bindingOptions\": null,\n \"update:buttons\": null,\n \"update:disabled\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:inputAttr\": null,\n \"update:isValid\": null,\n \"update:mask\": null,\n \"update:maskChar\": null,\n \"update:maskInvalidMessage\": null,\n \"update:maskRules\": null,\n \"update:maxLength\": null,\n \"update:mode\": null,\n \"update:name\": null,\n \"update:onChange\": null,\n \"update:onContentReady\": null,\n \"update:onCopy\": null,\n \"update:onCut\": null,\n \"update:onDisposing\": null,\n \"update:onEnterKey\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onInitialized\": null,\n \"update:onInput\": null,\n \"update:onKeyDown\": null,\n \"update:onKeyPress\": null,\n \"update:onKeyUp\": null,\n \"update:onOptionChanged\": null,\n \"update:onPaste\": null,\n \"update:onValueChanged\": null,\n \"update:placeholder\": null,\n \"update:readOnly\": null,\n \"update:rtlEnabled\": null,\n \"update:showClearButton\": null,\n \"update:showMaskMode\": null,\n \"update:spellcheck\": null,\n \"update:stylingMode\": null,\n \"update:tabIndex\": null,\n \"update:text\": null,\n \"update:useMaskedValue\": null,\n \"update:validationError\": null,\n \"update:validationErrors\": null,\n \"update:validationMessageMode\": null,\n \"update:validationStatus\": null,\n \"update:value\": null,\n \"update:valueChangeEvent\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n bindingOptions: {},\n buttons: Array,\n disabled: Boolean,\n elementAttr: {},\n focusStateEnabled: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n inputAttr: {},\n isValid: Boolean,\n mask: String,\n maskChar: String,\n maskInvalidMessage: String,\n maskRules: {},\n maxLength: [Number, String],\n mode: String,\n name: String,\n onChange: Function,\n onContentReady: Function,\n onCopy: Function,\n onCut: Function,\n onDisposing: Function,\n onEnterKey: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onInitialized: Function,\n onInput: Function,\n onKeyDown: Function,\n onKeyPress: Function,\n onKeyUp: Function,\n onOptionChanged: Function,\n onPaste: Function,\n onValueChanged: Function,\n placeholder: String,\n readOnly: Boolean,\n rtlEnabled: Boolean,\n showClearButton: Boolean,\n showMaskMode: String,\n spellcheck: Boolean,\n stylingMode: String,\n tabIndex: Number,\n text: String,\n useMaskedValue: Boolean,\n validationError: {},\n validationErrors: Array,\n validationMessageMode: String,\n validationStatus: String,\n value: String,\n valueChangeEvent: String,\n visible: Boolean,\n width: [Function, Number, String]\n }\n});\nexports.DxSearchEditorOptions = DxSearchEditorOptions;\nDxSearchEditorOptions.$_optionName = \"searchEditorOptions\";\nDxSearchEditorOptions.$_expectedChildren = {\n button: { isCollectionItem: true, optionName: \"buttons\" }\n};\nexports.default = DxTreeView;\n","/*!\n * devextreme-vue\n * Version: 21.1.6\n * Build date: Mon Sep 27 2021\n *\n * Copyright (c) 2012 - 2021 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","/*!\n * devextreme-vue\n * Version: 21.1.6\n * Build date: Mon Sep 27 2021\n *\n * Copyright (c) 2012 - 2021 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/config.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 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/core/utils/variable_wrapper.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/utils/window.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/core/memorized_callbacks.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/core/dom_adapter.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 if (element.classList) {\r\n if (isAdd) {\r\n element.classList.add(className)\r\n } else {\r\n element.classList.remove(className)\r\n }\r\n } else {\r\n var classNameSupported = \"string\" === typeof element.className;\r\n var elementClass = classNameSupported ? element.className : this.getAttribute(element, \"class\") || \"\";\r\n var classNames = elementClass.split(\" \");\r\n var classIndex = classNames.indexOf(className);\r\n var resultClassName;\r\n if (isAdd && classIndex < 0) {\r\n resultClassName = elementClass ? elementClass + \" \" + className : className\r\n }\r\n if (!isAdd && classIndex >= 0) {\r\n classNames.splice(classIndex, 1);\r\n resultClassName = classNames.join(\" \")\r\n }\r\n if (void 0 !== resultClassName) {\r\n if (classNameSupported) {\r\n element.className = resultClassName\r\n } else {\r\n this.setAttribute(element, \"class\", resultClassName)\r\n }\r\n }\r\n }\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() {\r\n return this._document.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};\r\nexport default injector(nativeDOMAdapterStrategy);\r\n","/*!\n * devextreme-vue\n * Version: 21.1.6\n * Build date: Mon Sep 27 2021\n *\n * Copyright (c) 2012 - 2021 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 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 return vue_1.defineComponent(config);\n}\nexports.createConfigurationComponent = createConfigurationComponent;\nfunction createExtensionComponent(config) {\n config.extends = extension_component_1.initDxExtensionComponent();\n return vue_1.defineComponent(config);\n}\nexports.createExtensionComponent = createExtensionComponent;\n","/**\r\n * DevExtreme (esm/core/polyfills/weak_map.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n inArray\r\n} from \"../utils/array\";\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"../utils/window\";\r\nvar weakMap = hasWindow() ? getWindow().WeakMap : WeakMap;\r\nif (!weakMap) {\r\n weakMap = function() {\r\n var keys = [];\r\n var values = [];\r\n this.set = function(key, value) {\r\n var index = inArray(key, keys);\r\n if (-1 === index) {\r\n keys.push(key);\r\n values.push(value)\r\n } else {\r\n values[index] = value\r\n }\r\n };\r\n this.get = function(key) {\r\n var index = inArray(key, keys);\r\n if (-1 === index) {\r\n return\r\n }\r\n return values[index]\r\n };\r\n this.has = function(key) {\r\n var index = inArray(key, keys);\r\n if (-1 === index) {\r\n return false\r\n }\r\n return true\r\n };\r\n this.delete = function(key) {\r\n var index = inArray(key, keys);\r\n if (-1 === index) {\r\n return\r\n }\r\n keys.splice(index, 1);\r\n values.splice(index, 1)\r\n }\r\n }\r\n}\r\nexport default weakMap;\r\n","/*!\n * devextreme-vue\n * Version: 21.1.6\n * Build date: Mon Sep 27 2021\n *\n * Copyright (c) 2012 - 2021 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 = void 0;\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: 21.1.6\n * Build date: Mon Sep 27 2021\n *\n * Copyright (c) 2012 - 2021 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/core/utils/common.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/events/index.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=style&index=0&id=d50ace6a&prod&lang=css&scoped=true\"","/*!\n * devextreme-vue\n * Version: 21.1.6\n * Build date: Mon Sep 27 2021\n *\n * Copyright (c) 2012 - 2021 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","/*!\n * devextreme-vue\n * Version: 21.1.6\n * Build date: Mon Sep 27 2021\n *\n * Copyright (c) 2012 - 2021 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: 21.1.6\n * Build date: Mon Sep 27 2021\n *\n * Copyright (c) 2012 - 2021 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 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 if (!innerChanges.hasOwnProperty(optionName) ||\n innerChanges[optionName] !== value) {\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] = 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: 21.1.6\n * Build date: Mon Sep 27 2021\n *\n * Copyright (c) 2012 - 2021 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/core/utils/browser.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 ieRegExp = /(msie) (\\d{1,2}\\.\\d)/;\r\nvar ie11RegExp = /(trident).*rv:(\\d{1,2}\\.\\d)/;\r\nvar msEdge = /(edge)\\/((\\d+)?[\\w.]+)/;\r\nvar mozillaRegExp = /(mozilla)(?:.*? rv:([\\w.]+))/;\r\nvar browserFromUA = function(ua) {\r\n ua = ua.toLowerCase();\r\n var result = {};\r\n var matches = ieRegExp.exec(ua) || ie11RegExp.exec(ua) || msEdge.exec(ua) || ua.indexOf(\"compatible\") < 0 && mozillaRegExp.exec(ua) || webkitRegExp.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 (\"trident\" === browserName || \"edge\" === browserName) {\r\n browserName = \"msie\"\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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isDefined\r\n} from \"./type\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport {\r\n orderEach\r\n} from \"./object\";\r\nimport config from \"../config\";\r\nimport browser from \"./browser\";\r\nvar isIE11 = browser.msie && parseInt(browser.version) <= 11;\r\nexport var isEmpty = function(entity) {\r\n return Array.isArray(entity) && !entity.length\r\n};\r\nexport var wrapToArray = function(entity) {\r\n return Array.isArray(entity) ? entity : [entity]\r\n};\r\nexport var inArray = function(value, object) {\r\n if (!object) {\r\n return -1\r\n }\r\n var array = Array.isArray(object) ? object : object.toArray();\r\n return array.indexOf(value)\r\n};\r\nexport var intersection = function(a, b) {\r\n if (!Array.isArray(a) || 0 === a.length || !Array.isArray(b) || 0 === b.length) {\r\n return []\r\n }\r\n var result = [];\r\n each(a, (function(_, value) {\r\n var index = inArray(value, b);\r\n if (-1 !== index) {\r\n result.push(value)\r\n }\r\n }));\r\n return result\r\n};\r\nexport var uniqueValues = function(data) {\r\n if (isIE11) {\r\n return data.filter((function(item, position) {\r\n return data.indexOf(item) === position\r\n }))\r\n }\r\n return [...new Set(data)]\r\n};\r\nexport var removeDuplicates = function(from, what) {\r\n if (!Array.isArray(from) || 0 === from.length) {\r\n return []\r\n }\r\n var result = from.slice();\r\n if (!Array.isArray(what) || 0 === what.length) {\r\n return result\r\n }\r\n each(what, (function(_, value) {\r\n var index = inArray(value, result);\r\n result.splice(index, 1)\r\n }));\r\n return result\r\n};\r\nexport var normalizeIndexes = function(items, indexParameterName, currentItem, needIndexCallback) {\r\n var indexedItems = {};\r\n var parameterIndex = 0;\r\n var useLegacyVisibleIndex = config().useLegacyVisibleIndex;\r\n each(items, (function(index, item) {\r\n index = item[indexParameterName];\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[indexParameterName] = void 0\r\n }\r\n }));\r\n if (!useLegacyVisibleIndex) {\r\n each(items, (function() {\r\n if (!isDefined(this[indexParameterName]) && (!needIndexCallback || needIndexCallback(this))) {\r\n while (indexedItems[parameterIndex]) {\r\n parameterIndex++\r\n }\r\n indexedItems[parameterIndex] = [this];\r\n parameterIndex++\r\n }\r\n }))\r\n }\r\n parameterIndex = 0;\r\n orderEach(indexedItems, (function(index, items) {\r\n each(items, (function() {\r\n if (index >= 0) {\r\n this[indexParameterName] = parameterIndex++\r\n }\r\n }))\r\n }));\r\n if (useLegacyVisibleIndex) {\r\n each(items, (function() {\r\n if (!isDefined(this[indexParameterName]) && (!needIndexCallback || needIndexCallback(this))) {\r\n this[indexParameterName] = parameterIndex++\r\n }\r\n }))\r\n }\r\n return parameterIndex\r\n};\r\nexport var merge = function(array1, array2) {\r\n for (var i = 0; i < array2.length; i++) {\r\n array1[array1.length] = array2[i]\r\n }\r\n return array1\r\n};\r\nexport var find = function(array, condition) {\r\n for (var i = 0; i < array.length; i++) {\r\n if (condition(array[i])) {\r\n return array[i]\r\n }\r\n }\r\n};\r\nexport var groupBy = (array, cb) => array.reduce((result, item) => _extends({}, result, {\r\n [cb(item)]: [...result[cb(item)] || [], item]\r\n}), {});\r\n","/*!\n * devextreme-vue\n * Version: 21.1.6\n * Build date: Mon Sep 27 2021\n *\n * Copyright (c) 2012 - 2021 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 container.appendChild(element);\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/core/utils/string.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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","module.exports=function(t){function e(o){if(r[o])return r[o].exports;var n=r[o]={i:o,l:!1,exports:{}};return t[o].call(n.exports,n,n.exports,e),n.l=!0,n.exports}var r={};return e.m=t,e.c=r,e.i=function(t){return t},e.d=function(t,r,o){e.o(t,r)||Object.defineProperty(t,r,{configurable:!1,enumerable:!0,get:o})},e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,\"a\",r),r},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"/dist/\",e(e.s=6)}([function(t,e,r){\"use strict\";function o(t,e){function r(){t.classList.add(\"ps--focus\")}function o(){t.classList.remove(\"ps--focus\")}var n=this;n.settings=a();for(var i in e)n.settings[i]=e[i];n.containerWidth=null,n.containerHeight=null,n.contentWidth=null,n.contentHeight=null,n.isRtl=\"rtl\"===c.css(t,\"direction\"),n.isNegativeScroll=function(){var e=t.scrollLeft,r=null;return t.scrollLeft=-1,r=t.scrollLeft<0,t.scrollLeft=e,r}(),n.negativeScrollAdjustment=n.isNegativeScroll?t.scrollWidth-t.clientWidth:0,n.event=new u,n.ownerDocument=t.ownerDocument||document,n.scrollbarXRail=c.appendTo(c.create(\"div\",\"ps__scrollbar-x-rail\"),t),n.scrollbarX=c.appendTo(c.create(\"div\",\"ps__scrollbar-x\"),n.scrollbarXRail),n.scrollbarX.setAttribute(\"tabindex\",0),n.event.bind(n.scrollbarX,\"focus\",r),n.event.bind(n.scrollbarX,\"blur\",o),n.scrollbarXActive=null,n.scrollbarXWidth=null,n.scrollbarXLeft=null,n.scrollbarXBottom=s.toInt(c.css(n.scrollbarXRail,\"bottom\")),n.isScrollbarXUsingBottom=n.scrollbarXBottom===n.scrollbarXBottom,n.scrollbarXTop=n.isScrollbarXUsingBottom?null:s.toInt(c.css(n.scrollbarXRail,\"top\")),n.railBorderXWidth=s.toInt(c.css(n.scrollbarXRail,\"borderLeftWidth\"))+s.toInt(c.css(n.scrollbarXRail,\"borderRightWidth\")),c.css(n.scrollbarXRail,\"display\",\"block\"),n.railXMarginWidth=s.toInt(c.css(n.scrollbarXRail,\"marginLeft\"))+s.toInt(c.css(n.scrollbarXRail,\"marginRight\")),c.css(n.scrollbarXRail,\"display\",\"\"),n.railXWidth=null,n.railXRatio=null,n.scrollbarYRail=c.appendTo(c.create(\"div\",\"ps__scrollbar-y-rail\"),t),n.scrollbarY=c.appendTo(c.create(\"div\",\"ps__scrollbar-y\"),n.scrollbarYRail),n.scrollbarY.setAttribute(\"tabindex\",0),n.event.bind(n.scrollbarY,\"focus\",r),n.event.bind(n.scrollbarY,\"blur\",o),n.scrollbarYActive=null,n.scrollbarYHeight=null,n.scrollbarYTop=null,n.scrollbarYRight=s.toInt(c.css(n.scrollbarYRail,\"right\")),n.isScrollbarYUsingRight=n.scrollbarYRight===n.scrollbarYRight,n.scrollbarYLeft=n.isScrollbarYUsingRight?null:s.toInt(c.css(n.scrollbarYRail,\"left\")),n.scrollbarYOuterWidth=n.isRtl?s.outerWidth(n.scrollbarY):null,n.railBorderYWidth=s.toInt(c.css(n.scrollbarYRail,\"borderTopWidth\"))+s.toInt(c.css(n.scrollbarYRail,\"borderBottomWidth\")),c.css(n.scrollbarYRail,\"display\",\"block\"),n.railYMarginHeight=s.toInt(c.css(n.scrollbarYRail,\"marginTop\"))+s.toInt(c.css(n.scrollbarYRail,\"marginBottom\")),c.css(n.scrollbarYRail,\"display\",\"\"),n.railYHeight=null,n.railYRatio=null}function n(t){return t.getAttribute(\"data-ps-id\")}function i(t,e){t.setAttribute(\"data-ps-id\",e)}function l(t){t.removeAttribute(\"data-ps-id\")}var s=r(2),a=r(14),c=r(4),u=r(11),p=r(12),d={};e.add=function(t,e){var r=p();return i(t,r),d[r]=new o(t,e),d[r]},e.remove=function(t){delete d[n(t)],l(t)},e.get=function(t){return d[n(t)]}},function(t,e,r){\"use strict\";function o(t,e){return t.settings.minScrollbarLength&&(e=Math.max(e,t.settings.minScrollbarLength)),t.settings.maxScrollbarLength&&(e=Math.min(e,t.settings.maxScrollbarLength)),e}function n(t,e){var r={width:e.railXWidth};e.isRtl?r.left=e.negativeScrollAdjustment+t.scrollLeft+e.containerWidth-e.contentWidth:r.left=t.scrollLeft,e.isScrollbarXUsingBottom?r.bottom=e.scrollbarXBottom-t.scrollTop:r.top=e.scrollbarXTop+t.scrollTop,l.css(e.scrollbarXRail,r);var o={top:t.scrollTop,height:e.railYHeight};e.isScrollbarYUsingRight?e.isRtl?o.right=e.contentWidth-(e.negativeScrollAdjustment+t.scrollLeft)-e.scrollbarYRight-e.scrollbarYOuterWidth:o.right=e.scrollbarYRight-t.scrollLeft:e.isRtl?o.left=e.negativeScrollAdjustment+t.scrollLeft+2*e.containerWidth-e.contentWidth-e.scrollbarYLeft-e.scrollbarYOuterWidth:o.left=e.scrollbarYLeft+t.scrollLeft,l.css(e.scrollbarYRail,o),l.css(e.scrollbarX,{left:e.scrollbarXLeft,width:e.scrollbarXWidth-e.railBorderXWidth}),l.css(e.scrollbarY,{top:e.scrollbarYTop,height:e.scrollbarYHeight-e.railBorderYWidth})}var i=r(2),l=r(4),s=r(0),a=r(3);t.exports=function(t){var e=s.get(t);e.containerWidth=t.clientWidth,e.containerHeight=t.clientHeight,e.contentWidth=t.scrollWidth,e.contentHeight=t.scrollHeight;var r;t.contains(e.scrollbarXRail)||(r=l.queryChildren(t,\".ps__scrollbar-x-rail\"),r.length>0&&r.forEach(function(t){l.remove(t)}),l.appendTo(e.scrollbarXRail,t)),t.contains(e.scrollbarYRail)||(r=l.queryChildren(t,\".ps__scrollbar-y-rail\"),r.length>0&&r.forEach(function(t){l.remove(t)}),l.appendTo(e.scrollbarYRail,t)),!e.settings.suppressScrollX&&e.containerWidth+e.settings.scrollXMarginOffset=e.railXWidth-e.scrollbarXWidth&&(e.scrollbarXLeft=e.railXWidth-e.scrollbarXWidth),e.scrollbarYTop>=e.railYHeight-e.scrollbarYHeight&&(e.scrollbarYTop=e.railYHeight-e.scrollbarYHeight),n(t,e),e.scrollbarXActive?t.classList.add(\"ps--active-x\"):(t.classList.remove(\"ps--active-x\"),e.scrollbarXWidth=0,e.scrollbarXLeft=0,a(t,\"left\",0)),e.scrollbarYActive?t.classList.add(\"ps--active-y\"):(t.classList.remove(\"ps--active-y\"),e.scrollbarYHeight=0,e.scrollbarYTop=0,a(t,\"top\",0))}},function(t,e,r){\"use strict\";function o(t){var e,r=[\"ps--in-scrolling\"];return e=void 0===t?[\"ps--x\",\"ps--y\"]:[\"ps--\"+t],r.concat(e)}var n=r(4),i=e.toInt=function(t){return parseInt(t,10)||0};e.isEditable=function(t){return n.matches(t,\"input,[contenteditable]\")||n.matches(t,\"select,[contenteditable]\")||n.matches(t,\"textarea,[contenteditable]\")||n.matches(t,\"button,[contenteditable]\")},e.removePsClasses=function(t){for(var e=0;e=i.contentHeight-i.containerHeight&&(r=i.contentHeight-i.containerHeight,r-t.scrollTop<=2?r=t.scrollTop:t.scrollTop=r,t.dispatchEvent(n(\"ps-y-reach-end\"))),\"left\"===e&&r>=i.contentWidth-i.containerWidth&&(r=i.contentWidth-i.containerWidth,r-t.scrollLeft<=2?r=t.scrollLeft:t.scrollLeft=r,t.dispatchEvent(n(\"ps-x-reach-end\"))),void 0===i.lastTop&&(i.lastTop=t.scrollTop),void 0===i.lastLeft&&(i.lastLeft=t.scrollLeft),\"top\"===e&&ri.lastTop&&t.dispatchEvent(n(\"ps-scroll-down\")),\"left\"===e&&ri.lastLeft&&t.dispatchEvent(n(\"ps-scroll-right\")),\"top\"===e&&r!==i.lastTop&&(t.scrollTop=i.lastTop=r,t.dispatchEvent(n(\"ps-scroll-y\"))),\"left\"===e&&r!==i.lastLeft&&(t.scrollLeft=i.lastLeft=r,t.dispatchEvent(n(\"ps-scroll-x\")))}},function(t,e,r){\"use strict\";function o(t,e){return window.getComputedStyle(t)[e]}function n(t,e,r){return\"number\"==typeof r&&(r=r.toString()+\"px\"),t.style[e]=r,t}function i(t,e){for(var r in e){var o=e[r];\"number\"==typeof o&&(o=o.toString()+\"px\"),t.style[r]=o}return t}var l={};l.create=function(t,e){var r=document.createElement(t);return r.className=e,r},l.appendTo=function(t,e){return e.appendChild(t),t},l.css=function(t,e,r){return\"object\"==typeof e?i(t,e):void 0===r?o(t,e):n(t,e,r)},l.matches=function(t,e){return void 0!==t.matches?t.matches(e):t.msMatchesSelector(e)},l.remove=function(t){void 0!==t.remove?t.remove():t.parentNode&&t.parentNode.removeChild(t)},l.queryChildren=function(t,e){return Array.prototype.filter.call(t.childNodes,function(t){return l.matches(t,e)})},t.exports=l},function(t,e,r){r(28);var o=r(25)(r(7),r(26),null,null);t.exports=o.exports},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var o=r(5),n=r.n(o);e.default=n.a},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var o=r(10),n=r.n(o);e.default={name:\"vue-perfect-scrollbar\",props:{settings:{default:void 0},swicher:{type:Boolean,default:!0},tagname:{type:String,default:\"section\"}},methods:{scrollHanle:function(t){this.$emit(t.type,t)},update:function(){n.a.update(this.$el)},__init:function(){this.swicher&&(this._ps_inited?this.update(this.$el):(this._ps_inited=!0,n.a.initialize(this.$el,this.settings)))},__uninit:function(){n.a.destroy(this.$el),this._ps_inited=!1}},watch:{swicher:function(t){t&&!this._ps_inited&&this.__init(),!t&&this._ps_inited&&this.__uninit()},$route:function(){this.update()}},mounted:function(){this.__init()},updated:function(){this.$nextTick(this.update)},activated:function(){this.__init()},deactivated:function(){this.__uninit()},beforeDestroy:function(){this.__uninit()}}},function(t,e,r){e=t.exports=r(9)(),e.push([t.i,\".ps{-ms-touch-action:auto;touch-action:auto;overflow:hidden!important;-ms-overflow-style:none}@supports (-ms-overflow-style:none){.ps{overflow:auto!important}}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.ps{overflow:auto!important}}.ps.ps--active-x>.ps__scrollbar-x-rail,.ps.ps--active-y>.ps__scrollbar-y-rail{display:block;background-color:transparent}.ps.ps--in-scrolling.ps--x>.ps__scrollbar-x-rail{background-color:#eee;opacity:.9}.ps.ps--in-scrolling.ps--x>.ps__scrollbar-x-rail>.ps__scrollbar-x{background-color:#999;height:11px}.ps.ps--in-scrolling.ps--y>.ps__scrollbar-y-rail{background-color:#eee;opacity:.9}.ps.ps--in-scrolling.ps--y>.ps__scrollbar-y-rail>.ps__scrollbar-y{background-color:#999;width:11px}.ps>.ps__scrollbar-x-rail{display:none;position:absolute;opacity:0;transition:background-color .2s linear,opacity .2s linear;bottom:0;height:15px}.ps>.ps__scrollbar-x-rail>.ps__scrollbar-x{position:absolute;background-color:#aaa;border-radius:6px;transition:background-color .2s linear,height .2s linear,width .2s ease-in-out,border-radius .2s ease-in-out;bottom:2px;height:6px}.ps>.ps__scrollbar-x-rail:active>.ps__scrollbar-x,.ps>.ps__scrollbar-x-rail:hover>.ps__scrollbar-x{height:11px}.ps>.ps__scrollbar-y-rail{display:none;position:absolute;opacity:0;transition:background-color .2s linear,opacity .2s linear;right:0;width:15px}.ps>.ps__scrollbar-y-rail>.ps__scrollbar-y{position:absolute;background-color:#aaa;border-radius:6px;transition:background-color .2s linear,height .2s linear,width .2s ease-in-out,border-radius .2s ease-in-out;right:2px;width:6px}.ps>.ps__scrollbar-y-rail:active>.ps__scrollbar-y,.ps>.ps__scrollbar-y-rail:hover>.ps__scrollbar-y{width:11px}.ps:hover.ps--in-scrolling.ps--x>.ps__scrollbar-x-rail{background-color:#eee;opacity:.9}.ps:hover.ps--in-scrolling.ps--x>.ps__scrollbar-x-rail>.ps__scrollbar-x{background-color:#999;height:11px}.ps:hover.ps--in-scrolling.ps--y>.ps__scrollbar-y-rail{background-color:#eee;opacity:.9}.ps:hover.ps--in-scrolling.ps--y>.ps__scrollbar-y-rail>.ps__scrollbar-y{background-color:#999;width:11px}.ps:hover>.ps__scrollbar-x-rail,.ps:hover>.ps__scrollbar-y-rail{opacity:.6}.ps:hover>.ps__scrollbar-x-rail:hover{background-color:#eee;opacity:.9}.ps:hover>.ps__scrollbar-x-rail:hover>.ps__scrollbar-x{background-color:#999}.ps:hover>.ps__scrollbar-y-rail:hover{background-color:#eee;opacity:.9}.ps:hover>.ps__scrollbar-y-rail:hover>.ps__scrollbar-y{background-color:#999}.ps-container{position:relative}\",\"\"])},function(t,e){t.exports=function(){var t=[];return t.toString=function(){for(var t=[],e=0;ee.scrollbarYTop?1:-1;l(t,\"top\",t.scrollTop+s*e.containerHeight),i(t),o.stopPropagation()}),e.event.bind(e.scrollbarX,\"click\",o),e.event.bind(e.scrollbarXRail,\"click\",function(o){var n=o.pageX-window.pageXOffset-r(e.scrollbarXRail).left,s=n>e.scrollbarXLeft?1:-1;l(t,\"left\",t.scrollLeft+s*e.containerWidth),i(t),o.stopPropagation()})}var n=r(0),i=r(1),l=r(3);t.exports=function(t){o(t,n.get(t))}},function(t,e,r){\"use strict\";function o(t,e){function r(r){var n=o+r*e.railXRatio,l=Math.max(0,e.scrollbarXRail.getBoundingClientRect().left)+e.railXRatio*(e.railXWidth-e.scrollbarXWidth);e.scrollbarXLeft=n<0?0:n>l?l:n;var s=i.toInt(e.scrollbarXLeft*(e.contentWidth-e.containerWidth)/(e.containerWidth-e.railXRatio*e.scrollbarXWidth))-e.negativeScrollAdjustment;c(t,\"left\",s)}var o=null,n=null,s=function(e){r(e.pageX-n),a(t),e.stopPropagation(),e.preventDefault()},u=function(){i.stopScrolling(t,\"x\"),e.event.unbind(e.ownerDocument,\"mousemove\",s)};e.event.bind(e.scrollbarX,\"mousedown\",function(r){n=r.pageX,o=i.toInt(l.css(e.scrollbarX,\"left\"))*e.railXRatio,i.startScrolling(t,\"x\"),e.event.bind(e.ownerDocument,\"mousemove\",s),e.event.once(e.ownerDocument,\"mouseup\",u),r.stopPropagation(),r.preventDefault()})}function n(t,e){function r(r){var n=o+r*e.railYRatio,l=Math.max(0,e.scrollbarYRail.getBoundingClientRect().top)+e.railYRatio*(e.railYHeight-e.scrollbarYHeight);e.scrollbarYTop=n<0?0:n>l?l:n;var s=i.toInt(e.scrollbarYTop*(e.contentHeight-e.containerHeight)/(e.containerHeight-e.railYRatio*e.scrollbarYHeight));c(t,\"top\",s)}var o=null,n=null,s=function(e){r(e.pageY-n),a(t),e.stopPropagation(),e.preventDefault()},u=function(){i.stopScrolling(t,\"y\"),e.event.unbind(e.ownerDocument,\"mousemove\",s)};e.event.bind(e.scrollbarY,\"mousedown\",function(r){n=r.pageY,o=i.toInt(l.css(e.scrollbarY,\"top\"))*e.railYRatio,i.startScrolling(t,\"y\"),e.event.bind(e.ownerDocument,\"mousemove\",s),e.event.once(e.ownerDocument,\"mouseup\",u),r.stopPropagation(),r.preventDefault()})}var i=r(2),l=r(4),s=r(0),a=r(1),c=r(3);t.exports=function(t){var e=s.get(t);o(t,e),n(t,e)}},function(t,e,r){\"use strict\";function o(t,e){function r(r,o){var n=t.scrollTop;if(0===r){if(!e.scrollbarYActive)return!1;if(0===n&&o>0||n>=e.contentHeight-e.containerHeight&&o<0)return!e.settings.wheelPropagation}var i=t.scrollLeft;if(0===o){if(!e.scrollbarXActive)return!1;if(0===i&&r<0||i>=e.contentWidth-e.containerWidth&&r>0)return!e.settings.wheelPropagation}return!0}var o=!1;e.event.bind(t,\"mouseenter\",function(){o=!0}),e.event.bind(t,\"mouseleave\",function(){o=!1});var l=!1;e.event.bind(e.ownerDocument,\"keydown\",function(c){if(!(c.isDefaultPrevented&&c.isDefaultPrevented()||c.defaultPrevented)){var u=i.matches(e.scrollbarX,\":focus\")||i.matches(e.scrollbarY,\":focus\");if(o||u){var p=document.activeElement?document.activeElement:e.ownerDocument.activeElement;if(p){if(\"IFRAME\"===p.tagName)p=p.contentDocument.activeElement;else for(;p.shadowRoot;)p=p.shadowRoot.activeElement;if(n.isEditable(p))return}var d=0,f=0;switch(c.which){case 37:d=c.metaKey?-e.contentWidth:c.altKey?-e.containerWidth:-30;break;case 38:f=c.metaKey?e.contentHeight:c.altKey?e.containerHeight:30;break;case 39:d=c.metaKey?e.contentWidth:c.altKey?e.containerWidth:30;break;case 40:f=c.metaKey?-e.contentHeight:c.altKey?-e.containerHeight:-30;break;case 33:f=90;break;case 32:f=c.shiftKey?90:-90;break;case 34:f=-90;break;case 35:f=c.ctrlKey?-e.contentHeight:-e.containerHeight;break;case 36:f=c.ctrlKey?t.scrollTop:e.containerHeight;break;default:return}a(t,\"top\",t.scrollTop-f),a(t,\"left\",t.scrollLeft+d),s(t),l=r(d,f),l&&c.preventDefault()}}})}var n=r(2),i=r(4),l=r(0),s=r(1),a=r(3);t.exports=function(t){o(t,l.get(t))}},function(t,e,r){\"use strict\";function o(t,e){function r(r,o){var n=t.scrollTop;if(0===r){if(!e.scrollbarYActive)return!1;if(0===n&&o>0||n>=e.contentHeight-e.containerHeight&&o<0)return!e.settings.wheelPropagation}var i=t.scrollLeft;if(0===o){if(!e.scrollbarXActive)return!1;if(0===i&&r<0||i>=e.contentWidth-e.containerWidth&&r>0)return!e.settings.wheelPropagation}return!0}function o(t){var e=t.deltaX,r=-1*t.deltaY;return void 0!==e&&void 0!==r||(e=-1*t.wheelDeltaX/6,r=t.wheelDeltaY/6),t.deltaMode&&1===t.deltaMode&&(e*=10,r*=10),e!==e&&r!==r&&(e=0,r=t.wheelDelta),t.shiftKey?[-r,-e]:[e,r]}function n(e,r){var o=t.querySelector(\"textarea:hover, select[multiple]:hover, .ps-child:hover\");if(o){var n=window.getComputedStyle(o);if(![n.overflow,n.overflowX,n.overflowY].join(\"\").match(/(scroll|auto)/))return!1;var i=o.scrollHeight-o.clientHeight;if(i>0&&!(0===o.scrollTop&&r>0||o.scrollTop===i&&r<0))return!0;var l=o.scrollLeft-o.clientWidth;if(l>0&&!(0===o.scrollLeft&&e<0||o.scrollLeft===l&&e>0))return!0}return!1}function s(s){var c=o(s),u=c[0],p=c[1];n(u,p)||(a=!1,e.settings.useBothWheelAxes?e.scrollbarYActive&&!e.scrollbarXActive?(p?l(t,\"top\",t.scrollTop-p*e.settings.wheelSpeed):l(t,\"top\",t.scrollTop+u*e.settings.wheelSpeed),a=!0):e.scrollbarXActive&&!e.scrollbarYActive&&(u?l(t,\"left\",t.scrollLeft+u*e.settings.wheelSpeed):l(t,\"left\",t.scrollLeft-p*e.settings.wheelSpeed),a=!0):(l(t,\"top\",t.scrollTop-p*e.settings.wheelSpeed),l(t,\"left\",t.scrollLeft+u*e.settings.wheelSpeed)),i(t),(a=a||r(u,p))&&(s.stopPropagation(),s.preventDefault()))}var a=!1;void 0!==window.onwheel?e.event.bind(t,\"wheel\",s):void 0!==window.onmousewheel&&e.event.bind(t,\"mousewheel\",s)}var n=r(0),i=r(1),l=r(3);t.exports=function(t){o(t,n.get(t))}},function(t,e,r){\"use strict\";function o(t,e){e.event.bind(t,\"scroll\",function(){i(t)})}var n=r(0),i=r(1);t.exports=function(t){o(t,n.get(t))}},function(t,e,r){\"use strict\";function o(t,e){function r(){var t=window.getSelection?window.getSelection():document.getSelection?document.getSelection():\"\";return 0===t.toString().length?null:t.getRangeAt(0).commonAncestorContainer}function o(){c||(c=setInterval(function(){if(!i.get(t))return void clearInterval(c);s(t,\"top\",t.scrollTop+u.top),s(t,\"left\",t.scrollLeft+u.left),l(t)},50))}function a(){c&&(clearInterval(c),c=null),n.stopScrolling(t)}var c=null,u={top:0,left:0},p=!1;e.event.bind(e.ownerDocument,\"selectionchange\",function(){t.contains(r())?p=!0:(p=!1,a())}),e.event.bind(window,\"mouseup\",function(){p&&(p=!1,a())}),e.event.bind(window,\"keyup\",function(){p&&(p=!1,a())}),e.event.bind(window,\"mousemove\",function(e){if(p){var r={x:e.pageX,y:e.pageY},i={left:t.offsetLeft,right:t.offsetLeft+t.offsetWidth,top:t.offsetTop,bottom:t.offsetTop+t.offsetHeight};r.xi.right-3?(u.left=5,n.startScrolling(t,\"x\")):u.left=0,r.yi.bottom-3?(u.top=r.y-i.bottom+3<5?5:20,n.startScrolling(t,\"y\")):u.top=0,0===u.top&&0===u.left?a():o()}})}var n=r(2),i=r(0),l=r(1),s=r(3);t.exports=function(t){o(t,i.get(t))}},function(t,e,r){\"use strict\";function o(t,e,r,o){function n(r,o){var n=t.scrollTop,i=t.scrollLeft,l=Math.abs(r),s=Math.abs(o);if(s>l){if(o<0&&n===e.contentHeight-e.containerHeight||o>0&&0===n)return!e.settings.swipePropagation}else if(l>s&&(r<0&&i===e.contentWidth-e.containerWidth||r>0&&0===i))return!e.settings.swipePropagation;return!0}function a(e,r){s(t,\"top\",t.scrollTop-r),s(t,\"left\",t.scrollLeft-e),l(t)}function c(){w=!0}function u(){w=!1}function p(t){return t.targetTouches?t.targetTouches[0]:t}function d(t){return(!t.pointerType||\"pen\"!==t.pointerType||0!==t.buttons)&&(!(!t.targetTouches||1!==t.targetTouches.length)||!(!t.pointerType||\"mouse\"===t.pointerType||t.pointerType===t.MSPOINTER_TYPE_MOUSE))}function f(t){if(d(t)){_=!0;var e=p(t);b.pageX=e.pageX,b.pageY=e.pageY,g=(new Date).getTime(),null!==y&&clearInterval(y),t.stopPropagation()}}function h(t){if(!_&&e.settings.swipePropagation&&f(t),!w&&_&&d(t)){var r=p(t),o={pageX:r.pageX,pageY:r.pageY},i=o.pageX-b.pageX,l=o.pageY-b.pageY;a(i,l),b=o;var s=(new Date).getTime(),c=s-g;c>0&&(m.x=i/c,m.y=l/c,g=s),n(i,l)&&(t.stopPropagation(),t.preventDefault())}}function v(){!w&&_&&(_=!1,e.settings.swipeEasing&&(clearInterval(y),y=setInterval(function(){return i.get(t)&&(m.x||m.y)?Math.abs(m.x)<.01&&Math.abs(m.y)<.01?void clearInterval(y):(a(30*m.x,30*m.y),m.x*=.8,void(m.y*=.8)):void clearInterval(y)},10)))}var b={},g=0,m={},y=null,w=!1,_=!1;r?(e.event.bind(window,\"touchstart\",c),e.event.bind(window,\"touchend\",u),e.event.bind(t,\"touchstart\",f),e.event.bind(t,\"touchmove\",h),e.event.bind(t,\"touchend\",v)):o&&(window.PointerEvent?(e.event.bind(window,\"pointerdown\",c),e.event.bind(window,\"pointerup\",u),e.event.bind(t,\"pointerdown\",f),e.event.bind(t,\"pointermove\",h),e.event.bind(t,\"pointerup\",v)):window.MSPointerEvent&&(e.event.bind(window,\"MSPointerDown\",c),e.event.bind(window,\"MSPointerUp\",u),e.event.bind(t,\"MSPointerDown\",f),e.event.bind(t,\"MSPointerMove\",h),e.event.bind(t,\"MSPointerUp\",v)))}var n=r(2),i=r(0),l=r(1),s=r(3);t.exports=function(t){if(n.env.supportsTouch||n.env.supportsIePointer){o(t,i.get(t),n.env.supportsTouch,n.env.supportsIePointer)}}},function(t,e,r){\"use strict\";var o=r(0),n=r(1),i={\"click-rail\":r(16),\"drag-scrollbar\":r(17),keyboard:r(18),wheel:r(19),touch:r(22),selection:r(21)},l=r(20);t.exports=function(t,e){t.classList.add(\"ps\");var r=o.add(t,\"object\"==typeof e?e:{});t.classList.add(\"ps--theme_\"+r.settings.theme),r.settings.handlers.forEach(function(e){i[e](t)}),l(t),n(t)}},function(t,e,r){\"use strict\";var o=r(2),n=r(4),i=r(0),l=r(1),s=r(3);t.exports=function(t){var e=i.get(t);e&&(e.negativeScrollAdjustment=e.isNegativeScroll?t.scrollWidth-t.clientWidth:0,n.css(e.scrollbarXRail,\"display\",\"block\"),n.css(e.scrollbarYRail,\"display\",\"block\"),e.railXMarginWidth=o.toInt(n.css(e.scrollbarXRail,\"marginLeft\"))+o.toInt(n.css(e.scrollbarXRail,\"marginRight\")),e.railYMarginHeight=o.toInt(n.css(e.scrollbarYRail,\"marginTop\"))+o.toInt(n.css(e.scrollbarYRail,\"marginBottom\")),n.css(e.scrollbarXRail,\"display\",\"none\"),n.css(e.scrollbarYRail,\"display\",\"none\"),l(t),s(t,\"top\",t.scrollTop),s(t,\"left\",t.scrollLeft),n.css(e.scrollbarXRail,\"display\",\"\"),n.css(e.scrollbarYRail,\"display\",\"\"))}},function(t,e){t.exports=function(t,e,r,o){var n,i=t=t||{},l=typeof t.default;\"object\"!==l&&\"function\"!==l||(n=t,i=t.default);var s=\"function\"==typeof i?i.options:i;if(e&&(s.render=e.render,s.staticRenderFns=e.staticRenderFns),r&&(s._scopeId=r),o){var a=s.computed||(s.computed={});Object.keys(o).forEach(function(t){var e=o[t];a[t]=function(){return e}})}return{esModule:n,exports:i,options:s}}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(t.$props.tagname,{tag:\"section\",staticClass:\"ps-container\",on:{\"~mouseover\":function(e){t.update(e)},\"ps-scroll-y\":t.scrollHanle,\"ps-scroll-x\":t.scrollHanle,\"ps-scroll-up\":t.scrollHanle,\"ps-scroll-down\":t.scrollHanle,\"ps-scroll-left\":t.scrollHanle,\"ps-scroll-right\":t.scrollHanle,\"ps-y-reach-start\":t.scrollHanle,\"ps-y-reach-end\":t.scrollHanle,\"ps-x-reach-start\":t.scrollHanle,\"ps-x-reach-end\":t.scrollHanle}},[t._t(\"default\")],2)},staticRenderFns:[]}},function(t,e){function r(t,e){for(var r=0;r=0&&b.splice(e,1)}function l(t){var e=document.createElement(\"style\");return e.type=\"text/css\",n(t,e),e}function s(t,e){var r,o,n;if(e.singleton){var s=v++;r=h||(h=l(e)),o=a.bind(null,r,s,!1),n=a.bind(null,r,s,!0)}else r=l(e),o=c.bind(null,r),n=function(){i(r)};return o(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;o(t=e)}else n()}}function a(t,e,r,o){var n=r?\"\":o.css;if(t.styleSheet)t.styleSheet.cssText=g(e,n);else{var i=document.createTextNode(n),l=t.childNodes;l[e]&&t.removeChild(l[e]),l.length?t.insertBefore(i,l[e]):t.appendChild(i)}}function c(t,e){var r=e.css,o=e.media,n=e.sourceMap;if(o&&t.setAttribute(\"media\",o),n&&(r+=\"\\n/*# sourceURL=\"+n.sources[0]+\" */\",r+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(n))))+\" */\"),t.styleSheet)t.styleSheet.cssText=r;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(r))}}var u={},p=function(t){var e;return function(){return void 0===e&&(e=t.apply(this,arguments)),e}},d=p(function(){return/msie [6-9]\\b/.test(window.navigator.userAgent.toLowerCase())}),f=p(function(){return document.head||document.getElementsByTagName(\"head\")[0]}),h=null,v=0,b=[];t.exports=function(t,e){if(\"undefined\"!=typeof DEBUG&&DEBUG&&\"object\"!=typeof document)throw new Error(\"The style-loader cannot be used in a non-browser environment\");e=e||{},void 0===e.singleton&&(e.singleton=d()),void 0===e.insertAt&&(e.insertAt=\"bottom\");var n=o(t);return r(n,e),function(t){for(var i=[],l=0;l {\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: 21.1.6\n * Build date: Mon Sep 27 2021\n *\n * Copyright (c) 2012 - 2021 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[0];\n }\n }, parent, placeholder);\n}\nexports.mountTemplate = mountTemplate;\n","/**\r\n * DevExtreme (esm/core/utils/data.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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\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 expr = bracketsToDots(expr);\r\n var path = expr.split(\".\");\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 = bracketsToDots(expr || \"this\").split(\".\");\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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/core/utils/extend.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/core/utils/type.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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.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","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/events/core/hook_touch_props.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 WeakMap from \"../../core/polyfills/weak_map\";\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 parent = element.parentNode;\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 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","/*!\n * devextreme-vue\n * Version: 21.1.6\n * Build date: Mon Sep 27 2021\n *\n * Copyright (c) 2012 - 2021 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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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","import * as axios from './Axios'\r\n\r\nconst PREFIX = 'company'\r\n\r\nexport const _list = () => axios.get(`${PREFIX}/list`)\r\nexport const _save = company => axios.post(`${PREFIX}/save`, company)\r\nexport const _update = (id, company) => axios.put(`${PREFIX}/update/${id}`, company)\r\nexport const _show = id => axios.get(`${PREFIX}/show/${id}`)\r\nexport const _delete = id => axios.del(`${PREFIX}/delete/${id}`)\r\n\r\nexport const _withdraw = (id,data) => axios.post(`${PREFIX}/${id}/withdraw`, data)\r\nexport const _listPayments = company => axios.get(`${PREFIX}/${company}/list-payments`)\r\n\r\nexport const _upload_logo = (id, data) => axios.post(`admin/${PREFIX}/${id}/update/logo`, data)\r\nexport const _update_settings = (id, data) => axios.post(`admin/${PREFIX}/${id}/update/settings`, data)\r\nexport const _update_charity = (id, data) => axios.post(`admin/${PREFIX}/${id}/update/charity`, data)\r\nexport const _charity_details = (id,data) => axios.post(`admin/${PREFIX}/${id}/charity-details/download`, data)\r\n\r\n\r\n\r\nexport const _list_venues = id => axios.get(`admin/${PREFIX}/${id}/venue/list`)\r\n\r\nexport const _list_bookings = (id,page) => axios.get(`admin/${PREFIX}/${id}/booking/list?page=${page}`)\r\nexport const _filter_bookings = (id, data, page) => axios.post(`admin/${PREFIX}/${id}/booking/filter?page=${page}`, data)\r\nexport const _filter_date_bookings = (id, data, page) => axios.post(`admin/${PREFIX}/${id}/booking/filter/date?page=${page}`, data)\r\n\r\nexport const _dashboard_record = id => axios.get(`admin/${PREFIX}/${id}/dashboard-record`)\r\nexport const _sms_payments = (id, data, page) => axios.post(`admin/${PREFIX}/${id}/sms-payments?page=${page}`, data)\r\n\r\nexport const _sub_users = (id, page) => axios.get(`admin/${PREFIX}/${id}/sub-users?page=${page}`)\r\n\r\nexport const _statistics = (id,page) => axios.get(`admin/${PREFIX}/${id}/statistics?page=${page}`)\r\n\r\nexport const _advance_statistics = (id,data) => axios.post(`admin/${PREFIX}/${id}/statistics/download`, data)\r\n\r\nexport const _filter_bookings_without_pagination = (id, data) => axios.post(`admin/${PREFIX}/${id}/booking/filterwithout-pagination`, data)\r\n\r\n\r\n","/*!\n * devextreme-vue\n * Version: 21.1.6\n * Build date: Mon Sep 27 2021\n *\n * Copyright (c) 2012 - 2021 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","/*!\n * devextreme-vue\n * Version: 21.1.6\n * Build date: Mon Sep 27 2021\n *\n * Copyright (c) 2012 - 2021 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 configuration_component_1.initOptionChangedFunc(child.$_config, child.type.props || {}, vue_helper_1.getComponentInstance(child), 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 for (var _i = 0, _a = Object.keys(thisComponent.$_templatesManager.templates); _i < _a.length; _i++) {\n var name_1 = _a[_i];\n thisComponent.$_instance.option(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: true }, 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 for (var _i = 0, _a = Object.keys(templates); _i < _a.length; _i++) {\n var name_3 = _a[_i];\n result[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/version.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var version = \"21.1.6\";\r\n","/**\r\n * DevExtreme (esm/core/utils/error.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/core/element_data.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport WeakMap from \"./polyfills/weak_map\";\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/inflector.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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","/**\r\n * DevExtreme (esm/core/utils/style.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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} 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 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 setWidth,\r\n setHeight\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/size.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 {\r\n isWindow,\r\n isString,\r\n isNumeric\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\nvar 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 getBoxSizingOffset = function(name, elementStyles, boxParams) {\r\n var size = elementStyles[name];\r\n if (\"border-box\" === elementStyles.boxSizing && size.length && \"%\" !== size[size.length - 1]) {\r\n return boxParams.border + boxParams.padding\r\n }\r\n return 0\r\n};\r\nvar getSize = function(element, name, include) {\r\n var elementStyles = window.getComputedStyle(element);\r\n var boxParams = getElementBoxParams(name, elementStyles);\r\n var clientRect = element.getClientRects().length;\r\n var boundingClientRect = element.getBoundingClientRect()[name];\r\n var result = clientRect ? boundingClientRect : 0;\r\n if (result <= 0) {\r\n result = parseFloat(elementStyles[name] || element.style[name]) || 0;\r\n result -= getBoxSizingOffset(name, elementStyles, boxParams)\r\n } else {\r\n result -= boxParams.padding + boxParams.border\r\n }\r\n if (include.paddings) {\r\n result += boxParams.padding\r\n }\r\n if (include.borders) {\r\n result += boxParams.border\r\n }\r\n if (include.margins) {\r\n result += boxParams.margin\r\n }\r\n return result\r\n};\r\nvar getContainerHeight = function(container) {\r\n return isWindow(container) ? container.innerHeight : container.offsetHeight\r\n};\r\nvar 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 }\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\nvar addOffsetToMaxHeight = function(value, offset, container) {\r\n var maxHeight = getHeightWithOffset(value, offset, container);\r\n return null !== maxHeight ? maxHeight : \"none\"\r\n};\r\nvar addOffsetToMinHeight = function(value, offset, container) {\r\n var minHeight = getHeightWithOffset(value, offset, container);\r\n return null !== minHeight ? minHeight : 0\r\n};\r\nvar 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\nvar 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 {\r\n getSize,\r\n getElementBoxParams,\r\n addOffsetToMaxHeight,\r\n addOffsetToMinHeight,\r\n getVerticalOffsets,\r\n getVisibleHeight,\r\n parseHeight\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/html_parser.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n merge\r\n} from \"./array\";\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 merge([], 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/core/renderer_base.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 getSize,\r\n getElementBoxParams\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\n[\"width\", \"height\", \"outerWidth\", \"outerHeight\", \"innerWidth\", \"innerHeight\"].forEach((function(methodName) {\r\n var partialName = methodName.toLowerCase().indexOf(\"width\") >= 0 ? \"Width\" : \"Height\";\r\n var propName = partialName.toLowerCase();\r\n var isOuter = 0 === methodName.indexOf(\"outer\");\r\n var isInner = 0 === methodName.indexOf(\"inner\");\r\n initRender.prototype[methodName] = function(value) {\r\n if (this.length > 1 && arguments.length > 0) {\r\n return repeatMethod.call(this, methodName, arguments)\r\n }\r\n var element = this[0];\r\n if (!element) {\r\n return\r\n }\r\n if (isWindow(element)) {\r\n return isOuter ? element[\"inner\" + partialName] : domAdapter.getDocumentElement()[\"client\" + partialName]\r\n }\r\n if (domAdapter.isDocument(element)) {\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 (0 === arguments.length || \"boolean\" === typeof value) {\r\n var include = {\r\n paddings: isInner || isOuter,\r\n borders: isOuter,\r\n margins: value\r\n };\r\n return getSize(element, propName, include)\r\n }\r\n if (void 0 === value || null === value) {\r\n return this\r\n }\r\n if (isNumeric(value)) {\r\n var elementStyles = window.getComputedStyle(element);\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(element, propName, value);\r\n return this\r\n }\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 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\nvar getWindowByElement = function(element) {\r\n return isWindow(element) ? element : element.defaultView\r\n};\r\ninitRender.prototype.offset = function() {\r\n if (!this[0]) {\r\n return\r\n }\r\n if (!this[0].getClientRects().length) {\r\n return {\r\n top: 0,\r\n left: 0\r\n }\r\n }\r\n var rect = this[0].getBoundingClientRect();\r\n var win = getWindowByElement(this[0].ownerDocument);\r\n var docElem = this[0].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\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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/core/component_registrator_callbacks.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/events/core/event_registrator.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/remove_event.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 beforeCleanData\r\n} from \"./element_data\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport registerEvent from \"../events/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/core/utils/public_component.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 WeakMap from \"../polyfills/weak_map\";\r\nimport {\r\n isDefined\r\n} from \"./type\";\r\nimport {\r\n removeEvent\r\n} from \"../remove_event\";\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/core/component_registrator.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/localization/cldr-data/parent_locales.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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-CA\": \"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-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-PH\": \"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 \"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\": \"root\",\r\n \"az-Cyrl\": \"root\",\r\n \"blt-Latn\": \"root\",\r\n \"bm-Nkoo\": \"root\",\r\n \"bs-Cyrl\": \"root\",\r\n \"byn-Latn\": \"root\",\r\n \"cu-Glag\": \"root\",\r\n \"dje-Arab\": \"root\",\r\n \"dyo-Arab\": \"root\",\r\n \"en-Dsrt\": \"root\",\r\n \"en-Shaw\": \"root\",\r\n \"ff-Adlm\": \"root\",\r\n \"ff-Arab\": \"root\",\r\n \"ha-Arab\": \"root\",\r\n \"hi-Latn\": \"root\",\r\n \"iu-Latn\": \"root\",\r\n \"kk-Arab\": \"root\",\r\n \"ks-Deva\": \"root\",\r\n \"ku-Arab\": \"root\",\r\n \"ky-Arab\": \"root\",\r\n \"ky-Latn\": \"root\",\r\n \"ml-Arab\": \"root\",\r\n \"mn-Mong\": \"root\",\r\n \"mni-Mtei\": \"root\",\r\n \"ms-Arab\": \"root\",\r\n \"pa-Arab\": \"root\",\r\n \"sat-Deva\": \"root\",\r\n \"sd-Deva\": \"root\",\r\n \"sd-Khoj\": \"root\",\r\n \"sd-Sind\": \"root\",\r\n \"shi-Latn\": \"root\",\r\n \"so-Arab\": \"root\",\r\n \"sr-Latn\": \"root\",\r\n \"sw-Arab\": \"root\",\r\n \"tg-Arab\": \"root\",\r\n \"ug-Cyrl\": \"root\",\r\n \"uz-Arab\": \"root\",\r\n \"uz-Cyrl\": \"root\",\r\n \"vai-Latn\": \"root\",\r\n \"wo-Arab\": \"root\",\r\n \"yo-Arab\": \"root\",\r\n \"yue-Hans\": \"root\",\r\n \"zh-Hant\": \"root\",\r\n \"zh-Hant-MO\": \"zh-Hant-HK\"\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/parentLocale.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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","/**\r\n * DevExtreme (esm/localization/default_messages.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 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 file\",\r\n \"dxFileUploader-dropFile\": \"or Drop 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\",\r\n \"dxDataGrid-exportAll\": \"Export all data\",\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 \"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-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-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-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-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 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-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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 dependencyInjector from \"../core/utils/dependency_injector\";\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 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 localizeNode: function(node) {\r\n var that = this;\r\n $(node).each((index, nodeItem) => {\r\n if (!nodeItem.nodeType) {\r\n return\r\n }\r\n if (3 === nodeItem.nodeType) {\r\n nodeItem.nodeValue = that.localizeString(nodeItem.nodeValue)\r\n } else if (!$(nodeItem).is(\"iframe\")) {\r\n each(nodeItem.attributes || [], (index, attr) => {\r\n if (\"string\" === typeof attr.value) {\r\n var localizedValue = that.localizeString(attr.value);\r\n if (attr.value !== localizedValue) {\r\n attr.value = localizedValue\r\n }\r\n }\r\n });\r\n $(nodeItem).contents().each((index, node) => {\r\n that.localizeNode(node)\r\n })\r\n }\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/utils/ready_callbacks.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 isReady = () => \"complete\" === domAdapter.getReadyState() || \"loading\" !== domAdapter.getReadyState() && !domAdapter.getDocumentElement().doScroll;\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 && isReady()) {\r\n callback()\r\n } else {\r\n callbacks.push(callback);\r\n windowExists && subscribeReady()\r\n }\r\n },\r\n fire: () => {\r\n callbacks.forEach(callback => callback());\r\n callbacks = []\r\n }\r\n};\r\nexport default injector(readyCallbacks);\r\n","/**\r\n * DevExtreme (esm/core/utils/resize_callbacks.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/core/events_strategy.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/core/utils/storage.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/view_port.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/devices.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 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 = $window.height() > $window.width() ? \"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 = $(this._window).width();\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/ui/text_box/utils.caret.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 browser from \"../../core/utils/browser\";\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 = browser.msie || 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 if (!domAdapter.getBody().contains(input)) {\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) {\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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport devices from \"../../core/devices\";\r\n\r\nfunction isModernAndroidDevice() {\r\n var {\r\n android: android,\r\n version: version\r\n } = devices.real();\r\n return android && version[0] > 4\r\n}\r\nexport function isInputEventsL2Supported() {\r\n return \"onbeforeinput\" in domAdapter.createElement(\"input\") || isModernAndroidDevice()\r\n}\r\n","/**\r\n * DevExtreme (esm/events/utils/add_namespace.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/ui/widget/selectors.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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\r\n};\r\n","/**\r\n * DevExtreme (esm/events/utils/index.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 left: \"leftArrow\",\r\n up: \"upArrow\",\r\n right: \"rightArrow\",\r\n down: \"downArrow\",\r\n multiply: \"asterisk\",\r\n spacebar: \"space\",\r\n del: \"del\",\r\n subtract: \"minus\",\r\n esc: \"escape\"\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 isDropDown = $target.is(\".dx-dropdownlist-popup-wrapper *, .dx-dropdownlist-popup-wrapper\");\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 ($target.is(\".dx-skip-gesture-event *, .dx-skip-gesture-event\") && !isDropDown) {\r\n return true\r\n }\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 isKeySupported = !!key;\r\n key = isKeySupported ? key : which;\r\n if (key) {\r\n if (isKeySupported) {\r\n key = KEY_MAP[key.toLowerCase()] || key\r\n } else {\r\n key = LEGACY_KEY_CODES[key] || String.fromCharCode(key)\r\n }\r\n return key\r\n }\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/events/core/wheel.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/ui/text_box/ui.text_editor.mask.rule.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 inArray\r\n} from \"../../core/utils/array\";\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 inArray(char, allowedChars) > -1\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/core/polyfills/promise.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 \"../../core/utils/deferred\";\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar promise = hasWindow() ? getWindow().Promise : Promise;\r\nif (!promise) {\r\n promise = function(resolver) {\r\n var d = new Deferred;\r\n resolver(d.resolve.bind(this), d.reject.bind(this));\r\n return d.promise()\r\n };\r\n promise.resolve = function(val) {\r\n return (new Deferred).resolve(val).promise()\r\n };\r\n promise.reject = function(val) {\r\n return (new Deferred).reject(val).promise()\r\n };\r\n promise.all = function(promises) {\r\n return when.apply(this, promises).then((function() {\r\n return [].slice.call(arguments)\r\n }))\r\n }\r\n}\r\nexport default promise;\r\n","/**\r\n * DevExtreme (esm/ui/themes.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../core/devices\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport Promise from \"../core/polyfills/promise\";\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 === $tester.outerHeight()) {\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 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 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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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","/**\r\n * DevExtreme (esm/ui/widget/ui.errors.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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});\r\n","/**\r\n * DevExtreme (esm/core/action.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/core/utils/comparator.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/utils.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/core/options/option_manager.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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} 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 = name.split(/[.[]/);\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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 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 = name.replace(/\\[([^\\]])\\]/g, \".$1\").split(\".\");\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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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\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 _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: name.split(/[.[]/)[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/core/utils/dom.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 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 = function() {\r\n var activeElement = domAdapter.getActiveElement();\r\n var body = domAdapter.getBody();\r\n if (activeElement && activeElement !== body && activeElement.blur) {\r\n try {\r\n activeElement.blur()\r\n } catch (e) {\r\n body.blur()\r\n }\r\n }\r\n};\r\nexport var clearSelection = function() {\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 = function(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 = function(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 = function 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 = function(event, text) {\r\n var clipboard = event.originalEvent && event.originalEvent.clipboardData || window.clipboardData;\r\n if (1 === arguments.length) {\r\n return clipboard && clipboard.getData(\"Text\")\r\n }\r\n clipboard && clipboard.setData(\"Text\", text)\r\n};\r\nexport var contains = function 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 = function(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\n","/**\r\n * DevExtreme (esm/events/visibility_change.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/core/templates/template_base.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 = this._renderCore(options);\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/core/templates/function_template.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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","/**\r\n * DevExtreme (esm/core/templates/empty_template.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/core/templates/child_default_template.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/templates/template_engine_registry.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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","/**\r\n * DevExtreme (esm/core/template_manager.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/element.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/events/core/keyboard_processor.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 inArray\r\n} from \"../../core/utils/array\";\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 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 isNotFocusTarget = this._focusTarget && this._focusTarget !== e.target && inArray(e.target, $(this._focusTarget)) < 0;\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({\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\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\nexport default KeyboardProcessor;\r\n","/**\r\n * DevExtreme (esm/core/utils/support.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n inArray\r\n} from \"./array\";\r\nimport domAdapter from \"../dom_adapter\";\r\nimport {\r\n ensureDefined\r\n} from \"./common\";\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 msMaxTouchPoints: msMaxTouchPoints,\r\n pointerEnabled: pointerEnabled\r\n} = getNavigator();\r\nvar transitionEndEventNames = {\r\n webkitTransition: \"webkitTransitionEnd\",\r\n MozTransition: \"transitionend\",\r\n OTransition: \"oTransitionEnd\",\r\n msTransition: \"MsTransitionEnd\",\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 version: version,\r\n mac: isMac\r\n } = devices.real();\r\n var isObsoleteAndroid = version && version[0] < 4 && \"android\" === platform;\r\n var isNativeScrollDevice = !isObsoleteAndroid && inArray(platform, [\"ios\", \"android\"]) > -1 || 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, pointerEnabled) {\r\n var isPointerEnabled = ensureDefined(pointerEnabled, true);\r\n var canUsePointerEvent = ensureDefined(pointerEnabled, false);\r\n return hasWindowProperty(\"PointerEvent\") && isPointerEnabled || canUsePointerEvent\r\n};\r\nvar touchEvents = detectTouchEvents(hasProperty, maxTouchPoints);\r\nvar pointerEvents = detectPointerEvent(hasProperty, pointerEnabled);\r\nvar touchPointersPresent = !!maxTouchPoints || !!msMaxTouchPoints;\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/events/pointer/base.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n addNamespace,\r\n eventSource,\r\n fireEvent\r\n} from \"../utils/index\";\r\nvar POINTER_EVENTS_NAMESPACE = \"dxPointerEvents\";\r\nvar BaseStrategy = Class.inherit({\r\n ctor: function(eventName, originalEvents) {\r\n this._eventName = eventName;\r\n this._originalEvents = addNamespace(originalEvents, POINTER_EVENTS_NAMESPACE);\r\n this._handlerCount = 0;\r\n this.noBubble = this._isNoBubble()\r\n },\r\n _isNoBubble: function() {\r\n var eventName = this._eventName;\r\n return \"dxpointerenter\" === eventName || \"dxpointerleave\" === eventName\r\n },\r\n _handler: function(e) {\r\n var delegateTarget = this._getDelegateTarget(e);\r\n return this._fireEvent({\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 },\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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/mspointer.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport BaseStrategy from \"./base\";\r\nimport Observer from \"./observer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar eventMap = {\r\n dxpointerdown: \"pointerdown\",\r\n dxpointermove: \"pointermove\",\r\n dxpointerup: \"pointerup\",\r\n dxpointercancel: \"pointercancel\",\r\n dxpointerover: \"pointerover\",\r\n dxpointerout: \"pointerout\",\r\n dxpointerenter: \"pointerenter\",\r\n dxpointerleave: \"pointerleave\"\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(a, b) {\r\n return a.pointerId === b.pointerId\r\n }), (function(e) {\r\n if (e.isPrimary) {\r\n observer.reset()\r\n }\r\n }));\r\n activated = true\r\n};\r\nvar MsPointerStrategy = 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({\r\n pointers: observer.pointers(),\r\n pointerId: args.originalEvent.pointerId\r\n }, args))\r\n }\r\n});\r\nMsPointerStrategy.map = eventMap;\r\nMsPointerStrategy.resetObserver = function() {\r\n observer.reset()\r\n};\r\nexport default MsPointerStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer/observer.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/mouse_and_touch.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 browser from \"../core/utils/browser\";\r\nimport devices from \"../core/devices\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport TouchStrategy from \"./pointer/touch\";\r\nimport MsPointerStrategy from \"./pointer/mspointer\";\r\nimport MouseStrategy from \"./pointer/mouse\";\r\nimport MouseAndTouchStrategy from \"./pointer/mouse_and_touch\";\r\nvar getStrategy = (support, device, browser) => {\r\n if (support.pointerEvents && browser.msie) {\r\n return MsPointerStrategy\r\n }\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(), browser);\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/events/short.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 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\nimport pointerEvents from \"./pointer\";\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 isFocusable: isFocusable\r\n } = _ref6;\r\n eventsEngine.on($el, addNamespace(\"focusin\", namespace), focusIn);\r\n eventsEngine.on($el, addNamespace(\"focusout\", namespace), focusOut);\r\n if (domAdapter.hasDocumentProperty(\"onbeforeactivate\")) {\r\n eventsEngine.on($el, addNamespace(\"beforeactivate\", namespace), e => isFocusable(null, e.target) || e.preventDefault())\r\n }\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 if (domAdapter.hasDocumentProperty(\"onbeforeactivate\")) {\r\n eventsEngine.off($el, addNamespace(\"beforeactivate\", namespace))\r\n }\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\nexport var dxScrollInit = {\r\n on: function($el, onInit, eventData) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {};\r\n eventsEngine.on($el, addNamespace(\"dxscrollinit\", namespace), eventData, onInit)\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(\"dxscrollinit\", namespace))\r\n }\r\n};\r\nexport var dxScrollStart = {\r\n on: function($el, onStart) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"dxscrollstart\", namespace), onStart)\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(\"dxscrollstart\", namespace))\r\n }\r\n};\r\nexport var dxScrollMove = {\r\n on: function($el, onScroll) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"dxscroll\", namespace), onScroll)\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(\"dxscroll\", namespace))\r\n }\r\n};\r\nexport var dxScrollEnd = {\r\n on: function($el, onEnd) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"dxscrollend\", namespace), onEnd)\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(\"dxscrollend\", namespace))\r\n }\r\n};\r\nexport var dxScrollStop = {\r\n on: function($el, onStop) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"dxscrollstop\", namespace), onStop)\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(\"dxscrollstop\", namespace))\r\n }\r\n};\r\nexport var dxScrollCancel = {\r\n on: function($el, onCancel) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"dxscrollcancel\", namespace), onCancel)\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(\"dxscrollcancel\", namespace))\r\n }\r\n};\r\nexport var dxPointerDown = {\r\n on: function($el, onPointerDown) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(pointerEvents.down, namespace), onPointerDown)\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(pointerEvents.down, namespace))\r\n }\r\n};\r\nexport var dxPointerUp = {\r\n on: function($el, onPointerUp) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(pointerEvents.up, namespace), onPointerUp)\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(pointerEvents.up, 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/dom_component.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 inArray\r\n} from \"./utils/array\";\r\nimport {\r\n isString,\r\n isDefined\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 _visibilityChanged: abstract,\r\n _dimensionChanged: abstract,\r\n _init() {\r\n this.callBase();\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 (inArray(name, synchronizableOptions) >= 0) {\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/animation/frame.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 if (nativeRequest && !nativeCancel) {\r\n var canceledRequests = {};\r\n request = function(callback) {\r\n var requestId = nativeRequest.call(window, (function() {\r\n try {\r\n if (requestId in canceledRequests) {\r\n return\r\n }\r\n callback.apply(this, arguments)\r\n } finally {\r\n delete canceledRequests[requestId]\r\n }\r\n }));\r\n return requestId\r\n };\r\n cancel = function(requestId) {\r\n canceledRequests[requestId] = true\r\n }\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/events/utils/event_nodes_disposing.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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\nvar REMOVE_EVENT_NAME = \"dxremove\";\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), REMOVE_EVENT_NAME, callback)\r\n};\r\nexport var unsubscribeNodesDisposing = (event, callback) => {\r\n eventsEngine.off(nodesByEvent(event), REMOVE_EVENT_NAME, callback)\r\n};\r\n","/**\r\n * DevExtreme (esm/events/core/emitter.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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","/**\r\n * DevExtreme (esm/events/core/emitter_registrator.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 inArray\r\n} from \"../../core/utils/array\";\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 = inArray(emitter, activeEmitters);\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/version.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function compare(x, y, maxLevel) {\r\n function normalizeArg(value) {\r\n if (\"string\" === typeof value) {\r\n return value.split(\".\")\r\n }\r\n if (\"number\" === typeof value) {\r\n return [value]\r\n }\r\n return value\r\n }\r\n x = normalizeArg(x);\r\n y = normalizeArg(y);\r\n var length = Math.max(x.length, y.length);\r\n if (isFinite(maxLevel)) {\r\n length = Math.min(length, maxLevel)\r\n }\r\n for (var i = 0; i < length; i++) {\r\n var xItem = parseInt(x[i] || 0, 10);\r\n var yItem = parseInt(y[i] || 0, 10);\r\n if (xItem < yItem) {\r\n return -1\r\n }\r\n if (xItem > yItem) {\r\n return 1\r\n }\r\n }\r\n return 0\r\n}\r\n","/**\r\n * DevExtreme (esm/events/click.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 contains,\r\n closestCommonParent\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 eventDelta,\r\n eventData\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\nimport {\r\n compare as compareVersions\r\n} from \"../core/utils/version\";\r\nvar CLICK_EVENT_NAME = \"dxclick\";\r\nvar TOUCH_BOUNDARY = 10;\r\nvar abs = Math.abs;\r\nvar isInput = function(element) {\r\n return $(element).is(\"input, textarea, select, button ,:focus, :focus *\")\r\n};\r\nvar misc = {\r\n requestAnimationFrame: requestAnimationFrame,\r\n cancelAnimationFrame: cancelAnimationFrame\r\n};\r\nvar ClickEmitter = Emitter.inherit({\r\n ctor: function(element) {\r\n this.callBase(element);\r\n this._makeElementClickable($(element))\r\n },\r\n _makeElementClickable: function($element) {\r\n if (!$element.attr(\"onclick\")) {\r\n $element.attr(\"onclick\", \"void(0)\")\r\n }\r\n },\r\n start: function(e) {\r\n this._blurPrevented = e.isDefaultPrevented();\r\n this._startTarget = e.target;\r\n this._startEventData = eventData(e)\r\n },\r\n end: function(e) {\r\n if (this._eventOutOfElement(e, this.getElement().get(0)) || e.type === pointerEvents.cancel) {\r\n this._cancel(e);\r\n return\r\n }\r\n if (!isInput(e.target) && !this._blurPrevented) {\r\n resetActiveElement()\r\n }\r\n this._accept(e);\r\n this._clickAnimationFrame = misc.requestAnimationFrame(function() {\r\n this._fireClickEvent(e)\r\n }.bind(this))\r\n },\r\n _eventOutOfElement: function(e, element) {\r\n var target = e.target;\r\n var targetChanged = !contains(element, target) && element !== target;\r\n var gestureDelta = eventDelta(eventData(e), this._startEventData);\r\n var boundsExceeded = abs(gestureDelta.x) > TOUCH_BOUNDARY || abs(gestureDelta.y) > TOUCH_BOUNDARY;\r\n return targetChanged || boundsExceeded\r\n },\r\n _fireClickEvent: function(e) {\r\n this._fireEvent(CLICK_EVENT_NAME, e, {\r\n target: closestCommonParent(this._startTarget, e.target)\r\n })\r\n },\r\n dispose: function() {\r\n misc.cancelAnimationFrame(this._clickAnimationFrame)\r\n }\r\n});\r\nvar realDevice = devices.real();\r\nvar useNativeClick = realDevice.generic || realDevice.ios && compareVersions(realDevice.version, [9, 3]) >= 0 || realDevice.android && compareVersions(realDevice.version, [5]) >= 0;\r\n! function() {\r\n var isNativeClickEvent = function(target) {\r\n return useNativeClick || $(target).closest(\".dx-native-click\").length\r\n };\r\n var prevented = null;\r\n var lastFiredEvent = null;\r\n\r\n function onNodeRemove() {\r\n lastFiredEvent = null\r\n }\r\n var 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 && isNativeClickEvent(e.target) && !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\n ClickEmitter = ClickEmitter.inherit({\r\n _makeElementClickable: function($element) {\r\n if (!isNativeClickEvent($element)) {\r\n this.callBase($element)\r\n }\r\n eventsEngine.on($element, \"click\", clickHandler)\r\n },\r\n configure: function(data) {\r\n this.callBase(data);\r\n if (data.useNative) {\r\n this.getElement().addClass(\"dx-native-click\")\r\n }\r\n },\r\n start: function(e) {\r\n prevented = null;\r\n if (!isNativeClickEvent(e.target)) {\r\n this.callBase(e)\r\n }\r\n },\r\n end: function(e) {\r\n if (!isNativeClickEvent(e.target)) {\r\n this.callBase(e)\r\n }\r\n },\r\n cancel: function() {\r\n prevented = true\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n eventsEngine.off(this.getElement(), \"click\", clickHandler)\r\n }\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\") && isInput($target)) {\r\n resetActiveElement()\r\n }\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/events/core/emitter.feedback.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n noop,\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n contains\r\n} from \"../../core/utils/dom\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n isMouseEvent\r\n} from \"../utils/index\";\r\nimport pointerEvents from \"../pointer\";\r\nimport Emitter from \"./emitter\";\r\nimport registerEmitter from \"./emitter_registrator\";\r\nvar ACTIVE_EVENT_NAME = \"dxactive\";\r\nvar INACTIVE_EVENT_NAME = \"dxinactive\";\r\nvar ACTIVE_TIMEOUT = 30;\r\nvar INACTIVE_TIMEOUT = 400;\r\nvar FeedbackEvent = Class.inherit({\r\n ctor: function(timeout, fire) {\r\n this._timeout = timeout;\r\n this._fire = fire\r\n },\r\n start: function() {\r\n var that = this;\r\n this._schedule((function() {\r\n that.force()\r\n }))\r\n },\r\n _schedule: function(fn) {\r\n this.stop();\r\n this._timer = setTimeout(fn, this._timeout)\r\n },\r\n stop: function() {\r\n clearTimeout(this._timer)\r\n },\r\n force: function() {\r\n if (this._fired) {\r\n return\r\n }\r\n this.stop();\r\n this._fire();\r\n this._fired = true\r\n },\r\n fired: function() {\r\n return this._fired\r\n }\r\n});\r\nvar activeFeedback;\r\nvar FeedbackEmitter = Emitter.inherit({\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n this._active = new FeedbackEvent(0, noop);\r\n this._inactive = new FeedbackEvent(0, noop)\r\n },\r\n configure: function(data, eventName) {\r\n switch (eventName) {\r\n case ACTIVE_EVENT_NAME:\r\n data.activeTimeout = data.timeout;\r\n break;\r\n case INACTIVE_EVENT_NAME:\r\n data.inactiveTimeout = data.timeout\r\n }\r\n this.callBase(data)\r\n },\r\n start: function(e) {\r\n if (activeFeedback) {\r\n var activeChildExists = contains(this.getElement().get(0), activeFeedback.getElement().get(0));\r\n var childJustActivated = !activeFeedback._active.fired();\r\n if (activeChildExists && childJustActivated) {\r\n this._cancel();\r\n return\r\n }\r\n activeFeedback._inactive.force()\r\n }\r\n activeFeedback = this;\r\n this._initEvents(e);\r\n this._active.start()\r\n },\r\n _initEvents: function(e) {\r\n var that = this;\r\n var eventTarget = this._getEmitterTarget(e);\r\n var mouseEvent = isMouseEvent(e);\r\n var isSimulator = devices.isSimulator();\r\n var deferFeedback = isSimulator || !mouseEvent;\r\n var activeTimeout = ensureDefined(this.activeTimeout, ACTIVE_TIMEOUT);\r\n var inactiveTimeout = ensureDefined(this.inactiveTimeout, INACTIVE_TIMEOUT);\r\n this._active = new FeedbackEvent(deferFeedback ? activeTimeout : 0, (function() {\r\n that._fireEvent(ACTIVE_EVENT_NAME, e, {\r\n target: eventTarget\r\n })\r\n }));\r\n this._inactive = new FeedbackEvent(deferFeedback ? inactiveTimeout : 0, (function() {\r\n that._fireEvent(INACTIVE_EVENT_NAME, e, {\r\n target: eventTarget\r\n });\r\n activeFeedback = null\r\n }))\r\n },\r\n cancel: function(e) {\r\n this.end(e)\r\n },\r\n end: function(e) {\r\n var skipTimers = e.type !== pointerEvents.up;\r\n if (skipTimers) {\r\n this._active.stop()\r\n } else {\r\n this._active.force()\r\n }\r\n this._inactive.start();\r\n if (skipTimers) {\r\n this._inactive.force()\r\n }\r\n },\r\n dispose: function() {\r\n this._active.stop();\r\n this._inactive.stop();\r\n if (activeFeedback === this) {\r\n activeFeedback = null\r\n }\r\n this.callBase()\r\n },\r\n lockInactive: function() {\r\n this._active.force();\r\n this._inactive.stop();\r\n activeFeedback = null;\r\n this._cancel();\r\n return this._inactive.force.bind(this._inactive)\r\n }\r\n});\r\nFeedbackEmitter.lock = function(deferred) {\r\n var lockInactive = activeFeedback ? activeFeedback.lockInactive() : noop;\r\n deferred.done(lockInactive)\r\n};\r\nregisterEmitter({\r\n emitter: FeedbackEmitter,\r\n events: [ACTIVE_EVENT_NAME, INACTIVE_EVENT_NAME]\r\n});\r\nexport var lock = FeedbackEmitter.lock;\r\nexport {\r\n ACTIVE_EVENT_NAME as active, INACTIVE_EVENT_NAME as inactive\r\n};\r\n","/**\r\n * DevExtreme (esm/events/hover.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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","/**\r\n * DevExtreme (esm/ui/widget/ui.widget.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n isPlainObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\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 })\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 _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 (-1 !== inArray(target, this._focusTarget())) {\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 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/utils/math.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 _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};\r\n","/**\r\n * DevExtreme (esm/localization/utils.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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} 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 roundMultiplier = precisionMultiplier * DECIMAL_BASE;\r\n var intermediateValue = value * roundMultiplier / DECIMAL_BASE;\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/localization/ldml/number.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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} 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\n\r\nfunction getGroupSizes(formatString) {\r\n return formatString.split(\",\").slice(1).map((function(str) {\r\n return str.split(\"\").filter((function(char) {\r\n return \"#\" === char || \"0\" === char\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 if (isPercentFormat(numberFormat)) {\r\n value *= 100\r\n }\r\n if (!isPositive) {\r\n value = -value\r\n }\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 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/localization/currency.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/localization/open_xml_currency_format.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 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-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-US-POSIX\": \"\\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 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 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\\xa0#,##,##0.00\",\r\n \"ks-Arab\": \"\\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\",\r\n \"nb-SJ\": \"\\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\",\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 root: \"\\xa4\\xa0#,##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 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 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 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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 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 config.style = \"currency\";\r\n config.currency = formatConfig.currency || dxConfig().defaultCurrency\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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 inArray,\r\n find\r\n} from \"../core/utils/array\";\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 (inArray(value, NUMERIC_FORMATS) > -1) {\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(char, \"\\\\\".concat(char))\r\n });\r\n negativeEtalon = negativeEtalon.replace(\" \", \"\\\\s\");\r\n negativeEtalon = negativeEtalon.replace(\"1\", \".+\");\r\n return new RegExp(negativeEtalon, \"g\")\r\n },\r\n getSign: function(text, format) {\r\n if (\"-\" === text.replace(/[^0-9-]/g, \"\").charAt(0)) {\r\n return -1\r\n }\r\n if (!format) {\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 = find(Object.keys(LargeNumberFormatPostfixes), 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/ui/validation_engine.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 inArray\r\n} from \"../core/utils/array\";\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 Promise from \"../core/polyfills/promise\";\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 = inArray(validator, this._pendingValidators);\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 = inArray(validator, this.validators);\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 (inArray(validator, this.validators) < 0) {\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 $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 = inArray(config, this.groups);\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/animation/translator.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n data as elementData,\r\n removeData\r\n} from \"../core/element_data\";\r\nimport {\r\n type\r\n} from \"../core/utils/type\";\r\nvar TRANSLATOR_DATA_KEY = \"dxTranslator\";\r\nvar TRANSFORM_MATRIX_REGEX = /matrix(3d)?\\((.+?)\\)/;\r\nvar TRANSLATE_REGEX = /translate(?:3d)?\\((.+?)\\)/;\r\nexport var locate = function($element) {\r\n $element = $($element);\r\n var translate = getTranslate($element);\r\n return {\r\n left: translate.x,\r\n top: translate.y\r\n }\r\n};\r\n\r\nfunction isPercentValue(value) {\r\n return \"string\" === type(value) && \"%\" === value[value.length - 1]\r\n}\r\n\r\nfunction cacheTranslate($element, translate) {\r\n if ($element.length) {\r\n elementData($element.get(0), TRANSLATOR_DATA_KEY, translate)\r\n }\r\n}\r\nexport var clearCache = function($element) {\r\n if ($element.length) {\r\n removeData($element.get(0), TRANSLATOR_DATA_KEY)\r\n }\r\n};\r\nexport var getTranslateCss = function(translate) {\r\n translate.x = translate.x || 0;\r\n translate.y = translate.y || 0;\r\n var xValueString = isPercentValue(translate.x) ? translate.x : translate.x + \"px\";\r\n var yValueString = isPercentValue(translate.y) ? translate.y : translate.y + \"px\";\r\n return \"translate(\" + xValueString + \", \" + yValueString + \")\"\r\n};\r\nexport var getTranslate = function($element) {\r\n var result = $element.length ? elementData($element.get(0), TRANSLATOR_DATA_KEY) : null;\r\n if (!result) {\r\n var transformValue = $element.css(\"transform\") || getTranslateCss({\r\n x: 0,\r\n y: 0\r\n });\r\n var matrix = transformValue.match(TRANSFORM_MATRIX_REGEX);\r\n var is3D = matrix && matrix[1];\r\n if (matrix) {\r\n matrix = matrix[2].split(\",\");\r\n if (\"3d\" === is3D) {\r\n matrix = matrix.slice(12, 15)\r\n } else {\r\n matrix.push(0);\r\n matrix = matrix.slice(4, 7)\r\n }\r\n } else {\r\n matrix = [0, 0, 0]\r\n }\r\n result = {\r\n x: parseFloat(matrix[0]),\r\n y: parseFloat(matrix[1]),\r\n z: parseFloat(matrix[2])\r\n };\r\n cacheTranslate($element, result)\r\n }\r\n return result\r\n};\r\nexport var move = function($element, position) {\r\n $element = $($element);\r\n var left = position.left;\r\n var top = position.top;\r\n var translate;\r\n if (void 0 === left) {\r\n translate = getTranslate($element);\r\n translate.y = top || 0\r\n } else if (void 0 === top) {\r\n translate = getTranslate($element);\r\n translate.x = left || 0\r\n } else {\r\n translate = {\r\n x: left || 0,\r\n y: top || 0,\r\n z: 0\r\n };\r\n cacheTranslate($element, translate)\r\n }\r\n $element.css({\r\n transform: getTranslateCss(translate)\r\n });\r\n if (isPercentValue(left) || isPercentValue(top)) {\r\n clearCache($element)\r\n }\r\n};\r\nexport var resetPosition = function($element, finishTransition) {\r\n $element = $($element);\r\n var originalTransition;\r\n var stylesConfig = {\r\n left: 0,\r\n top: 0,\r\n transform: \"none\"\r\n };\r\n if (finishTransition) {\r\n originalTransition = $element.css(\"transition\");\r\n stylesConfig.transition = \"none\"\r\n }\r\n $element.css(stylesConfig);\r\n clearCache($element);\r\n if (finishTransition) {\r\n $element.get(0).offsetHeight;\r\n $element.css(\"transition\", originalTransition)\r\n }\r\n};\r\nexport var parseTranslate = function(translateString) {\r\n var result = translateString.match(TRANSLATE_REGEX);\r\n if (!result || !result[1]) {\r\n return\r\n }\r\n result = result[1].split(\",\");\r\n result = {\r\n x: parseFloat(result[0]),\r\n y: parseFloat(result[1]),\r\n z: parseFloat(result[2])\r\n };\r\n return result\r\n};\r\n","/**\r\n * DevExtreme (esm/animation/easing.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/core/utils/position.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 domAdapter from \"../dom_adapter\";\r\nimport browser from \"../utils/browser\";\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 getElementsFromPoint = (x, y) => {\r\n var document = domAdapter.getDocument();\r\n if (browser.msie) {\r\n var result = document.msElementsFromPoint(x, y);\r\n if (result) {\r\n return Array.prototype.slice.call(result)\r\n }\r\n return []\r\n }\r\n return document.elementsFromPoint(x, y)\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 var rect;\r\n try {\r\n rect = element.getBoundingClientRect()\r\n } catch (e) {\r\n rect = {\r\n width: 0,\r\n height: 0,\r\n bottom: 0,\r\n top: 0,\r\n left: 0,\r\n right: 0\r\n }\r\n }\r\n return rect\r\n};\r\nexport {\r\n getBoundingRect,\r\n getDefaultAlignment,\r\n getElementsFromPoint\r\n};\r\n","/**\r\n * DevExtreme (esm/animation/position.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 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} 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: $what.outerWidth(),\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: $what.outerHeight(),\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 : of .width();\r\n v.atSize = of [0].innerHeight > of [0].outerHeight || IS_SAFARI ? of [0].innerHeight : of .height()\r\n }\r\n } else if (9 === of [0].nodeType) {\r\n h.atLocation = 0;\r\n v.atLocation = 0;\r\n h.atSize = of .width();\r\n v.atSize = of .height()\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, of .outerWidth());\r\n v.atSize = Math.max(ofRect.height, of .outerHeight())\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 = win.width();\r\n var windowHeight = win.height();\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 = $boundary.width();\r\n boundaryHeight = $boundary.height()\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 getOffsetWithoutScale = function getOffsetWithoutScale($startElement) {\r\n var _currentElement$getAt, _style$match;\r\n var $currentElement = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : $startElement;\r\n var currentElement = $currentElement.get(0);\r\n if (!currentElement) {\r\n return $startElement.offset()\r\n }\r\n var style = (null === (_currentElement$getAt = currentElement.getAttribute) || void 0 === _currentElement$getAt ? void 0 : _currentElement$getAt.call(currentElement, \"style\")) || \"\";\r\n var scale = null === (_style$match = style.match(scaleRe)) || void 0 === _style$match ? void 0 : _style$match[0];\r\n var offset;\r\n if (scale) {\r\n currentElement.setAttribute(\"style\", style.replace(scale, \"\"));\r\n offset = getOffsetWithoutScale($startElement, $currentElement.parent());\r\n currentElement.setAttribute(\"style\", style)\r\n } else {\r\n offset = getOffsetWithoutScale($startElement, $currentElement.parent())\r\n }\r\n return offset\r\n};\r\nvar position = function(what, options) {\r\n var $what = $(what);\r\n if (!options) {\r\n return $what.offset()\r\n }\r\n resetPosition($what, true);\r\n var offset = getOffsetWithoutScale($what);\r\n var targetPosition = options.h && options.v ? options : calculatePosition($what, options);\r\n var preciser = function(number) {\r\n return options.precise ? number : Math.round(number)\r\n };\r\n move($what, {\r\n left: targetPosition.h.location - preciser(offset.left),\r\n top: targetPosition.v.location - preciser(offset.top)\r\n });\r\n return targetPosition\r\n};\r\nvar offset = function(element) {\r\n element = $(element).get(0);\r\n if (isWindow(element)) {\r\n return null\r\n } else if (element && \"pageY\" in element && \"pageX\" in element) {\r\n return {\r\n top: element.pageY,\r\n left: element.pageX\r\n }\r\n }\r\n return $(element).offset()\r\n};\r\nif (!position.inverseAlign) {\r\n position.inverseAlign = inverseAlign\r\n}\r\nif (!position.normalizeAlign) {\r\n position.normalizeAlign = normalizeAlign\r\n}\r\nexport default {\r\n calculateScrollbarWidth: calculateScrollbarWidth,\r\n calculate: calculatePosition,\r\n setup: position,\r\n offset: offset\r\n};\r\n","/**\r\n * DevExtreme (esm/animation/fx.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 \"../core/remove_event\";\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/events/gesture/emitter.gesture.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/drag.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 inArray\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 = -1 !== inArray(element, knownDropTargets);\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 = inArray(element, knownDropTargets);\r\n this.updateEventsCounter(element, handleObj.type, 1);\r\n var selector = handleObj.selector;\r\n if (-1 === inArray(selector, knownDropTargetSelectors[index])) {\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 = inArray(element, knownDropTargets);\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 = inArray($element.get(0), knownDropTargets);\r\n var dropTargetSelectors = knownDropTargetSelectors[dropTargetIndex].filter(selector => selector);\r\n var $delegatedTargets = $element.find(dropTargetSelectors.join(\", \"));\r\n if (-1 !== inArray(void 0, knownDropTargetSelectors[dropTargetIndex])) {\r\n $delegatedTargets = $delegatedTargets.add($element)\r\n }\r\n return $delegatedTargets\r\n};\r\nvar getItemConfig = function($element) {\r\n var dropTargetIndex = inArray($element.get(0), knownDropTargets);\r\n return knownDropTargetConfigs[dropTargetIndex]\r\n};\r\nvar getItemPosition = function(dropTargetConfig, $element) {\r\n if (dropTargetConfig.itemPositionFunc) {\r\n return dropTargetConfig.itemPositionFunc($element)\r\n } else {\r\n return $element.offset()\r\n }\r\n};\r\nvar getItemSize = function(dropTargetConfig, $element) {\r\n if (dropTargetConfig.itemSizeFunc) {\r\n return dropTargetConfig.itemSizeFunc($element)\r\n }\r\n return {\r\n width: $element.get(0).getBoundingClientRect().width,\r\n height: $element.get(0).getBoundingClientRect().height\r\n }\r\n};\r\nvar DragEmitter = GestureEmitter.inherit({\r\n ctor: function(element) {\r\n this.callBase(element);\r\n this.direction = \"both\"\r\n },\r\n _init: function(e) {\r\n this._initEvent = e\r\n },\r\n _start: function(e) {\r\n e = this._fireEvent(DRAG_START_EVENT, this._initEvent);\r\n this._maxLeftOffset = e.maxLeftOffset;\r\n this._maxRightOffset = e.maxRightOffset;\r\n this._maxTopOffset = e.maxTopOffset;\r\n this._maxBottomOffset = e.maxBottomOffset;\r\n var dropTargets = wrapToArray(e.targetElements || (null === e.targetElements ? [] : knownDropTargets));\r\n this._dropTargets = iteratorUtils.map(dropTargets, (function(element) {\r\n return $(element).get(0)\r\n }))\r\n },\r\n _move: function(e) {\r\n var eventData = eData(e);\r\n var dragOffset = this._calculateOffset(eventData);\r\n e = this._fireEvent(DRAG_EVENT, e, {\r\n offset: dragOffset\r\n });\r\n this._processDropTargets(e);\r\n if (!e._cancelPreventDefault) {\r\n e.preventDefault()\r\n }\r\n },\r\n _calculateOffset: function(eventData) {\r\n return {\r\n x: this._calculateXOffset(eventData),\r\n y: this._calculateYOffset(eventData)\r\n }\r\n },\r\n _calculateXOffset: function(eventData) {\r\n if (\"vertical\" !== this.direction) {\r\n var offset = eventData.x - this._startEventData.x;\r\n return this._fitOffset(offset, this._maxLeftOffset, this._maxRightOffset)\r\n }\r\n return 0\r\n },\r\n _calculateYOffset: function(eventData) {\r\n if (\"horizontal\" !== this.direction) {\r\n var offset = eventData.y - this._startEventData.y;\r\n return this._fitOffset(offset, this._maxTopOffset, this._maxBottomOffset)\r\n }\r\n return 0\r\n },\r\n _fitOffset: function(offset, minOffset, maxOffset) {\r\n if (null != minOffset) {\r\n offset = Math.max(offset, -minOffset)\r\n }\r\n if (null != maxOffset) {\r\n offset = Math.min(offset, maxOffset)\r\n }\r\n return offset\r\n },\r\n _processDropTargets: function(e) {\r\n var target = this._findDropTarget(e);\r\n var sameTarget = target === this._currentDropTarget;\r\n if (!sameTarget) {\r\n this._fireDropTargetEvent(e, DRAG_LEAVE_EVENT);\r\n this._currentDropTarget = target;\r\n this._fireDropTargetEvent(e, DRAG_ENTER_EVENT)\r\n }\r\n },\r\n _fireDropTargetEvent: function(event, eventName) {\r\n if (!this._currentDropTarget) {\r\n return\r\n }\r\n var eventData = {\r\n type: eventName,\r\n originalEvent: event,\r\n draggingElement: this._$element.get(0),\r\n target: this._currentDropTarget\r\n };\r\n fireEvent(eventData)\r\n },\r\n _findDropTarget: function(e) {\r\n var that = this;\r\n var result;\r\n iteratorUtils.each(knownDropTargets, (function(_, target) {\r\n if (!that._checkDropTargetActive(target)) {\r\n return\r\n }\r\n var $target = $(target);\r\n iteratorUtils.each(getItemDelegatedTargets($target), (function(_, delegatedTarget) {\r\n var $delegatedTarget = $(delegatedTarget);\r\n if (that._checkDropTarget(getItemConfig($target), $delegatedTarget, $(result), e)) {\r\n result = delegatedTarget\r\n }\r\n }))\r\n }));\r\n return result\r\n },\r\n _checkDropTargetActive: function(target) {\r\n var active = false;\r\n iteratorUtils.each(this._dropTargets, (function(_, activeTarget) {\r\n active = active || activeTarget === target || contains(activeTarget, target);\r\n return !active\r\n }));\r\n return active\r\n },\r\n _checkDropTarget: function(config, $target, $prevTarget, e) {\r\n var isDraggingElement = $target.get(0) === $(e.target).get(0);\r\n if (isDraggingElement) {\r\n return false\r\n }\r\n var targetPosition = getItemPosition(config, $target);\r\n if (e.pageX < targetPosition.left) {\r\n return false\r\n }\r\n if (e.pageY < targetPosition.top) {\r\n return false\r\n }\r\n var targetSize = getItemSize(config, $target);\r\n if (e.pageX > targetPosition.left + targetSize.width) {\r\n return false\r\n }\r\n if (e.pageY > targetPosition.top + targetSize.height) {\r\n return false\r\n }\r\n if ($prevTarget.length && $prevTarget.closest($target).length) {\r\n return false\r\n }\r\n if (config.checkDropTarget && !config.checkDropTarget($target, e)) {\r\n return false\r\n }\r\n return $target\r\n },\r\n _end: function(e) {\r\n var eventData = eData(e);\r\n this._fireEvent(DRAG_END_EVENT, e, {\r\n offset: this._calculateOffset(eventData)\r\n });\r\n this._fireDropTargetEvent(e, DROP_EVENT);\r\n delete this._currentDropTarget\r\n }\r\n});\r\nregisterEmitter({\r\n emitter: DragEmitter,\r\n events: [DRAG_START_EVENT, DRAG_EVENT, DRAG_END_EVENT]\r\n});\r\nexport {\r\n DRAG_EVENT as move, DRAG_START_EVENT as start, DRAG_END_EVENT as end, DRAG_ENTER_EVENT as enter, DRAG_LEAVE_EVENT as leave, DROP_EVENT as drop\r\n};\r\n","/**\r\n * DevExtreme (esm/mobile/hide_callback.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n inArray\r\n} from \"../core/utils/array\";\r\nexport var hideCallback = function() {\r\n var callbacks = [];\r\n return {\r\n add: function(callback) {\r\n var indexOfCallback = inArray(callback, callbacks);\r\n if (-1 === indexOfCallback) {\r\n callbacks.push(callback)\r\n }\r\n },\r\n remove: function(callback) {\r\n var indexOfCallback = inArray(callback, callbacks);\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/resizable.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n locate,\r\n move\r\n} from \"../animation/translator\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport DOMComponent from \"../core/dom_component\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n inArray\r\n} from \"../core/utils/array\";\r\nimport {\r\n pairToObject\r\n} from \"../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n fitIntoRange\r\n} from \"../core/utils/math\";\r\nimport {\r\n isPlainObject,\r\n isFunction,\r\n isWindow\r\n} from \"../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n start as dragEventStart,\r\n move as dragEventMove,\r\n end as dragEventEnd\r\n} from \"../events/drag\";\r\nimport {\r\n getBoundingRect\r\n} from \"../core/utils/position\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../events/visibility_change\";\r\nvar RESIZABLE = \"dxResizable\";\r\nvar RESIZABLE_CLASS = \"dx-resizable\";\r\nvar RESIZABLE_RESIZING_CLASS = \"dx-resizable-resizing\";\r\nvar RESIZABLE_HANDLE_CLASS = \"dx-resizable-handle\";\r\nvar RESIZABLE_HANDLE_TOP_CLASS = \"dx-resizable-handle-top\";\r\nvar RESIZABLE_HANDLE_BOTTOM_CLASS = \"dx-resizable-handle-bottom\";\r\nvar RESIZABLE_HANDLE_LEFT_CLASS = \"dx-resizable-handle-left\";\r\nvar RESIZABLE_HANDLE_RIGHT_CLASS = \"dx-resizable-handle-right\";\r\nvar RESIZABLE_HANDLE_CORNER_CLASS = \"dx-resizable-handle-corner\";\r\nvar DRAGSTART_START_EVENT_NAME = addNamespace(dragEventStart, RESIZABLE);\r\nvar DRAGSTART_EVENT_NAME = addNamespace(dragEventMove, RESIZABLE);\r\nvar DRAGSTART_END_EVENT_NAME = addNamespace(dragEventEnd, RESIZABLE);\r\nvar SIDE_BORDER_WIDTH_STYLES = {\r\n left: \"borderLeftWidth\",\r\n top: \"borderTopWidth\",\r\n right: \"borderRightWidth\",\r\n bottom: \"borderBottomWidth\"\r\n};\r\nvar Resizable = DOMComponent.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n handles: \"all\",\r\n step: \"1\",\r\n stepPrecision: \"simple\",\r\n area: void 0,\r\n minWidth: 30,\r\n maxWidth: 1 / 0,\r\n minHeight: 30,\r\n maxHeight: 1 / 0,\r\n onResizeStart: null,\r\n onResize: null,\r\n onResizeEnd: null,\r\n roundStepValue: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(RESIZABLE_CLASS)\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderHandles()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderActions()\r\n },\r\n _renderActions: function() {\r\n this._resizeStartAction = this._createActionByOption(\"onResizeStart\");\r\n this._resizeEndAction = this._createActionByOption(\"onResizeEnd\");\r\n this._resizeAction = this._createActionByOption(\"onResize\")\r\n },\r\n _renderHandles: function() {\r\n this._handles = [];\r\n var handles = this.option(\"handles\");\r\n if (\"none\" === handles) {\r\n return\r\n }\r\n var directions = \"all\" === handles ? [\"top\", \"bottom\", \"left\", \"right\"] : handles.split(\" \");\r\n each(directions, (index, handleName) => {\r\n this._renderHandle(handleName)\r\n });\r\n inArray(\"bottom\", directions) + 1 && inArray(\"right\", directions) + 1 && this._renderHandle(\"corner-bottom-right\");\r\n inArray(\"bottom\", directions) + 1 && inArray(\"left\", directions) + 1 && this._renderHandle(\"corner-bottom-left\");\r\n inArray(\"top\", directions) + 1 && inArray(\"right\", directions) + 1 && this._renderHandle(\"corner-top-right\");\r\n inArray(\"top\", directions) + 1 && inArray(\"left\", directions) + 1 && this._renderHandle(\"corner-top-left\");\r\n this._attachEventHandlers()\r\n },\r\n _renderHandle: function(handleName) {\r\n var $handle = $(\"
\").addClass(RESIZABLE_HANDLE_CLASS).addClass(RESIZABLE_HANDLE_CLASS + \"-\" + handleName).appendTo(this.$element());\r\n this._handles.push($handle)\r\n },\r\n _attachEventHandlers: function() {\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n var handlers = {};\r\n handlers[DRAGSTART_START_EVENT_NAME] = this._dragStartHandler.bind(this);\r\n handlers[DRAGSTART_EVENT_NAME] = this._dragHandler.bind(this);\r\n handlers[DRAGSTART_END_EVENT_NAME] = this._dragEndHandler.bind(this);\r\n this._handles.forEach(handleElement => {\r\n eventsEngine.on(handleElement, handlers, {\r\n direction: \"both\",\r\n immediate: true\r\n })\r\n })\r\n },\r\n _detachEventHandlers: function() {\r\n this._handles.forEach(handleElement => {\r\n eventsEngine.off(handleElement)\r\n })\r\n },\r\n _toggleEventHandlers: function(shouldAttachEvents) {\r\n shouldAttachEvents ? this._attachEventHandlers() : this._detachEventHandlers()\r\n },\r\n _dragStartHandler: function(e) {\r\n var $element = this.$element();\r\n if ($element.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n e.cancel = true;\r\n return\r\n }\r\n this._toggleResizingClass(true);\r\n this._movingSides = this._getMovingSides(e);\r\n this._elementLocation = locate($element);\r\n var elementRect = getBoundingRect($element.get(0));\r\n this._elementSize = {\r\n width: elementRect.width,\r\n height: elementRect.height\r\n };\r\n this._renderDragOffsets(e);\r\n this._resizeStartAction({\r\n event: e,\r\n width: this._elementSize.width,\r\n height: this._elementSize.height,\r\n handles: this._movingSides\r\n });\r\n e.targetElements = null\r\n },\r\n _toggleResizingClass: function(value) {\r\n this.$element().toggleClass(RESIZABLE_RESIZING_CLASS, value)\r\n },\r\n _renderDragOffsets: function(e) {\r\n var area = this._getArea();\r\n if (!area) {\r\n return\r\n }\r\n var $handle = $(e.target).closest(\".\" + RESIZABLE_HANDLE_CLASS);\r\n var handleWidth = $handle.outerWidth();\r\n var handleHeight = $handle.outerHeight();\r\n var handleOffset = $handle.offset();\r\n var areaOffset = area.offset;\r\n var scrollOffset = this._getAreaScrollOffset();\r\n e.maxLeftOffset = handleOffset.left - areaOffset.left - scrollOffset.scrollX;\r\n e.maxRightOffset = areaOffset.left + area.width - handleOffset.left - handleWidth + scrollOffset.scrollX;\r\n e.maxTopOffset = handleOffset.top - areaOffset.top - scrollOffset.scrollY;\r\n e.maxBottomOffset = areaOffset.top + area.height - handleOffset.top - handleHeight + scrollOffset.scrollY\r\n },\r\n _getBorderWidth: function($element, direction) {\r\n if (isWindow($element.get(0))) {\r\n return 0\r\n }\r\n var borderWidth = $element.css(SIDE_BORDER_WIDTH_STYLES[direction]);\r\n return parseInt(borderWidth) || 0\r\n },\r\n _dragHandler: function(e) {\r\n var $element = this.$element();\r\n var sides = this._movingSides;\r\n var location = this._elementLocation;\r\n var size = this._elementSize;\r\n var offset = this._getOffset(e);\r\n var width = size.width + offset.x * (sides.left ? -1 : 1);\r\n var height = size.height + offset.y * (sides.top ? -1 : 1);\r\n if (offset.x || \"strict\" === this.option(\"stepPrecision\")) {\r\n this._renderWidth(width)\r\n }\r\n if (offset.y || \"strict\" === this.option(\"stepPrecision\")) {\r\n this._renderHeight(height)\r\n }\r\n var elementRect = getBoundingRect($element.get(0));\r\n var offsetTop = offset.y - ((elementRect.height || height) - height);\r\n var offsetLeft = offset.x - ((elementRect.width || width) - width);\r\n move($element, {\r\n top: location.top + (sides.top ? offsetTop : 0),\r\n left: location.left + (sides.left ? offsetLeft : 0)\r\n });\r\n this._resizeAction({\r\n event: e,\r\n width: this.option(\"width\") || width,\r\n height: this.option(\"height\") || height,\r\n handles: this._movingSides\r\n });\r\n triggerResizeEvent($element)\r\n },\r\n _getOffset: function(e) {\r\n var offset = e.offset;\r\n var steps = pairToObject(this.option(\"step\"), !this.option(\"roundStepValue\"));\r\n var sides = this._getMovingSides(e);\r\n var strictPrecision = \"strict\" === this.option(\"stepPrecision\");\r\n if (!sides.left && !sides.right) {\r\n offset.x = 0\r\n }\r\n if (!sides.top && !sides.bottom) {\r\n offset.y = 0\r\n }\r\n return strictPrecision ? this._getStrictOffset(offset, steps, sides) : this._getSimpleOffset(offset, steps)\r\n },\r\n _getSimpleOffset: function(offset, steps) {\r\n return {\r\n x: offset.x - offset.x % steps.h,\r\n y: offset.y - offset.y % steps.v\r\n }\r\n },\r\n _getStrictOffset: function(offset, steps, sides) {\r\n var location = this._elementLocation;\r\n var size = this._elementSize;\r\n var xPos = sides.left ? location.left : location.left + size.width;\r\n var yPos = sides.top ? location.top : location.top + size.height;\r\n var newXShift = (xPos + offset.x) % steps.h;\r\n var newYShift = (yPos + offset.y) % steps.v;\r\n var sign = Math.sign || (x => {\r\n x = +x;\r\n if (0 === x || isNaN(x)) {\r\n return x\r\n }\r\n return x > 0 ? 1 : -1\r\n });\r\n var separatorOffset = (steps, offset) => (1 + .2 * sign(offset)) % 1 * steps;\r\n var isSmallOffset = (offset, steps) => Math.abs(offset) < .2 * steps;\r\n var newOffsetX = offset.x - newXShift;\r\n var newOffsetY = offset.y - newYShift;\r\n if (newXShift > separatorOffset(steps.h, offset.x)) {\r\n newOffsetX += steps.h\r\n }\r\n if (newYShift > separatorOffset(steps.v, offset.y)) {\r\n newOffsetY += steps.v\r\n }\r\n return {\r\n x: (sides.left || sides.right) && !isSmallOffset(offset.x, steps.h) ? newOffsetX : 0,\r\n y: (sides.top || sides.bottom) && !isSmallOffset(offset.y, steps.v) ? newOffsetY : 0\r\n }\r\n },\r\n _getMovingSides: function(e) {\r\n var $target = $(e.target);\r\n var hasCornerTopLeftClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-top-left\");\r\n var hasCornerTopRightClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-top-right\");\r\n var hasCornerBottomLeftClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-bottom-left\");\r\n var hasCornerBottomRightClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-bottom-right\");\r\n return {\r\n top: $target.hasClass(RESIZABLE_HANDLE_TOP_CLASS) || hasCornerTopLeftClass || hasCornerTopRightClass,\r\n left: $target.hasClass(RESIZABLE_HANDLE_LEFT_CLASS) || hasCornerTopLeftClass || hasCornerBottomLeftClass,\r\n bottom: $target.hasClass(RESIZABLE_HANDLE_BOTTOM_CLASS) || hasCornerBottomLeftClass || hasCornerBottomRightClass,\r\n right: $target.hasClass(RESIZABLE_HANDLE_RIGHT_CLASS) || hasCornerTopRightClass || hasCornerBottomRightClass\r\n }\r\n },\r\n _getArea: function() {\r\n var area = this.option(\"area\");\r\n if (isFunction(area)) {\r\n area = area.call(this)\r\n }\r\n if (isPlainObject(area)) {\r\n return this._getAreaFromObject(area)\r\n }\r\n return this._getAreaFromElement(area)\r\n },\r\n _getAreaScrollOffset: function() {\r\n var area = this.option(\"area\");\r\n var isElement = !isFunction(area) && !isPlainObject(area);\r\n var scrollOffset = {\r\n scrollY: 0,\r\n scrollX: 0\r\n };\r\n if (isElement) {\r\n var areaElement = $(area)[0];\r\n if (isWindow(areaElement)) {\r\n scrollOffset.scrollX = areaElement.pageXOffset;\r\n scrollOffset.scrollY = areaElement.pageYOffset\r\n }\r\n }\r\n return scrollOffset\r\n },\r\n _getAreaFromObject: function(area) {\r\n var result = {\r\n width: area.right - area.left,\r\n height: area.bottom - area.top,\r\n offset: {\r\n left: area.left,\r\n top: area.top\r\n }\r\n };\r\n this._correctAreaGeometry(result);\r\n return result\r\n },\r\n _getAreaFromElement: function(area) {\r\n var $area = $(area);\r\n var result;\r\n if ($area.length) {\r\n result = {\r\n width: $area.innerWidth(),\r\n height: $area.innerHeight(),\r\n offset: extend({\r\n top: 0,\r\n left: 0\r\n }, isWindow($area[0]) ? {} : $area.offset())\r\n };\r\n this._correctAreaGeometry(result, $area)\r\n }\r\n return result\r\n },\r\n _correctAreaGeometry: function(result, $area) {\r\n var areaBorderLeft = $area ? this._getBorderWidth($area, \"left\") : 0;\r\n var areaBorderTop = $area ? this._getBorderWidth($area, \"top\") : 0;\r\n result.offset.left += areaBorderLeft + this._getBorderWidth(this.$element(), \"left\");\r\n result.offset.top += areaBorderTop + this._getBorderWidth(this.$element(), \"top\");\r\n result.width -= this.$element().outerWidth() - this.$element().innerWidth();\r\n result.height -= this.$element().outerHeight() - this.$element().innerHeight()\r\n },\r\n _dragEndHandler: function(e) {\r\n var $element = this.$element();\r\n this._resizeEndAction({\r\n event: e,\r\n width: $element.outerWidth(),\r\n height: $element.outerHeight(),\r\n handles: this._movingSides\r\n });\r\n this._toggleResizingClass(false)\r\n },\r\n _renderWidth: function(width) {\r\n this.option(\"width\", fitIntoRange(width, this.option(\"minWidth\"), this.option(\"maxWidth\")))\r\n },\r\n _renderHeight: function(height) {\r\n this.option(\"height\", fitIntoRange(height, this.option(\"minHeight\"), this.option(\"maxHeight\")))\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"disabled\":\r\n this._toggleEventHandlers(!args.value);\r\n this.callBase(args);\r\n break;\r\n case \"handles\":\r\n this._invalidate();\r\n break;\r\n case \"minWidth\":\r\n case \"maxWidth\":\r\n hasWindow() && this._renderWidth(this.$element().outerWidth());\r\n break;\r\n case \"minHeight\":\r\n case \"maxHeight\":\r\n hasWindow() && this._renderHeight(this.$element().outerHeight());\r\n break;\r\n case \"onResize\":\r\n case \"onResizeStart\":\r\n case \"onResizeEnd\":\r\n this._renderActions();\r\n break;\r\n case \"area\":\r\n case \"stepPrecision\":\r\n case \"step\":\r\n case \"roundStepValue\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean: function() {\r\n this.$element().find(\".\" + RESIZABLE_HANDLE_CLASS).remove()\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\nregisterComponent(RESIZABLE, Resizable);\r\nexport default Resizable;\r\n","/**\r\n * DevExtreme (esm/ui/widget/swatch_container.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/ui/overlay/z_index.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 clearStack = () => {\r\n zIndexStack = []\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/overlay/ui.overlay.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport fx from \"../../animation/fx\";\r\nimport positionUtils from \"../../animation/position\";\r\nimport {\r\n locate,\r\n move,\r\n resetPosition\r\n} from \"../../animation/translator\";\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 inArray\r\n} from \"../../core/utils/array\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n contains,\r\n resetActiveElement\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n fitIntoRange\r\n} from \"../../core/utils/math\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nimport {\r\n isString,\r\n isDefined,\r\n isFunction,\r\n isPlainObject,\r\n isWindow,\r\n isEvent\r\n} from \"../../core/utils/type\";\r\nimport {\r\n changeCallback,\r\n originalViewPort,\r\n value as viewPort\r\n} from \"../../core/utils/view_port\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n start as dragEventStart,\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 Resizable from \"../resizable\";\r\nimport {\r\n tabbable\r\n} from \"../widget/selectors\";\r\nimport swatch from \"../widget/swatch_container\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport * as zIndexPool from \"./z_index\";\r\nvar ready = readyCallbacks.add;\r\nvar window = getWindow();\r\nvar viewPortChanged = changeCallback;\r\nvar OVERLAY_CLASS = \"dx-overlay\";\r\nvar OVERLAY_WRAPPER_CLASS = \"dx-overlay-wrapper\";\r\nvar OVERLAY_CONTENT_CLASS = \"dx-overlay-content\";\r\nvar OVERLAY_SHADER_CLASS = \"dx-overlay-shader\";\r\nvar OVERLAY_MODAL_CLASS = \"dx-overlay-modal\";\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 ACTIONS = [\"onShowing\", \"onShown\", \"onHiding\", \"onHidden\", \"onPositioned\", \"onResizeStart\", \"onResize\", \"onResizeEnd\"];\r\nvar OVERLAY_STACK = [];\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar PREVENT_SAFARI_SCROLLING_CLASS = \"dx-prevent-safari-scrolling\";\r\nvar TAB_KEY = \"tab\";\r\nvar 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 realDevice = devices.real();\r\nvar firefoxDesktop = browser.mozilla && \"desktop\" === realDevice.deviceType;\r\nvar iOS = \"ios\" === realDevice.platform;\r\nvar hasSafariAddressBar = browser.safari && \"desktop\" !== realDevice.deviceType;\r\nvar forceRepaint = $element => {\r\n if (firefoxDesktop) {\r\n $element.width()\r\n }\r\n};\r\nvar getElement = value => {\r\n if (isEvent(value)) {\r\n value = value.target\r\n }\r\n return $(value)\r\n};\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 var move = function(top, left, e) {\r\n if (!this.option(\"dragEnabled\")) {\r\n return\r\n }\r\n e.preventDefault();\r\n e.stopPropagation();\r\n var allowedOffsets = this._allowedOffsets();\r\n var offset = {\r\n top: fitIntoRange(top, -allowedOffsets.top, allowedOffsets.bottom),\r\n left: fitIntoRange(left, -allowedOffsets.left, allowedOffsets.right)\r\n };\r\n this._changePosition(offset)\r\n };\r\n return extend(this.callBase(), {\r\n escape: function() {\r\n this.hide()\r\n },\r\n upArrow: move.bind(this, -5, 0),\r\n downArrow: move.bind(this, 5, 0),\r\n leftArrow: move.bind(this, 0, -5),\r\n rightArrow: move.bind(this, 0, 5)\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 position: {\r\n my: \"center\",\r\n at: \"center\"\r\n },\r\n width: function() {\r\n return .8 * $(window).width()\r\n },\r\n minWidth: null,\r\n maxWidth: null,\r\n height: function() {\r\n return .8 * $(window).height()\r\n },\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 onShowing: null,\r\n onShown: null,\r\n onHiding: null,\r\n onHidden: null,\r\n contentTemplate: \"content\",\r\n dragEnabled: false,\r\n resizeEnabled: false,\r\n onResizeStart: null,\r\n onResize: null,\r\n onResizeEnd: null,\r\n innerOverlay: false,\r\n target: void 0,\r\n container: void 0,\r\n hideTopOverlayHandler: () => {\r\n this.hide()\r\n },\r\n closeOnTargetScroll: false,\r\n onPositioned: null,\r\n boundaryOffset: {\r\n h: 0,\r\n v: 0\r\n },\r\n propagateOutsideClick: false,\r\n ignoreChildEvents: true,\r\n _checkParentVisibility: true,\r\n _fixedPosition: 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 _init: function() {\r\n this.callBase();\r\n this._initActions();\r\n this._initCloseOnOutsideClickHandler();\r\n this._initTabTerminatorHandler();\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 this._$wrapper.addClass($element.attr(\"class\"));\r\n $element.addClass(OVERLAY_CLASS);\r\n this._$wrapper.attr(\"data-bind\", \"dxControlsDescendantBindings: true\");\r\n eventsEngine.on(this._$wrapper, \"MSPointerDown\", noop);\r\n eventsEngine.on(this._$wrapper, \"focusin\", e => {\r\n e.stopPropagation()\r\n });\r\n this._toggleViewPortSubscription(true);\r\n this._initHideTopOverlayHandler(this.option(\"hideTopOverlayHandler\"))\r\n },\r\n _initOptions: function(options) {\r\n this._initTarget(options.target);\r\n var container = void 0 === options.container ? this.option(\"container\") : options.container;\r\n this._initContainer(container);\r\n this.callBase(options)\r\n },\r\n _initInnerOverlayClass: function() {\r\n this._$content.toggleClass(INNER_OVERLAY_CLASS, this.option(\"innerOverlay\"))\r\n },\r\n _initTarget: function(target) {\r\n if (!isDefined(target)) {\r\n return\r\n }\r\n var options = this.option();\r\n each([\"position.of\", \"animation.show.from.position.of\", \"animation.show.to.position.of\", \"animation.hide.from.position.of\", \"animation.hide.to.position.of\"], (_, path) => {\r\n var pathParts = path.split(\".\");\r\n var option = options;\r\n while (option) {\r\n if (1 === pathParts.length) {\r\n if (isPlainObject(option)) {\r\n option[pathParts.shift()] = target\r\n }\r\n break\r\n } else {\r\n option = option[pathParts.shift()]\r\n }\r\n }\r\n })\r\n },\r\n _initContainer: function(container) {\r\n container = void 0 === container ? viewPort() : container;\r\n var $element = this.$element();\r\n var $container = $element.closest(container);\r\n if (!$container.length) {\r\n $container = $(container).first()\r\n }\r\n this._$container = $container.length ? $container : $element.parent()\r\n },\r\n _initHideTopOverlayHandler: function(handler) {\r\n this._hideTopOverlayHandler = handler\r\n },\r\n _initActions: function() {\r\n this._actions = {};\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 _initCloseOnOutsideClickHandler: function() {\r\n var that = this;\r\n this._proxiedDocumentDownHandler = function() {\r\n return that._documentDownHandler(...arguments)\r\n }\r\n },\r\n _documentDownHandler: function(e) {\r\n if (this._showAnimationProcessing) {\r\n this._stopAnimation()\r\n }\r\n var closeOnOutsideClick = this.option(\"closeOnOutsideClick\");\r\n if (isFunction(closeOnOutsideClick)) {\r\n closeOnOutsideClick = closeOnOutsideClick(e)\r\n }\r\n var $container = this._$content;\r\n var isAttachedTarget = $(window.document).is(e.target) || contains(window.document, e.target);\r\n var isInnerOverlay = $(e.target).closest(\".\" + INNER_OVERLAY_CLASS).length;\r\n var outsideClick = isAttachedTarget && !isInnerOverlay && !($container.is(e.target) || contains($container.get(0), e.target));\r\n if (outsideClick && closeOnOutsideClick) {\r\n this._outsideClickHandler(e)\r\n }\r\n return this.option(\"propagateOutsideClick\")\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 viewPortChanged.remove(this._viewPortChangeHandle);\r\n if (toggle) {\r\n this._viewPortChangeHandle = this._viewPortChangeHandler.bind(this);\r\n viewPortChanged.add(this._viewPortChangeHandle)\r\n }\r\n },\r\n _viewPortChangeHandler: function() {\r\n this._initContainer(this.option(\"container\"));\r\n this._refresh()\r\n },\r\n _renderVisibilityAnimate: function(visible) {\r\n this._stopAnimation();\r\n return visible ? this._show() : this._hide()\r\n },\r\n _normalizePosition: function() {\r\n var position = this.option(\"position\");\r\n this._position = \"function\" === typeof position ? position() : position\r\n },\r\n _getAnimationConfig: function() {\r\n var animation = this.option(\"animation\");\r\n if (isFunction(animation)) {\r\n animation = animation.call(this)\r\n }\r\n return animation\r\n },\r\n _show: function() {\r\n var that = this;\r\n var deferred = new Deferred;\r\n this._parentHidden = this._isParentHidden();\r\n deferred.done(() => {\r\n delete that._parentHidden\r\n });\r\n if (this._parentHidden) {\r\n this._isHidden = true;\r\n return deferred.resolve()\r\n }\r\n if (this._currentVisible) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n this._currentVisible = true;\r\n this._isShown = false;\r\n this._normalizePosition();\r\n var animation = that._getAnimationConfig() || {};\r\n var showAnimation = this._normalizeAnimation(animation.show, \"to\");\r\n var startShowAnimation = showAnimation && showAnimation.start || noop;\r\n var completeShowAnimation = showAnimation && showAnimation.complete || noop;\r\n if (this._isHidingActionCanceled) {\r\n delete this._isHidingActionCanceled;\r\n deferred.resolve()\r\n } else {\r\n var show = () => {\r\n this._renderVisibility(true);\r\n if (this._isShowingActionCanceled) {\r\n delete this._isShowingActionCanceled;\r\n deferred.resolve();\r\n return\r\n }\r\n this._animate(showAnimation, (function() {\r\n if (that.option(\"focusStateEnabled\")) {\r\n eventsEngine.trigger(that._focusTarget(), \"focus\")\r\n }\r\n completeShowAnimation.apply(this, arguments);\r\n that._showAnimationProcessing = false;\r\n that._isShown = true;\r\n that._actions.onShown();\r\n that._toggleSafariScrolling(false);\r\n deferred.resolve()\r\n }), (function() {\r\n startShowAnimation.apply(this, arguments);\r\n that._showAnimationProcessing = true\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 deferred.promise()\r\n },\r\n _normalizeAnimation: function(animation, prop) {\r\n if (animation) {\r\n animation = extend({\r\n type: \"slide\",\r\n skipElementInitialStyles: true\r\n }, animation);\r\n if (animation[prop] && \"object\" === typeof animation[prop]) {\r\n extend(animation[prop], {\r\n position: this._position\r\n })\r\n }\r\n }\r\n return animation\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 var that = this;\r\n var deferred = new Deferred;\r\n var animation = that._getAnimationConfig() || {};\r\n var hideAnimation = this._normalizeAnimation(animation.hide, \"from\");\r\n var startHideAnimation = hideAnimation && hideAnimation.start || noop;\r\n var completeHideAnimation = hideAnimation && hideAnimation.complete || noop;\r\n var hidingArgs = {\r\n cancel: false\r\n };\r\n if (this._isShowingActionCanceled) {\r\n deferred.resolve()\r\n } else {\r\n this._actions.onHiding(hidingArgs);\r\n that._toggleSafariScrolling(true);\r\n if (hidingArgs.cancel) {\r\n this._isHidingActionCanceled = true;\r\n this.option(\"visible\", true);\r\n deferred.resolve()\r\n } else {\r\n this._forceFocusLost();\r\n this._toggleShading(false);\r\n this._toggleSubscriptions(false);\r\n this._stopShowTimer();\r\n this._animate(hideAnimation, (function() {\r\n var _that$_actions;\r\n that._$content.css(\"pointerEvents\", \"\");\r\n that._renderVisibility(false);\r\n completeHideAnimation.apply(this, arguments);\r\n that._hideAnimationProcessing = false;\r\n null === (_that$_actions = that._actions) || void 0 === _that$_actions ? void 0 : _that$_actions.onHidden();\r\n deferred.resolve()\r\n }), (function() {\r\n that._$content.css(\"pointerEvents\", \"none\");\r\n startHideAnimation.apply(this, arguments);\r\n that._hideAnimationProcessing = true\r\n }))\r\n }\r\n }\r\n return deferred.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 this._toggleVisibility(visible);\r\n this._$content.toggleClass(INVISIBLE_STATE_CLASS, !visible);\r\n this._updateZIndexStackPosition(visible);\r\n if (visible) {\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 this._toggleVisibility(false);\r\n this._$content.toggleClass(INVISIBLE_STATE_CLASS, true);\r\n this._updateZIndexStackPosition(false);\r\n this._moveFromContainer();\r\n this._isShowingActionCanceled = true;\r\n this.option(\"visible\", false);\r\n return\r\n }\r\n this._moveToContainer();\r\n this._renderGeometry();\r\n triggerShownEvent(this._$content);\r\n triggerResizeEvent(this._$content)\r\n } else {\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 = inArray(this, overlayStack);\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_MODAL_CLASS, this.option(\"shading\") && !this.option(\"container\"));\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 that = this;\r\n this._proxiedTabTerminatorHandler = function() {\r\n that._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._toggleParentsScrollSubscription(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 _toggleParentsScrollSubscription: function(subscribe) {\r\n if (!this._position) {\r\n return\r\n }\r\n var target = this._position.of || $();\r\n var closeOnScroll = this.option(\"closeOnTargetScroll\");\r\n var $parents = getElement(target).parents();\r\n var scrollEvent = addNamespace(\"scroll\", this.NAME);\r\n if (\"desktop\" === devices.real().deviceType) {\r\n $parents = $parents.add(window)\r\n }\r\n this._proxiedTargetParentsScrollHandler = this._proxiedTargetParentsScrollHandler || (e => {\r\n this._targetParentsScrollHandler(e)\r\n });\r\n eventsEngine.off($().add(this._$prevTargetParents), scrollEvent, this._proxiedTargetParentsScrollHandler);\r\n if (subscribe && closeOnScroll) {\r\n eventsEngine.on($parents, scrollEvent, this._proxiedTargetParentsScrollHandler);\r\n this._$prevTargetParents = $parents\r\n }\r\n },\r\n _targetParentsScrollHandler: function(e) {\r\n var closeHandled = false;\r\n var closeOnScroll = this.option(\"closeOnTargetScroll\");\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 _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._renderDrag();\r\n this._renderResize();\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 _renderDrag: function() {\r\n var $dragTarget = this._getDragTarget();\r\n if (!$dragTarget) {\r\n return\r\n }\r\n var startEventName = addNamespace(dragEventStart, this.NAME);\r\n var updateEventName = addNamespace(dragEventMove, this.NAME);\r\n eventsEngine.off($dragTarget, startEventName);\r\n eventsEngine.off($dragTarget, updateEventName);\r\n if (!this.option(\"dragEnabled\")) {\r\n return\r\n }\r\n eventsEngine.on($dragTarget, startEventName, this._dragStartHandler.bind(this));\r\n eventsEngine.on($dragTarget, updateEventName, this._dragUpdateHandler.bind(this))\r\n },\r\n _renderResize: function() {\r\n this._resizable = this._createComponent(this._$content, Resizable, {\r\n handles: this.option(\"resizeEnabled\") ? \"all\" : \"none\",\r\n onResizeEnd: this._resizeEndHandler.bind(this),\r\n onResize: this._actions.onResize.bind(this),\r\n onResizeStart: this._actions.onResizeStart.bind(this),\r\n minHeight: 100,\r\n minWidth: 100,\r\n area: this._getDragResizeContainer()\r\n })\r\n },\r\n _resizeEndHandler: function() {\r\n this._positionChangeHandled = true;\r\n var width = this._resizable.option(\"width\");\r\n var height = this._resizable.option(\"height\");\r\n width && this.option(\"width\", width);\r\n height && this.option(\"height\", height);\r\n this._actions.onResizeEnd()\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 _getDragTarget: function() {\r\n return this.$content()\r\n },\r\n _dragStartHandler: function(e) {\r\n e.targetElements = [];\r\n this._prevOffset = {\r\n x: 0,\r\n y: 0\r\n };\r\n var allowedOffsets = this._allowedOffsets();\r\n e.maxTopOffset = allowedOffsets.top;\r\n e.maxBottomOffset = allowedOffsets.bottom;\r\n e.maxLeftOffset = allowedOffsets.left;\r\n e.maxRightOffset = allowedOffsets.right\r\n },\r\n _getDragResizeContainer: function() {\r\n var isContainerDefined = originalViewPort().get(0) || this.option(\"container\");\r\n var $container = !isContainerDefined ? $(window) : this._$container;\r\n return $container\r\n },\r\n _deltaSize: function() {\r\n var $content = this._$content;\r\n var $container = this._getDragResizeContainer();\r\n var contentWidth = $content.outerWidth();\r\n var contentHeight = $content.outerHeight();\r\n var containerWidth = $container.outerWidth();\r\n var containerHeight = $container.outerHeight();\r\n if (this._isWindow($container)) {\r\n var document = domAdapter.getDocument();\r\n var fullPageHeight = Math.max($(document).outerHeight(), containerHeight);\r\n var fullPageWidth = Math.max($(document).outerWidth(), containerWidth);\r\n containerHeight = fullPageHeight;\r\n containerWidth = fullPageWidth\r\n }\r\n return {\r\n width: containerWidth - contentWidth,\r\n height: containerHeight - contentHeight\r\n }\r\n },\r\n _dragUpdateHandler: function(e) {\r\n var offset = e.offset;\r\n var prevOffset = this._prevOffset;\r\n var targetOffset = {\r\n top: offset.y - prevOffset.y,\r\n left: offset.x - prevOffset.x\r\n };\r\n this._changePosition(targetOffset);\r\n this._prevOffset = offset\r\n },\r\n _changePosition: function(offset) {\r\n var position = locate(this._$content);\r\n move(this._$content, {\r\n left: position.left + offset.left,\r\n top: position.top + offset.top\r\n });\r\n this._positionChangeHandled = true\r\n },\r\n _allowedOffsets: function() {\r\n var position = locate(this._$content);\r\n var deltaSize = this._deltaSize();\r\n var isAllowedDrag = deltaSize.height >= 0 && deltaSize.width >= 0;\r\n var shaderOffset = this.option(\"shading\") && !this.option(\"container\") && !this._isWindow(this._getContainer()) ? locate(this._$wrapper) : {\r\n top: 0,\r\n left: 0\r\n };\r\n var boundaryOffset = this.option(\"boundaryOffset\");\r\n return {\r\n top: isAllowedDrag ? position.top + shaderOffset.top + boundaryOffset.v : 0,\r\n bottom: isAllowedDrag ? -position.top - shaderOffset.top + deltaSize.height - boundaryOffset.v : 0,\r\n left: isAllowedDrag ? position.left + shaderOffset.left + boundaryOffset.h : 0,\r\n right: isAllowedDrag ? -position.left - shaderOffset.left + deltaSize.width - boundaryOffset.h : 0\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._attachWrapperToContainer();\r\n this._$content.appendTo(this._$wrapper)\r\n },\r\n _attachWrapperToContainer: function() {\r\n var $element = this.$element();\r\n var containerDefined = void 0 !== this.option(\"container\");\r\n var renderContainer = containerDefined ? this._$container : swatch.getSwatchContainer($element);\r\n if (renderContainer && renderContainer[0] === $element.parent()[0]) {\r\n renderContainer = $element\r\n }\r\n this._$wrapper.appendTo(renderContainer)\r\n },\r\n _fixHeightAfterSafariAddressBarResizing: function() {\r\n if (this._isWindow(this._getContainer()) && hasSafariAddressBar) {\r\n this._$wrapper.css(\"minHeight\", window.innerHeight)\r\n }\r\n },\r\n _renderGeometry: function(isDimensionChanged) {\r\n if (this.option(\"visible\") && hasWindow()) {\r\n this._renderGeometryImpl(isDimensionChanged)\r\n }\r\n },\r\n _renderGeometryImpl: function(isDimensionChanged) {\r\n this._stopAnimation();\r\n this._normalizePosition();\r\n this._renderWrapper();\r\n this._fixHeightAfterSafariAddressBarResizing();\r\n this._renderDimensions();\r\n var resultPosition = this._renderPosition();\r\n this._actions.onPositioned({\r\n position: resultPosition\r\n })\r\n },\r\n _fixWrapperPosition: function() {\r\n this._$wrapper.css(\"position\", this._useFixedPosition() ? \"fixed\" : \"absolute\")\r\n },\r\n _useFixedPosition: function() {\r\n return this._shouldFixBodyPosition() || this.option(\"_fixedPosition\")\r\n },\r\n _shouldFixBodyPosition: function() {\r\n var $container = this._getContainer();\r\n return this._isWindow($container) && (!iOS || void 0 !== this._bodyScrollTop)\r\n },\r\n _toggleSafariScrolling: function(scrollingEnabled) {\r\n if (iOS && this._shouldFixBodyPosition()) {\r\n var body = domAdapter.getBody();\r\n if (scrollingEnabled) {\r\n $(body).removeClass(PREVENT_SAFARI_SCROLLING_CLASS);\r\n window.scrollTo(0, this._bodyScrollTop);\r\n this._bodyScrollTop = void 0\r\n } else if (this.option(\"visible\")) {\r\n this._bodyScrollTop = window.pageYOffset;\r\n $(body).addClass(PREVENT_SAFARI_SCROLLING_CLASS)\r\n }\r\n }\r\n },\r\n _renderWrapper: function() {\r\n this._fixWrapperPosition();\r\n this._renderWrapperDimensions();\r\n this._renderWrapperPosition()\r\n },\r\n _renderWrapperDimensions: function() {\r\n var wrapperWidth;\r\n var wrapperHeight;\r\n var $container = this._getContainer();\r\n if (!$container) {\r\n return\r\n }\r\n var isWindow = this._isWindow($container);\r\n wrapperWidth = isWindow ? \"\" : $container.outerWidth(), wrapperHeight = isWindow ? \"\" : $container.outerHeight();\r\n this._$wrapper.css({\r\n width: wrapperWidth,\r\n height: wrapperHeight\r\n })\r\n },\r\n _isWindow: function($element) {\r\n return !!$element && isWindow($element.get(0))\r\n },\r\n _renderWrapperPosition: function() {\r\n var $container = this._getContainer();\r\n if ($container) {\r\n positionUtils.setup(this._$wrapper, {\r\n my: \"top left\",\r\n at: \"top left\",\r\n of: $container\r\n })\r\n }\r\n },\r\n _getContainer: function() {\r\n var position = this._position;\r\n var container = this.option(\"container\");\r\n var positionOf = null;\r\n if (!container && position) {\r\n positionOf = isEvent(position.of) ? window : position.of || window\r\n }\r\n return getElement(container || positionOf)\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 _renderPosition: function() {\r\n if (this._positionChangeHandled) {\r\n var allowedOffsets = this._allowedOffsets();\r\n this._changePosition({\r\n top: fitIntoRange(0, -allowedOffsets.top, allowedOffsets.bottom),\r\n left: fitIntoRange(0, -allowedOffsets.left, allowedOffsets.right)\r\n })\r\n } else {\r\n this._renderOverlayBoundaryOffset();\r\n resetPosition(this._$content);\r\n var position = this._transformStringPosition(this._position, POSITION_ALIASES);\r\n var resultPosition = positionUtils.setup(this._$content, position);\r\n forceRepaint(this._$content);\r\n return resultPosition\r\n }\r\n },\r\n _transformStringPosition: function(position, positionAliases) {\r\n if (isString(position)) {\r\n position = extend({}, positionAliases[position])\r\n }\r\n return position\r\n },\r\n _renderOverlayBoundaryOffset: function() {\r\n var boundaryOffset = this.option(\"boundaryOffset\");\r\n this._$content.css(\"margin\", boundaryOffset.v + \"px \" + boundaryOffset.h + \"px\")\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(true)\r\n },\r\n _clean: function() {\r\n if (!this._contentAlreadyRendered) {\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._toggleSafariScrolling(true);\r\n this._actions = null;\r\n this.callBase();\r\n zIndexPool.remove(this._zIndex);\r\n this._$wrapper.remove();\r\n this._$content.remove()\r\n },\r\n _toggleDisabledState: function(value) {\r\n this.callBase(...arguments);\r\n this._$content.toggleClass(DISABLED_STATE_CLASS, Boolean(value))\r\n },\r\n _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 (inArray(args.name, ACTIONS) > -1) {\r\n this._initActions();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"dragEnabled\":\r\n this._renderDrag();\r\n this._renderGeometry();\r\n break;\r\n case \"resizeEnabled\":\r\n this._renderResize();\r\n this._renderGeometry();\r\n break;\r\n case \"shading\":\r\n case \"shadingColor\":\r\n this._toggleShading(this.option(\"visible\"));\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n case \"minWidth\":\r\n case \"maxWidth\":\r\n case \"minHeight\":\r\n case \"maxHeight\":\r\n case \"boundaryOffset\":\r\n this._renderGeometry();\r\n break;\r\n case \"position\":\r\n this._positionChangeHandled = false;\r\n this._renderGeometry();\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 \"target\":\r\n this._initTarget(value);\r\n this._invalidate();\r\n break;\r\n case \"container\":\r\n this._initContainer(value);\r\n this._invalidate();\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 \"closeOnTargetScroll\":\r\n this._toggleParentsScrollSubscription(this.option(\"visible\"));\r\n break;\r\n case \"closeOnOutsideClick\":\r\n case \"animation\":\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 \"_fixedPosition\":\r\n this._fixWrapperPosition();\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._renderGeometry();\r\n triggerResizeEvent(this._$content)\r\n } else {\r\n this.callBase()\r\n }\r\n }\r\n});\r\nOverlay.baseZIndex = zIndex => zIndexPool.base(zIndex);\r\nregisterComponent(\"dxOverlay\", Overlay);\r\nexport default Overlay;\r\n","/**\r\n * DevExtreme (esm/ui/validation_message.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 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 closeOnOutsideClick: false,\r\n closeOnTargetScroll: 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 mode: \"auto\",\r\n validationErrors: void 0,\r\n positionRequest: void 0,\r\n describedElement: void 0,\r\n boundary: void 0,\r\n offset: {\r\n h: 0,\r\n v: 0\r\n }\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.$element().addClass(INVALID_MESSAGE);\r\n this.$wrapper().addClass(INVALID_MESSAGE);\r\n this._toggleModeClass();\r\n this._updateContentId()\r\n },\r\n _updateContentId() {\r\n var describedElement = this.option(\"describedElement\") || this.option(\"container\");\r\n var contentId = $(describedElement).attr(\"aria-describedby\");\r\n this.$content().addClass(INVALID_MESSAGE_CONTENT).attr(\"id\", contentId)\r\n },\r\n _renderInnerHtml(element) {\r\n var $element = element && $(element);\r\n var validationErrors = this.option(\"validationErrors\") || [];\r\n var validationErrorMessage = \"\";\r\n validationErrors.forEach(err => {\r\n var separator = validationErrorMessage ? \"
\" : \"\";\r\n validationErrorMessage += separator + encodeHtml((null === err || void 0 === err ? void 0 : err.message) || \"\")\r\n });\r\n null === $element || void 0 === $element ? void 0 : $element.html(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$outerWidth;\r\n var target = this.option(\"target\");\r\n var targetWidth = (null === target || void 0 === target ? void 0 : null === (_target$outerWidth = target.outerWidth) || void 0 === _target$outerWidth ? void 0 : _target$outerWidth.call(target)) || $(target).outerWidth();\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.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 \"validationErrors\":\r\n this._renderInnerHtml(this.$content());\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxValidationMessage\", ValidationMessage);\r\nexport default ValidationMessage;\r\n","/**\r\n * DevExtreme (esm/ui/editor/editor.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 this._toggleReadOnlyState();\r\n this._setSubmitElementName(this.option(\"name\"));\r\n this.callBase();\r\n this._renderValidationState()\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 this.setAria(\"describedby\", \"dx-\" + new Guid);\r\n this._validationMessage = new ValidationMessage(this._$validationMessage, extend({\r\n validationErrors: validationErrors,\r\n rtlEnabled: rtlEnabled,\r\n target: this._getValidationMessageTarget(),\r\n container: $element,\r\n mode: validationMessageMode,\r\n positionRequest: \"below\",\r\n offset: validationMessageOffset,\r\n boundary: validationBoundary,\r\n describedElement: this._focusTarget()\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/ui/text_box/texteditor_button_collection/button.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nexport default class TextEditorButton {\r\n constructor(name, editor, options) {\r\n this.instance = null;\r\n this.$container = null;\r\n this.$placeMarker = null;\r\n this.editor = editor;\r\n this.name = name;\r\n this.options = options || {}\r\n }\r\n _addPlaceMarker($container) {\r\n this.$placeMarker = $(\"
\").appendTo($container)\r\n }\r\n _addToContainer($element) {\r\n var {\r\n $placeMarker: $placeMarker,\r\n $container: $container\r\n } = this;\r\n $placeMarker ? $placeMarker.replaceWith($element) : $element.appendTo($container)\r\n }\r\n _attachEvents() {\r\n throw \"Not implemented\"\r\n }\r\n _create() {\r\n throw \"Not implemented\"\r\n }\r\n _isRendered() {\r\n return !!this.instance\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor,\r\n options: options\r\n } = this;\r\n return options.visible || !editor.option(\"readOnly\")\r\n }\r\n _isDisabled() {\r\n throw \"Not implemented\"\r\n }\r\n _shouldRender() {\r\n return this._isVisible() && !this._isRendered()\r\n }\r\n dispose() {\r\n var {\r\n instance: instance,\r\n $placeMarker: $placeMarker\r\n } = this;\r\n if (instance) {\r\n instance.dispose ? instance.dispose() : instance.remove();\r\n this.instance = null\r\n }\r\n $placeMarker && $placeMarker.remove()\r\n }\r\n render() {\r\n var $container = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.$container;\r\n this.$container = $container;\r\n if (this._isVisible()) {\r\n var {\r\n instance: instance,\r\n $element: $element\r\n } = this._create();\r\n this.instance = instance;\r\n this._attachEvents(instance, $element)\r\n } else {\r\n this._addPlaceMarker($container)\r\n }\r\n }\r\n update() {\r\n if (this._shouldRender()) {\r\n this.render()\r\n }\r\n return !!this.instance\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.clear.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/widget/utils.ink_ripple.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 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 = element.outerWidth();\r\n var elementHeight = element.outerHeight();\r\n var elementDiagonal = parseInt(Math.sqrt(elementWidth * elementWidth + elementHeight * elementHeight));\r\n var waveSize = Math.min(MAX_WAVE_SIZE, parseInt(elementDiagonal * args.waveSizeCoefficient));\r\n var left;\r\n var top;\r\n if (args.isCentered) {\r\n left = (elementWidth - waveSize) / 2;\r\n top = (elementHeight - waveSize) / 2\r\n } else {\r\n var event = config.event;\r\n var position = element.offset();\r\n var x = event.pageX - position.left;\r\n var y = event.pageY - position.top;\r\n left = x - waveSize / 2;\r\n top = y - waveSize / 2\r\n }\r\n return {\r\n left: left,\r\n top: top,\r\n height: waveSize,\r\n width: waveSize\r\n }\r\n};\r\nexport function showWave(args, config) {\r\n var $wave = getWaves(config.element, args.wavesNumber).eq(config.wave || DEFAULT_WAVE_INDEX);\r\n args.hidingTimeout && clearTimeout(args.hidingTimeout);\r\n hideSelectedWave($wave);\r\n $wave.css(getWaveStyleConfig(args, config));\r\n args.showingTimeout = setTimeout(showingWaveHandler.bind(this, args, $wave), 0)\r\n}\r\n\r\nfunction showingWaveHandler(args, $wave) {\r\n var durationCss = args.durations.showingScale + \"ms\";\r\n $wave.addClass(INKRIPPLE_SHOWING_CLASS).css(\"transitionDuration\", durationCss)\r\n}\r\n\r\nfunction getDurations(useHoldAnimation) {\r\n return {\r\n showingScale: useHoldAnimation ? HOLD_ANIMATION_DURATION : ANIMATION_DURATION,\r\n hidingScale: ANIMATION_DURATION,\r\n hidingOpacity: ANIMATION_DURATION\r\n }\r\n}\r\n\r\nfunction hideSelectedWave($wave) {\r\n $wave.removeClass(INKRIPPLE_HIDING_CLASS).css(\"transitionDuration\", \"\")\r\n}\r\nexport function hideWave(args, config) {\r\n args.showingTimeout && clearTimeout(args.showingTimeout);\r\n var $wave = getWaves(config.element, config.wavesNumber).eq(config.wave || DEFAULT_WAVE_INDEX);\r\n var durations = args.durations;\r\n var durationCss = durations.hidingScale + \"ms, \" + durations.hidingOpacity + \"ms\";\r\n $wave.addClass(INKRIPPLE_HIDING_CLASS).removeClass(INKRIPPLE_SHOWING_CLASS).css(\"transitionDuration\", durationCss);\r\n var animationDuration = Math.max(durations.hidingScale, durations.hidingOpacity);\r\n args.hidingTimeout = setTimeout(hideSelectedWave.bind(this, $wave), animationDuration)\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/icon.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nvar ICON_CLASS = \"dx-icon\";\r\nvar SVG_ICON_CLASS = \"dx-svg-icon\";\r\nexport var getImageSourceType = source => {\r\n if (!source || \"string\" !== typeof source) {\r\n return false\r\n }\r\n if (/^\\s*]*>(.|\\r?\\n)*?<\\/svg>\\s*$/i.test(source)) {\r\n return \"svg\"\r\n }\r\n if (/data:.*base64|\\.|[^<\\s]\\//.test(source)) {\r\n return \"image\"\r\n }\r\n if (/^[\\w-_]+$/.test(source)) {\r\n return \"dxIcon\"\r\n }\r\n if (/^\\s?([\\w-_]\\s?)+$/.test(source)) {\r\n return \"fontIcon\"\r\n }\r\n return false\r\n};\r\nexport var getImageContainer = source => {\r\n switch (getImageSourceType(source)) {\r\n case \"image\":\r\n return $(\"\").attr(\"src\", source).addClass(ICON_CLASS);\r\n case \"fontIcon\":\r\n return $(\"\").addClass(\"\".concat(ICON_CLASS, \" \").concat(source));\r\n case \"dxIcon\":\r\n return $(\"\").addClass(\"\".concat(ICON_CLASS, \" \").concat(ICON_CLASS, \"-\").concat(source));\r\n case \"svg\":\r\n return $(\"\").addClass(\"\".concat(ICON_CLASS, \" \").concat(SVG_ICON_CLASS)).append(source);\r\n default:\r\n return null\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/button.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport devices from \"../core/devices\";\r\nimport {\r\n render\r\n} from \"./widget/utils.ink_ripple\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n isMaterial,\r\n current\r\n} from \"./themes\";\r\nimport Action from \"../core/action\";\r\nimport ValidationEngine from \"./validation_engine\";\r\nimport Widget from \"./widget/ui.widget\";\r\nimport {\r\n active as activeEvents,\r\n click as clickEvent,\r\n dxClick as dxClickEvent\r\n} from \"../events/short\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n FunctionTemplate\r\n} from \"../core/templates/function_template\";\r\nimport {\r\n getImageContainer,\r\n getImageSourceType\r\n} from \"../core/utils/icon\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nvar ANONYMOUS_TEMPLATE_NAME = \"content\";\r\nclass Button extends Widget {\r\n constructor() {\r\n super(...arguments);\r\n this._feedbackHideTimeout = 100\r\n }\r\n _$content() {\r\n return this.$element().find(\".dx-button-content\")\r\n }\r\n _$submitInput() {\r\n return this.$element().find(\".dx-button-submit-input\")\r\n }\r\n _attachActiveEvents(active, inactive) {\r\n var $el = this._eventBindingTarget();\r\n var selector = this._activeStateUnit;\r\n activeEvents.off($el, {\r\n namespace: \"inkRipple\",\r\n selector: selector\r\n });\r\n activeEvents.on($el, new Action(active), new Action(inactive, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }), {\r\n showTimeout: this._feedbackShowTimeout,\r\n hideTimeout: this._feedbackHideTimeout,\r\n selector: selector,\r\n namespace: \"inkRipple\"\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: () => isMaterial(current()),\r\n options: {\r\n useInkRipple: true\r\n }\r\n }])\r\n }\r\n _executeClickAction(event) {\r\n this._clickAction({\r\n validationGroup: this._validationGroupConfig,\r\n event: event\r\n })\r\n }\r\n _findGroup() {\r\n var $element = this.$element();\r\n var model = this._modelByElement($element);\r\n var {\r\n validationGroup: validationGroup\r\n } = this.option();\r\n return validationGroup || ValidationEngine.findGroup($element, model)\r\n }\r\n _getContentData() {\r\n var {\r\n icon: icon,\r\n text: text,\r\n type: type,\r\n _templateData: _templateData\r\n } = this.option();\r\n return extend({\r\n icon: \"back\" === type && !icon ? \"back\" : icon,\r\n text: text\r\n }, _templateData)\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n hoverStateEnabled: true,\r\n onClick: null,\r\n type: \"normal\",\r\n text: \"\",\r\n icon: \"\",\r\n iconPosition: \"left\",\r\n validationGroup: void 0,\r\n activeStateEnabled: true,\r\n template: \"content\",\r\n useSubmitBehavior: false,\r\n useInkRipple: false,\r\n _templateData: {},\r\n stylingMode: \"contained\"\r\n })\r\n }\r\n _getSubmitAction() {\r\n var needValidate = true;\r\n var validationStatus = \"valid\";\r\n return this._createAction(_ref => {\r\n var {\r\n event: event\r\n } = _ref;\r\n if (needValidate) {\r\n var validationGroup = this._validationGroupConfig;\r\n if (validationGroup) {\r\n var {\r\n status: status,\r\n complete: complete\r\n } = validationGroup.validate();\r\n validationStatus = status;\r\n if (\"pending\" === status) {\r\n needValidate = false;\r\n this.option(\"disabled\", true);\r\n complete.then(_ref2 => {\r\n var {\r\n status: status\r\n } = _ref2;\r\n this.option(\"disabled\", false);\r\n validationStatus = status;\r\n \"valid\" === validationStatus && this._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 _initMarkup() {\r\n this.$element().addClass(\"dx-button\");\r\n this._renderType();\r\n this._renderStylingMode();\r\n this._renderInkRipple();\r\n this._renderClick();\r\n this._updateAriaLabel();\r\n super._initMarkup();\r\n this._updateContent();\r\n this.setAria(\"role\", \"button\")\r\n }\r\n _getAnonymousTemplateName() {\r\n return ANONYMOUS_TEMPLATE_NAME\r\n }\r\n _initTemplates() {\r\n this._templateManager.addDefaultTemplates({\r\n content: new FunctionTemplate(_ref3 => {\r\n var {\r\n model: model = {},\r\n container: container\r\n } = _ref3;\r\n var {\r\n text: text,\r\n icon: icon\r\n } = model;\r\n var {\r\n iconPosition: iconPosition\r\n } = this.option();\r\n var $icon = getImageContainer(icon);\r\n var $textContainer = text && $(\"\").text(text).addClass(\"dx-button-text\");\r\n var $container = $(container);\r\n $container.append($textContainer);\r\n if (\"left\" === iconPosition) {\r\n $container.prepend($icon)\r\n } else {\r\n $icon.addClass(\"dx-icon-right\");\r\n $container.append($icon)\r\n }\r\n })\r\n });\r\n super._initTemplates()\r\n }\r\n _optionChanged(args) {\r\n var {\r\n name: name\r\n } = args;\r\n switch (name) {\r\n case \"onClick\":\r\n this._updateClick();\r\n break;\r\n case \"icon\":\r\n case \"text\":\r\n this._updateContent();\r\n this._updateAriaLabel();\r\n break;\r\n case \"type\":\r\n this._updateType();\r\n this._updateContent();\r\n break;\r\n case \"_templateData\":\r\n break;\r\n case \"template\":\r\n case \"iconPosition\":\r\n this._updateContent();\r\n break;\r\n case \"stylingMode\":\r\n this._updateStylingMode();\r\n break;\r\n case \"useSubmitBehavior\":\r\n this._updateSubmitInput();\r\n break;\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _renderClick() {\r\n var $el = this.$element();\r\n dxClickEvent.off($el, {\r\n namespace: this.NAME\r\n });\r\n dxClickEvent.on($el, event => this._executeClickAction(event), {\r\n namespace: this.NAME\r\n });\r\n this._updateClick()\r\n }\r\n _renderInkRipple() {\r\n var {\r\n text: text,\r\n icon: icon,\r\n type: type,\r\n useInkRipple: useInkRipple\r\n } = this.option();\r\n if (useInkRipple) {\r\n var isOnlyIconButton = !text && icon || \"back\" === type;\r\n var _inkRipple = render(isOnlyIconButton ? {\r\n waveSizeCoefficient: 1,\r\n useHoldAnimation: false,\r\n isCentered: true\r\n } : {});\r\n var changeWaveVisibility = (event, visible) => {\r\n var {\r\n activeStateEnabled: activeStateEnabled,\r\n useInkRipple: useInkRipple\r\n } = this.option();\r\n if (useInkRipple && activeStateEnabled && !this._disposed) {\r\n var config = {\r\n element: this._$content(),\r\n event: event\r\n };\r\n visible ? _inkRipple.showWave(config) : _inkRipple.hideWave(config)\r\n }\r\n };\r\n this._attachActiveEvents(_ref4 => {\r\n var {\r\n event: event\r\n } = _ref4;\r\n return changeWaveVisibility(event, true)\r\n }, _ref5 => {\r\n var {\r\n event: event\r\n } = _ref5;\r\n return changeWaveVisibility(event)\r\n })\r\n }\r\n }\r\n _renderStylingMode() {\r\n var $element = this.$element();\r\n var {\r\n stylingMode: stylingMode\r\n } = this.option();\r\n if (-1 === [\"contained\", \"text\", \"outlined\"].indexOf(stylingMode)) {\r\n stylingMode = this._getDefaultOptions().stylingMode\r\n }\r\n $element.addClass(\"dx-button-mode-\".concat(stylingMode))\r\n }\r\n _renderSubmitInput() {\r\n var {\r\n useSubmitBehavior: useSubmitBehavior\r\n } = this.option();\r\n if (useSubmitBehavior) {\r\n var submitAction = this._getSubmitAction();\r\n var $content = this._$content();\r\n $(\"\").attr(\"type\", \"submit\").attr(\"tabindex\", -1).addClass(\"dx-button-submit-input\").appendTo($content);\r\n clickEvent.on(this._$submitInput(), event => submitAction({\r\n event: event\r\n }))\r\n }\r\n }\r\n _renderType() {\r\n var {\r\n type: type\r\n } = this.option();\r\n var $element = this.$element();\r\n type && $element.addClass(\"dx-button-\".concat(type))\r\n }\r\n _submitInput() {\r\n return this._$submitInput().get(0)\r\n }\r\n _supportedKeys() {\r\n var click = e => {\r\n e.preventDefault();\r\n this._executeClickAction(e)\r\n };\r\n return extend(super._supportedKeys(), {\r\n space: click,\r\n enter: click\r\n })\r\n }\r\n _updateAriaLabel() {\r\n var ariaTarget = this._getAriaTarget();\r\n var {\r\n icon: icon,\r\n text: text\r\n } = this.option();\r\n if (!text) {\r\n if (\"image\" === getImageSourceType(icon)) {\r\n icon = -1 === icon.indexOf(\"base64\") ? icon.replace(/.+\\/([^.]+)\\..+$/, \"$1\") : \"Base64\"\r\n }\r\n text = icon || \"\"\r\n }\r\n ariaTarget.attr(\"aria-label\", text || null)\r\n }\r\n _updateClick() {\r\n this._clickAction = this._createActionByOption(\"onClick\", {\r\n excludeValidators: [\"readOnly\"],\r\n afterExecute: () => {\r\n var {\r\n useSubmitBehavior: useSubmitBehavior\r\n } = this.option();\r\n useSubmitBehavior && setTimeout(() => this._submitInput().click())\r\n }\r\n })\r\n }\r\n _updateContent() {\r\n var $element = this.$element();\r\n var $content = this._$content();\r\n var data = this._getContentData();\r\n var {\r\n template: template,\r\n iconPosition: iconPosition\r\n } = this.option();\r\n var {\r\n icon: icon,\r\n text: text\r\n } = data;\r\n $content.length ? $content.empty() : $content = $(\"
\").addClass(\"dx-button-content\").appendTo($element);\r\n $element.toggleClass(\"dx-button-has-icon\", !!icon).toggleClass(\"dx-button-icon-right\", !!icon && \"left\" !== iconPosition).toggleClass(\"dx-button-has-text\", !!text);\r\n var $template = $(this._getTemplateByOption(\"template\").render({\r\n model: data,\r\n container: getPublicElement($content),\r\n transclude: this._templateManager.anonymousTemplateName === template\r\n }));\r\n if ($template.hasClass(\"dx-template-wrapper\")) {\r\n $template.addClass(\"dx-button-content\");\r\n $content.replaceWith($template)\r\n }\r\n this._updateSubmitInput()\r\n }\r\n _updateSubmitInput() {\r\n var {\r\n useSubmitBehavior: useSubmitBehavior\r\n } = this.option();\r\n var $submitInput = this._$submitInput();\r\n if (!useSubmitBehavior && $submitInput.length) {\r\n $submitInput.remove()\r\n } else if (useSubmitBehavior && !$submitInput.length) {\r\n this._renderSubmitInput()\r\n }\r\n }\r\n _updateStylingMode() {\r\n var $element = this.$element();\r\n [\"contained\", \"text\", \"outlined\"].map(mode => \"dx-button-mode-\".concat(mode)).forEach(className => {\r\n $element.removeClass(className)\r\n });\r\n this._renderStylingMode()\r\n }\r\n _updateType() {\r\n var $element = this.$element();\r\n [\"back\", \"danger\", \"default\", \"normal\", \"success\"].map(type => \"dx-button-\".concat(type)).forEach(className => {\r\n $element.removeClass(className)\r\n });\r\n this._renderType()\r\n }\r\n get _validationGroupConfig() {\r\n return ValidationEngine.getGroupConfig(this._findGroup())\r\n }\r\n}\r\nregisterComponent(\"dxButton\", Button);\r\nexport default Button;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/texteditor_button_collection/custom.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 {\r\n find\r\n} from \"../../../core/utils/array\";\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 !!find(predefinedButtonsInfo, 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 = find(this.defaultButtonsInfo, _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 = find(this.buttons, _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/load_indicator.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 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 = this.$element().width();\r\n height = this.$element().height();\r\n var minDimension = Math.min(height, width);\r\n this._$wrapper.css({\r\n height: minDimension,\r\n width: minDimension,\r\n fontSize: minDimension\r\n })\r\n }\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._removeMarkupForAnimation();\r\n this._removeMarkupForImage()\r\n },\r\n _removeMarkupForAnimation: function() {\r\n if (!this._$indicator) {\r\n return\r\n }\r\n this._$indicator.remove();\r\n delete this._$indicator\r\n },\r\n _removeMarkupForImage: function() {\r\n this._$wrapper.css(\"backgroundImage\", \"none\")\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"_animatingSegmentCount\":\r\n case \"_animatingSegmentInner\":\r\n case \"indicatorSrc\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxLoadIndicator\", LoadIndicator);\r\nexport default LoadIndicator;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.base.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 inArray\r\n} from \"../../core/utils/array\";\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\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\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.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 onKeyPress: 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 })\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 || \"underlined\"\r\n }\r\n }])\r\n },\r\n _setDeprecatedOptions: function() {\r\n this.callBase();\r\n extend(this._deprecatedOptions, {\r\n onKeyPress: {\r\n since: \"20.1\",\r\n message: \"This event is removed from the web standards and will be deprecated in modern browsers soon.\"\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 },\r\n _render: function() {\r\n this.callBase();\r\n this._renderPlaceholder();\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._$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 _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 result = this._isNestedTarget(event.relatedTarget);\r\n if (\"focusin\" === event.type) {\r\n result = result && this._isNestedTarget(event.target) && !this._isInput(event.target)\r\n }\r\n result && event.preventDefault();\r\n return result\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 if (inArray(name.replace(\"on\", \"\"), EVENTS_LIST) > -1) {\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 \"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 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 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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 inArray\r\n} from \"../../core/utils/array\";\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 (-1 === inArray(\"change\", this.editorOption(\"valueChangeEvent\").split(\" \"))) {\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.msie && browser.version > 11) {\r\n result = $input.hasClass(\"edge-autofilled\")\r\n } else 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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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\nimport Promise from \"../../core/polyfills/promise\";\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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 caret = this._maskRulesChain.adjustedCaret(this._caret().start, this.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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport TextEditorMask from \"./ui.text_editor.mask\";\r\nregisterComponent(\"dxTextEditor\", TextEditorMask);\r\nexport default TextEditorMask;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/text_box.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 getNavigator,\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nvar navigator = getNavigator();\r\nimport browser from \"../../core/utils/browser\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\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 addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nvar ua = navigator.userAgent;\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 _renderContentImpl: function() {\r\n this._renderMaxLengthHandlers();\r\n this.callBase()\r\n },\r\n _renderInputType: function() {\r\n this.callBase();\r\n this._renderSearchMode()\r\n },\r\n _renderMaxLengthHandlers: function() {\r\n if (this._isAndroidOrIE()) {\r\n eventsEngine.on(this._input(), addNamespace(\"keydown\", this.NAME), this._onKeyDownCutOffHandler.bind(this));\r\n eventsEngine.on(this._input(), addNamespace(\"change\", this.NAME), this._onChangeCutOffHandler.bind(this))\r\n }\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 _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"maxLength\":\r\n this._toggleMaxLengthProp();\r\n this._renderMaxLengthHandlers();\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 || -1 !== inArray(key, ignoreKeys) || \"\" !== 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 _isAndroidOrIE: function() {\r\n var realDevice = devices.real();\r\n var version = realDevice.version.join(\".\");\r\n return browser.msie || \"android\" === realDevice.platform && version && /^(2\\.|4\\.1)/.test(version) && !/chrome/i.test(ua)\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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport TextBox from \"./text_box/text_box\";\r\nexport default TextBox;\r\n","/**\r\n * DevExtreme (esm/ui/widget/ui.search_box_mixin.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 TextBox from \"../text_box\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\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, TextBox, 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};\r\n","/**\r\n * DevExtreme (esm/ui/check_box.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport devices from \"../core/devices\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n render\r\n} from \"./widget/utils.ink_ripple\";\r\nimport Editor from \"./editor/editor\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport {\r\n name as clickEventName\r\n} from \"../events/click\";\r\nvar CHECKBOX_CLASS = \"dx-checkbox\";\r\nvar CHECKBOX_ICON_CLASS = \"dx-checkbox-icon\";\r\nvar CHECKBOX_CHECKED_CLASS = \"dx-checkbox-checked\";\r\nvar CHECKBOX_CONTAINER_CLASS = \"dx-checkbox-container\";\r\nvar CHECKBOX_TEXT_CLASS = \"dx-checkbox-text\";\r\nvar CHECKBOX_HAS_TEXT_CLASS = \"dx-checkbox-has-text\";\r\nvar CHECKBOX_INDETERMINATE_CLASS = \"dx-checkbox-indeterminate\";\r\nvar CHECKBOX_FEEDBACK_HIDE_TIMEOUT = 100;\r\nvar CheckBox = Editor.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n space: function(e) {\r\n e.preventDefault();\r\n this._clickAction({\r\n event: e\r\n })\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n value: false,\r\n text: \"\",\r\n useInkRipple: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _canValueBeChangedByClick: function() {\r\n return true\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n _feedbackHideTimeout: CHECKBOX_FEEDBACK_HIDE_TIMEOUT,\r\n _initMarkup: function() {\r\n this._renderSubmitElement();\r\n this._$container = $(\"
\").addClass(CHECKBOX_CONTAINER_CLASS);\r\n this.setAria(\"role\", \"checkbox\");\r\n this.$element().addClass(CHECKBOX_CLASS);\r\n this._renderValue();\r\n this._renderIcon();\r\n this._renderText();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this.$element().append(this._$container);\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this._renderClick();\r\n this.callBase()\r\n },\r\n _renderSubmitElement: function() {\r\n this._$submitElement = $(\"\").attr(\"type\", \"hidden\").appendTo(this.$element())\r\n },\r\n _getSubmitElement: function() {\r\n return this._$submitElement\r\n },\r\n _renderInkRipple: function() {\r\n this._inkRipple = render({\r\n waveSizeCoefficient: 2.5,\r\n useHoldAnimation: false,\r\n wavesNumber: 2,\r\n isCentered: true\r\n })\r\n },\r\n _renderInkWave: function(element, dxEvent, doRender, waveIndex) {\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: element,\r\n event: dxEvent,\r\n wave: waveIndex\r\n };\r\n if (doRender) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n },\r\n _updateFocusState: function(e, value) {\r\n this.callBase.apply(this, arguments);\r\n this._renderInkWave(this._$icon, e, value, 0)\r\n },\r\n _toggleActiveState: function($element, value, e) {\r\n this.callBase.apply(this, arguments);\r\n this._renderInkWave(this._$icon, e, value, 1)\r\n },\r\n _renderIcon: function() {\r\n this._$icon = $(\"\").addClass(CHECKBOX_ICON_CLASS).prependTo(this._$container)\r\n },\r\n _renderText: function() {\r\n var textValue = this.option(\"text\");\r\n if (!textValue) {\r\n if (this._$text) {\r\n this._$text.remove();\r\n this.$element().removeClass(CHECKBOX_HAS_TEXT_CLASS)\r\n }\r\n return\r\n }\r\n if (!this._$text) {\r\n this._$text = $(\"\").addClass(CHECKBOX_TEXT_CLASS)\r\n }\r\n this._$text.text(textValue);\r\n this._$container.append(this._$text);\r\n this.$element().addClass(CHECKBOX_HAS_TEXT_CLASS)\r\n },\r\n _renderClick: function() {\r\n var that = this;\r\n var eventName = addNamespace(clickEventName, that.NAME);\r\n that._clickAction = that._createAction(that._clickHandler);\r\n eventsEngine.off(that.$element(), eventName);\r\n eventsEngine.on(that.$element(), eventName, (function(e) {\r\n that._clickAction({\r\n event: e\r\n })\r\n }))\r\n },\r\n _clickHandler: function(args) {\r\n var that = args.component;\r\n that._saveValueChangeEvent(args.event);\r\n that.option(\"value\", !that.option(\"value\"))\r\n },\r\n _renderValue: function() {\r\n var $element = this.$element();\r\n var checked = this.option(\"value\");\r\n var indeterminate = void 0 === checked;\r\n $element.toggleClass(CHECKBOX_CHECKED_CLASS, Boolean(checked));\r\n $element.toggleClass(CHECKBOX_INDETERMINATE_CLASS, indeterminate);\r\n this._getSubmitElement().val(checked);\r\n this.setAria(\"checked\", indeterminate ? \"mixed\" : checked || \"false\")\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"value\":\r\n this._renderValue();\r\n this.callBase(args);\r\n break;\r\n case \"text\":\r\n this._renderText();\r\n this._renderDimensions();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean: function() {\r\n delete this._inkRipple;\r\n this.callBase()\r\n }\r\n});\r\nregisterComponent(\"dxCheckBox\", CheckBox);\r\nexport default CheckBox;\r\n","/**\r\n * DevExtreme (esm/data/errors.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/data/utils.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/data/array_query.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 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 function(obj) {\r\n return toComparable(getter(obj)) > value\r\n };\r\n case \"<\":\r\n return function(obj) {\r\n return toComparable(getter(obj)) < value\r\n };\r\n case \">=\":\r\n return function(obj) {\r\n return toComparable(getter(obj)) >= value\r\n };\r\n case \"<=\":\r\n return function(obj) {\r\n return toComparable(getter(obj)) <= value\r\n };\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/data/query_adapters.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/data/store_helper.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/ui/hierarchical_collection/ui.data_converter.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 {\r\n inArray\r\n} from \"../../core/utils/array\";\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\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 (inArray(parent, matches) > -1) {\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/data/array_utils.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 isEmptyObject,\r\n isDefined,\r\n isObject\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 extendFromObject\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 cloneInstance(instance) {\r\n var result = instance ? Object.create(Object.getPrototypeOf(instance)) : {};\r\n var instanceWithoutPrototype = extendFromObject({}, instance);\r\n for (var name in instanceWithoutPrototype) {\r\n var prop = instanceWithoutPrototype[name];\r\n if (isObject(prop) && !isPlainObject(prop)) {\r\n instanceWithoutPrototype[name] = cloneInstance(prop)\r\n }\r\n }\r\n deepExtendArraySafe(result, instanceWithoutPrototype, true, true);\r\n return result\r\n}\r\n\r\nfunction createObjectWithChanges(target, changes) {\r\n var result = cloneInstance(target);\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/data/abstract_store.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/data/custom_store.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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","/**\r\n * DevExtreme (esm/core/utils/queue.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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","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/http_request.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 Promise from \"../polyfills/promise\";\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/data/array_store.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/data/data_source/utils.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/data/data_source/operation_manager.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n executeAsync\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isString,\r\n isNumeric,\r\n isBoolean,\r\n isDefined,\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n throttleChanges\r\n} from \"../utils\";\r\nimport {\r\n applyBatch\r\n} from \"../array_utils\";\r\nimport CustomStore from \"../custom_store\";\r\nimport {\r\n EventsStrategy\r\n} from \"../../core/events_strategy\";\r\nimport {\r\n errors\r\n} from \"../errors\";\r\nimport {\r\n isEmpty\r\n} from \"../../core/utils/array\";\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 delete this._store;\r\n null === (_this$_delayedLoadTas = this._delayedLoadTask) || void 0 === _this$_delayedLoadTas ? void 0 : _this$_delayedLoadTas.abort();\r\n this._operationManager.cancelAll();\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 if (!isDefined(data) || isEmpty(data)) {\r\n d.reject(new errors.Error(\"E4009\"))\r\n } else {\r\n if (!Array.isArray(data)) {\r\n data = [data]\r\n }\r\n d.resolve(this._applyMapFunction(data)[0])\r\n }\r\n });\r\n return d.promise()\r\n },\r\n load() {\r\n var d = new Deferred;\r\n var loadTask = () => {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (!isPending(d)) {\r\n return\r\n }\r\n return this._loadFromStore(loadOperation, d)\r\n };\r\n this._scheduleLoadCallbacks(d);\r\n this._scheduleFailCallbacks(d);\r\n this._scheduleChangedCallbacks(d);\r\n var loadOperation = this._createLoadOperation(d);\r\n this._eventsStrategy.fireEvent(\"customizeStoreLoadOptions\", [loadOperation]);\r\n this._loadQueue.add(() => {\r\n if (\"number\" === typeof loadOperation.delay) {\r\n this._delayedLoadTask = executeAsync(loadTask, loadOperation.delay)\r\n } else {\r\n loadTask()\r\n }\r\n return d.promise()\r\n });\r\n return d.promise({\r\n operationId: loadOperation.operationId\r\n })\r\n },\r\n _onPush(changes) {\r\n if (this._reshapeOnPush) {\r\n this.load()\r\n } else {\r\n this._eventsStrategy.fireEvent(\"changing\", [{\r\n changes: changes\r\n }]);\r\n var group = this.group();\r\n var items = this.items();\r\n var groupLevel = 0;\r\n var dataSourceChanges = this.paginate() || group ? changes.filter(item => \"update\" === item.type) : changes;\r\n if (group) {\r\n groupLevel = Array.isArray(group) ? group.length : 1\r\n }\r\n if (this._mapFunc) {\r\n dataSourceChanges.forEach(item => {\r\n if (\"insert\" === item.type) {\r\n item.data = this._mapFunc(item.data)\r\n }\r\n })\r\n }\r\n applyBatch({\r\n keyInfo: this.store(),\r\n data: items,\r\n changes: dataSourceChanges,\r\n groupCount: groupLevel,\r\n useInsertIndex: true\r\n });\r\n this._fireChanged([{\r\n changes: changes\r\n }])\r\n }\r\n },\r\n _createLoadOperation(deferred) {\r\n var operationId = this._operationManager.add(deferred);\r\n var storeLoadOptions = this._createStoreLoadOptions();\r\n deferred.always(() => this._operationManager.remove(operationId));\r\n return {\r\n operationId: operationId,\r\n storeLoadOptions: storeLoadOptions\r\n }\r\n },\r\n reload() {\r\n var store = this.store();\r\n if (store instanceof CustomStore) {\r\n store.clearRawDataCache()\r\n }\r\n this._init();\r\n return this.load()\r\n },\r\n cancel(operationId) {\r\n return this._operationManager.cancel(operationId)\r\n },\r\n cancelAll() {\r\n return this._operationManager.cancelAll()\r\n },\r\n _addSearchOptions(storeLoadOptions) {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (this.store()._useDefaultSearch) {\r\n this._addSearchFilter(storeLoadOptions)\r\n } else {\r\n storeLoadOptions.searchOperation = this._searchOperation;\r\n storeLoadOptions.searchValue = this._searchValue;\r\n storeLoadOptions.searchExpr = this._searchExpr\r\n }\r\n },\r\n _createStoreLoadOptions() {\r\n var result = extend({}, this._storeLoadOptions);\r\n this._addSearchOptions(result);\r\n if (this._paginate) {\r\n if (this._pageSize) {\r\n result.skip = this._pageIndex * this._pageSize;\r\n result.take = this._pageSize\r\n }\r\n }\r\n result.userData = this._userData;\r\n return result\r\n },\r\n _addSearchFilter(storeLoadOptions) {\r\n var value = this._searchValue;\r\n var op = this._searchOperation;\r\n var selector = this._searchExpr;\r\n var searchFilter = [];\r\n if (!value) {\r\n return\r\n }\r\n if (!selector) {\r\n selector = \"this\"\r\n }\r\n if (!Array.isArray(selector)) {\r\n selector = [selector]\r\n }\r\n each(selector, (function(i, item) {\r\n if (searchFilter.length) {\r\n searchFilter.push(\"or\")\r\n }\r\n searchFilter.push([item, op, value])\r\n }));\r\n if (storeLoadOptions.filter) {\r\n storeLoadOptions.filter = [searchFilter, storeLoadOptions.filter]\r\n } else {\r\n storeLoadOptions.filter = searchFilter\r\n }\r\n },\r\n _loadFromStore(loadOptions, pendingDeferred) {\r\n var handleSuccess = (data, extra) => {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (!isPending(pendingDeferred)) {\r\n return\r\n }\r\n var loadResult = extend(normalizeLoadResult(data, extra), loadOptions);\r\n this._eventsStrategy.fireEvent(\"customizeLoadResult\", [loadResult]);\r\n when(loadResult.data).done(data => {\r\n loadResult.data = data;\r\n this._processStoreLoadResult(loadResult, pendingDeferred)\r\n }).fail(pendingDeferred.reject)\r\n };\r\n if (loadOptions.data) {\r\n return (new Deferred).resolve(loadOptions.data).done(handleSuccess)\r\n }\r\n return this.store().load(loadOptions.storeLoadOptions).done(handleSuccess).fail(pendingDeferred.reject)\r\n },\r\n _processStoreLoadResult(loadResult, pendingDeferred) {\r\n var data = loadResult.data;\r\n var extra = loadResult.extra;\r\n var storeLoadOptions = loadResult.storeLoadOptions;\r\n var resolvePendingDeferred = () => {\r\n this._isLoaded = true;\r\n this._totalCount = isFinite(extra.totalCount) ? extra.totalCount : -1;\r\n return pendingDeferred.resolve(data, extra)\r\n };\r\n if (this._disposed) {\r\n return\r\n }\r\n data = this._applyPostProcessFunction(this._applyMapFunction(data));\r\n if (!isPlainObject(extra)) {\r\n extra = {}\r\n }\r\n this._items = data;\r\n if (!data.length || !this._paginate || this._pageSize && data.length < this._pageSize) {\r\n this._isLastPage = true\r\n }\r\n if (storeLoadOptions.requireTotalCount && !isFinite(extra.totalCount)) {\r\n (() => {\r\n this.store().totalCount(storeLoadOptions).done((function(count) {\r\n extra.totalCount = count;\r\n resolvePendingDeferred()\r\n })).fail(pendingDeferred.reject)\r\n })()\r\n } else {\r\n resolvePendingDeferred()\r\n }\r\n },\r\n _applyMapFunction(data) {\r\n if (this._mapFunc) {\r\n return mapDataRespectingGrouping(data, this._mapFunc, this.group())\r\n }\r\n return data\r\n },\r\n _applyPostProcessFunction(data) {\r\n if (this._postProcessFunc) {\r\n return this._postProcessFunc(data)\r\n }\r\n return data\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/data_helper.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/ui/collection/item.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n attachInstanceToElement,\r\n getInstanceByElement\r\n} from \"../../core/utils/public_component\";\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar ITEM_CONTENT_PLACEHOLDER_CLASS = \"dx-item-content-placeholder\";\r\nvar forcibleWatcher = function(watchMethod, fn, callback) {\r\n var filteredCallback = function(value) {\r\n if (oldValue !== value) {\r\n callback(value, oldValue);\r\n oldValue = value\r\n }\r\n };\r\n var oldValue;\r\n return {\r\n dispose: watchMethod(fn, filteredCallback),\r\n force: function() {\r\n filteredCallback(fn())\r\n }\r\n }\r\n};\r\nvar CollectionItem = Class.inherit({\r\n ctor: function($element, options, rawData) {\r\n this._$element = $element;\r\n this._options = options;\r\n this._rawData = rawData;\r\n attachInstanceToElement($element, this, this._dispose);\r\n this._render()\r\n },\r\n _render: function() {\r\n var $placeholder = $(\"
\").addClass(ITEM_CONTENT_PLACEHOLDER_CLASS);\r\n this._$element.append($placeholder);\r\n this._watchers = [];\r\n this._renderWatchers()\r\n },\r\n _renderWatchers: function() {\r\n this._startWatcher(\"disabled\", this._renderDisabled.bind(this));\r\n this._startWatcher(\"visible\", this._renderVisible.bind(this))\r\n },\r\n _startWatcher: function(field, render) {\r\n var rawData = this._rawData;\r\n var exprGetter = this._options.fieldGetter(field);\r\n var watcher = forcibleWatcher(this._options.watchMethod(), (function() {\r\n return exprGetter(rawData)\r\n }), function(value, oldValue) {\r\n this._dirty = true;\r\n render(value, oldValue)\r\n }.bind(this));\r\n this._watchers.push(watcher)\r\n },\r\n setDataField: function() {\r\n this._dirty = false;\r\n each(this._watchers, (function(_, watcher) {\r\n watcher.force()\r\n }));\r\n if (this._dirty) {\r\n return true\r\n }\r\n },\r\n _renderDisabled: function(value, oldValue) {\r\n this._$element.toggleClass(DISABLED_STATE_CLASS, !!value);\r\n this._updateOwnerFocus(value)\r\n },\r\n _updateOwnerFocus: function(isDisabled) {\r\n var ownerComponent = this._options.owner;\r\n if (ownerComponent && isDisabled) {\r\n ownerComponent._resetItemFocus(this._$element)\r\n }\r\n },\r\n _renderVisible: function(value, oldValue) {\r\n this._$element.toggleClass(INVISIBLE_STATE_CLASS, void 0 !== value && !value)\r\n },\r\n _dispose: function() {\r\n each(this._watchers, (function(_, watcher) {\r\n watcher.dispose()\r\n }))\r\n }\r\n});\r\nCollectionItem.getInstance = function($element) {\r\n return getInstanceByElement($element, this)\r\n};\r\nexport default CollectionItem;\r\n","/**\r\n * DevExtreme (esm/events/hold.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n eventData,\r\n eventDelta\r\n} from \"./utils/index\";\r\nimport Emitter from \"./core/emitter\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar abs = Math.abs;\r\nvar HOLD_EVENT_NAME = \"dxhold\";\r\nvar HOLD_TIMEOUT = 750;\r\nvar TOUCH_BOUNDARY = 5;\r\nvar HoldEmitter = Emitter.inherit({\r\n start: function(e) {\r\n this._startEventData = eventData(e);\r\n this._startTimer(e)\r\n },\r\n _startTimer: function(e) {\r\n var holdTimeout = \"timeout\" in this ? this.timeout : HOLD_TIMEOUT;\r\n this._holdTimer = setTimeout(function() {\r\n this._requestAccept(e);\r\n this._fireEvent(HOLD_EVENT_NAME, e, {\r\n target: e.target\r\n });\r\n this._forgetAccept()\r\n }.bind(this), holdTimeout)\r\n },\r\n move: function(e) {\r\n if (this._touchWasMoved(e)) {\r\n this._cancel(e)\r\n }\r\n },\r\n _touchWasMoved: function(e) {\r\n var delta = eventDelta(this._startEventData, eventData(e));\r\n return abs(delta.x) > TOUCH_BOUNDARY || abs(delta.y) > TOUCH_BOUNDARY\r\n },\r\n end: function() {\r\n this._stopTimer()\r\n },\r\n _stopTimer: function() {\r\n clearTimeout(this._holdTimer)\r\n },\r\n cancel: function() {\r\n this._stopTimer()\r\n },\r\n dispose: function() {\r\n this._stopTimer()\r\n }\r\n});\r\nregisterEmitter({\r\n emitter: HoldEmitter,\r\n bubble: true,\r\n events: [HOLD_EVENT_NAME]\r\n});\r\nexport default {\r\n name: HOLD_EVENT_NAME\r\n};\r\n","/**\r\n * DevExtreme (esm/events/contextmenu.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n touch\r\n} from \"../core/utils/support\";\r\nimport devices from \"../core/devices\";\r\nimport Class from \"../core/class\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n addNamespace,\r\n fireEvent,\r\n isMouseEvent\r\n} from \"./utils/index\";\r\nimport holdEvent from \"./hold\";\r\nvar CONTEXTMENU_NAMESPACE = \"dxContexMenu\";\r\nvar CONTEXTMENU_NAMESPACED_EVENT_NAME = addNamespace(\"contextmenu\", CONTEXTMENU_NAMESPACE);\r\nvar HOLD_NAMESPACED_EVENT_NAME = addNamespace(holdEvent.name, CONTEXTMENU_NAMESPACE);\r\nvar CONTEXTMENU_EVENT_NAME = \"dxcontextmenu\";\r\nvar ContextMenu = Class.inherit({\r\n setup: function(element) {\r\n var $element = $(element);\r\n eventsEngine.on($element, CONTEXTMENU_NAMESPACED_EVENT_NAME, this._contextMenuHandler.bind(this));\r\n if (touch || devices.isSimulator()) {\r\n eventsEngine.on($element, HOLD_NAMESPACED_EVENT_NAME, this._holdHandler.bind(this))\r\n }\r\n },\r\n _holdHandler: function(e) {\r\n if (isMouseEvent(e) && !devices.isSimulator()) {\r\n return\r\n }\r\n this._fireContextMenu(e)\r\n },\r\n _contextMenuHandler: function(e) {\r\n this._fireContextMenu(e)\r\n },\r\n _fireContextMenu: function(e) {\r\n return fireEvent({\r\n type: CONTEXTMENU_EVENT_NAME,\r\n originalEvent: e\r\n })\r\n },\r\n teardown: function(element) {\r\n eventsEngine.off(element, \".\" + CONTEXTMENU_NAMESPACE)\r\n }\r\n});\r\nregisterEvent(CONTEXTMENU_EVENT_NAME, new ContextMenu);\r\nexport var name = CONTEXTMENU_EVENT_NAME;\r\n","/**\r\n * DevExtreme (esm/core/templates/bindable_template.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 \"../remove_event\";\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/collection/ui.collection_widget.base.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 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 inArray\r\n} from \"../../core/utils/array\";\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 (-1 === inArray(e.target, this._focusTarget())) {\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 && $closestFocusable && -1 !== inArray($closestFocusable.get(0), this._focusTarget())) {\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 $container = $container || this._itemContainer();\r\n var $itemFrame = this._renderItemFrame(index, itemData, $container, $itemToReplace);\r\n this._setElementData($itemFrame, itemData, index);\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: index,\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: index\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 += $(item).outerWidth(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.strategy.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\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 inArray(itemData, this._getPlainItems())\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/ui/selection/selection.strategy.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 !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 _loadFilteredData: function(remoteFilter, localFilter, select, isSelectAll) {\r\n var filterLength = encodeURI(JSON.stringify(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.selectedItems;\r\n if (dataFilter) {\r\n selectedItems = dataQuery(selectedItems).filter(dataFilter).toArray()\r\n }\r\n var selectedItemsLength = selectedItems.length;\r\n if (!selectedItemsLength) {\r\n return this._isAnyItemSelected(items)\r\n }\r\n if (selectedItemsLength >= this.options.totalCount() - this.options.disabledItemKeys.length) {\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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 _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 this._removeSameFilter(selectionFilter, filter, isDeselect, isSelectAll);\r\n var filterIndex = this._removeSameFilter(selectionFilter, filter, !isDeselect);\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/array_compare.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isObject\r\n} from \"./type\";\r\nvar getKeyWrapper = function(item, getKey) {\r\n var key = getKey(item);\r\n if (isObject(key)) {\r\n try {\r\n return JSON.stringify(key)\r\n } catch (e) {\r\n return key\r\n }\r\n }\r\n return key\r\n};\r\nvar getSameNewByOld = function(oldItem, newItems, newIndexByKey, getKey) {\r\n var key = getKeyWrapper(oldItem, getKey);\r\n return newItems[newIndexByKey[key]]\r\n};\r\nexport var isKeysEqual = function(oldKeys, newKeys) {\r\n if (oldKeys.length !== newKeys.length) {\r\n return false\r\n }\r\n for (var i = 0; i < newKeys.length; i++) {\r\n if (oldKeys[i] !== newKeys[i]) {\r\n return false\r\n }\r\n }\r\n return true\r\n};\r\nexport var findChanges = function(oldItems, newItems, getKey, isItemEquals) {\r\n var oldIndexByKey = {};\r\n var newIndexByKey = {};\r\n var addedCount = 0;\r\n var removeCount = 0;\r\n var result = [];\r\n oldItems.forEach((function(item, index) {\r\n var key = getKeyWrapper(item, getKey);\r\n oldIndexByKey[key] = index\r\n }));\r\n newItems.forEach((function(item, index) {\r\n var key = getKeyWrapper(item, getKey);\r\n newIndexByKey[key] = index\r\n }));\r\n var itemCount = Math.max(oldItems.length, newItems.length);\r\n for (var index = 0; index < itemCount + addedCount; index++) {\r\n var newItem = newItems[index];\r\n var oldNextIndex = index - addedCount + removeCount;\r\n var nextOldItem = oldItems[oldNextIndex];\r\n var isRemoved = !newItem || nextOldItem && !getSameNewByOld(nextOldItem, newItems, newIndexByKey, getKey);\r\n if (isRemoved) {\r\n if (nextOldItem) {\r\n result.push({\r\n type: \"remove\",\r\n key: getKey(nextOldItem),\r\n index: index,\r\n oldItem: nextOldItem\r\n });\r\n removeCount++;\r\n index--\r\n }\r\n } else {\r\n var key = getKeyWrapper(newItem, getKey);\r\n var oldIndex = oldIndexByKey[key];\r\n var oldItem = oldItems[oldIndex];\r\n if (!oldItem) {\r\n addedCount++;\r\n result.push({\r\n type: \"insert\",\r\n data: newItem,\r\n index: index\r\n })\r\n } else if (oldIndex === oldNextIndex) {\r\n if (!isItemEquals(oldItem, newItem)) {\r\n result.push({\r\n type: \"update\",\r\n data: newItem,\r\n key: getKey(newItem),\r\n index: index,\r\n oldItem: oldItem\r\n })\r\n }\r\n } else {\r\n return\r\n }\r\n }\r\n }\r\n return result\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/selection_filter.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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\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(selectedItemKeys) {\r\n if (!selectedItemKeyHashesMap) {\r\n selectedItemKeyHashesMap = {};\r\n for (var i = 0; i < selectedItemKeys.length; i++) {\r\n selectedItemKeyHashesMap[getKeyHash(selectedItemKeys[i])] = true\r\n }\r\n }\r\n return selectedItemKeyHashesMap\r\n }(function(keys, keyOf, keyExpr) {\r\n return Array.isArray(keyExpr) ? keys.map(key => keyOf(key)) : keys\r\n }(selectedItemKeys, 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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 uniqueValues\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);\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) {\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 var filter = this.options.filter();\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 = uniqueValues(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 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).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) {\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 return -1 !== (null === (_this$_lastRequestDat3 = this._lastRequestData.addedItems) || void 0 === _this$_lastRequestDat3 ? void 0 : _this$_lastRequestDat3.indexOf(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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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} 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) {\r\n var isSelectedItemsChanged;\r\n var items = this.options.plainItems();\r\n var item = items[itemIndex];\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 isSelectedItemsChanged = this.changeItemSelectionWhenShiftKeyPressed(itemIndex, items)\r\n } else if (keys.control) {\r\n this._resetItemSelectionWhenShiftKeyPressed();\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 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 this._focusedItemIndex = itemIndex;\r\n this.onSelectionChanged();\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 changeItemSelectionWhenShiftKeyPressed: function(itemIndex, items) {\r\n var isSelectedItemsChanged = false;\r\n var itemIndexStep;\r\n var index;\r\n var keyOf = this.options.keyOf;\r\n var focusedItem = items[this._focusedItemIndex];\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 if (this._shiftFocusedItemIndex !== this._focusedItemIndex) {\r\n itemIndexStep = this._focusedItemIndex < this._shiftFocusedItemIndex ? 1 : -1;\r\n for (index = this._focusedItemIndex; index !== this._shiftFocusedItemIndex; index += itemIndexStep) {\r\n if (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 for (index = itemIndex; index !== this._shiftFocusedItemIndex; index += itemIndexStep) {\r\n if (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 (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/ui/collection/ui.collection_widget.edit.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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() : items.length\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 _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 this._createAction(function(e) {\r\n this._itemSelectHandler(e.event)\r\n }.bind(this), {\r\n validatingTargetName: \"itemElement\"\r\n })({\r\n itemElement: $(e.currentTarget),\r\n event: e\r\n });\r\n this.callBase.apply(this, arguments)\r\n },\r\n _itemSelectHandler: function(e) {\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 this.selectItem(e.currentTarget)\r\n }\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 this._selection.setSelection([key])\r\n } else {\r\n var selectedItemKeys = this.option(\"selectedItemKeys\") || [];\r\n 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/ui/hierarchical_collection/ui.hierarchical_collection_widget.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/events/double_click.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/scroll_view/ui.events.emitter.gesture.scroll.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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\nimport {\r\n compare as compareVersions\r\n} from \"../../core/utils/version\";\r\nvar realDevice = devices.real();\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\", \"dxScrollEmitter\");\r\n return {\r\n ctor: function(element) {\r\n this._element = element;\r\n this._locked = false;\r\n var that = this;\r\n this._proxiedScroll = function(e) {\r\n that._scroll(e)\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 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 ios8_greater = realDevice.ios && compareVersions(realDevice.version, [8]) >= 0;\r\n var android5_greater = realDevice.android && compareVersions(realDevice.version, [5]) >= 0;\r\n if (!(ios8_greater || android5_greater)) {\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};\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/animator.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollbar.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/ui/scroll_view/ui.scrollable.simulated.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 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() - this._$container.height() / 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 = Math.round(this._getMaxOffset());\r\n this._minOffset = Math.round(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) || this._isContent($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 _isContent: function($element) {\r\n return this._scrollByContent && !!$element.closest(this._$element).length\r\n },\r\n _reachedMin: function() {\r\n return this._location <= this._minOffset\r\n },\r\n _reachedMax: function() {\r\n return this._location >= this._maxOffset\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 scrollByContent: this.option(\"scrollByContent\"),\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 isValid = scroller._validateEvent(e);\r\n this._validDirections[direction] = isValid\r\n }))\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 distance[prop] = page * -this._$container[dimension]();\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 distance[prop] = this._$content[dimension]() - this._$container[dimension]();\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/core/utils/scroll_rtl_behavior.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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\nvar getScrollRtlBehavior = callOnce((function() {\r\n var document = domAdapter.getDocument();\r\n document.body.insertAdjacentHTML(\"beforeend\", \"
\");\r\n var scroller = document.body.lastElementChild;\r\n var initiallyPositive = scroller.scrollLeft > 0;\r\n scroller.scrollLeft = -1;\r\n var hasNegative = scroller.scrollLeft < 0;\r\n var result = {\r\n decreasing: hasNegative || initiallyPositive,\r\n positive: !hasNegative\r\n };\r\n document.body.removeChild(scroller);\r\n return result\r\n}));\r\nexport default getScrollRtlBehavior;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollable.native.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 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\nimport getScrollRtlBehavior from \"../../core/utils/scroll_rtl_behavior\";\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._isScrollInverted = scrollable._isScrollInverted.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._isScrollInverted() ? this._isReachedRight(-left) : this._isReachedLeft(left),\r\n reachedRight: this._isScrollInverted() ? this._isReachedLeft(-Math.abs(left)) : this._isReachedRight(left),\r\n reachedTop: this._isDirection(VERTICAL) ? top >= 0 : void 0,\r\n reachedBottom: this._isDirection(VERTICAL) ? Math.abs(top) >= this._getMaxOffset().top : 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._isScrollInverted()) {\r\n if (getScrollRtlBehavior().positive) {\r\n return this._getMaxOffset().left - scrollLeft\r\n }\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) ? left >= 0 : void 0\r\n },\r\n _isReachedRight: function(left) {\r\n return this._isDirection(HORIZONTAL) ? Math.abs(left) >= this._getMaxOffset().left : 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: this._$container.height(),\r\n width: this._$container.width()\r\n };\r\n this._componentContentSize = {\r\n height: this._component.$content().height(),\r\n width: this._component.$content().width()\r\n };\r\n this._contentSize = {\r\n height: this._$content.height(),\r\n width: this._$content.width()\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 - this._getScrollSign() * distance.left))\r\n },\r\n _getScrollSign() {\r\n return this._isScrollInverted() && getScrollRtlBehavior().positive ? -1 : 1\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/ui/scroll_view/ui.scrollable.device.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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/scroll_view/ui.scrollable.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 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 domAdapter from \"../../core/dom_adapter\";\r\nimport devices from \"../../core/devices\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport {\r\n focusable\r\n} from \"../widget/selectors\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport scrollEvents from \"./ui.events.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 getScrollRtlBehavior from \"../../core/utils/scroll_rtl_behavior\";\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 if (domAdapter.hasDocumentProperty(\"onbeforeactivate\") && browser.msie && browser.version < 12) {\r\n eventsEngine.on($element, addNamespace(\"beforeactivate\", SCROLLABLE), (function(e) {\r\n if (!$(e.target).is(focusable)) {\r\n e.preventDefault()\r\n }\r\n }))\r\n }\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._strategy.validate(e)\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 \"scrollByContent\":\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 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 this._$container.height()\r\n },\r\n scrollHeight: function() {\r\n return this.$content().outerHeight()\r\n },\r\n clientWidth: function() {\r\n return this._$container.width()\r\n },\r\n scrollWidth: function() {\r\n return this.$content().outerWidth()\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._isScrollInverted()) {\r\n location.left = this._getScrollSign() * 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 _getScrollSign: () => getScrollRtlBehavior().positive ? -1 : 1,\r\n _isScrollInverted: function() {\r\n var {\r\n rtlEnabled: rtlEnabled,\r\n useNative: useNative\r\n } = this.option();\r\n var {\r\n decreasing: decreasing,\r\n positive: positive\r\n } = getScrollRtlBehavior();\r\n return useNative && rtlEnabled && decreasing ^ positive\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 offset = offset || {};\r\n var isVertical = direction === VERTICAL;\r\n var startOffset = (isVertical ? offset.top : offset.left) || 0;\r\n var endOffset = (isVertical ? offset.bottom : offset.right) || 0;\r\n var elementPositionRelativeToContent = this._elementPositionRelativeToContent($element, isVertical ? \"top\" : \"left\");\r\n var elementPosition = elementPositionRelativeToContent;\r\n var elementSize = $element[isVertical ? \"outerHeight\" : \"outerWidth\"]();\r\n var scrollLocation = isVertical ? this.scrollTop() : this.scrollLeft();\r\n var clientSize = $(this.container()).get(0)[isVertical ? \"clientHeight\" : \"clientWidth\"];\r\n var startDistance = scrollLocation - elementPosition + startOffset;\r\n var endDistance = scrollLocation - elementPosition - elementSize + clientSize - endOffset;\r\n if (startDistance <= 0 && endDistance >= 0) {\r\n return scrollLocation\r\n }\r\n return scrollLocation - (Math.abs(startDistance) > Math.abs(endDistance) ? endDistance : startDistance)\r\n },\r\n _elementPositionRelativeToContent: function($element, prop) {\r\n var result = 0;\r\n while (this._hasScrollContent($element)) {\r\n result += $element.position()[prop];\r\n $element = $element.offsetParent()\r\n }\r\n return result\r\n },\r\n _hasScrollContent: function($element) {\r\n var $content = this.$content();\r\n return $element.closest($content).length && !$element.is($content)\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});\r\nregisterComponent(SCROLLABLE, Scrollable);\r\nexport default Scrollable;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_relative_offset.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function getRelativeOffset(targetElement, sourceElement) {\r\n var offset = {\r\n left: 0,\r\n top: 0\r\n };\r\n var currentElement = sourceElement;\r\n while (currentElement && currentElement !== targetElement) {\r\n var parentOffsetElement = currentElement.offsetParent;\r\n var currentElementRect = currentElement.getBoundingClientRect();\r\n var parentOffsetElementRect = parentOffsetElement.getBoundingClientRect();\r\n offset.left += currentElementRect.left - parentOffsetElementRect.left;\r\n offset.top += currentElementRect.top - parentOffsetElementRect.top;\r\n currentElement = currentElement.offsetParent\r\n }\r\n return offset\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/common/consts.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 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\nexport var VALIDATE_WHEEL_TIMEOUT = 500;\r\nexport var HIDE_SCROLLBAR_TIMEOUT = 500;\r\n","/**\r\n * DevExtreme (esm/ui/tree_view/ui.tree_view.base.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 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 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 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 = $nodeContainer.height();\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 $loadIndicator.length && LoadIndicator.getInstance($loadIndicator).option(\"visible\", false);\r\n if (hasNewItems) {\r\n var $icon = $node.find(\".\" + TOGGLE_ITEM_VISIBILITY_CLASS);\r\n $icon.show();\r\n return\r\n }\r\n $node.find(\".\" + TOGGLE_ITEM_VISIBILITY_CLASS).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()).get(0), 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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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 {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport TreeViewBase from \"./ui.tree_view.base\";\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: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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","/*!\n * devextreme-vue\n * Version: 21.1.6\n * Build date: Mon Sep 27 2021\n *\n * Copyright (c) 2012 - 2021 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/core/guid.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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","/*!\n * devextreme-vue\n * Version: 21.1.6\n * Build date: Mon Sep 27 2021\n *\n * Copyright (c) 2012 - 2021 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: 21.1.6\n * Build date: Mon Sep 27 2021\n *\n * Copyright (c) 2012 - 2021 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.getVModelValue = exports.getNodeTypeOfComponent = exports.getNodeOptions = exports.saveComponentInstance = exports.usedConfigurationProps = exports.getComponentProps = exports.mount = exports.defaultSlots = exports.declaredTemplates = exports.configurationTemplate = exports.configurationDefaultTemplate = exports.configurationChildren = exports.getNormalizedProps = exports.getComponentInstance = 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 getComponentInstance(component) {\n return component.type && component.type.$_componentInstance;\n}\nexports.getComponentInstance = getComponentInstance;\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 saveComponentInstance(component) {\n var nodeOptions = getNodeTypeOfComponent(component);\n if (nodeOptions) {\n nodeOptions.$_componentInstance = component;\n }\n}\nexports.saveComponentInstance = saveComponentInstance;\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 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) && child.children !== \"v-if\") {\n hasTemplate = true;\n }\n });\n return hasTemplate;\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","/*!\n * devextreme-vue\n * Version: 21.1.6\n * Build date: Mon Sep 27 2021\n *\n * Copyright (c) 2012 - 2021 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 updated: function () {\n vue_helper_1.saveComponentInstance(this);\n },\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/class.js)\r\n * Version: 21.1.6\r\n * Build date: Mon Sep 27 2021\r\n *\r\n * Copyright (c) 2012 - 2021 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"],"sourceRoot":""}