{"version":3,"file":"assets/dist/mkw/main.min.js","mappings":"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GACLC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,IAAK,IACLC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLC,IAAK,IACLC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLC,IAAK,IACLC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLC,GAAI,IACJ,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,SAAU,KACV,QAAS,KACT,aAAc,KACd,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,QAAS,KACT,aAAc,KACd,QAAS,KACT,SAAU,KACV,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,SAAU,KACV,SAAU,KACV,QAAS,KACT,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,aAAc,KACd,aAAc,KACd,cAAe,KACf,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,SAAU,KACV,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,MACT,QAAS,MACT,QAAS,MACT,aAAc,MACd,QAAS,MACT,QAAS,MACT,QAAS,MACT,aAAc,MACd,QAAS,MACT,QAAS,MACT,QAAS,MACT,aAAc,MACd,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MA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","sources":["D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\bundles\\mkw\\src\\views|sync|/(?<%21views)\\.vue$/","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\actions|sync|/(?<%21views)\\.ts$/","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\stores|sync|/(?<%21views)\\.ts$/","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views|sync|/(?<%21views)\\.vue$/","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views|sync|/(?<%21views)\\.vue$/","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views|sync|/(?<%21views)\\.vue$/","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-documents\\src\\views|sync|/(?<%21views)\\.vue$/","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\payment-stripe\\src\\views|sync|/(?<%21views)\\.vue$/","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-admin\\src\\views|sync|/(?<%21views)\\.vue$/","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-cms\\src\\views|sync|/(?<%21views)\\.vue$/","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\actions|sync|/(?<%21modules)\\.ts$/","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\stores|sync|/(?<%21views)\\.ts$/","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views|sync|/(?<%21views)\\.vue$/","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\actions|sync|/(?<%21views)\\.ts$/","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views|sync|/(?<%21views)\\.vue$/","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\hub\\esm\\flags.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\hub\\esm\\session.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\hub\\esm\\hub.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\hub\\esm\\scope.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\tracing\\esm\\constants.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\tracing\\esm\\flags.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\tracing\\esm\\hubextensions.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\tracing\\esm\\span.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\tracing\\esm\\transaction.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\tracing\\esm\\idletransaction.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\tracing\\esm\\utils.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\browser.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\flags.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\global.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\is.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\logger.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\misc.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\node.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\env.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\object.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\string.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\syncpromise.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\time.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\index.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\adapters\\xhr.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\axios.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\cancel\\Cancel.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\cancel\\CancelToken.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\cancel\\isCancel.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\core\\Axios.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\core\\InterceptorManager.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\core\\buildFullPath.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\core\\createError.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\core\\dispatchRequest.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\core\\enhanceError.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\core\\mergeConfig.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\core\\settle.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\core\\transformData.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\defaults\\index.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\defaults\\transitional.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\env\\data.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\helpers\\bind.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\helpers\\buildURL.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\helpers\\combineURLs.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\helpers\\cookies.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\helpers\\isAbsoluteURL.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\helpers\\isAxiosError.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\helpers\\isURLSameOrigin.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\helpers\\normalizeHeaderName.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\helpers\\parseHeaders.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\helpers\\spread.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\helpers\\validator.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\axios\\lib\\utils.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\call-bind\\callBound.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\call-bind\\index.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\cookie-storage\\lib\\cookie-storage.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\cookie-storage\\lib\\format-cookie.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\cookie-storage\\lib\\index.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\cookie-storage\\lib\\parse-cookies.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme-vue\\data-grid.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme-vue\\date-box.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme-vue\\progress-bar.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme-vue\\range-slider.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme-vue\\tab-panel.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\core\\utils\\date.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\core\\utils\\date_serialization.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\events\\gesture\\swipeable.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\box.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\shared\\filtering.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\format_helper.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.utils.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.modules.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.core.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\events\\double_click.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.column_state_mixin.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.columns_view.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\shared\\accessibility.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.accessibility.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.column_headers.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.column_headers.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.columns_controller.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.columns_controller.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.data_source_adapter.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.data_source_adapter.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.data_controller.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.data_controller.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.sorting_mixin.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.sorting.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.sorting.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.rows.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.rows.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\hierarchical_collection\\ui.data_converter.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\hierarchical_collection\\ui.data_adapter.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\hierarchical_collection\\ui.hierarchical_collection_widget.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\context_menu\\ui.menu_base.edit.strategy.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\context_menu\\ui.menu_base.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\context_menu\\ui.context_menu.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\context_menu.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.context_menu.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.context_menu.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.error_handling.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.error_handling.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.grid_view.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.grid_view.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.header_panel.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.header_panel.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.base.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.state_storing_core.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.state_storing.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.state_storing.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.selection.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.selection.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\tree_view\\ui.tree_view.base.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\tree_view\\ui.tree_view.search.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\tree_view.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.column_chooser.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.grouping.core.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.column_chooser.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.utils.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.grouping.expanded.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.grouping.collapsed.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.grouping.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.master_detail.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.master_detail.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\shared\\ui.editor_factory_mixin.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.editor_factory.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.editor_factory.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\dialog.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.editing_constants.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.editing.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.editing.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.editing_row_based.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.editing_row_based.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.editing_form_based.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.editing_form_based.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.editing_cell_based.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.editing_cell_based.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.validating.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.validating.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid.core.virtual_data_loader.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.virtual_scrolling_core.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.virtual_scrolling.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.virtual_scrolling.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\overlay\\utils.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\menu\\ui.submenu.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\menu\\ui.menu.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\menu.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.filter_row.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.filter_row.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.header_filter_core.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.header_filter.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.header_filter.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\filter_builder\\between.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\filter_builder\\ui.filter_operations_dictionary.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\filter_builder\\utils.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.filter_custom_operations.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.filter_sync.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.filter_sync.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\filter_builder\\filter_builder.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\filter_builder.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.filter_builder.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.filter_builder.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.filter_panel.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.filter_panel.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.search.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.search.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\inferno\\dist\\index.esm.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\inferno-create-element\\dist\\index.esm.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\inferno-hydrate\\dist\\index.esm.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@devextreme\\vdom\\dist\\esm\\effect_host.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@devextreme\\vdom\\dist\\esm\\base_component.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@devextreme\\vdom\\dist\\esm\\effect.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@devextreme\\vdom\\dist\\esm\\portal.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@devextreme\\vdom\\dist\\esm\\utils.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\core\\polyfills\\number.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\component_wrapper\\template_wrapper.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\component_wrapper\\utils.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\component_wrapper\\component.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\component_wrapper\\grid_pager.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\ui\\pager\\utils\\get_element_width.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\utils\\get_computed_style.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\utils\\type_conversion.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\ui\\pager\\resizable_container.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\ui\\pager\\common\\pager_props.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\ui\\pager\\info.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\utils\\subscribe_to_event.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\ui\\pager\\common\\light_button.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\ui\\pager\\common\\consts.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\utils\\combine_classes.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\ui\\pager\\pages\\page.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\common\\config_context.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\ui\\pager\\pages\\large.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\common\\config_provider.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\ui\\common\\widget.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\ui\\common\\base_props.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\utils\\resolve_rtl.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\ui\\common\\dom_component_wrapper.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\utils\\render_template.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\ui\\number_box.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\ui\\pager\\utils\\calculate_values_fitted_width.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\ui\\pager\\pages\\small.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\ui\\pager\\pages\\page_index_selector.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\ui\\select_box.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\ui\\pager\\page_size\\small.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\ui\\pager\\page_size\\large.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\ui\\pager\\page_size\\selector.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\ui\\pager\\content.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\ui\\pager\\pager.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\renovation\\ui\\pager\\pager.j.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\pager.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.pager.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.pager.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.columns_resizing_reordering.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.columns_resizing_reordering.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.keyboard_navigation.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\aggregate_calculator.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.keyboard_navigation.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.summary.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.column_fixing.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.column_fixing.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.adaptivity.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.virtual_columns_core.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.adaptivity.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.virtual_columns.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.virtual_columns.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.export_mixin.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\exporter\\file_saver.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\localization\\language_codes.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\exporter\\excel_format_converter.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\exporter\\excel\\excel.tag_helper.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\exporter\\excel\\excel.cell_alignment_helper.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\exporter\\excel\\excel.color_helper.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\exporter\\excel\\excel.pattern_fill_helper.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\exporter\\excel\\excel.fill_helper.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\exporter\\excel\\excel.font_helper.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\exporter\\excel\\excel.cell_format_helper.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\exporter\\excel\\excel.number_format_helper.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\exporter\\excel\\excel.file.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\exporter\\excel_creator.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\core\\utils\\svg.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\exporter\\image_creator.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\exporter\\svg_creator.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\exporter\\pdf_creator.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\exporter.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.export.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.focus.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.focus.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\grid_core\\ui.grid_core.row_dragging.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.row_dragging.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid\\ui.data_grid.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\data_grid.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\date_box\\ui.date_utils.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\date_box\\ui.date_box.mask.parts.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\calendar\\ui.calendar.navigator.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\calendar\\ui.calendar.base_view.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\calendar\\ui.calendar.views.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\calendar\\ui.calendar.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\calendar.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\date_box\\ui.date_box.strategy.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\date_box\\ui.date_box.strategy.calendar.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\date_box\\ui.date_view_roller.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\date_box\\ui.date_view.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\date_box\\ui.date_box.strategy.date_view.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\date_box\\ui.date_box.strategy.native.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\date_box\\ui.time_view.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\date_box\\ui.date_box.strategy.calendar_with_time.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\date_box\\ui.date_box.strategy.list.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\date_box\\ui.date_box.base.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\date_box\\ui.date_box.mask.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\date_box\\ui.date_box.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\date_box.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\drop_down_menu.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\form\\ui.form.items_runtime_info.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\form\\ui.form.item_option_action.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\form\\ui.form.utils.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\form\\ui.form.item_options_actions.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\responsive_box.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\form\\constants.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\form\\ui.form.layout_manager.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\validation_summary.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\validation_group.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\form\\ui.form.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\form.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\tooltip\\tooltip.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\tooltip.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\slider\\ui.slider_handle.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\slider\\ui.slider.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\slider.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\range_slider.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\multi_view\\ui.multi_view.animation.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\multi_view.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\tabs\\item.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\tabs\\constants.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\tabs.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\tab_panel\\item.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\tab_panel.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\toolbar\\ui.toolbar.strategy.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\toolbar\\ui.toolbar.strategy.action_sheet.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\toolbar\\ui.toolbar.menu.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\toolbar\\ui.toolbar.strategy.drop_down_menu.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\toolbar.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\validation\\default_adapter.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\devextreme\\esm\\ui\\validator.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\events\\events.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\function-bind\\implementation.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\function-bind\\index.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\get-intrinsic\\index.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\has-symbols\\index.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\has-symbols\\shams.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\has\\src\\index.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\jszip\\dist\\jszip.min.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_DataView.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_Hash.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_ListCache.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_Map.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_MapCache.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_Promise.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_Set.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_SetCache.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_Stack.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_Symbol.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_Uint8Array.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_WeakMap.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_arrayEach.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_arrayFilter.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_arrayLikeKeys.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_arrayMap.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_arrayPush.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_arrayReduce.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_arraySome.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_asciiToArray.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_asciiWords.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_assignValue.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_assocIndexOf.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_baseAssign.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_baseAssignIn.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_baseAssignValue.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_baseClone.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_baseCreate.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_baseGet.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_baseGetAllKeys.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_baseGetTag.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_baseIsArguments.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_baseIsDate.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_baseIsEqual.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_baseIsEqualDeep.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_baseIsMap.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_baseIsNative.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_baseIsRegExp.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_baseIsSet.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_baseIsTypedArray.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_baseKeys.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_baseKeysIn.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_basePropertyOf.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_baseSlice.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_baseTimes.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_baseToString.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_baseTrim.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_baseUnary.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_cacheHas.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_castPath.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_castSlice.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_cloneArrayBuffer.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_cloneBuffer.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_cloneDataView.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_cloneRegExp.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_cloneSymbol.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_cloneTypedArray.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_copyArray.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_copyObject.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_copySymbols.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_copySymbolsIn.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_coreJsData.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_createCaseFirst.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_createCompounder.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_deburrLetter.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_defineProperty.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_equalArrays.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_equalByTag.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_equalObjects.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_freeGlobal.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_getAllKeys.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_getAllKeysIn.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_getMapData.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_getNative.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_getPrototype.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_getRawTag.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_getSymbols.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_getSymbolsIn.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_getTag.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_getValue.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_hasUnicode.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_hasUnicodeWord.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_hashClear.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_hashDelete.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_hashGet.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_hashHas.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_hashSet.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_initCloneArray.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_initCloneByTag.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_initCloneObject.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_isIndex.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_isKey.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_isKeyable.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_isMasked.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_isPrototype.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_listCacheClear.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_listCacheDelete.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_listCacheGet.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_listCacheHas.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_listCacheSet.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_mapCacheClear.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_mapCacheDelete.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_mapCacheGet.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_mapCacheHas.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_mapCacheSet.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_mapToArray.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_memoizeCapped.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_nativeCreate.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_nativeKeys.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_nativeKeysIn.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_nodeUtil.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_objectToString.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_overArg.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_root.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_setCacheAdd.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_setCacheHas.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_setToArray.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_stackClear.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_stackDelete.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_stackGet.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_stackHas.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_stackSet.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_stringToArray.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_stringToPath.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_toKey.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_toSource.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_trimmedEndIndex.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_unicodeToArray.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\_unicodeWords.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\camelCase.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\capitalize.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\cloneDeep.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\debounce.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\deburr.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\eq.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\get.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\isArguments.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\isArray.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\isArrayLike.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\isBoolean.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\isBuffer.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\isDate.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\isEmpty.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\isEqual.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\isFunction.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\isLength.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\isMap.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\isNumber.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\isObject.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\isObjectLike.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\isPlainObject.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\isRegExp.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\isSet.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\isString.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\isSymbol.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\isTypedArray.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\keys.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\keysIn.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\memoize.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\now.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\replace.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\stubArray.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\stubFalse.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\toNumber.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\toString.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\upperFirst.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\lodash\\words.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\bundles\\mkw\\src\\styles\\_main.scss*","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\styles\\_main.scss","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\styles\\_main.scss","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\styles\\_main.scss","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-cms\\src\\styles\\property-table.scss*","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\styles\\_main.scss","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\object-inspect\\index.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\promise-events\\emitter.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\qs\\lib\\formats.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\qs\\lib\\index.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\qs\\lib\\parse.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\qs\\lib\\stringify.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\qs\\lib\\utils.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\side-channel\\index.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@intlify\\shared\\dist\\shared.esm-bundler.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@intlify\\message-resolver\\dist\\message-resolver.esm-bundler.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@intlify\\runtime\\dist\\runtime.esm-bundler.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@intlify\\message-compiler\\dist\\message-compiler.esm-bundler.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@intlify\\core-base\\dist\\core-base.esm-bundler.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\vue-i18n\\dist\\vue-i18n.esm-bundler.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\portal-vue\\dist\\portal-vue.es.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\bottlejs\\dist\\bottle-es.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\classes\\PortalConfig.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\factories\\ServiceContainer.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@vue\\devtools-api\\lib\\esm\\env.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@vue\\devtools-api\\lib\\esm\\time.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@vue\\devtools-api\\lib\\esm\\proxy.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@vue\\devtools-api\\lib\\esm\\const.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\vuex\\dist\\vuex.esm-bundler.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@vue\\devtools-api\\lib\\esm\\index.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\factories\\StateFactory.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\factories\\ApiFactory.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\factories\\NotificationFactory.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\classes\\AuthResponse.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\classes\\UserEntries.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\factories\\LoginFactory.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\factories\\CookieFactory.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\factories\\ProviderFactory.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\factories\\ActionFactory.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\factories\\OptionsFactory.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\factories\\ComponentFactory.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\mixins\\form.mixin.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\factories\\MixinFactory.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\vue-router\\dist\\vue-router.esm-bundler.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\services\\routing\\index.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\shared\\manipulator.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\shared\\scrollbar.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\services\\metadata\\index.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\factories\\PluginFactory.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\factories\\CacheFactory.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\directives\\click-outside.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\directives\\tooltip.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\directives\\sticky.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\directives\\lazyload.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\directives\\resize.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\index.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\PortalHost.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-cms\\src\\index.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@vue\\shared\\dist\\shared.esm-bundler.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\vue-gtag\\dist\\vue-gtag.esm.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-gtag\\src\\index.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\core\\esm\\version.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\core\\esm\\flags.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\core\\esm\\integrations\\inboundfilters.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\core\\esm\\integrations\\functiontostring.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\stacktrace.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\supports.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\instrument.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\polyfill.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\error.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\dsn.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\normalize.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\memo.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\core\\esm\\integration.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\core\\esm\\baseclient.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\core\\esm\\api.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\envelope.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\core\\esm\\request.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\core\\esm\\transports\\noop.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\types\\esm\\severity.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\core\\esm\\basebackend.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\browser\\esm\\stack-parsers.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\browser\\esm\\eventbuilder.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\promisebuffer.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\ratelimit.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\status.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\core\\esm\\transports\\base.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\browser\\esm\\flags.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\browser\\esm\\transports\\utils.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\browser\\esm\\transports\\base.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\clientreport.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\async.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\browser\\esm\\transports\\fetch.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\browser\\esm\\transports\\xhr.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\browser\\esm\\backend.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\browser\\esm\\transports\\new-fetch.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\browser\\esm\\transports\\new-xhr.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\minimal\\esm\\index.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\browser\\esm\\helpers.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\enums.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\browser\\esm\\integrations\\breadcrumbs.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\severity.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\browser\\esm\\client.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\browser\\esm\\integrations\\trycatch.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\browser\\esm\\integrations\\globalhandlers.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\browser\\esm\\integrations\\linkederrors.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\browser\\esm\\integrations\\dedupe.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\browser\\esm\\integrations\\useragent.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\browser\\esm\\sdk.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\vue\\esm\\constants.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\vue\\esm\\components.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\vue\\esm\\flags.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\vue\\esm\\tracing.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\vue\\esm\\sdk.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\vue\\esm\\errorhandler.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\utils\\esm\\tracing.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\tracing\\esm\\browser\\backgroundtab.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\tracing\\esm\\browser\\web-vitals\\lib\\bindReporter.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\tracing\\esm\\browser\\web-vitals\\lib\\initMetric.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\tracing\\esm\\browser\\web-vitals\\lib\\generateUniqueID.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\tracing\\esm\\browser\\web-vitals\\lib\\observe.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\tracing\\esm\\browser\\web-vitals\\lib\\onHidden.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\tracing\\esm\\browser\\web-vitals\\lib\\getVisibilityWatcher.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\tracing\\esm\\browser\\web-vitals\\getLCP.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\tracing\\esm\\browser\\metrics.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\tracing\\esm\\browser\\web-vitals\\getCLS.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\tracing\\esm\\browser\\web-vitals\\getFID.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\tracing\\esm\\browser\\request.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\tracing\\esm\\browser\\router.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\tracing\\esm\\browser\\browsertracing.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-sentry\\src\\index.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\@sentry\\core\\esm\\sdk.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\index.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\index.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\index.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\payment-core\\src\\factories\\DefaultPaymentGateway.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\payment-core\\src\\index.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\payment-stripe\\src\\factories\\StripePaymentGateway.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\payment-stripe\\src\\index.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\bundles\\mkw\\src\\index.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\actions\\CartCreateAction.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\actions\\CartDeleteAction.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\actions\\CartRenameAction.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\actions\\OrderListSendAction.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\actions\\OrderListToCartAction.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\stores\\carts.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-documents\\src\\index.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-admin\\src\\index.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\actions\\HelloWorldAction.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\mixins\\modal.mixin.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\services\\validation\\classes\\validator.results.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\services\\validation\\rules\\notequals.rule.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\services\\validation\\rules\\equals.rule.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\services\\validation\\rules\\isin.rule.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\services\\validation\\rules\\length.rule.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\services\\validation\\rules\\maxlength.rule.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\services\\validation\\rules\\minlength.rule.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\services\\validation\\rules\\regexp.rule.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\services\\validation\\rules\\required.rule.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\services\\validation\\rules\\type.rule.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\services\\validation\\rules\\mincount.rule.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\services\\validation\\rules\\maxcount.rule.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\services\\validation\\index.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\services\\mitt\\index.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\shared\\device.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\shared\\routing.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\shared\\utils.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\stores\\navigation.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\stores\\session.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\stores\\windows.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\actions\\IdentityUserNameChangeAction.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\actions\\IdentityUserSetPassword.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\index.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\pages\\g-server-page\\g-server-page-modal.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\pages\\g-server-page\\g-server-page.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\tslib\\tslib.es6.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\uuid\\dist\\esm-browser\\rng.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\uuid\\dist\\esm-browser\\regex.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\uuid\\dist\\esm-browser\\validate.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\uuid\\dist\\esm-browser\\stringify.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\uuid\\dist\\esm-browser\\v4.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\node_modules\\vue-loader\\dist\\exportHelper.js","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\bundles\\mkw\\src\\views\\g-logo.vue?vue&type=template&id=0cfc9928&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\bundles\\mkw\\src\\views\\g-logo.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\bundles\\mkw\\src\\views\\g-logo.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout.vue?vue&type=template&id=790ae119&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__activate.vue?vue&type=template&id=2c1eeebd&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__activate.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__activate.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__bonus.vue?vue&type=template&id=559528e2&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__bonus.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__bonus.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__cart.vue?vue&type=template&id=4521318a&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__cart.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__cart.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__details.vue?vue&type=template&id=452cd4dc&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__details.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__details.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__empty.vue?vue&type=template&id=e52d97a6&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__empty.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__empty.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__finalize.vue?vue&type=template&id=4f65b5a4&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__finalize.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__finalize.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__line-item.vue?vue&type=template&id=10047ed0&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__line-item.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__line-item.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__messages.vue?vue&type=template&id=fdb69b74&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__messages.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__messages.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__notes.vue?vue&type=template&id=65d7e34c&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__notes.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__notes.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__payment.vue?vue&type=template&id=7cb25423&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__payment.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__payment.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__reject.vue?vue&type=template&id=e6d5c812&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__reject.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__reject.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__shipping.vue?vue&type=template&id=0146d9fa&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__shipping.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__shipping.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__sidebar.vue?vue&type=template&id=2891d114&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__sidebar.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__sidebar.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__summary.vue?vue&type=template&id=78c645cb&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__summary.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__summary.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__thankyou.vue?vue&type=template&id=79e9f2e5&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__thankyou.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-checkout__thankyou.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-comment-dialog.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-comment-dialog.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-comment-dialog.vue?vue&type=template&id=2693dfad&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-create-dialog.vue?vue&type=template&id=2be0b927&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-create-dialog.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-create-dialog.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-files-upload.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-files-upload.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-files-upload.vue?vue&type=template&id=fc81a812&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-line-comment.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-line-comment.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-line-comment.vue?vue&type=template&id=e087c82c&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-profile_login.vue?vue&type=template&id=0ffc96f2&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-profile_login.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-cart-profile_login.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-carts-grid-page.vue?vue&type=template&id=0912fc97&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-carts-grid-page.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-carts-grid-page.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-carts-list-page.vue?vue&type=template&id=44e3012b&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-carts-list-page.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-carts-list-page.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-checkout-page.vue?vue&type=template&id=c4604608&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-checkout-page.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-checkout-page.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-minicart.vue?vue&type=template&id=3aa04b41&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-minicart.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-carts\\src\\views\\g-minicart.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-catalog-category.vue?vue&type=template&id=186ce0ba&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-catalog-category.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-catalog-category.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-catalog-main.vue?vue&type=template&id=297f3ae8&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-catalog-main.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-catalog-main.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-catalog-order_list.vue?vue&type=template&id=72e06c5f&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-catalog-order_list.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-catalog-order_list.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-catalog-page.vue?vue&type=template&id=6de3c650&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-catalog-page.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-catalog-page.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-catalog-product.vue?vue&type=template&id=af05f392&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-catalog-product.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-catalog-product.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-catalog-product__details.vue?vue&type=template&id=a92a08ca&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-catalog-product__details.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-catalog-product__details.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-catalog-search.vue?vue&type=template&id=0445a4d3&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-catalog-search.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-catalog-search.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-category-card.vue?vue&type=template&id=31a3c131&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-category-card.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-category-card.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-category-textblock.vue?vue&type=template&id=27a9eada&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-category-textblock.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-category-textblock.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-filter-bar.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-filter-bar.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-filter-bar.vue?vue&type=template&id=1fb77a06&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-filter-button.vue?vue&type=template&id=2daa8894&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-filter-button.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-filter-button.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-filter-rangeslider.vue?vue&type=template&id=31c5baaa&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-filter-rangeslider.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-filter-rangeslider.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-gallery-modal.vue?vue&type=template&id=85a8b5e2&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-gallery-modal.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-gallery-modal.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-product-card.vue?vue&type=template&id=2fb5c324&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-product-card.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-product-card.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-product-configurator.vue?vue&type=template&id=2971e743&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\models\\ProductConfigurator.Value.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\manager\\ProductConfigurator.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-product-configurator.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-product-configurator.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-product-delivery-time.vue?vue&type=template&id=10d39576&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-product-delivery-time.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-product-delivery-time.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-product-list-element.vue?vue&type=template&id=c02357be&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-product-list-element.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-product-list-element.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-product-modal.vue?vue&type=template&id=7bada09a&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-product-modal.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-product-modal.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-product-prices.vue?vue&type=template&id=e706e538&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-product-prices.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-product-prices.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-product-record.vue?vue&type=template&id=527cfa50&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-product-record.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-product-record.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-product-selector-row.vue?vue&type=template&id=edac7388&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-product-selector-row.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-product-selector-row.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-product-selector.vue?vue&type=template&id=71dfc7bb&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\models\\ProductSelector.Option.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\models\\ProductSelector.Value.ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-product-selector.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-catalog\\src\\views\\g-product-selector.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce-box-search.vue?vue&type=template&id=1b92b8e4&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce-box-search.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce-box-search.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce-footer.vue?vue&type=template&id=6675af2e&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce-footer.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce-footer.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce-layout.vue?vue&type=template&id=7518e8ae&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce-layout.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce-layout.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce__account-select.vue?vue&type=template&id=1fbfa20c&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce__account-select.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce__account-select.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce__account.vue?vue&type=template&id=6952f0b6&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce__account.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce__account.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce__carts.vue?vue&type=template&id=7ee644f1&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce__carts.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce__carts.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce__message-bar.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce__message-bar.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce__message-bar.vue?vue&type=template&id=2078d4eb&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce__nav-bar.vue?vue&type=template&id=54a3c746&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce__nav-bar.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce__nav-bar.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce__nav-mobile.vue?vue&type=template&id=71988265&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce__nav-mobile.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce__nav-mobile.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce__request.vue?vue&type=template&id=7bd64288&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce__request.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce__request.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce__top-bar.vue?vue&type=template&id=229fa52c&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce__top-bar.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-core\\src\\views\\g-ecommerce__top-bar.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-documents\\src\\views\\g-document-dialog.vue?vue&type=template&id=37f597a7&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-documents\\src\\views\\g-document-dialog.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-documents\\src\\views\\g-document-dialog.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-documents\\src\\views\\g-document-fields.vue?vue&type=template&id=1cb0b71e&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-documents\\src\\views\\g-document-fields.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-documents\\src\\views\\g-document-fields.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-documents\\src\\views\\g-document-search.vue?vue&type=template&id=11c0b38e&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-documents\\src\\views\\g-document-search.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\ecommerce-documents\\src\\views\\g-document-search.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\payment-stripe\\src\\views\\g-payment_stripe-card.vue?vue&type=template&id=593cadfb&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\payment-stripe\\src\\views\\g-payment_stripe-card.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\payment-stripe\\src\\views\\g-payment_stripe-card.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\payment-stripe\\src\\views\\g-payment_stripe-sepa.vue?vue&type=template&id=7fbb0225&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\payment-stripe\\src\\views\\g-payment_stripe-sepa.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\payment-stripe\\src\\views\\g-payment_stripe-sepa.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\payment-stripe\\src\\views\\g-payment_stripe-sofort.vue?vue&type=template&id=02c53ad1&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\payment-stripe\\src\\views\\g-payment_stripe-sofort.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\payment-stripe\\src\\views\\g-payment_stripe-sofort.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-admin\\src\\views\\layouts\\g-admin-layout.vue?vue&type=template&id=2a8c761c&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-admin\\src\\views\\layouts\\g-admin-layout.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-admin\\src\\views\\layouts\\g-admin-layout.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-admin\\src\\views\\pages\\g-admin-cache.vue?vue&type=template&id=1fdf8662&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-admin\\src\\views\\pages\\g-admin-cache.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-admin\\src\\views\\pages\\g-admin-cache.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-admin\\src\\views\\pages\\g-admin-editor.vue?vue&type=template&id=306b902a&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-admin\\src\\views\\pages\\g-admin-editor.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-admin\\src\\views\\pages\\g-admin-editor.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-cms\\src\\views\\molecules\\g-property-grid\\g-property-grid.vue?vue&type=template&id=207ac9f5&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-cms\\src\\views\\molecules\\g-property-grid\\g-property-grid.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-cms\\src\\views\\molecules\\g-property-grid\\g-property-grid.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-cms\\src\\views\\pages\\g-cms-form-page.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-cms\\src\\views\\pages\\g-cms-form-page.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-cms\\src\\views\\pages\\g-cms-form-page.vue?vue&type=template&id=7929d35e&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-cms\\src\\views\\pages\\g-cms-page.vue?vue&type=template&id=6e7e3aad&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-cms\\src\\views\\pages\\g-cms-page.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-cms\\src\\views\\pages\\g-cms-page.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-api-call\\g-api-call.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-api-call\\g-api-call.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-api-call\\g-api-call.vue?vue&type=template&id=5acb6ae8&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-badge\\g-color-badge.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-badge\\g-color-badge.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-badge\\g-color-badge.vue?vue&type=template&id=6ff6658a&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-collapse-transition\\g-collapse-transition.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-collapse-transition\\g-collapse-transition.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-collapse-transition\\g-collapse-transition.vue?vue&type=template&id=38432bd4&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-dynamic\\g-dynamic-html.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-dynamic\\g-dynamic-html.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-dynamic\\g-dynamic-view.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-dynamic\\g-dynamic-view.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-dynamic\\g-dynamic.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-dynamic\\g-dynamic.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-icon\\g-icon.vue?vue&type=template&id=b636f102&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-icon\\g-icon.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-icon\\g-icon.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-image\\g-image.vue?vue&type=template&id=63ce7a6a&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-image\\g-image.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-image\\g-image.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-link\\g-link.vue?vue&type=template&id=b77b5984&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-link\\g-link.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-link\\g-link.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-loader\\g-loader.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-loader\\g-loader.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-loader\\g-loader.vue?vue&type=template&id=78355590&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-logo\\g-logo.vue?vue&type=template&id=6a5f9d9e&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-logo\\g-logo.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\atoms\\g-logo\\g-logo.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\g-app.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\g-app.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\g-app.vue?vue&type=template&id=101d6c04&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-banner-panel\\g-status-panel.vue?vue&type=template&id=f0e2a234&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-banner-panel\\g-status-panel.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-banner-panel\\g-status-panel.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-breadcrumb\\g-breadcrumb.vue?vue&type=template&id=3a2b8946&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-breadcrumb\\g-breadcrumb.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-breadcrumb\\g-breadcrumb.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-cookie-consent\\g-cookie-consent.vue?vue&type=template&id=2dd5d1e5&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-cookie-consent\\g-cookie-consent.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-cookie-consent\\g-cookie-consent.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-expand-panel\\g-expand-panel.vue?vue&type=template&id=7835218c&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-expand-panel\\g-expand-panel.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-expand-panel\\g-expand-panel.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\base\\g-field-block.vue?vue&type=template&id=332584be&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\base\\g-field-block.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\base\\g-field-block.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\base\\g-field-container.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\base\\g-field-container.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\base\\g-field-container.vue?vue&type=template&id=8609dc5e&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\base\\g-validation-summary.vue?vue&type=template&id=0a36af76&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\base\\g-validation-summary.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\base\\g-validation-summary.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-button.vue?vue&type=template&id=dd292272&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-button.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-button.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-checkbox-field.vue?vue&type=template&id=0078a20d&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-checkbox-field.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-checkbox-field.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-color-edit.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-color-edit.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-color-edit.vue?vue&type=template&id=98ad898e&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-date-edit.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-date-edit.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-date-edit.vue?vue&type=template&id=0e91a8eb&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-datetime-edit.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-datetime-edit.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-datetime-edit.vue?vue&type=template&id=413a4f78&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-file-field.vue?vue&type=template&id=4dc882f1&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-file-field.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-file-field.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-file-field2.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-file-field2.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-file-field2.vue?vue&type=template&id=766bbcc8&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-hidden-field.vue?vue&type=template&id=2488974e&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-hidden-field.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-hidden-field.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-number-field.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-number-field.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-number-field.vue?vue&type=template&id=58f86a39&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-quantity-field.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-quantity-field.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-quantity-field.vue?vue&type=template&id=190db118&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-select-field.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-select-field.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-select-field.vue?vue&type=template&id=9f8c7706&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-text-area.vue?vue&type=template&id=7fd405f0&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-text-area.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-text-area.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-text-code.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-text-code.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-text-code.vue?vue&type=template&id=26515b78&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-text-field.vue?vue&type=template&id=79b18e1e&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-text-field.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-text-field.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-text-html.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-text-html.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\fields\\g-text-html.vue?vue&type=template&id=cd3e5868&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\form\\g-form.vue?vue&type=template&id=1f03e320&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\form\\g-form.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-form\\form\\g-form.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-image-viewer\\g-image-viewer.vue?vue&type=template&id=054c32c0&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-image-viewer\\g-image-viewer.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-image-viewer\\g-image-viewer.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-modal\\g-messages-error.vue?vue&type=template&id=6563de3c&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-modal\\g-messages-error.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-modal\\g-messages-error.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-modal\\g-messages-question.vue?vue&type=template&id=1636173e&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-modal\\g-messages-question.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-modal\\g-messages-question.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-modal\\g-modal-container.vue?vue&type=template&id=57cd8362&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-modal\\g-modal-container.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-modal\\g-modal-container.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-modal\\g-modal-popup.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-modal\\g-modal-popup.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-modal\\g-modal-popup.vue?vue&type=template&id=fe86fbb2&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-modal\\g-modal-sidebar.vue?vue&type=template&id=362f1089&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-modal\\g-modal-sidebar.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-modal\\g-modal-sidebar.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-modal\\g-modal-slide.vue?vue&type=template&id=7ea4707a&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-modal\\g-modal-slide.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-modal\\g-modal-slide.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-modal\\g-window-view.vue?vue&type=template&id=29ff153a&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-modal\\g-window-view.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-modal\\g-window-view.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-monaco-editor\\g-monaco-editor.vue?vue&type=template&id=eebc5db2&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-monaco-editor\\g-monaco-editor.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-monaco-editor\\g-monaco-editor.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-pager\\g-pager.vue?vue&type=template&id=617e8821&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-pager\\g-pager.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-pager\\g-pager.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-status-panel\\g-status-panel.vue?vue&type=template&id=e5e29466&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-status-panel\\g-status-panel.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-status-panel\\g-status-panel.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-sticky-bar\\g-sticky-bar.vue?vue&type=template&id=dcd67c06&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-sticky-bar\\g-sticky-bar.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-sticky-bar\\g-sticky-bar.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-treenav\\g-navview-item.vue?vue&type=template&id=4b94af07&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-treenav\\g-navview-item.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-treenav\\g-navview-item.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-treenav\\g-navview.vue?vue&type=template&id=7ec14f90&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-treenav\\g-navview.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-treenav\\g-navview.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-treeview\\g-treeview-item.vue?vue&type=template&id=419219b8&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-treeview\\g-treeview-item.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-treeview\\g-treeview-item.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-treeview\\g-treeview.vue?vue&type=template&id=07c2b18a&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-treeview\\g-treeview.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-treeview\\g-treeview.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-video\\g-video.vue?vue&type=template&id=7d726947&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-video\\g-video.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\g-video\\g-video.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\v-horizontal\\vue-horizontal.vue?vue&type=template&id=33122f23&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\v-horizontal\\vue-horizontal.vue?vue&type=script&lang=ts","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\molecules\\v-horizontal\\vue-horizontal.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\pages\\g-content-page\\g-content-page.vue?vue&type=template&id=4498e381&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\pages\\g-content-page\\g-content-page.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\pages\\g-content-page\\g-content-page.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\pages\\g-error-page\\g-error-page.vue?vue&type=template&id=69246054&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\pages\\g-error-page\\g-error-page.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\pages\\g-error-page\\g-error-page.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\pages\\g-error-page\\g-error2-page.vue?vue&type=template&id=8f4a5960&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\pages\\g-error-page\\g-error2-page.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\pages\\g-error-page\\g-error2-page.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\pages\\g-server-page\\g-server-page-modal.vue?vue&type=template&id=9d8cf5e2&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\pages\\g-server-page\\g-server-page-modal.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\pages\\g-server-page\\g-server-page.vue?vue&type=template&id=874574b0&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\pages\\g-server-page\\g-server-page.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\pages\\g-service-page\\g-service-page.vue?vue&type=template&id=287e14fa&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\pages\\g-service-page\\g-service-page.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\pages\\g-service-page\\g-service-page.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\pages\\g-simple-page\\g-simple-page.vue?vue&type=template&id=5bc858db&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\pages\\g-simple-page\\g-simple-page.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\pages\\g-simple-page\\g-simple-page.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\templates\\g-clean-layout\\g-clean-layout.vue?vue&type=template&id=32a3d48d&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\templates\\g-clean-layout\\g-clean-layout.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\templates\\g-clean-layout\\g-clean-layout.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\templates\\g-intranet-layout\\g-intranet-layout.vue?vue&type=template&id=38071fad&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\templates\\g-intranet-layout\\g-intranet-layout.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\templates\\g-intranet-layout\\g-intranet-layout.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\templates\\g-intranet-layout\\g-intranet-layout__footer.vue?vue&type=template&id=3a7cba19&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\templates\\g-intranet-layout\\g-intranet-layout__footer.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\templates\\g-intranet-layout\\g-intranet-layout__footer.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\templates\\g-intranet-layout\\g-intranet-layout__navbar.vue?vue&type=template&id=6446836c&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\templates\\g-intranet-layout\\g-intranet-layout__navbar.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\templates\\g-intranet-layout\\g-intranet-layout__navbar.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\templates\\g-main\\g-main-layout.vue?vue&type=template&id=2a48ffd4&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\templates\\g-main\\g-main-layout.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\templates\\g-main\\g-main-layout.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\templates\\g-simple\\g-simple-layout.vue?vue&type=template&id=7b13ebae&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\templates\\g-simple\\g-simple-layout.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\templates\\g-simple\\g-simple-layout.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\templates\\g-simple\\g-simple-screen.vue?vue&type=template&id=2f37df08&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\templates\\g-simple\\g-simple-screen.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-core\\src\\views\\templates\\g-simple\\g-simple-screen.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-account-edit.vue?vue&type=template&id=0e997775&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-account-edit.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-account-edit.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-account-register.vue?vue&type=template&id=49b9d85e&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-account-register.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-account-register.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-account-username_change.vue?vue&type=template&id=1c394e90&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-account-username_change.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-account-username_change.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-account-userpassword_change.vue?vue&type=template&id=5f33f557&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-account-userpassword_change.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-account-userpassword_change.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-login-activate-mail.vue?vue&type=template&id=c3cf72c0&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-login-activate-mail.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-login-activate-mail.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-login-activate.vue?vue&type=template&id=0c09ba61&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-login-activate.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-login-activate.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-login-error.vue?vue&type=template&id=259b8811&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-login-error.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-login-error.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-login-join.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-login-join.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-login-join.vue?vue&type=template&id=2569027c&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-login-login.vue?vue&type=template&id=702ccc4b&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-login-login.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-login-login.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-login-recovery.vue?vue&type=template&id=5a7ba2ee&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-login-recovery.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-login-recovery.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-login-register-done.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-login-register-done.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-login-register-done.vue?vue&type=template&id=09747f24&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-login-register.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-login-register.vue","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-login-register.vue?vue&type=template&id=00af8761&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-login-reset.vue?vue&type=template&id=2b5e19d4&ts=true","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-login-reset.vue?vue&type=script&lang=tsx","D:\\Visual Studio\\Projects\\Web\\GGDev.Web.ThePortal\\GGDev.Web.ThePortal\\modules\\web-login\\src\\views\\g-login-reset.vue"],"sourcesContent":["var map = {\n\t\"./g-logo.vue\": 49188\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 50822;","var map = {\n\t\"./CartCreateAction.ts\": 97947,\n\t\"./CartDeleteAction.ts\": 25561,\n\t\"./CartRenameAction.ts\": 36418,\n\t\"./OrderListSendAction.ts\": 29757,\n\t\"./OrderListToCartAction.ts\": 47863\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 59411;","var map = {\n\t\"./carts.ts\": 12189\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 85603;","var map = {\n\t\"./g-cart-checkout.vue\": 83221,\n\t\"./g-cart-checkout__activate.vue\": 22730,\n\t\"./g-cart-checkout__bonus.vue\": 17376,\n\t\"./g-cart-checkout__cart.vue\": 19940,\n\t\"./g-cart-checkout__details.vue\": 30513,\n\t\"./g-cart-checkout__empty.vue\": 25134,\n\t\"./g-cart-checkout__finalize.vue\": 94000,\n\t\"./g-cart-checkout__line-item.vue\": 62777,\n\t\"./g-cart-checkout__messages.vue\": 76122,\n\t\"./g-cart-checkout__notes.vue\": 63284,\n\t\"./g-cart-checkout__payment.vue\": 20608,\n\t\"./g-cart-checkout__reject.vue\": 64325,\n\t\"./g-cart-checkout__shipping.vue\": 97637,\n\t\"./g-cart-checkout__sidebar.vue\": 38787,\n\t\"./g-cart-checkout__summary.vue\": 52199,\n\t\"./g-cart-checkout__thankyou.vue\": 92281,\n\t\"./g-cart-comment-dialog.vue\": 84723,\n\t\"./g-cart-create-dialog.vue\": 4944,\n\t\"./g-cart-files-upload.vue\": 33175,\n\t\"./g-cart-line-comment.vue\": 47987,\n\t\"./g-cart-profile_login.vue\": 25441,\n\t\"./g-carts-grid-page.vue\": 27703,\n\t\"./g-carts-list-page.vue\": 63357,\n\t\"./g-checkout-page.vue\": 34583,\n\t\"./g-minicart.vue\": 8271\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 31967;","var map = {\n\t\"./g-catalog-category.vue\": 14793,\n\t\"./g-catalog-main.vue\": 71295,\n\t\"./g-catalog-order_list.vue\": 96776,\n\t\"./g-catalog-page.vue\": 56516,\n\t\"./g-catalog-product.vue\": 20483,\n\t\"./g-catalog-product__details.vue\": 81357,\n\t\"./g-catalog-search.vue\": 50717,\n\t\"./g-category-card.vue\": 89508,\n\t\"./g-category-textblock.vue\": 78051,\n\t\"./g-filter-bar.vue\": 67252,\n\t\"./g-filter-button.vue\": 77945,\n\t\"./g-filter-rangeslider.vue\": 2548,\n\t\"./g-gallery-modal.vue\": 88641,\n\t\"./g-product-card.vue\": 84244,\n\t\"./g-product-configurator.vue\": 31515,\n\t\"./g-product-delivery-time.vue\": 89793,\n\t\"./g-product-list-element.vue\": 85895,\n\t\"./g-product-modal.vue\": 33382,\n\t\"./g-product-prices.vue\": 94961,\n\t\"./g-product-record.vue\": 94857,\n\t\"./g-product-selector-row.vue\": 90036,\n\t\"./g-product-selector.vue\": 43318\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 8490;","var map = {\n\t\"./g-ecommerce-box-search.vue\": 14399,\n\t\"./g-ecommerce-footer.vue\": 74331,\n\t\"./g-ecommerce-layout.vue\": 6165,\n\t\"./g-ecommerce__account-select.vue\": 38483,\n\t\"./g-ecommerce__account.vue\": 77515,\n\t\"./g-ecommerce__carts.vue\": 91020,\n\t\"./g-ecommerce__message-bar.vue\": 18796,\n\t\"./g-ecommerce__nav-bar.vue\": 27986,\n\t\"./g-ecommerce__nav-mobile.vue\": 478,\n\t\"./g-ecommerce__request.vue\": 69962,\n\t\"./g-ecommerce__top-bar.vue\": 57066\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 95335;","var map = {\n\t\"./g-document-dialog.vue\": 88231,\n\t\"./g-document-fields.vue\": 65003,\n\t\"./g-document-search.vue\": 63871\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 13054;","var map = {\n\t\"./g-payment_stripe-card.vue\": 77024,\n\t\"./g-payment_stripe-sepa.vue\": 75478,\n\t\"./g-payment_stripe-sofort.vue\": 75124\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 19042;","var map = {\n\t\"./layouts/g-admin-layout.vue\": 41219,\n\t\"./pages/g-admin-cache.vue\": 98478,\n\t\"./pages/g-admin-editor.vue\": 17952\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 18656;","var map = {\n\t\"./molecules/g-property-grid/g-property-grid.vue\": 26683,\n\t\"./pages/g-cms-form-page.vue\": 21803,\n\t\"./pages/g-cms-page.vue\": 39465\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 50322;","var map = {\n\t\"./HelloWorldAction.ts\": 5623\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 13718;","var map = {\n\t\"./navigation.ts\": 90992,\n\t\"./session.ts\": 21119,\n\t\"./windows.ts\": 74368\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 65590;","var map = {\n\t\"./atoms/g-api-call/g-api-call.vue\": 73061,\n\t\"./atoms/g-badge/g-color-badge.vue\": 54590,\n\t\"./atoms/g-collapse-transition/g-collapse-transition.vue\": 66714,\n\t\"./atoms/g-dynamic/g-dynamic-html.vue\": 48272,\n\t\"./atoms/g-dynamic/g-dynamic-view.vue\": 22901,\n\t\"./atoms/g-dynamic/g-dynamic.vue\": 8651,\n\t\"./atoms/g-icon/g-icon.vue\": 96450,\n\t\"./atoms/g-image/g-image.vue\": 11171,\n\t\"./atoms/g-link/g-link.vue\": 50081,\n\t\"./atoms/g-loader/g-loader.vue\": 15727,\n\t\"./atoms/g-logo/g-logo.vue\": 67175,\n\t\"./g-app.vue\": 91110,\n\t\"./molecules/g-banner-panel/g-status-panel.vue\": 78267,\n\t\"./molecules/g-breadcrumb/g-breadcrumb.vue\": 23065,\n\t\"./molecules/g-cookie-consent/g-cookie-consent.vue\": 46591,\n\t\"./molecules/g-expand-panel/g-expand-panel.vue\": 50213,\n\t\"./molecules/g-form/base/g-field-block.vue\": 18497,\n\t\"./molecules/g-form/base/g-field-container.vue\": 71501,\n\t\"./molecules/g-form/base/g-validation-summary.vue\": 24260,\n\t\"./molecules/g-form/fields/g-button.vue\": 14305,\n\t\"./molecules/g-form/fields/g-checkbox-field.vue\": 16418,\n\t\"./molecules/g-form/fields/g-color-edit.vue\": 86536,\n\t\"./molecules/g-form/fields/g-date-edit.vue\": 21501,\n\t\"./molecules/g-form/fields/g-datetime-edit.vue\": 6089,\n\t\"./molecules/g-form/fields/g-file-field.vue\": 37217,\n\t\"./molecules/g-form/fields/g-file-field2.vue\": 58043,\n\t\"./molecules/g-form/fields/g-hidden-field.vue\": 27084,\n\t\"./molecules/g-form/fields/g-number-field.vue\": 99275,\n\t\"./molecules/g-form/fields/g-quantity-field.vue\": 93659,\n\t\"./molecules/g-form/fields/g-select-field.vue\": 8015,\n\t\"./molecules/g-form/fields/g-text-area.vue\": 52620,\n\t\"./molecules/g-form/fields/g-text-code.vue\": 81278,\n\t\"./molecules/g-form/fields/g-text-field.vue\": 40246,\n\t\"./molecules/g-form/fields/g-text-html.vue\": 29192,\n\t\"./molecules/g-form/form/g-form.vue\": 17336,\n\t\"./molecules/g-image-viewer/g-image-viewer.vue\": 7066,\n\t\"./molecules/g-modal/g-messages-error.vue\": 26129,\n\t\"./molecules/g-modal/g-messages-question.vue\": 48555,\n\t\"./molecules/g-modal/g-modal-container.vue\": 82088,\n\t\"./molecules/g-modal/g-modal-popup.vue\": 46282,\n\t\"./molecules/g-modal/g-modal-sidebar.vue\": 77821,\n\t\"./molecules/g-modal/g-modal-slide.vue\": 70650,\n\t\"./molecules/g-modal/g-window-view.vue\": 51978,\n\t\"./molecules/g-monaco-editor/g-monaco-editor.vue\": 94900,\n\t\"./molecules/g-pager/g-pager.vue\": 94908,\n\t\"./molecules/g-status-panel/g-status-panel.vue\": 34528,\n\t\"./molecules/g-sticky-bar/g-sticky-bar.vue\": 68036,\n\t\"./molecules/g-treenav/g-navview-item.vue\": 28665,\n\t\"./molecules/g-treenav/g-navview.vue\": 98221,\n\t\"./molecules/g-treeview/g-treeview-item.vue\": 92792,\n\t\"./molecules/g-treeview/g-treeview.vue\": 62632,\n\t\"./molecules/g-video/g-video.vue\": 90416,\n\t\"./molecules/v-horizontal/vue-horizontal.vue\": 57680,\n\t\"./pages/g-content-page/g-content-page.vue\": 53412,\n\t\"./pages/g-error-page/g-error-page.vue\": 74510,\n\t\"./pages/g-error-page/g-error2-page.vue\": 12985,\n\t\"./pages/g-server-page/g-server-page-modal.vue\": 37375,\n\t\"./pages/g-server-page/g-server-page.vue\": 3820,\n\t\"./pages/g-service-page/g-service-page.vue\": 86525,\n\t\"./pages/g-simple-page/g-simple-page.vue\": 62160,\n\t\"./templates/g-clean-layout/g-clean-layout.vue\": 90140,\n\t\"./templates/g-intranet-layout/g-intranet-layout.vue\": 53239,\n\t\"./templates/g-intranet-layout/g-intranet-layout__footer.vue\": 86245,\n\t\"./templates/g-intranet-layout/g-intranet-layout__navbar.vue\": 61389,\n\t\"./templates/g-main/g-main-layout.vue\": 75749,\n\t\"./templates/g-simple/g-simple-layout.vue\": 47497,\n\t\"./templates/g-simple/g-simple-screen.vue\": 46513\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 14423;","var map = {\n\t\"./IdentityUserNameChangeAction.ts\": 29463,\n\t\"./IdentityUserSetPassword.ts\": 72480\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 55318;","var map = {\n\t\"./g-account-edit.vue\": 89404,\n\t\"./g-account-register.vue\": 42872,\n\t\"./g-account-username_change.vue\": 23325,\n\t\"./g-account-userpassword_change.vue\": 42830,\n\t\"./g-login-activate-mail.vue\": 6462,\n\t\"./g-login-activate.vue\": 994,\n\t\"./g-login-error.vue\": 20366,\n\t\"./g-login-join.vue\": 69848,\n\t\"./g-login-login.vue\": 51207,\n\t\"./g-login-recovery.vue\": 94633,\n\t\"./g-login-register-done.vue\": 32576,\n\t\"./g-login-register.vue\": 4331,\n\t\"./g-login-reset.vue\": 46947\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 48645;","/*\n * This file defines flags and constants that can be modified during compile time in order to facilitate tree shaking\n * for users.\n *\n * Debug flags need to be declared in each package individually and must not be imported across package boundaries,\n * because some build tools have trouble tree-shaking imported guards.\n *\n * As a convention, we define debug flags in a `flags.ts` file in the root of a package's `src` folder.\n *\n * Debug flag files will contain \"magic strings\" like `__SENTRY_DEBUG__` that may get replaced with actual values during\n * our, or the user's build process. Take care when introducing new flags - they must not throw if they are not\n * replaced.\n */\n/** Flag that is true for debug builds, false otherwise. */\nexport var IS_DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' ? true : __SENTRY_DEBUG__;\n//# sourceMappingURL=flags.js.map","import { dropUndefinedKeys, timestampInSeconds, uuid4 } from '@sentry/utils';\n/**\n * @inheritdoc\n */\nvar Session = /** @class */ (function () {\n function Session(context) {\n this.errors = 0;\n this.sid = uuid4();\n this.duration = 0;\n this.status = 'ok';\n this.init = true;\n this.ignoreDuration = false;\n // Both timestamp and started are in seconds since the UNIX epoch.\n var startingTime = timestampInSeconds();\n this.timestamp = startingTime;\n this.started = startingTime;\n if (context) {\n this.update(context);\n }\n }\n /** JSDoc */\n // eslint-disable-next-line complexity\n Session.prototype.update = function (context) {\n if (context === void 0) { context = {}; }\n if (context.user) {\n if (!this.ipAddress && context.user.ip_address) {\n this.ipAddress = context.user.ip_address;\n }\n if (!this.did && !context.did) {\n this.did = context.user.id || context.user.email || context.user.username;\n }\n }\n this.timestamp = context.timestamp || timestampInSeconds();\n if (context.ignoreDuration) {\n this.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n this.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n this.init = context.init;\n }\n if (!this.did && context.did) {\n this.did = \"\" + context.did;\n }\n if (typeof context.started === 'number') {\n this.started = context.started;\n }\n if (this.ignoreDuration) {\n this.duration = undefined;\n }\n else if (typeof context.duration === 'number') {\n this.duration = context.duration;\n }\n else {\n var duration = this.timestamp - this.started;\n this.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n this.release = context.release;\n }\n if (context.environment) {\n this.environment = context.environment;\n }\n if (!this.ipAddress && context.ipAddress) {\n this.ipAddress = context.ipAddress;\n }\n if (!this.userAgent && context.userAgent) {\n this.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n this.errors = context.errors;\n }\n if (context.status) {\n this.status = context.status;\n }\n };\n /** JSDoc */\n Session.prototype.close = function (status) {\n if (status) {\n this.update({ status: status });\n }\n else if (this.status === 'ok') {\n this.update({ status: 'exited' });\n }\n else {\n this.update();\n }\n };\n /** JSDoc */\n Session.prototype.toJSON = function () {\n return dropUndefinedKeys({\n sid: \"\" + this.sid,\n init: this.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(this.started * 1000).toISOString(),\n timestamp: new Date(this.timestamp * 1000).toISOString(),\n status: this.status,\n errors: this.errors,\n did: typeof this.did === 'number' || typeof this.did === 'string' ? \"\" + this.did : undefined,\n duration: this.duration,\n attrs: {\n release: this.release,\n environment: this.environment,\n ip_address: this.ipAddress,\n user_agent: this.userAgent,\n },\n });\n };\n return Session;\n}());\nexport { Session };\n//# sourceMappingURL=session.js.map","import { __assign, __read, __spread } from \"tslib\";\nimport { consoleSandbox, dateTimestampInSeconds, getGlobalObject, getGlobalSingleton, isNodeEnv, logger, uuid4, } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { Scope } from './scope';\nimport { Session } from './session';\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nexport var API_VERSION = 4;\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nvar DEFAULT_BREADCRUMBS = 100;\n/**\n * @inheritDoc\n */\nvar Hub = /** @class */ (function () {\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n function Hub(client, scope, _version) {\n if (scope === void 0) { scope = new Scope(); }\n if (_version === void 0) { _version = API_VERSION; }\n this._version = _version;\n /** Is a {@link Layer}[] containing the client and scope */\n this._stack = [{}];\n this.getStackTop().scope = scope;\n if (client) {\n this.bindClient(client);\n }\n }\n /**\n * @inheritDoc\n */\n Hub.prototype.isOlderThan = function (version) {\n return this._version < version;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.bindClient = function (client) {\n var top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.pushScope = function () {\n // We want to clone the content of prev scope\n var scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope: scope,\n });\n return scope;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.popScope = function () {\n if (this.getStack().length <= 1)\n return false;\n return !!this.getStack().pop();\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.withScope = function (callback) {\n var scope = this.pushScope();\n try {\n callback(scope);\n }\n finally {\n this.popScope();\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.getClient = function () {\n return this.getStackTop().client;\n };\n /** Returns the scope of the top stack. */\n Hub.prototype.getScope = function () {\n return this.getStackTop().scope;\n };\n /** Returns the scope stack for domains or the process. */\n Hub.prototype.getStack = function () {\n return this._stack;\n };\n /** Returns the topmost scope layer in the order domain > local > process. */\n Hub.prototype.getStackTop = function () {\n return this._stack[this._stack.length - 1];\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n Hub.prototype.captureException = function (exception, hint) {\n var eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n var finalHint = hint;\n // If there's no explicit hint provided, mimic the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n var syntheticException = void 0;\n try {\n throw new Error('Sentry syntheticException');\n }\n catch (exception) {\n syntheticException = exception;\n }\n finalHint = {\n originalException: exception,\n syntheticException: syntheticException,\n };\n }\n this._invokeClient('captureException', exception, __assign(__assign({}, finalHint), { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureMessage = function (message, level, hint) {\n var eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n var finalHint = hint;\n // If there's no explicit hint provided, mimic the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n var syntheticException = void 0;\n try {\n throw new Error(message);\n }\n catch (exception) {\n syntheticException = exception;\n }\n finalHint = {\n originalException: message,\n syntheticException: syntheticException,\n };\n }\n this._invokeClient('captureMessage', message, level, __assign(__assign({}, finalHint), { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureEvent = function (event, hint) {\n var eventId = hint && hint.event_id ? hint.event_id : uuid4();\n if (event.type !== 'transaction') {\n this._lastEventId = eventId;\n }\n this._invokeClient('captureEvent', event, __assign(__assign({}, hint), { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.lastEventId = function () {\n return this._lastEventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.addBreadcrumb = function (breadcrumb, hint) {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n if (!scope || !client)\n return;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _b = (client.getOptions && client.getOptions()) || {}, _c = _b.beforeBreadcrumb, beforeBreadcrumb = _c === void 0 ? null : _c, _d = _b.maxBreadcrumbs, maxBreadcrumbs = _d === void 0 ? DEFAULT_BREADCRUMBS : _d;\n if (maxBreadcrumbs <= 0)\n return;\n var timestamp = dateTimestampInSeconds();\n var mergedBreadcrumb = __assign({ timestamp: timestamp }, breadcrumb);\n var finalBreadcrumb = beforeBreadcrumb\n ? consoleSandbox(function () { return beforeBreadcrumb(mergedBreadcrumb, hint); })\n : mergedBreadcrumb;\n if (finalBreadcrumb === null)\n return;\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setUser = function (user) {\n var scope = this.getScope();\n if (scope)\n scope.setUser(user);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setTags = function (tags) {\n var scope = this.getScope();\n if (scope)\n scope.setTags(tags);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setExtras = function (extras) {\n var scope = this.getScope();\n if (scope)\n scope.setExtras(extras);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setTag = function (key, value) {\n var scope = this.getScope();\n if (scope)\n scope.setTag(key, value);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setExtra = function (key, extra) {\n var scope = this.getScope();\n if (scope)\n scope.setExtra(key, extra);\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Hub.prototype.setContext = function (name, context) {\n var scope = this.getScope();\n if (scope)\n scope.setContext(name, context);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.configureScope = function (callback) {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n if (scope && client) {\n callback(scope);\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.run = function (callback) {\n var oldHub = makeMain(this);\n try {\n callback(this);\n }\n finally {\n makeMain(oldHub);\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.getIntegration = function (integration) {\n var client = this.getClient();\n if (!client)\n return null;\n try {\n return client.getIntegration(integration);\n }\n catch (_oO) {\n IS_DEBUG_BUILD && logger.warn(\"Cannot retrieve integration \" + integration.id + \" from the current Hub\");\n return null;\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startSpan = function (context) {\n return this._callExtensionMethod('startSpan', context);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startTransaction = function (context, customSamplingContext) {\n return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.traceHeaders = function () {\n return this._callExtensionMethod('traceHeaders');\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureSession = function (endSession) {\n if (endSession === void 0) { endSession = false; }\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n // only send the update\n this._sendSessionUpdate();\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.endSession = function () {\n var layer = this.getStackTop();\n var scope = layer && layer.scope;\n var session = scope && scope.getSession();\n if (session) {\n session.close();\n }\n this._sendSessionUpdate();\n // the session is over; take it off of the scope\n if (scope) {\n scope.setSession();\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startSession = function (context) {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n var _b = (client && client.getOptions()) || {}, release = _b.release, environment = _b.environment;\n // Will fetch userAgent if called from browser sdk\n var global = getGlobalObject();\n var userAgent = (global.navigator || {}).userAgent;\n var session = new Session(__assign(__assign(__assign({ release: release,\n environment: environment }, (scope && { user: scope.getUser() })), (userAgent && { userAgent: userAgent })), context));\n if (scope) {\n // End existing session if there's one\n var currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n currentSession.update({ status: 'exited' });\n }\n this.endSession();\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n }\n return session;\n };\n /**\n * Sends the current Session on the scope\n */\n Hub.prototype._sendSessionUpdate = function () {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n if (!scope)\n return;\n var session = scope.getSession && scope.getSession();\n if (session) {\n if (client && client.captureSession) {\n client.captureSession(session);\n }\n }\n };\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Hub.prototype._invokeClient = function (method) {\n var _a;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var _b = this.getStackTop(), scope = _b.scope, client = _b.client;\n if (client && client[method]) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n (_a = client)[method].apply(_a, __spread(args, [scope]));\n }\n };\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Hub.prototype._callExtensionMethod = function (method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var carrier = getMainCarrier();\n var sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n IS_DEBUG_BUILD && logger.warn(\"Extension method \" + method + \" couldn't be found, doing nothing.\");\n };\n return Hub;\n}());\nexport { Hub };\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nexport function getMainCarrier() {\n var carrier = getGlobalObject();\n carrier.__SENTRY__ = carrier.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return carrier;\n}\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nexport function makeMain(hub) {\n var registry = getMainCarrier();\n var oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nexport function getCurrentHub() {\n // Get main carrier (global for every environment)\n var registry = getMainCarrier();\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n // Prefer domains over global if they are there (applicable only to Node environment)\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n }\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n/**\n * Returns the active domain, if one exists\n * @deprecated No longer used; remove in v7\n * @returns The domain, or undefined if there is no active domain\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getActiveDomain() {\n IS_DEBUG_BUILD && logger.warn('Function `getActiveDomain` is deprecated and will be removed in a future version.');\n var sentry = getMainCarrier().__SENTRY__;\n return sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n}\n/**\n * Try to read the hub from an active domain, and fallback to the registry if one doesn't exist\n * @returns discovered hub\n */\nfunction getHubFromActiveDomain(registry) {\n try {\n var sentry = getMainCarrier().__SENTRY__;\n var activeDomain = sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n // If there's no active domain, just return global hub\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n }\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n var registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n }\n // Return hub that lives on a domain\n return getHubFromCarrier(activeDomain);\n }\n catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier) {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nexport function getHubFromCarrier(carrier) {\n return getGlobalSingleton('hub', function () { return new Hub(); }, carrier);\n}\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nexport function setHubOnCarrier(carrier, hub) {\n if (!carrier)\n return false;\n var __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n __SENTRY__.hub = hub;\n return true;\n}\n//# sourceMappingURL=hub.js.map","import { __assign, __read, __spread } from \"tslib\";\nimport { dateTimestampInSeconds, getGlobalSingleton, isPlainObject, isThenable, SyncPromise } from '@sentry/utils';\n/**\n * Absolute maximum number of breadcrumbs added to an event.\n * The `maxBreadcrumbs` option cannot be higher than this value.\n */\nvar MAX_BREADCRUMBS = 100;\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nvar Scope = /** @class */ (function () {\n function Scope() {\n /** Flag if notifying is happening. */\n this._notifyingListeners = false;\n /** Callback for client to receive scope changes. */\n this._scopeListeners = [];\n /** Callback list that will be called after {@link applyToEvent}. */\n this._eventProcessors = [];\n /** Array of breadcrumbs. */\n this._breadcrumbs = [];\n /** User */\n this._user = {};\n /** Tags */\n this._tags = {};\n /** Extra */\n this._extra = {};\n /** Contexts */\n this._contexts = {};\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n this._sdkProcessingMetadata = {};\n }\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n Scope.clone = function (scope) {\n var newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = __spread(scope._breadcrumbs);\n newScope._tags = __assign({}, scope._tags);\n newScope._extra = __assign({}, scope._extra);\n newScope._contexts = __assign({}, scope._contexts);\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._session = scope._session;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = __spread(scope._eventProcessors);\n newScope._requestSession = scope._requestSession;\n }\n return newScope;\n };\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n Scope.prototype.addScopeListener = function (callback) {\n this._scopeListeners.push(callback);\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.addEventProcessor = function (callback) {\n this._eventProcessors.push(callback);\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setUser = function (user) {\n this._user = user || {};\n if (this._session) {\n this._session.update({ user: user });\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getUser = function () {\n return this._user;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getRequestSession = function () {\n return this._requestSession;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setRequestSession = function (requestSession) {\n this._requestSession = requestSession;\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTags = function (tags) {\n this._tags = __assign(__assign({}, this._tags), tags);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTag = function (key, value) {\n var _a;\n this._tags = __assign(__assign({}, this._tags), (_a = {}, _a[key] = value, _a));\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setExtras = function (extras) {\n this._extra = __assign(__assign({}, this._extra), extras);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setExtra = function (key, extra) {\n var _a;\n this._extra = __assign(__assign({}, this._extra), (_a = {}, _a[key] = extra, _a));\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setFingerprint = function (fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setLevel = function (level) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTransactionName = function (name) {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * Can be removed in major version.\n * @deprecated in favor of {@link this.setTransactionName}\n */\n Scope.prototype.setTransaction = function (name) {\n return this.setTransactionName(name);\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setContext = function (key, context) {\n var _a;\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n }\n else {\n this._contexts = __assign(__assign({}, this._contexts), (_a = {}, _a[key] = context, _a));\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setSpan = function (span) {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getSpan = function () {\n return this._span;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getTransaction = function () {\n // Often, this span (if it exists at all) will be a transaction, but it's not guaranteed to be. Regardless, it will\n // have a pointer to the currently-active transaction.\n var span = this.getSpan();\n return span && span.transaction;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setSession = function (session) {\n if (!session) {\n delete this._session;\n }\n else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getSession = function () {\n return this._session;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.update = function (captureContext) {\n if (!captureContext) {\n return this;\n }\n if (typeof captureContext === 'function') {\n var updatedScope = captureContext(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n if (captureContext instanceof Scope) {\n this._tags = __assign(__assign({}, this._tags), captureContext._tags);\n this._extra = __assign(__assign({}, this._extra), captureContext._extra);\n this._contexts = __assign(__assign({}, this._contexts), captureContext._contexts);\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n if (captureContext._requestSession) {\n this._requestSession = captureContext._requestSession;\n }\n }\n else if (isPlainObject(captureContext)) {\n // eslint-disable-next-line no-param-reassign\n captureContext = captureContext;\n this._tags = __assign(__assign({}, this._tags), captureContext.tags);\n this._extra = __assign(__assign({}, this._extra), captureContext.extra);\n this._contexts = __assign(__assign({}, this._contexts), captureContext.contexts);\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n if (captureContext.requestSession) {\n this._requestSession = captureContext.requestSession;\n }\n }\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.clear = function () {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.addBreadcrumb = function (breadcrumb, maxBreadcrumbs) {\n var maxCrumbs = typeof maxBreadcrumbs === 'number' ? Math.min(maxBreadcrumbs, MAX_BREADCRUMBS) : MAX_BREADCRUMBS;\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n var mergedBreadcrumb = __assign({ timestamp: dateTimestampInSeconds() }, breadcrumb);\n this._breadcrumbs = __spread(this._breadcrumbs, [mergedBreadcrumb]).slice(-maxCrumbs);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.clearBreadcrumbs = function () {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n };\n /**\n * Applies the current context and fingerprint to the event.\n * Note that breadcrumbs will be added by the client.\n * Also if the event has already breadcrumbs on it, we do not merge them.\n * @param event Event\n * @param hint May contain additional information about the original exception.\n * @hidden\n */\n Scope.prototype.applyToEvent = function (event, hint) {\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = __assign(__assign({}, this._extra), event.extra);\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = __assign(__assign({}, this._tags), event.tags);\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = __assign(__assign({}, this._user), event.user);\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = __assign(__assign({}, this._contexts), event.contexts);\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transactionName) {\n event.transaction = this._transactionName;\n }\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (this._span) {\n event.contexts = __assign({ trace: this._span.getTraceContext() }, event.contexts);\n var transactionName = this._span.transaction && this._span.transaction.name;\n if (transactionName) {\n event.tags = __assign({ transaction: transactionName }, event.tags);\n }\n }\n this._applyFingerprint(event);\n event.breadcrumbs = __spread((event.breadcrumbs || []), this._breadcrumbs);\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n event.sdkProcessingMetadata = this._sdkProcessingMetadata;\n return this._notifyEventProcessors(__spread(getGlobalEventProcessors(), this._eventProcessors), event, hint);\n };\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry\n */\n Scope.prototype.setSDKProcessingMetadata = function (newData) {\n this._sdkProcessingMetadata = __assign(__assign({}, this._sdkProcessingMetadata), newData);\n return this;\n };\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n Scope.prototype._notifyEventProcessors = function (processors, event, hint, index) {\n var _this = this;\n if (index === void 0) { index = 0; }\n return new SyncPromise(function (resolve, reject) {\n var processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n }\n else {\n var result = processor(__assign({}, event), hint);\n if (isThenable(result)) {\n void result\n .then(function (final) { return _this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve); })\n .then(null, reject);\n }\n else {\n void _this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n };\n /**\n * This will be called on every set call.\n */\n Scope.prototype._notifyScopeListeners = function () {\n var _this = this;\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(function (callback) {\n callback(_this);\n });\n this._notifyingListeners = false;\n }\n };\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n Scope.prototype._applyFingerprint = function (event) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint\n ? Array.isArray(event.fingerprint)\n ? event.fingerprint\n : [event.fingerprint]\n : [];\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n };\n return Scope;\n}());\nexport { Scope };\n/**\n * Returns the global event processors.\n */\nfunction getGlobalEventProcessors() {\n return getGlobalSingleton('globalEventProcessors', function () { return []; });\n}\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nexport function addGlobalEventProcessor(callback) {\n getGlobalEventProcessors().push(callback);\n}\n//# sourceMappingURL=scope.js.map","// Store finish reasons in tuple to save on bundle size\n// Readonly type should enforce that this is not mutated.\nexport var FINISH_REASON_TAG = 'finishReason';\nexport var IDLE_TRANSACTION_FINISH_REASONS = ['heartbeatFailed', 'idleTimeout', 'documentHidden'];\n//# sourceMappingURL=constants.js.map","/*\n * This file defines flags and constants that can be modified during compile time in order to facilitate tree shaking\n * for users.\n *\n * Debug flags need to be declared in each package individually and must not be imported across package boundaries,\n * because some build tools have trouble tree-shaking imported guards.\n *\n * As a convention, we define debug flags in a `flags.ts` file in the root of a package's `src` folder.\n *\n * Debug flag files will contain \"magic strings\" like `__SENTRY_DEBUG__` that may get replaced with actual values during\n * our, or the user's build process. Take care when introducing new flags - they must not throw if they are not\n * replaced.\n */\n/** Flag that is true for debug builds, false otherwise. */\nexport var IS_DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' ? true : __SENTRY_DEBUG__;\n//# sourceMappingURL=flags.js.map","import { __assign, __read, __spread } from \"tslib\";\nimport { getMainCarrier } from '@sentry/hub';\nimport { dynamicRequire, isNaN, isNodeEnv, loadModule, logger } from '@sentry/utils';\nimport { registerErrorInstrumentation } from './errors';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { IdleTransaction } from './idletransaction';\nimport { Transaction } from './transaction';\nimport { hasTracingEnabled } from './utils';\n/** Returns all trace headers that are currently on the top scope. */\nfunction traceHeaders() {\n var scope = this.getScope();\n if (scope) {\n var span = scope.getSpan();\n if (span) {\n return {\n 'sentry-trace': span.toTraceparent(),\n };\n }\n }\n return {};\n}\n/**\n * Makes a sampling decision for the given transaction and stores it on the transaction.\n *\n * Called every time a transaction is created. Only transactions which emerge with a `sampled` value of `true` will be\n * sent to Sentry.\n *\n * @param transaction: The transaction needing a sampling decision\n * @param options: The current client's options, so we can access `tracesSampleRate` and/or `tracesSampler`\n * @param samplingContext: Default and user-provided data which may be used to help make the decision\n *\n * @returns The given transaction with its `sampled` value set\n */\nfunction sample(transaction, options, samplingContext) {\n // nothing to do if tracing is not enabled\n if (!hasTracingEnabled(options)) {\n transaction.sampled = false;\n return transaction;\n }\n // if the user has forced a sampling decision by passing a `sampled` value in their transaction context, go with that\n if (transaction.sampled !== undefined) {\n transaction.setMetadata({\n transactionSampling: { method: 'explicitly_set' },\n });\n return transaction;\n }\n // we would have bailed already if neither `tracesSampler` nor `tracesSampleRate` were defined, so one of these should\n // work; prefer the hook if so\n var sampleRate;\n if (typeof options.tracesSampler === 'function') {\n sampleRate = options.tracesSampler(samplingContext);\n transaction.setMetadata({\n transactionSampling: {\n method: 'client_sampler',\n // cast to number in case it's a boolean\n rate: Number(sampleRate),\n },\n });\n }\n else if (samplingContext.parentSampled !== undefined) {\n sampleRate = samplingContext.parentSampled;\n transaction.setMetadata({\n transactionSampling: { method: 'inheritance' },\n });\n }\n else {\n sampleRate = options.tracesSampleRate;\n transaction.setMetadata({\n transactionSampling: {\n method: 'client_rate',\n // cast to number in case it's a boolean\n rate: Number(sampleRate),\n },\n });\n }\n // Since this is coming from the user (or from a function provided by the user), who knows what we might get. (The\n // only valid values are booleans or numbers between 0 and 1.)\n if (!isValidSampleRate(sampleRate)) {\n IS_DEBUG_BUILD && logger.warn('[Tracing] Discarding transaction because of invalid sample rate.');\n transaction.sampled = false;\n return transaction;\n }\n // if the function returned 0 (or false), or if `tracesSampleRate` is 0, it's a sign the transaction should be dropped\n if (!sampleRate) {\n IS_DEBUG_BUILD &&\n logger.log(\"[Tracing] Discarding transaction because \" + (typeof options.tracesSampler === 'function'\n ? 'tracesSampler returned 0 or false'\n : 'a negative sampling decision was inherited or tracesSampleRate is set to 0'));\n transaction.sampled = false;\n return transaction;\n }\n // Now we roll the dice. Math.random is inclusive of 0, but not of 1, so strict < is safe here. In case sampleRate is\n // a boolean, the < comparison will cause it to be automatically cast to 1 if it's true and 0 if it's false.\n transaction.sampled = Math.random() < sampleRate;\n // if we're not going to keep it, we're done\n if (!transaction.sampled) {\n IS_DEBUG_BUILD &&\n logger.log(\"[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = \" + Number(sampleRate) + \")\");\n return transaction;\n }\n IS_DEBUG_BUILD && logger.log(\"[Tracing] starting \" + transaction.op + \" transaction - \" + transaction.name);\n return transaction;\n}\n/**\n * Checks the given sample rate to make sure it is valid type and value (a boolean, or a number between 0 and 1).\n */\nfunction isValidSampleRate(rate) {\n // we need to check NaN explicitly because it's of type 'number' and therefore wouldn't get caught by this typecheck\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isNaN(rate) || !(typeof rate === 'number' || typeof rate === 'boolean')) {\n IS_DEBUG_BUILD &&\n logger.warn(\"[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got \" + JSON.stringify(rate) + \" of type \" + JSON.stringify(typeof rate) + \".\");\n return false;\n }\n // in case sampleRate is a boolean, it will get automatically cast to 1 if it's true and 0 if it's false\n if (rate < 0 || rate > 1) {\n IS_DEBUG_BUILD &&\n logger.warn(\"[Tracing] Given sample rate is invalid. Sample rate must be between 0 and 1. Got \" + rate + \".\");\n return false;\n }\n return true;\n}\n/**\n * Creates a new transaction and adds a sampling decision if it doesn't yet have one.\n *\n * The Hub.startTransaction method delegates to this method to do its work, passing the Hub instance in as `this`, as if\n * it had been called on the hub directly. Exists as a separate function so that it can be injected into the class as an\n * \"extension method.\"\n *\n * @param this: The Hub starting the transaction\n * @param transactionContext: Data used to configure the transaction\n * @param CustomSamplingContext: Optional data to be provided to the `tracesSampler` function (if any)\n *\n * @returns The new transaction\n *\n * @see {@link Hub.startTransaction}\n */\nfunction _startTransaction(transactionContext, customSamplingContext) {\n var client = this.getClient();\n var options = (client && client.getOptions()) || {};\n var transaction = new Transaction(transactionContext, this);\n transaction = sample(transaction, options, __assign({ parentSampled: transactionContext.parentSampled, transactionContext: transactionContext }, customSamplingContext));\n if (transaction.sampled) {\n transaction.initSpanRecorder(options._experiments && options._experiments.maxSpans);\n }\n return transaction;\n}\n/**\n * Create new idle transaction.\n */\nexport function startIdleTransaction(hub, transactionContext, idleTimeout, onScope, customSamplingContext) {\n var client = hub.getClient();\n var options = (client && client.getOptions()) || {};\n var transaction = new IdleTransaction(transactionContext, hub, idleTimeout, onScope);\n transaction = sample(transaction, options, __assign({ parentSampled: transactionContext.parentSampled, transactionContext: transactionContext }, customSamplingContext));\n if (transaction.sampled) {\n transaction.initSpanRecorder(options._experiments && options._experiments.maxSpans);\n }\n return transaction;\n}\n/**\n * @private\n */\nexport function _addTracingExtensions() {\n var carrier = getMainCarrier();\n if (!carrier.__SENTRY__) {\n return;\n }\n carrier.__SENTRY__.extensions = carrier.__SENTRY__.extensions || {};\n if (!carrier.__SENTRY__.extensions.startTransaction) {\n carrier.__SENTRY__.extensions.startTransaction = _startTransaction;\n }\n if (!carrier.__SENTRY__.extensions.traceHeaders) {\n carrier.__SENTRY__.extensions.traceHeaders = traceHeaders;\n }\n}\n/**\n * @private\n */\nfunction _autoloadDatabaseIntegrations() {\n var carrier = getMainCarrier();\n if (!carrier.__SENTRY__) {\n return;\n }\n var packageToIntegrationMapping = {\n mongodb: function () {\n var integration = dynamicRequire(module, './integrations/node/mongo');\n return new integration.Mongo();\n },\n mongoose: function () {\n var integration = dynamicRequire(module, './integrations/node/mongo');\n return new integration.Mongo({ mongoose: true });\n },\n mysql: function () {\n var integration = dynamicRequire(module, './integrations/node/mysql');\n return new integration.Mysql();\n },\n pg: function () {\n var integration = dynamicRequire(module, './integrations/node/postgres');\n return new integration.Postgres();\n },\n };\n var mappedPackages = Object.keys(packageToIntegrationMapping)\n .filter(function (moduleName) { return !!loadModule(moduleName); })\n .map(function (pkg) {\n try {\n return packageToIntegrationMapping[pkg]();\n }\n catch (e) {\n return undefined;\n }\n })\n .filter(function (p) { return p; });\n if (mappedPackages.length > 0) {\n carrier.__SENTRY__.integrations = __spread((carrier.__SENTRY__.integrations || []), mappedPackages);\n }\n}\n/**\n * This patches the global object and injects the Tracing extensions methods\n */\nexport function addExtensionMethods() {\n _addTracingExtensions();\n // Detect and automatically load specified integrations.\n if (isNodeEnv()) {\n _autoloadDatabaseIntegrations();\n }\n // If an error happens globally, we should make sure transaction status is set to error.\n registerErrorInstrumentation();\n}\n//# sourceMappingURL=hubextensions.js.map","import { __assign } from \"tslib\";\nimport { dropUndefinedKeys, timestampWithMs, uuid4 } from '@sentry/utils';\n/**\n * Keeps track of finished spans for a given transaction\n * @internal\n * @hideconstructor\n * @hidden\n */\nvar SpanRecorder = /** @class */ (function () {\n function SpanRecorder(maxlen) {\n if (maxlen === void 0) { maxlen = 1000; }\n this.spans = [];\n this._maxlen = maxlen;\n }\n /**\n * This is just so that we don't run out of memory while recording a lot\n * of spans. At some point we just stop and flush out the start of the\n * trace tree (i.e.the first n spans with the smallest\n * start_timestamp).\n */\n SpanRecorder.prototype.add = function (span) {\n if (this.spans.length > this._maxlen) {\n span.spanRecorder = undefined;\n }\n else {\n this.spans.push(span);\n }\n };\n return SpanRecorder;\n}());\nexport { SpanRecorder };\n/**\n * Span contains all data about a span\n */\nvar Span = /** @class */ (function () {\n /**\n * You should never call the constructor manually, always use `Sentry.startTransaction()`\n * or call `startChild()` on an existing span.\n * @internal\n * @hideconstructor\n * @hidden\n */\n function Span(spanContext) {\n /**\n * @inheritDoc\n */\n this.traceId = uuid4();\n /**\n * @inheritDoc\n */\n this.spanId = uuid4().substring(16);\n /**\n * Timestamp in seconds when the span was created.\n */\n this.startTimestamp = timestampWithMs();\n /**\n * @inheritDoc\n */\n this.tags = {};\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.data = {};\n if (!spanContext) {\n return this;\n }\n if (spanContext.traceId) {\n this.traceId = spanContext.traceId;\n }\n if (spanContext.spanId) {\n this.spanId = spanContext.spanId;\n }\n if (spanContext.parentSpanId) {\n this.parentSpanId = spanContext.parentSpanId;\n }\n // We want to include booleans as well here\n if ('sampled' in spanContext) {\n this.sampled = spanContext.sampled;\n }\n if (spanContext.op) {\n this.op = spanContext.op;\n }\n if (spanContext.description) {\n this.description = spanContext.description;\n }\n if (spanContext.data) {\n this.data = spanContext.data;\n }\n if (spanContext.tags) {\n this.tags = spanContext.tags;\n }\n if (spanContext.status) {\n this.status = spanContext.status;\n }\n if (spanContext.startTimestamp) {\n this.startTimestamp = spanContext.startTimestamp;\n }\n if (spanContext.endTimestamp) {\n this.endTimestamp = spanContext.endTimestamp;\n }\n }\n /**\n * @inheritDoc\n * @deprecated\n */\n Span.prototype.child = function (spanContext) {\n return this.startChild(spanContext);\n };\n /**\n * @inheritDoc\n */\n Span.prototype.startChild = function (spanContext) {\n var childSpan = new Span(__assign(__assign({}, spanContext), { parentSpanId: this.spanId, sampled: this.sampled, traceId: this.traceId }));\n childSpan.spanRecorder = this.spanRecorder;\n if (childSpan.spanRecorder) {\n childSpan.spanRecorder.add(childSpan);\n }\n childSpan.transaction = this.transaction;\n return childSpan;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.setTag = function (key, value) {\n var _a;\n this.tags = __assign(__assign({}, this.tags), (_a = {}, _a[key] = value, _a));\n return this;\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n Span.prototype.setData = function (key, value) {\n var _a;\n this.data = __assign(__assign({}, this.data), (_a = {}, _a[key] = value, _a));\n return this;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.setStatus = function (value) {\n this.status = value;\n return this;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.setHttpStatus = function (httpStatus) {\n this.setTag('http.status_code', String(httpStatus));\n var spanStatus = spanStatusfromHttpCode(httpStatus);\n if (spanStatus !== 'unknown_error') {\n this.setStatus(spanStatus);\n }\n return this;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.isSuccess = function () {\n return this.status === 'ok';\n };\n /**\n * @inheritDoc\n */\n Span.prototype.finish = function (endTimestamp) {\n this.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n };\n /**\n * @inheritDoc\n */\n Span.prototype.toTraceparent = function () {\n var sampledString = '';\n if (this.sampled !== undefined) {\n sampledString = this.sampled ? '-1' : '-0';\n }\n return this.traceId + \"-\" + this.spanId + sampledString;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.toContext = function () {\n return dropUndefinedKeys({\n data: this.data,\n description: this.description,\n endTimestamp: this.endTimestamp,\n op: this.op,\n parentSpanId: this.parentSpanId,\n sampled: this.sampled,\n spanId: this.spanId,\n startTimestamp: this.startTimestamp,\n status: this.status,\n tags: this.tags,\n traceId: this.traceId,\n });\n };\n /**\n * @inheritDoc\n */\n Span.prototype.updateWithContext = function (spanContext) {\n var _a, _b, _c, _d, _e;\n this.data = (_a = spanContext.data, (_a !== null && _a !== void 0 ? _a : {}));\n this.description = spanContext.description;\n this.endTimestamp = spanContext.endTimestamp;\n this.op = spanContext.op;\n this.parentSpanId = spanContext.parentSpanId;\n this.sampled = spanContext.sampled;\n this.spanId = (_b = spanContext.spanId, (_b !== null && _b !== void 0 ? _b : this.spanId));\n this.startTimestamp = (_c = spanContext.startTimestamp, (_c !== null && _c !== void 0 ? _c : this.startTimestamp));\n this.status = spanContext.status;\n this.tags = (_d = spanContext.tags, (_d !== null && _d !== void 0 ? _d : {}));\n this.traceId = (_e = spanContext.traceId, (_e !== null && _e !== void 0 ? _e : this.traceId));\n return this;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.getTraceContext = function () {\n return dropUndefinedKeys({\n data: Object.keys(this.data).length > 0 ? this.data : undefined,\n description: this.description,\n op: this.op,\n parent_span_id: this.parentSpanId,\n span_id: this.spanId,\n status: this.status,\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n trace_id: this.traceId,\n });\n };\n /**\n * @inheritDoc\n */\n Span.prototype.toJSON = function () {\n return dropUndefinedKeys({\n data: Object.keys(this.data).length > 0 ? this.data : undefined,\n description: this.description,\n op: this.op,\n parent_span_id: this.parentSpanId,\n span_id: this.spanId,\n start_timestamp: this.startTimestamp,\n status: this.status,\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n timestamp: this.endTimestamp,\n trace_id: this.traceId,\n });\n };\n return Span;\n}());\nexport { Span };\n/**\n * Converts a HTTP status code into a {@link SpanStatusType}.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or unknown_error.\n */\nexport function spanStatusfromHttpCode(httpStatus) {\n if (httpStatus < 400 && httpStatus >= 100) {\n return 'ok';\n }\n if (httpStatus >= 400 && httpStatus < 500) {\n switch (httpStatus) {\n case 401:\n return 'unauthenticated';\n case 403:\n return 'permission_denied';\n case 404:\n return 'not_found';\n case 409:\n return 'already_exists';\n case 413:\n return 'failed_precondition';\n case 429:\n return 'resource_exhausted';\n default:\n return 'invalid_argument';\n }\n }\n if (httpStatus >= 500 && httpStatus < 600) {\n switch (httpStatus) {\n case 501:\n return 'unimplemented';\n case 503:\n return 'unavailable';\n case 504:\n return 'deadline_exceeded';\n default:\n return 'internal_error';\n }\n }\n return 'unknown_error';\n}\n//# sourceMappingURL=span.js.map","import { __assign, __extends } from \"tslib\";\nimport { getCurrentHub, Hub } from '@sentry/hub';\nimport { dropUndefinedKeys, isInstanceOf, logger } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { Span as SpanClass, SpanRecorder } from './span';\n/** JSDoc */\nvar Transaction = /** @class */ (function (_super) {\n __extends(Transaction, _super);\n /**\n * This constructor should never be called manually. Those instrumenting tracing should use\n * `Sentry.startTransaction()`, and internal methods should use `hub.startTransaction()`.\n * @internal\n * @hideconstructor\n * @hidden\n */\n function Transaction(transactionContext, hub) {\n var _this = _super.call(this, transactionContext) || this;\n _this._measurements = {};\n /**\n * The reference to the current hub.\n */\n _this._hub = getCurrentHub();\n if (isInstanceOf(hub, Hub)) {\n _this._hub = hub;\n }\n _this.name = transactionContext.name || '';\n _this.metadata = transactionContext.metadata || {};\n _this._trimEnd = transactionContext.trimEnd;\n // this is because transactions are also spans, and spans have a transaction pointer\n _this.transaction = _this;\n return _this;\n }\n /**\n * JSDoc\n */\n Transaction.prototype.setName = function (name) {\n this.name = name;\n };\n /**\n * Attaches SpanRecorder to the span itself\n * @param maxlen maximum number of spans that can be recorded\n */\n Transaction.prototype.initSpanRecorder = function (maxlen) {\n if (maxlen === void 0) { maxlen = 1000; }\n if (!this.spanRecorder) {\n this.spanRecorder = new SpanRecorder(maxlen);\n }\n this.spanRecorder.add(this);\n };\n /**\n * Set observed measurements for this transaction.\n * @hidden\n */\n Transaction.prototype.setMeasurements = function (measurements) {\n this._measurements = __assign({}, measurements);\n };\n /**\n * Set metadata for this transaction.\n * @hidden\n */\n Transaction.prototype.setMetadata = function (newMetadata) {\n this.metadata = __assign(__assign({}, this.metadata), newMetadata);\n };\n /**\n * @inheritDoc\n */\n Transaction.prototype.finish = function (endTimestamp) {\n var _this = this;\n // This transaction is already finished, so we should not flush it again.\n if (this.endTimestamp !== undefined) {\n return undefined;\n }\n if (!this.name) {\n IS_DEBUG_BUILD && logger.warn('Transaction has no name, falling back to ``.');\n this.name = '';\n }\n // just sets the end timestamp\n _super.prototype.finish.call(this, endTimestamp);\n if (this.sampled !== true) {\n // At this point if `sampled !== true` we want to discard the transaction.\n IS_DEBUG_BUILD && logger.log('[Tracing] Discarding transaction because its trace was not chosen to be sampled.');\n var client = this._hub.getClient();\n var transport = client && client.getTransport && client.getTransport();\n if (transport && transport.recordLostEvent) {\n transport.recordLostEvent('sample_rate', 'transaction');\n }\n return undefined;\n }\n var finishedSpans = this.spanRecorder ? this.spanRecorder.spans.filter(function (s) { return s !== _this && s.endTimestamp; }) : [];\n if (this._trimEnd && finishedSpans.length > 0) {\n this.endTimestamp = finishedSpans.reduce(function (prev, current) {\n if (prev.endTimestamp && current.endTimestamp) {\n return prev.endTimestamp > current.endTimestamp ? prev : current;\n }\n return prev;\n }).endTimestamp;\n }\n var transaction = {\n contexts: {\n trace: this.getTraceContext(),\n },\n spans: finishedSpans,\n start_timestamp: this.startTimestamp,\n tags: this.tags,\n timestamp: this.endTimestamp,\n transaction: this.name,\n type: 'transaction',\n sdkProcessingMetadata: this.metadata,\n };\n var hasMeasurements = Object.keys(this._measurements).length > 0;\n if (hasMeasurements) {\n IS_DEBUG_BUILD &&\n logger.log('[Measurements] Adding measurements to transaction', JSON.stringify(this._measurements, undefined, 2));\n transaction.measurements = this._measurements;\n }\n IS_DEBUG_BUILD && logger.log(\"[Tracing] Finishing \" + this.op + \" transaction: \" + this.name + \".\");\n return this._hub.captureEvent(transaction);\n };\n /**\n * @inheritDoc\n */\n Transaction.prototype.toContext = function () {\n var spanContext = _super.prototype.toContext.call(this);\n return dropUndefinedKeys(__assign(__assign({}, spanContext), { name: this.name, trimEnd: this._trimEnd }));\n };\n /**\n * @inheritDoc\n */\n Transaction.prototype.updateWithContext = function (transactionContext) {\n var _a;\n _super.prototype.updateWithContext.call(this, transactionContext);\n this.name = (_a = transactionContext.name, (_a !== null && _a !== void 0 ? _a : ''));\n this._trimEnd = transactionContext.trimEnd;\n return this;\n };\n return Transaction;\n}(SpanClass));\nexport { Transaction };\n//# sourceMappingURL=transaction.js.map","import { __extends, __values } from \"tslib\";\nimport { logger, timestampWithMs } from '@sentry/utils';\nimport { FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS } from './constants';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { SpanRecorder } from './span';\nimport { Transaction } from './transaction';\nexport var DEFAULT_IDLE_TIMEOUT = 1000;\nexport var HEARTBEAT_INTERVAL = 5000;\n/**\n * @inheritDoc\n */\nvar IdleTransactionSpanRecorder = /** @class */ (function (_super) {\n __extends(IdleTransactionSpanRecorder, _super);\n function IdleTransactionSpanRecorder(_pushActivity, _popActivity, transactionSpanId, maxlen) {\n if (transactionSpanId === void 0) { transactionSpanId = ''; }\n var _this = _super.call(this, maxlen) || this;\n _this._pushActivity = _pushActivity;\n _this._popActivity = _popActivity;\n _this.transactionSpanId = transactionSpanId;\n return _this;\n }\n /**\n * @inheritDoc\n */\n IdleTransactionSpanRecorder.prototype.add = function (span) {\n var _this = this;\n // We should make sure we do not push and pop activities for\n // the transaction that this span recorder belongs to.\n if (span.spanId !== this.transactionSpanId) {\n // We patch span.finish() to pop an activity after setting an endTimestamp.\n span.finish = function (endTimestamp) {\n span.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n _this._popActivity(span.spanId);\n };\n // We should only push new activities if the span does not have an end timestamp.\n if (span.endTimestamp === undefined) {\n this._pushActivity(span.spanId);\n }\n }\n _super.prototype.add.call(this, span);\n };\n return IdleTransactionSpanRecorder;\n}(SpanRecorder));\nexport { IdleTransactionSpanRecorder };\n/**\n * An IdleTransaction is a transaction that automatically finishes. It does this by tracking child spans as activities.\n * You can have multiple IdleTransactions active, but if the `onScope` option is specified, the idle transaction will\n * put itself on the scope on creation.\n */\nvar IdleTransaction = /** @class */ (function (_super) {\n __extends(IdleTransaction, _super);\n function IdleTransaction(transactionContext, _idleHub, \n /**\n * The time to wait in ms until the idle transaction will be finished.\n * @default 1000\n */\n _idleTimeout, \n // Whether or not the transaction should put itself on the scope when it starts and pop itself off when it ends\n _onScope) {\n if (_idleTimeout === void 0) { _idleTimeout = DEFAULT_IDLE_TIMEOUT; }\n if (_onScope === void 0) { _onScope = false; }\n var _this = _super.call(this, transactionContext, _idleHub) || this;\n _this._idleHub = _idleHub;\n _this._idleTimeout = _idleTimeout;\n _this._onScope = _onScope;\n // Activities store a list of active spans\n _this.activities = {};\n // Amount of times heartbeat has counted. Will cause transaction to finish after 3 beats.\n _this._heartbeatCounter = 0;\n // We should not use heartbeat if we finished a transaction\n _this._finished = false;\n _this._beforeFinishCallbacks = [];\n if (_idleHub && _onScope) {\n // There should only be one active transaction on the scope\n clearActiveTransaction(_idleHub);\n // We set the transaction here on the scope so error events pick up the trace\n // context and attach it to the error.\n IS_DEBUG_BUILD && logger.log(\"Setting idle transaction on scope. Span ID: \" + _this.spanId);\n _idleHub.configureScope(function (scope) { return scope.setSpan(_this); });\n }\n _this._initTimeout = setTimeout(function () {\n if (!_this._finished) {\n _this.finish();\n }\n }, _this._idleTimeout);\n return _this;\n }\n /** {@inheritDoc} */\n IdleTransaction.prototype.finish = function (endTimestamp) {\n var e_1, _a;\n var _this = this;\n if (endTimestamp === void 0) { endTimestamp = timestampWithMs(); }\n this._finished = true;\n this.activities = {};\n if (this.spanRecorder) {\n IS_DEBUG_BUILD &&\n logger.log('[Tracing] finishing IdleTransaction', new Date(endTimestamp * 1000).toISOString(), this.op);\n try {\n for (var _b = __values(this._beforeFinishCallbacks), _c = _b.next(); !_c.done; _c = _b.next()) {\n var callback = _c.value;\n callback(this, endTimestamp);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.spanRecorder.spans = this.spanRecorder.spans.filter(function (span) {\n // If we are dealing with the transaction itself, we just return it\n if (span.spanId === _this.spanId) {\n return true;\n }\n // We cancel all pending spans with status \"cancelled\" to indicate the idle transaction was finished early\n if (!span.endTimestamp) {\n span.endTimestamp = endTimestamp;\n span.setStatus('cancelled');\n IS_DEBUG_BUILD &&\n logger.log('[Tracing] cancelling span since transaction ended early', JSON.stringify(span, undefined, 2));\n }\n var keepSpan = span.startTimestamp < endTimestamp;\n if (!keepSpan) {\n IS_DEBUG_BUILD &&\n logger.log('[Tracing] discarding Span since it happened after Transaction was finished', JSON.stringify(span, undefined, 2));\n }\n return keepSpan;\n });\n IS_DEBUG_BUILD && logger.log('[Tracing] flushing IdleTransaction');\n }\n else {\n IS_DEBUG_BUILD && logger.log('[Tracing] No active IdleTransaction');\n }\n // if `this._onScope` is `true`, the transaction put itself on the scope when it started\n if (this._onScope) {\n clearActiveTransaction(this._idleHub);\n }\n return _super.prototype.finish.call(this, endTimestamp);\n };\n /**\n * Register a callback function that gets excecuted before the transaction finishes.\n * Useful for cleanup or if you want to add any additional spans based on current context.\n *\n * This is exposed because users have no other way of running something before an idle transaction\n * finishes.\n */\n IdleTransaction.prototype.registerBeforeFinishCallback = function (callback) {\n this._beforeFinishCallbacks.push(callback);\n };\n /**\n * @inheritDoc\n */\n IdleTransaction.prototype.initSpanRecorder = function (maxlen) {\n var _this = this;\n if (!this.spanRecorder) {\n var pushActivity = function (id) {\n if (_this._finished) {\n return;\n }\n _this._pushActivity(id);\n };\n var popActivity = function (id) {\n if (_this._finished) {\n return;\n }\n _this._popActivity(id);\n };\n this.spanRecorder = new IdleTransactionSpanRecorder(pushActivity, popActivity, this.spanId, maxlen);\n // Start heartbeat so that transactions do not run forever.\n IS_DEBUG_BUILD && logger.log('Starting heartbeat');\n this._pingHeartbeat();\n }\n this.spanRecorder.add(this);\n };\n /**\n * Start tracking a specific activity.\n * @param spanId The span id that represents the activity\n */\n IdleTransaction.prototype._pushActivity = function (spanId) {\n if (this._initTimeout) {\n clearTimeout(this._initTimeout);\n this._initTimeout = undefined;\n }\n IS_DEBUG_BUILD && logger.log(\"[Tracing] pushActivity: \" + spanId);\n this.activities[spanId] = true;\n IS_DEBUG_BUILD && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n };\n /**\n * Remove an activity from usage\n * @param spanId The span id that represents the activity\n */\n IdleTransaction.prototype._popActivity = function (spanId) {\n var _this = this;\n if (this.activities[spanId]) {\n IS_DEBUG_BUILD && logger.log(\"[Tracing] popActivity \" + spanId);\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this.activities[spanId];\n IS_DEBUG_BUILD && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n if (Object.keys(this.activities).length === 0) {\n var timeout = this._idleTimeout;\n // We need to add the timeout here to have the real endtimestamp of the transaction\n // Remember timestampWithMs is in seconds, timeout is in ms\n var end_1 = timestampWithMs() + timeout / 1000;\n setTimeout(function () {\n if (!_this._finished) {\n _this.setTag(FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS[1]);\n _this.finish(end_1);\n }\n }, timeout);\n }\n };\n /**\n * Checks when entries of this.activities are not changing for 3 beats.\n * If this occurs we finish the transaction.\n */\n IdleTransaction.prototype._beat = function () {\n // We should not be running heartbeat if the idle transaction is finished.\n if (this._finished) {\n return;\n }\n var heartbeatString = Object.keys(this.activities).join('');\n if (heartbeatString === this._prevHeartbeatString) {\n this._heartbeatCounter += 1;\n }\n else {\n this._heartbeatCounter = 1;\n }\n this._prevHeartbeatString = heartbeatString;\n if (this._heartbeatCounter >= 3) {\n IS_DEBUG_BUILD && logger.log('[Tracing] Transaction finished because of no change for 3 heart beats');\n this.setStatus('deadline_exceeded');\n this.setTag(FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS[0]);\n this.finish();\n }\n else {\n this._pingHeartbeat();\n }\n };\n /**\n * Pings the heartbeat\n */\n IdleTransaction.prototype._pingHeartbeat = function () {\n var _this = this;\n IS_DEBUG_BUILD && logger.log(\"pinging Heartbeat -> current counter: \" + this._heartbeatCounter);\n setTimeout(function () {\n _this._beat();\n }, HEARTBEAT_INTERVAL);\n };\n return IdleTransaction;\n}(Transaction));\nexport { IdleTransaction };\n/**\n * Reset transaction on scope to `undefined`\n */\nfunction clearActiveTransaction(hub) {\n if (hub) {\n var scope = hub.getScope();\n if (scope) {\n var transaction = scope.getTransaction();\n if (transaction) {\n scope.setSpan(undefined);\n }\n }\n }\n}\n//# sourceMappingURL=idletransaction.js.map","import { getCurrentHub } from '@sentry/hub';\n/**\n * The `extractTraceparentData` function and `TRACEPARENT_REGEXP` constant used\n * to be declared in this file. It was later moved into `@sentry/utils` as part of a\n * move to remove `@sentry/tracing` dependencies from `@sentry/node` (`extractTraceparentData`\n * is the only tracing function used by `@sentry/node`).\n *\n * These exports are kept here for backwards compatability's sake.\n *\n * TODO(v7): Reorganize these exports\n *\n * See https://github.com/getsentry/sentry-javascript/issues/4642 for more details.\n */\nexport { TRACEPARENT_REGEXP, extractTraceparentData } from '@sentry/utils';\n/**\n * Determines if tracing is currently enabled.\n *\n * Tracing is enabled when at least one of `tracesSampleRate` and `tracesSampler` is defined in the SDK config.\n */\nexport function hasTracingEnabled(maybeOptions) {\n var client = getCurrentHub().getClient();\n var options = maybeOptions || (client && client.getOptions());\n return !!options && ('tracesSampleRate' in options || 'tracesSampler' in options);\n}\n/** Grabs active transaction off scope, if any */\nexport function getActiveTransaction(maybeHub) {\n var hub = maybeHub || getCurrentHub();\n var scope = hub.getScope();\n return scope && scope.getTransaction();\n}\n/**\n * Converts from milliseconds to seconds\n * @param time time in ms\n */\nexport function msToSec(time) {\n return time / 1000;\n}\n/**\n * Converts from seconds to milliseconds\n * @param time time in seconds\n */\nexport function secToMs(time) {\n return time * 1000;\n}\n// so it can be used in manual instrumentation without necessitating a hard dependency on @sentry/utils\nexport { stripUrlQueryAndFragment } from '@sentry/utils';\n//# sourceMappingURL=utils.js.map","import { getGlobalObject } from './global';\nimport { isString } from './is';\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nexport function htmlTreeAsString(elem, keyAttrs) {\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n var currentElem = elem;\n var MAX_TRAVERSE_HEIGHT = 5;\n var MAX_OUTPUT_LEN = 80;\n var out = [];\n var height = 0;\n var len = 0;\n var separator = ' > ';\n var sepLength = separator.length;\n var nextStr = void 0;\n // eslint-disable-next-line no-plusplus\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)) {\n break;\n }\n out.push(nextStr);\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n return out.reverse().join(separator);\n }\n catch (_oO) {\n return '';\n }\n}\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el, keyAttrs) {\n var elem = el;\n var out = [];\n var className;\n var classes;\n var key;\n var attr;\n var i;\n if (!elem || !elem.tagName) {\n return '';\n }\n out.push(elem.tagName.toLowerCase());\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n var keyAttrPairs = keyAttrs && keyAttrs.length\n ? keyAttrs.filter(function (keyAttr) { return elem.getAttribute(keyAttr); }).map(function (keyAttr) { return [keyAttr, elem.getAttribute(keyAttr)]; })\n : null;\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(function (keyAttrPair) {\n out.push(\"[\" + keyAttrPair[0] + \"=\\\"\" + keyAttrPair[1] + \"\\\"]\");\n });\n }\n else {\n if (elem.id) {\n out.push(\"#\" + elem.id);\n }\n // eslint-disable-next-line prefer-const\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(\".\" + classes[i]);\n }\n }\n }\n var allowedAttrs = ['type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(\"[\" + key + \"=\\\"\" + attr + \"\\\"]\");\n }\n }\n return out.join('');\n}\n/**\n * A safe form of location.href\n */\nexport function getLocationHref() {\n var global = getGlobalObject();\n try {\n return global.document.location.href;\n }\n catch (oO) {\n return '';\n }\n}\n//# sourceMappingURL=browser.js.map","/*\n * This file defines flags and constants that can be modified during compile time in order to facilitate tree shaking\n * for users.\n *\n * Debug flags need to be declared in each package individually and must not be imported across package boundaries,\n * because some build tools have trouble tree-shaking imported guards.\n *\n * As a convention, we define debug flags in a `flags.ts` file in the root of a package's `src` folder.\n *\n * Debug flag files will contain \"magic strings\" like `__SENTRY_DEBUG__` that may get replaced with actual values during\n * our, or the user's build process. Take care when introducing new flags - they must not throw if they are not\n * replaced.\n */\n/** Flag that is true for debug builds, false otherwise. */\nexport var IS_DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' ? true : __SENTRY_DEBUG__;\n//# sourceMappingURL=flags.js.map","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\nimport { isNodeEnv } from './node';\nvar fallbackGlobalObject = {};\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\nexport function getGlobalObject() {\n return (isNodeEnv()\n ? global\n : typeof window !== 'undefined' // eslint-disable-line no-restricted-globals\n ? window // eslint-disable-line no-restricted-globals\n : typeof self !== 'undefined'\n ? self\n : fallbackGlobalObject);\n}\n/**\n * Returns a global singleton contained in the global `__SENTRY__` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `getGlobalObject`'s return value\n * @returns the singleton\n */\nexport function getGlobalSingleton(name, creator, obj) {\n var global = (obj || getGlobalObject());\n var __SENTRY__ = (global.__SENTRY__ = global.__SENTRY__ || {});\n var singleton = __SENTRY__[name] || (__SENTRY__[name] = creator());\n return singleton;\n}\n//# sourceMappingURL=global.js.map","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n// eslint-disable-next-line @typescript-eslint/unbound-method\nvar objectToString = Object.prototype.toString;\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isError(wat) {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\nfunction isBuiltin(wat, ty) {\n return objectToString.call(wat) === \"[object \" + ty + \"]\";\n}\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isErrorEvent(wat) {\n return isBuiltin(wat, 'ErrorEvent');\n}\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMError(wat) {\n return isBuiltin(wat, 'DOMError');\n}\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMException(wat) {\n return isBuiltin(wat, 'DOMException');\n}\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isString(wat) {\n return isBuiltin(wat, 'String');\n}\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPrimitive(wat) {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPlainObject(wat) {\n return isBuiltin(wat, 'Object');\n}\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isEvent(wat) {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isElement(wat) {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isRegExp(wat) {\n return isBuiltin(wat, 'RegExp');\n}\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nexport function isThenable(wat) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isSyntheticEvent(wat) {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n/**\n * Checks whether given value is NaN\n * {@link isNaN}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isNaN(wat) {\n return typeof wat === 'number' && wat !== wat;\n}\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nexport function isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n }\n catch (_e) {\n return false;\n }\n}\n//# sourceMappingURL=is.js.map","import { __read, __spread } from \"tslib\";\nimport { IS_DEBUG_BUILD } from './flags';\nimport { getGlobalObject, getGlobalSingleton } from './global';\n// TODO: Implement different loggers for different environments\nvar global = getGlobalObject();\n/** Prefix for logging strings */\nvar PREFIX = 'Sentry Logger ';\nexport var CONSOLE_LEVELS = ['debug', 'info', 'warn', 'error', 'log', 'assert'];\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nexport function consoleSandbox(callback) {\n var global = getGlobalObject();\n if (!('console' in global)) {\n return callback();\n }\n var originalConsole = global.console;\n var wrappedLevels = {};\n // Restore all wrapped console methods\n CONSOLE_LEVELS.forEach(function (level) {\n // TODO(v7): Remove this check as it's only needed for Node 6\n var originalWrappedFunc = originalConsole[level] && originalConsole[level].__sentry_original__;\n if (level in global.console && originalWrappedFunc) {\n wrappedLevels[level] = originalConsole[level];\n originalConsole[level] = originalWrappedFunc;\n }\n });\n try {\n return callback();\n }\n finally {\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(function (level) {\n originalConsole[level] = wrappedLevels[level];\n });\n }\n}\nfunction makeLogger() {\n var enabled = false;\n var logger = {\n enable: function () {\n enabled = true;\n },\n disable: function () {\n enabled = false;\n },\n };\n if (IS_DEBUG_BUILD) {\n CONSOLE_LEVELS.forEach(function (name) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logger[name] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (enabled) {\n consoleSandbox(function () {\n var _a;\n (_a = global.console)[name].apply(_a, __spread([PREFIX + \"[\" + name + \"]:\"], args));\n });\n }\n };\n });\n }\n else {\n CONSOLE_LEVELS.forEach(function (name) {\n logger[name] = function () { return undefined; };\n });\n }\n return logger;\n}\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nvar logger;\nif (IS_DEBUG_BUILD) {\n logger = getGlobalSingleton('logger', makeLogger);\n}\nelse {\n logger = makeLogger();\n}\nexport { logger };\n//# sourceMappingURL=logger.js.map","import { __assign } from \"tslib\";\nimport { getGlobalObject } from './global';\nimport { addNonEnumerableProperty } from './object';\nimport { snipLine } from './string';\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nexport function uuid4() {\n var global = getGlobalObject();\n var crypto = global.crypto || global.msCrypto;\n if (!(crypto === void 0) && crypto.getRandomValues) {\n // Use window.crypto API if available\n var arr = new Uint16Array(8);\n crypto.getRandomValues(arr);\n // set 4 in byte 7\n // eslint-disable-next-line no-bitwise\n arr[3] = (arr[3] & 0xfff) | 0x4000;\n // set 2 most significant bits of byte 9 to '10'\n // eslint-disable-next-line no-bitwise\n arr[4] = (arr[4] & 0x3fff) | 0x8000;\n var pad = function (num) {\n var v = num.toString(16);\n while (v.length < 4) {\n v = \"0\" + v;\n }\n return v;\n };\n return (pad(arr[0]) + pad(arr[1]) + pad(arr[2]) + pad(arr[3]) + pad(arr[4]) + pad(arr[5]) + pad(arr[6]) + pad(arr[7]));\n }\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n // eslint-disable-next-line no-bitwise\n var r = (Math.random() * 16) | 0;\n // eslint-disable-next-line no-bitwise\n var v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nexport function parseUrl(url) {\n if (!url) {\n return {};\n }\n var match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n if (!match) {\n return {};\n }\n // coerce to undefined values to empty string so we don't get 'undefined'\n var query = match[6] || '';\n var fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n relative: match[5] + query + fragment,\n };\n}\nfunction getFirstException(event) {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nexport function getEventDescription(event) {\n var message = event.message, eventId = event.event_id;\n if (message) {\n return message;\n }\n var firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return firstException.type + \": \" + firstException.value;\n }\n return firstException.type || firstException.value || eventId || '';\n }\n return eventId || '';\n}\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nexport function addExceptionTypeValue(event, value, type) {\n var exception = (event.exception = event.exception || {});\n var values = (exception.values = exception.values || []);\n var firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nexport function addExceptionMechanism(event, newMechanism) {\n var firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n var defaultMechanism = { type: 'generic', handled: true };\n var currentMechanism = firstException.mechanism;\n firstException.mechanism = __assign(__assign(__assign({}, defaultMechanism), currentMechanism), newMechanism);\n if (newMechanism && 'data' in newMechanism) {\n var mergedData = __assign(__assign({}, (currentMechanism && currentMechanism.data)), newMechanism.data);\n firstException.mechanism.data = mergedData;\n }\n}\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nvar SEMVER_REGEXP = /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nexport function parseSemver(input) {\n var match = input.match(SEMVER_REGEXP) || [];\n var major = parseInt(match[1], 10);\n var minor = parseInt(match[2], 10);\n var patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nexport function addContextToFrame(lines, frame, linesOfContext) {\n if (linesOfContext === void 0) { linesOfContext = 5; }\n var lineno = frame.lineno || 0;\n var maxLines = lines.length;\n var sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map(function (line) { return snipLine(line, 0); });\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map(function (line) { return snipLine(line, 0); });\n}\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nexport function stripUrlQueryAndFragment(urlPath) {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nexport function checkOrSetAlreadyCaught(exception) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (exception && exception.__sentry_captured__) {\n return true;\n }\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception, '__sentry_captured__', true);\n }\n catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n return false;\n}\n//# sourceMappingURL=misc.js.map","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\nimport { isBrowserBundle } from './env';\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nexport function isNodeEnv() {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return (!isBrowserBundle() &&\n Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]');\n}\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nexport function dynamicRequire(mod, request) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nexport function loadModule(moduleName) {\n var mod;\n try {\n mod = dynamicRequire(module, moduleName);\n }\n catch (e) {\n // no-empty\n }\n try {\n var cwd = dynamicRequire(module, 'process').cwd;\n mod = dynamicRequire(module, cwd() + \"/node_modules/\" + moduleName);\n }\n catch (e) {\n // no-empty\n }\n return mod;\n}\n//# sourceMappingURL=node.js.map","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These fags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nexport function isBrowserBundle() {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n//# sourceMappingURL=env.js.map","import { __assign, __values } from \"tslib\";\nimport { htmlTreeAsString } from './browser';\nimport { isElement, isError, isEvent, isInstanceOf, isPlainObject, isPrimitive } from './is';\nimport { truncate } from './string';\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nexport function fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n var original = source[name];\n var wrapped = replacementFactory(original);\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n try {\n markFunctionWrapped(wrapped, original);\n }\n catch (_Oo) {\n // This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n source[name] = wrapped;\n}\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nexport function addNonEnumerableProperty(obj, name, value) {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n}\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nexport function markFunctionWrapped(wrapped, original) {\n var proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n}\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nexport function getOriginalFunction(func) {\n return func.__sentry_original__;\n}\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nexport function urlEncode(object) {\n return Object.keys(object)\n .map(function (key) { return encodeURIComponent(key) + \"=\" + encodeURIComponent(object[key]); })\n .join('&');\n}\n/**\n * Transforms any object into an object literal with all its attributes\n * attached to it.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n */\nexport function convertToPlainObject(value) {\n var newObj = value;\n if (isError(value)) {\n newObj = __assign({ message: value.message, name: value.name, stack: value.stack }, getOwnProperties(value));\n }\n else if (isEvent(value)) {\n var event_1 = value;\n newObj = __assign({ type: event_1.type, target: serializeEventTarget(event_1.target), currentTarget: serializeEventTarget(event_1.currentTarget) }, getOwnProperties(event_1));\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = event_1.detail;\n }\n }\n return newObj;\n}\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target) {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n }\n catch (_oO) {\n return '';\n }\n}\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj) {\n var extractedProps = {};\n for (var property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = obj[property];\n }\n }\n return extractedProps;\n}\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function extractExceptionKeysForMessage(exception, maxLength) {\n if (maxLength === void 0) { maxLength = 40; }\n var keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n if (!keys.length) {\n return '[object has no keys]';\n }\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n for (var includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n var serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n return '';\n}\n/**\n * Given any object, return the new object with removed keys that value was `undefined`.\n * Works recursively on objects and arrays.\n */\nexport function dropUndefinedKeys(val) {\n var e_1, _a;\n if (isPlainObject(val)) {\n var rv = {};\n try {\n for (var _b = __values(Object.keys(val)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n if (typeof val[key] !== 'undefined') {\n rv[key] = dropUndefinedKeys(val[key]);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return rv;\n }\n if (Array.isArray(val)) {\n return val.map(dropUndefinedKeys);\n }\n return val;\n}\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nexport function objectify(wat) {\n var objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new wat.constructor(wat);\n break;\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n//# sourceMappingURL=object.js.map","import { isRegExp, isString } from './is';\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nexport function truncate(str, max) {\n if (max === void 0) { max = 0; }\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : str.substr(0, max) + \"...\";\n}\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nexport function snipLine(line, colno) {\n var newLine = line;\n var lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n // eslint-disable-next-line no-param-reassign\n colno = lineLength;\n }\n var start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n var end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = \"'{snip} \" + newLine;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n return newLine;\n}\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n var output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (var i = 0; i < input.length; i++) {\n var value = input[i];\n try {\n output.push(String(value));\n }\n catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n return output.join(delimiter);\n}\n/**\n * Checks if the value matches a regex or includes the string\n * @param value The string value to be checked against\n * @param pattern Either a regex or a string that must be contained in value\n */\nexport function isMatchingPattern(value, pattern) {\n if (!isString(value)) {\n return false;\n }\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (typeof pattern === 'string') {\n return value.indexOf(pattern) !== -1;\n }\n return false;\n}\n/**\n * Given a string, escape characters which have meaning in the regex grammar, such that the result is safe to feed to\n * `new RegExp()`.\n *\n * Based on https://github.com/sindresorhus/escape-string-regexp. Vendored to a) reduce the size by skipping the runtime\n * type-checking, and b) ensure it gets down-compiled for old versions of Node (the published package only supports Node\n * 12+).\n *\n * @param regexString The string to escape\n * @returns An version of the string with all special regex characters escaped\n */\nexport function escapeStringForRegex(regexString) {\n // escape the hyphen separately so we can also replace it with a unicode literal hyphen, to avoid the problems\n // discussed in https://github.com/sindresorhus/escape-string-regexp/issues/20.\n return regexString.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d');\n}\n//# sourceMappingURL=string.js.map","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/typedef */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isThenable } from './is';\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nexport function resolvedSyncPromise(value) {\n return new SyncPromise(function (resolve) {\n resolve(value);\n });\n}\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nexport function rejectedSyncPromise(reason) {\n return new SyncPromise(function (_, reject) {\n reject(reason);\n });\n}\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nvar SyncPromise = /** @class */ (function () {\n function SyncPromise(executor) {\n var _this = this;\n this._state = 0 /* PENDING */;\n this._handlers = [];\n /** JSDoc */\n this._resolve = function (value) {\n _this._setResult(1 /* RESOLVED */, value);\n };\n /** JSDoc */\n this._reject = function (reason) {\n _this._setResult(2 /* REJECTED */, reason);\n };\n /** JSDoc */\n this._setResult = function (state, value) {\n if (_this._state !== 0 /* PENDING */) {\n return;\n }\n if (isThenable(value)) {\n void value.then(_this._resolve, _this._reject);\n return;\n }\n _this._state = state;\n _this._value = value;\n _this._executeHandlers();\n };\n /** JSDoc */\n this._executeHandlers = function () {\n if (_this._state === 0 /* PENDING */) {\n return;\n }\n var cachedHandlers = _this._handlers.slice();\n _this._handlers = [];\n cachedHandlers.forEach(function (handler) {\n if (handler[0]) {\n return;\n }\n if (_this._state === 1 /* RESOLVED */) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler[1](_this._value);\n }\n if (_this._state === 2 /* REJECTED */) {\n handler[2](_this._value);\n }\n handler[0] = true;\n });\n };\n try {\n executor(this._resolve, this._reject);\n }\n catch (e) {\n this._reject(e);\n }\n }\n /** JSDoc */\n SyncPromise.prototype.then = function (onfulfilled, onrejected) {\n var _this = this;\n return new SyncPromise(function (resolve, reject) {\n _this._handlers.push([\n false,\n function (result) {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result);\n }\n else {\n try {\n resolve(onfulfilled(result));\n }\n catch (e) {\n reject(e);\n }\n }\n },\n function (reason) {\n if (!onrejected) {\n reject(reason);\n }\n else {\n try {\n resolve(onrejected(reason));\n }\n catch (e) {\n reject(e);\n }\n }\n },\n ]);\n _this._executeHandlers();\n });\n };\n /** JSDoc */\n SyncPromise.prototype.catch = function (onrejected) {\n return this.then(function (val) { return val; }, onrejected);\n };\n /** JSDoc */\n SyncPromise.prototype.finally = function (onfinally) {\n var _this = this;\n return new SyncPromise(function (resolve, reject) {\n var val;\n var isRejected;\n return _this.then(function (value) {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n }, function (reason) {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n }).then(function () {\n if (isRejected) {\n reject(val);\n return;\n }\n resolve(val);\n });\n });\n };\n return SyncPromise;\n}());\nexport { SyncPromise };\n//# sourceMappingURL=syncpromise.js.map","import { getGlobalObject } from './global';\nimport { dynamicRequire, isNodeEnv } from './node';\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\nvar dateTimestampSource = {\n nowSeconds: function () { return Date.now() / 1000; },\n};\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction getBrowserPerformance() {\n var performance = getGlobalObject().performance;\n if (!performance || !performance.now) {\n return undefined;\n }\n // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n //\n // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n // performance.now() gives a date arbitrarily in the past.\n //\n // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n // undefined.\n //\n // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n // interact with data coming out of performance entries.\n //\n // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n // observed skews that can be as long as days, weeks or months.\n //\n // See https://github.com/getsentry/sentry-javascript/issues/2590.\n //\n // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n // transactions of long-lived web pages.\n var timeOrigin = Date.now() - performance.now();\n return {\n now: function () { return performance.now(); },\n timeOrigin: timeOrigin,\n };\n}\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\nfunction getNodePerformance() {\n try {\n var perfHooks = dynamicRequire(module, 'perf_hooks');\n return perfHooks.performance;\n }\n catch (_) {\n return undefined;\n }\n}\n/**\n * The Performance API implementation for the current platform, if available.\n */\nvar platformPerformance = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\nvar timestampSource = platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: function () { return (platformPerformance.timeOrigin + platformPerformance.now()) / 1000; },\n };\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nexport var dateTimestampInSeconds = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nexport var timestampInSeconds = timestampSource.nowSeconds.bind(timestampSource);\n// Re-exported with an old name for backwards-compatibility.\nexport var timestampWithMs = timestampInSeconds;\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nexport var usingPerformanceAPI = platformPerformance !== undefined;\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nexport var _browserPerformanceTimeOriginMode;\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nexport var browserPerformanceTimeOrigin = (function () {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n var performance = getGlobalObject().performance;\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n var threshold = 3600 * 1000;\n var performanceNow = performance.now();\n var dateNow = Date.now();\n // if timeOrigin isn't available set delta to threshold so it isn't used\n var timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n var timeOriginIsReliable = timeOriginDelta < threshold;\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n var navigationStart = performance.timing && performance.timing.navigationStart;\n var hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n var navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n var navigationStartIsReliable = navigationStartDelta < threshold;\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n }\n else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n//# sourceMappingURL=time.js.map","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar transitionalDefaults = require('../defaults/transitional');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar enhanceError = require('../core/enhanceError');\nvar transitionalDefaults = require('./transitional');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","module.exports = {\n \"version\": \"0.26.1\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","\"use strict\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CookieStorage = void 0;\n\nvar format_cookie_1 = require(\"./format-cookie\");\n\nvar parse_cookies_1 = require(\"./parse-cookies\");\n\nvar CookieStorage = function () {\n function CookieStorage(defaultOptions) {\n _classCallCheck(this, CookieStorage);\n\n this._defaultOptions = Object.assign({\n domain: null,\n expires: null,\n path: null,\n secure: false\n }, defaultOptions);\n if (typeof Proxy !== \"undefined\") return new Proxy(this, cookieStorageHandler);\n }\n\n _createClass(CookieStorage, [{\n key: \"clear\",\n value: function clear() {\n var _this = this;\n\n var parsed = parse_cookies_1.parseCookies(this._getCookie());\n var keys = Object.keys(parsed);\n keys.forEach(function (key) {\n return _this.removeItem(key);\n });\n }\n }, {\n key: \"getItem\",\n value: function getItem(key) {\n var parsed = parse_cookies_1.parseCookies(this._getCookie());\n return Object.prototype.hasOwnProperty.call(parsed, key) ? parsed[key] : null;\n }\n }, {\n key: \"key\",\n value: function key(index) {\n var parsed = parse_cookies_1.parseCookies(this._getCookie());\n var sortedKeys = Object.keys(parsed).sort();\n return index < sortedKeys.length ? sortedKeys[index] : null;\n }\n }, {\n key: \"removeItem\",\n value: function removeItem(key, cookieOptions) {\n var data = \"\";\n var options = Object.assign(Object.assign(Object.assign({}, this._defaultOptions), cookieOptions), {\n expires: new Date(0)\n });\n var formatted = format_cookie_1.formatCookie(key, data, options);\n\n this._setCookie(formatted);\n }\n }, {\n key: \"setItem\",\n value: function setItem(key, data, options) {\n var opts = Object.assign(Object.assign({}, this._defaultOptions), options);\n var formatted = format_cookie_1.formatCookie(key, data, opts);\n\n this._setCookie(formatted);\n }\n }, {\n key: \"_getCookie\",\n value: function _getCookie() {\n return typeof document === \"undefined\" ? \"\" : typeof document.cookie === \"undefined\" ? \"\" : document.cookie;\n }\n }, {\n key: \"_setCookie\",\n value: function _setCookie(value) {\n document.cookie = value;\n }\n }, {\n key: \"length\",\n get: function get() {\n var parsed = parse_cookies_1.parseCookies(this._getCookie());\n var keys = Object.keys(parsed);\n return keys.length;\n }\n }]);\n\n return CookieStorage;\n}();\n\nexports.CookieStorage = CookieStorage;\nvar cookieStorageHandler = {\n defineProperty: function defineProperty(target, p, attributes) {\n target.setItem(p.toString(), String(attributes.value));\n return true;\n },\n deleteProperty: function deleteProperty(target, p) {\n target.removeItem(p.toString());\n return true;\n },\n get: function get(target, p, _receiver) {\n if (typeof p === \"string\" && p in target) return target[p];\n var result = target.getItem(p.toString());\n return result !== null ? result : undefined;\n },\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, p) {\n if (p in target) return undefined;\n return {\n configurable: true,\n enumerable: true,\n value: target.getItem(p.toString()),\n writable: true\n };\n },\n has: function has(target, p) {\n if (typeof p === \"string\" && p in target) return true;\n return target.getItem(p.toString()) !== null;\n },\n ownKeys: function ownKeys(target) {\n var keys = [];\n\n for (var i = 0; i < target.length; i++) {\n var key = target.key(i);\n if (key !== null) keys.push(key);\n }\n\n return keys;\n },\n preventExtensions: function preventExtensions(_) {\n throw new TypeError(\"can't prevent extensions on this proxy object\");\n },\n set: function set(target, p, value, _) {\n target.setItem(p.toString(), String(value));\n return true;\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.formatCookie = void 0;\n\nvar getSameSiteValue = function getSameSiteValue(o) {\n var sameSite = o.sameSite;\n if (typeof sameSite === \"undefined\") return null;\n if ([\"none\", \"lax\", \"strict\"].indexOf(sameSite.toLowerCase()) >= 0) return sameSite;\n return null;\n};\n\nvar formatOptions = function formatOptions(o) {\n var path = o.path,\n domain = o.domain,\n expires = o.expires,\n secure = o.secure;\n var sameSiteValue = getSameSiteValue(o);\n return [typeof path === \"undefined\" || path === null ? \"\" : \";path=\" + path, typeof domain === \"undefined\" || domain === null ? \"\" : \";domain=\" + domain, typeof expires === \"undefined\" || expires === null ? \"\" : \";expires=\" + expires.toUTCString(), typeof secure === \"undefined\" || secure === false ? \"\" : \";secure\", sameSiteValue === null ? \"\" : \";SameSite=\" + sameSiteValue].join(\"\");\n};\n\nvar formatCookie = function formatCookie(k, d, o) {\n return [encodeURIComponent(k), \"=\", encodeURIComponent(d), formatOptions(o)].join(\"\");\n};\n\nexports.formatCookie = formatCookie;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar cookie_storage_1 = require(\"./cookie-storage\");\n\nObject.defineProperty(exports, \"CookieStorage\", {\n enumerable: true,\n get: function get() {\n return cookie_storage_1.CookieStorage;\n }\n});\n\nvar format_cookie_1 = require(\"./format-cookie\");\n\nObject.defineProperty(exports, \"formatCookie\", {\n enumerable: true,\n get: function get() {\n return format_cookie_1.formatCookie;\n }\n});\n\nvar parse_cookies_1 = require(\"./parse-cookies\");\n\nObject.defineProperty(exports, \"parseCookies\", {\n enumerable: true,\n get: function get() {\n return parse_cookies_1.parseCookies;\n }\n});","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.parseCookies = void 0;\n\nvar parseCookies = function parseCookies(s) {\n if (s.length === 0) return {};\n var parsed = {};\n var pattern = new RegExp(\"\\\\s*;\\\\s*\");\n s.split(pattern).forEach(function (i) {\n var _i$split = i.split(\"=\"),\n _i$split2 = _slicedToArray(_i$split, 2),\n encodedKey = _i$split2[0],\n encodedValue = _i$split2[1];\n\n var key = decodeURIComponent(encodedKey);\n var value = decodeURIComponent(encodedValue);\n parsed[key] = value;\n });\n return parsed;\n};\n\nexports.parseCookies = parseCookies;","/*!\n * devextreme-vue\n * Version: 21.1.4\n * Build date: Mon Jun 21 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.DxValueFormat = exports.DxValidationRule = exports.DxTotalItem = exports.DxToolbarItem = exports.DxTexts = exports.DxSummaryTexts = exports.DxSummary = exports.DxStringLengthRule = exports.DxStateStoring = exports.DxSorting = exports.DxSortByGroupSummaryInfo = exports.DxShow = exports.DxSelection = exports.DxSearchPanel = exports.DxScrolling = exports.DxRowDragging = exports.DxRequiredRule = exports.DxRemoteOperations = exports.DxRangeRule = exports.DxPosition = exports.DxPopup = exports.DxPatternRule = exports.DxPaging = exports.DxPager = exports.DxOperationDescriptions = exports.DxOffset = exports.DxNumericRule = exports.DxMy = exports.DxMasterDetail = exports.DxLookup = exports.DxLoadPanel = exports.DxLabel = exports.DxKeyboardNavigation = exports.DxHide = exports.DxHeaderFilter = exports.DxGroupPanel = exports.DxGroupOperationDescriptions = exports.DxGroupItem = exports.DxGroupingTexts = exports.DxGrouping = exports.DxFormItem = exports.DxFormat = exports.DxForm = exports.DxFilterRow = exports.DxFilterPanelTexts = exports.DxFilterPanel = exports.DxFilterOperationDescriptions = exports.DxFilterBuilderPopup = exports.DxFilterBuilder = exports.DxFieldLookup = exports.DxField = exports.DxExportTexts = exports.DxExport = exports.DxEmailRule = exports.DxEditingTexts = exports.DxEditing = exports.DxDataGridHeaderFilterTexts = exports.DxDataGridHeaderFilter = exports.DxCustomRule = exports.DxCustomOperation = exports.DxCursorOffset = exports.DxCompareRule = exports.DxColumnLookup = exports.DxColumnHeaderFilter = exports.DxColumnFixingTexts = exports.DxColumnFixing = exports.DxColumnChooser = exports.DxColumn = exports.DxCollision = exports.DxColCountByScreen = exports.DxChange = exports.DxButton = exports.DxBoundaryOffset = exports.DxAt = exports.DxAsyncRule = exports.DxAnimation = exports.DxDataGrid = void 0;\nvar data_grid_1 = __importDefault(require(\"devextreme/ui/data_grid\"));\nvar index_1 = require(\"./core/index\");\nvar index_2 = require(\"./core/index\");\nvar DxDataGrid = index_1.createComponent({\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n allowColumnReordering: Boolean,\n allowColumnResizing: Boolean,\n autoNavigateToFocusedRow: Boolean,\n cacheEnabled: Boolean,\n cellHintEnabled: Boolean,\n columnAutoWidth: Boolean,\n columnChooser: Object,\n columnFixing: Object,\n columnHidingEnabled: Boolean,\n columnMinWidth: Number,\n columnResizingMode: String,\n columns: Array,\n columnWidth: [Number, String],\n customizeColumns: Function,\n dataSource: [Array, Object, String],\n dateSerializationFormat: String,\n disabled: Boolean,\n editing: Object,\n elementAttr: {},\n errorRowEnabled: Boolean,\n export: Object,\n filterBuilder: Object,\n filterBuilderPopup: Object,\n filterPanel: Object,\n filterRow: Object,\n filterSyncEnabled: [Boolean, String],\n filterValue: [Array, Function, String],\n focusedColumnIndex: Number,\n focusedRowEnabled: Boolean,\n focusedRowIndex: Number,\n focusedRowKey: {},\n focusStateEnabled: Boolean,\n grouping: Object,\n groupPanel: Object,\n headerFilter: Object,\n height: [Function, Number, String],\n highlightChanges: Boolean,\n hint: String,\n hoverStateEnabled: Boolean,\n keyboardNavigation: Object,\n keyExpr: [Array, String],\n loadPanel: Object,\n masterDetail: Object,\n noDataText: String,\n onAdaptiveDetailRowPreparing: Function,\n onCellClick: Function,\n onCellDblClick: Function,\n onCellHoverChanged: Function,\n onCellPrepared: Function,\n onContentReady: Function,\n onContextMenuPreparing: Function,\n onDataErrorOccurred: Function,\n onDisposing: Function,\n onEditCanceled: Function,\n onEditCanceling: Function,\n onEditingStart: Function,\n onEditorPrepared: Function,\n onEditorPreparing: Function,\n onExporting: Function,\n onFocusedCellChanged: Function,\n onFocusedCellChanging: Function,\n onFocusedRowChanged: Function,\n onFocusedRowChanging: Function,\n onInitialized: Function,\n onInitNewRow: Function,\n onKeyDown: Function,\n onOptionChanged: Function,\n onRowClick: Function,\n onRowCollapsed: Function,\n onRowCollapsing: Function,\n onRowDblClick: Function,\n onRowExpanded: Function,\n onRowExpanding: Function,\n onRowInserted: Function,\n onRowInserting: Function,\n onRowPrepared: Function,\n onRowRemoved: Function,\n onRowRemoving: Function,\n onRowUpdated: Function,\n onRowUpdating: Function,\n onRowValidating: Function,\n onSaved: Function,\n onSaving: Function,\n onSelectionChanged: Function,\n onToolbarPreparing: Function,\n pager: Object,\n paging: Object,\n remoteOperations: [Boolean, Object, String],\n renderAsync: Boolean,\n repaintChangesOnly: Boolean,\n rowAlternationEnabled: Boolean,\n rowDragging: Object,\n rowTemplate: {},\n rtlEnabled: Boolean,\n scrolling: Object,\n searchPanel: Object,\n selectedRowKeys: Array,\n selection: Object,\n selectionFilter: [Array, Function, String],\n showBorders: Boolean,\n showColumnHeaders: Boolean,\n showColumnLines: Boolean,\n showRowLines: Boolean,\n sortByGroupSummaryInfo: Array,\n sorting: Object,\n stateStoring: Object,\n summary: Object,\n tabIndex: Number,\n twoWayBindingEnabled: Boolean,\n visible: Boolean,\n width: [Function, Number, String],\n wordWrapEnabled: Boolean\n },\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:allowColumnReordering\": null,\n \"update:allowColumnResizing\": null,\n \"update:autoNavigateToFocusedRow\": null,\n \"update:cacheEnabled\": null,\n \"update:cellHintEnabled\": null,\n \"update:columnAutoWidth\": null,\n \"update:columnChooser\": null,\n \"update:columnFixing\": null,\n \"update:columnHidingEnabled\": null,\n \"update:columnMinWidth\": null,\n \"update:columnResizingMode\": null,\n \"update:columns\": null,\n \"update:columnWidth\": null,\n \"update:customizeColumns\": null,\n \"update:dataSource\": null,\n \"update:dateSerializationFormat\": null,\n \"update:disabled\": null,\n \"update:editing\": null,\n \"update:elementAttr\": null,\n \"update:errorRowEnabled\": null,\n \"update:export\": null,\n \"update:filterBuilder\": null,\n \"update:filterBuilderPopup\": null,\n \"update:filterPanel\": null,\n \"update:filterRow\": null,\n \"update:filterSyncEnabled\": null,\n \"update:filterValue\": null,\n \"update:focusedColumnIndex\": null,\n \"update:focusedRowEnabled\": null,\n \"update:focusedRowIndex\": null,\n \"update:focusedRowKey\": null,\n \"update:focusStateEnabled\": null,\n \"update:grouping\": null,\n \"update:groupPanel\": null,\n \"update:headerFilter\": null,\n \"update:height\": null,\n \"update:highlightChanges\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:keyboardNavigation\": null,\n \"update:keyExpr\": null,\n \"update:loadPanel\": null,\n \"update:masterDetail\": null,\n \"update:noDataText\": null,\n \"update:onAdaptiveDetailRowPreparing\": null,\n \"update:onCellClick\": null,\n \"update:onCellDblClick\": null,\n \"update:onCellHoverChanged\": null,\n \"update:onCellPrepared\": null,\n \"update:onContentReady\": null,\n \"update:onContextMenuPreparing\": null,\n \"update:onDataErrorOccurred\": null,\n \"update:onDisposing\": null,\n \"update:onEditCanceled\": null,\n \"update:onEditCanceling\": null,\n \"update:onEditingStart\": null,\n \"update:onEditorPrepared\": null,\n \"update:onEditorPreparing\": null,\n \"update:onExporting\": null,\n \"update:onFocusedCellChanged\": null,\n \"update:onFocusedCellChanging\": null,\n \"update:onFocusedRowChanged\": null,\n \"update:onFocusedRowChanging\": null,\n \"update:onInitialized\": null,\n \"update:onInitNewRow\": null,\n \"update:onKeyDown\": null,\n \"update:onOptionChanged\": null,\n \"update:onRowClick\": null,\n \"update:onRowCollapsed\": null,\n \"update:onRowCollapsing\": null,\n \"update:onRowDblClick\": null,\n \"update:onRowExpanded\": null,\n \"update:onRowExpanding\": null,\n \"update:onRowInserted\": null,\n \"update:onRowInserting\": null,\n \"update:onRowPrepared\": null,\n \"update:onRowRemoved\": null,\n \"update:onRowRemoving\": null,\n \"update:onRowUpdated\": null,\n \"update:onRowUpdating\": null,\n \"update:onRowValidating\": null,\n \"update:onSaved\": null,\n \"update:onSaving\": null,\n \"update:onSelectionChanged\": null,\n \"update:onToolbarPreparing\": null,\n \"update:pager\": null,\n \"update:paging\": null,\n \"update:remoteOperations\": null,\n \"update:renderAsync\": null,\n \"update:repaintChangesOnly\": null,\n \"update:rowAlternationEnabled\": null,\n \"update:rowDragging\": null,\n \"update:rowTemplate\": null,\n \"update:rtlEnabled\": null,\n \"update:scrolling\": null,\n \"update:searchPanel\": null,\n \"update:selectedRowKeys\": null,\n \"update:selection\": null,\n \"update:selectionFilter\": null,\n \"update:showBorders\": null,\n \"update:showColumnHeaders\": null,\n \"update:showColumnLines\": null,\n \"update:showRowLines\": null,\n \"update:sortByGroupSummaryInfo\": null,\n \"update:sorting\": null,\n \"update:stateStoring\": null,\n \"update:summary\": null,\n \"update:tabIndex\": null,\n \"update:twoWayBindingEnabled\": null,\n \"update:visible\": null,\n \"update:width\": null,\n \"update:wordWrapEnabled\": null,\n },\n computed: {\n instance: function () {\n return this.$_instance;\n }\n },\n beforeCreate: function () {\n this.$_WidgetClass = data_grid_1.default;\n this.$_expectedChildren = {\n column: { isCollectionItem: true, optionName: \"columns\" },\n columnChooser: { isCollectionItem: false, optionName: \"columnChooser\" },\n columnFixing: { isCollectionItem: false, optionName: \"columnFixing\" },\n dataGridHeaderFilter: { isCollectionItem: false, optionName: \"headerFilter\" },\n editing: { isCollectionItem: false, optionName: \"editing\" },\n export: { isCollectionItem: false, optionName: \"export\" },\n filterBuilder: { isCollectionItem: false, optionName: \"filterBuilder\" },\n filterBuilderPopup: { isCollectionItem: false, optionName: \"filterBuilderPopup\" },\n filterPanel: { isCollectionItem: false, optionName: \"filterPanel\" },\n filterRow: { isCollectionItem: false, optionName: \"filterRow\" },\n grouping: { isCollectionItem: false, optionName: \"grouping\" },\n groupPanel: { isCollectionItem: false, optionName: \"groupPanel\" },\n headerFilter: { isCollectionItem: false, optionName: \"headerFilter\" },\n keyboardNavigation: { isCollectionItem: false, optionName: \"keyboardNavigation\" },\n loadPanel: { isCollectionItem: false, optionName: \"loadPanel\" },\n masterDetail: { isCollectionItem: false, optionName: \"masterDetail\" },\n pager: { isCollectionItem: false, optionName: \"pager\" },\n paging: { isCollectionItem: false, optionName: \"paging\" },\n remoteOperations: { isCollectionItem: false, optionName: \"remoteOperations\" },\n rowDragging: { isCollectionItem: false, optionName: \"rowDragging\" },\n scrolling: { isCollectionItem: false, optionName: \"scrolling\" },\n searchPanel: { isCollectionItem: false, optionName: \"searchPanel\" },\n selection: { isCollectionItem: false, optionName: \"selection\" },\n sortByGroupSummaryInfo: { isCollectionItem: true, optionName: \"sortByGroupSummaryInfo\" },\n sorting: { isCollectionItem: false, optionName: \"sorting\" },\n stateStoring: { isCollectionItem: false, optionName: \"stateStoring\" },\n summary: { isCollectionItem: false, optionName: \"summary\" }\n };\n }\n});\nexports.DxDataGrid = DxDataGrid;\nvar DxAnimation = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:hide\": null,\n \"update:show\": null,\n },\n props: {\n hide: Object,\n show: Object\n }\n});\nexports.DxAnimation = DxAnimation;\nDxAnimation.$_optionName = \"animation\";\nDxAnimation.$_expectedChildren = {\n hide: { isCollectionItem: false, optionName: \"hide\" },\n show: { isCollectionItem: false, optionName: \"show\" }\n};\nvar DxAsyncRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:reevaluate\": null,\n \"update:type\": null,\n \"update:validationCallback\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n reevaluate: Boolean,\n type: String,\n validationCallback: Function\n }\n});\nexports.DxAsyncRule = DxAsyncRule;\nDxAsyncRule.$_optionName = \"validationRules\";\nDxAsyncRule.$_isCollectionItem = true;\nDxAsyncRule.$_predefinedProps = {\n type: \"async\"\n};\nvar DxAt = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxAt = DxAt;\nDxAt.$_optionName = \"at\";\nvar DxBoundaryOffset = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: Number,\n y: Number\n }\n});\nexports.DxBoundaryOffset = DxBoundaryOffset;\nDxBoundaryOffset.$_optionName = \"boundaryOffset\";\nvar DxButton = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:cssClass\": null,\n \"update:hint\": null,\n \"update:icon\": null,\n \"update:name\": null,\n \"update:onClick\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:visible\": null,\n },\n props: {\n cssClass: String,\n hint: String,\n icon: String,\n name: String,\n onClick: Function,\n template: {},\n text: String,\n visible: [Boolean, Function]\n }\n});\nexports.DxButton = DxButton;\nDxButton.$_optionName = \"buttons\";\nDxButton.$_isCollectionItem = true;\nvar DxChange = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:data\": null,\n \"update:index\": null,\n \"update:pageIndex\": null,\n \"update:type\": null,\n },\n props: {\n data: Object,\n index: Number,\n pageIndex: Number,\n type: String\n }\n});\nexports.DxChange = DxChange;\nDxChange.$_optionName = \"changes\";\nDxChange.$_isCollectionItem = true;\nvar DxColCountByScreen = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:lg\": null,\n \"update:md\": null,\n \"update:sm\": null,\n \"update:xs\": null,\n },\n props: {\n lg: Number,\n md: Number,\n sm: Number,\n xs: Number\n }\n});\nexports.DxColCountByScreen = DxColCountByScreen;\nDxColCountByScreen.$_optionName = \"colCountByScreen\";\nvar DxCollision = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxCollision = DxCollision;\nDxCollision.$_optionName = \"collision\";\nvar DxColumn = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:alignment\": null,\n \"update:allowEditing\": null,\n \"update:allowExporting\": null,\n \"update:allowFiltering\": null,\n \"update:allowFixing\": null,\n \"update:allowGrouping\": null,\n \"update:allowHeaderFiltering\": null,\n \"update:allowHiding\": null,\n \"update:allowReordering\": null,\n \"update:allowResizing\": null,\n \"update:allowSearch\": null,\n \"update:allowSorting\": null,\n \"update:autoExpandGroup\": null,\n \"update:buttons\": null,\n \"update:calculateCellValue\": null,\n \"update:calculateDisplayValue\": null,\n \"update:calculateFilterExpression\": null,\n \"update:calculateGroupValue\": null,\n \"update:calculateSortValue\": null,\n \"update:caption\": null,\n \"update:cellTemplate\": null,\n \"update:columns\": null,\n \"update:cssClass\": null,\n \"update:customizeText\": null,\n \"update:dataField\": null,\n \"update:dataType\": null,\n \"update:editCellTemplate\": null,\n \"update:editorOptions\": null,\n \"update:encodeHtml\": null,\n \"update:falseText\": null,\n \"update:filterOperations\": null,\n \"update:filterType\": null,\n \"update:filterValue\": null,\n \"update:filterValues\": null,\n \"update:fixed\": null,\n \"update:fixedPosition\": null,\n \"update:format\": null,\n \"update:formItem\": null,\n \"update:groupCellTemplate\": null,\n \"update:grouped\": null,\n \"update:groupIndex\": null,\n \"update:headerCellTemplate\": null,\n \"update:headerFilter\": null,\n \"update:hidingPriority\": null,\n \"update:isBand\": null,\n \"update:lookup\": null,\n \"update:minWidth\": null,\n \"update:name\": null,\n \"update:ownerBand\": null,\n \"update:renderAsync\": null,\n \"update:resized\": null,\n \"update:selectedFilterOperation\": null,\n \"update:setCellValue\": null,\n \"update:showEditorAlways\": null,\n \"update:showInColumnChooser\": null,\n \"update:showWhenGrouped\": null,\n \"update:sortIndex\": null,\n \"update:sortingMethod\": null,\n \"update:sortOrder\": null,\n \"update:trueText\": null,\n \"update:type\": null,\n \"update:validationRules\": null,\n \"update:visible\": null,\n \"update:visibleIndex\": null,\n \"update:width\": null,\n },\n props: {\n alignment: String,\n allowEditing: Boolean,\n allowExporting: Boolean,\n allowFiltering: Boolean,\n allowFixing: Boolean,\n allowGrouping: Boolean,\n allowHeaderFiltering: Boolean,\n allowHiding: Boolean,\n allowReordering: Boolean,\n allowResizing: Boolean,\n allowSearch: Boolean,\n allowSorting: Boolean,\n autoExpandGroup: Boolean,\n buttons: Array,\n calculateCellValue: Function,\n calculateDisplayValue: [Function, String],\n calculateFilterExpression: Function,\n calculateGroupValue: [Function, String],\n calculateSortValue: [Function, String],\n caption: String,\n cellTemplate: {},\n columns: Array,\n cssClass: String,\n customizeText: Function,\n dataField: String,\n dataType: String,\n editCellTemplate: {},\n editorOptions: {},\n encodeHtml: Boolean,\n falseText: String,\n filterOperations: Array,\n filterType: String,\n filterValue: {},\n filterValues: Array,\n fixed: Boolean,\n fixedPosition: String,\n format: [Object, Function, String],\n formItem: Object,\n groupCellTemplate: {},\n grouped: Boolean,\n groupIndex: Number,\n headerCellTemplate: {},\n headerFilter: Object,\n hidingPriority: Number,\n isBand: Boolean,\n lookup: Object,\n minWidth: Number,\n name: String,\n ownerBand: Number,\n renderAsync: Boolean,\n resized: Function,\n selectedFilterOperation: String,\n setCellValue: Function,\n showEditorAlways: Boolean,\n showInColumnChooser: Boolean,\n showWhenGrouped: Boolean,\n sortIndex: Number,\n sortingMethod: Function,\n sortOrder: String,\n trueText: String,\n type: String,\n validationRules: Array,\n visible: Boolean,\n visibleIndex: Number,\n width: [Number, String]\n }\n});\nexports.DxColumn = DxColumn;\nDxColumn.$_optionName = \"columns\";\nDxColumn.$_isCollectionItem = true;\nDxColumn.$_expectedChildren = {\n AsyncRule: { isCollectionItem: true, optionName: \"validationRules\" },\n button: { isCollectionItem: true, optionName: \"buttons\" },\n columnHeaderFilter: { isCollectionItem: false, optionName: \"headerFilter\" },\n columnLookup: { isCollectionItem: false, optionName: \"lookup\" },\n CompareRule: { isCollectionItem: true, optionName: \"validationRules\" },\n CustomRule: { isCollectionItem: true, optionName: \"validationRules\" },\n EmailRule: { isCollectionItem: true, optionName: \"validationRules\" },\n format: { isCollectionItem: false, optionName: \"format\" },\n formItem: { isCollectionItem: false, optionName: \"formItem\" },\n headerFilter: { isCollectionItem: false, optionName: \"headerFilter\" },\n lookup: { isCollectionItem: false, optionName: \"lookup\" },\n NumericRule: { isCollectionItem: true, optionName: \"validationRules\" },\n PatternRule: { isCollectionItem: true, optionName: \"validationRules\" },\n RangeRule: { isCollectionItem: true, optionName: \"validationRules\" },\n RequiredRule: { isCollectionItem: true, optionName: \"validationRules\" },\n StringLengthRule: { isCollectionItem: true, optionName: \"validationRules\" },\n validationRule: { isCollectionItem: true, optionName: \"validationRules\" }\n};\nvar DxColumnChooser = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSearch\": null,\n \"update:emptyPanelText\": null,\n \"update:enabled\": null,\n \"update:height\": null,\n \"update:mode\": null,\n \"update:searchTimeout\": null,\n \"update:title\": null,\n \"update:width\": null,\n },\n props: {\n allowSearch: Boolean,\n emptyPanelText: String,\n enabled: Boolean,\n height: Number,\n mode: String,\n searchTimeout: Number,\n title: String,\n width: Number\n }\n});\nexports.DxColumnChooser = DxColumnChooser;\nDxColumnChooser.$_optionName = \"columnChooser\";\nvar DxColumnFixing = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:enabled\": null,\n \"update:texts\": null,\n },\n props: {\n enabled: Boolean,\n texts: Object\n }\n});\nexports.DxColumnFixing = DxColumnFixing;\nDxColumnFixing.$_optionName = \"columnFixing\";\nDxColumnFixing.$_expectedChildren = {\n columnFixingTexts: { isCollectionItem: false, optionName: \"texts\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxColumnFixingTexts = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:fix\": null,\n \"update:leftPosition\": null,\n \"update:rightPosition\": null,\n \"update:unfix\": null,\n },\n props: {\n fix: String,\n leftPosition: String,\n rightPosition: String,\n unfix: String\n }\n});\nexports.DxColumnFixingTexts = DxColumnFixingTexts;\nDxColumnFixingTexts.$_optionName = \"texts\";\nvar DxColumnHeaderFilter = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSearch\": null,\n \"update:dataSource\": null,\n \"update:groupInterval\": null,\n \"update:height\": null,\n \"update:searchMode\": null,\n \"update:width\": null,\n },\n props: {\n allowSearch: Boolean,\n dataSource: [Array, Object, Function],\n groupInterval: [Number, String],\n height: Number,\n searchMode: String,\n width: Number\n }\n});\nexports.DxColumnHeaderFilter = DxColumnHeaderFilter;\nDxColumnHeaderFilter.$_optionName = \"headerFilter\";\nvar DxColumnLookup = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowClearing\": null,\n \"update:calculateCellValue\": null,\n \"update:dataSource\": null,\n \"update:displayExpr\": null,\n \"update:valueExpr\": null,\n },\n props: {\n allowClearing: Boolean,\n calculateCellValue: Function,\n dataSource: [Array, Object, Function],\n displayExpr: [Function, String],\n valueExpr: String\n }\n});\nexports.DxColumnLookup = DxColumnLookup;\nDxColumnLookup.$_optionName = \"lookup\";\nvar DxCompareRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:comparisonTarget\": null,\n \"update:comparisonType\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:reevaluate\": null,\n \"update:type\": null,\n },\n props: {\n comparisonTarget: Function,\n comparisonType: String,\n ignoreEmptyValue: Boolean,\n message: String,\n reevaluate: Boolean,\n type: String\n }\n});\nexports.DxCompareRule = DxCompareRule;\nDxCompareRule.$_optionName = \"validationRules\";\nDxCompareRule.$_isCollectionItem = true;\nDxCompareRule.$_predefinedProps = {\n type: \"compare\"\n};\nvar DxCursorOffset = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: Number,\n y: Number\n }\n});\nexports.DxCursorOffset = DxCursorOffset;\nDxCursorOffset.$_optionName = \"cursorOffset\";\nvar DxCustomOperation = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:calculateFilterExpression\": null,\n \"update:caption\": null,\n \"update:customizeText\": null,\n \"update:dataTypes\": null,\n \"update:editorTemplate\": null,\n \"update:hasValue\": null,\n \"update:icon\": null,\n \"update:name\": null,\n },\n props: {\n calculateFilterExpression: Function,\n caption: String,\n customizeText: Function,\n dataTypes: Array,\n editorTemplate: {},\n hasValue: Boolean,\n icon: String,\n name: String\n }\n});\nexports.DxCustomOperation = DxCustomOperation;\nDxCustomOperation.$_optionName = \"customOperations\";\nDxCustomOperation.$_isCollectionItem = true;\nvar DxCustomRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:reevaluate\": null,\n \"update:type\": null,\n \"update:validationCallback\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n reevaluate: Boolean,\n type: String,\n validationCallback: Function\n }\n});\nexports.DxCustomRule = DxCustomRule;\nDxCustomRule.$_optionName = \"validationRules\";\nDxCustomRule.$_isCollectionItem = true;\nDxCustomRule.$_predefinedProps = {\n type: \"custom\"\n};\nvar DxDataGridHeaderFilter = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSearch\": null,\n \"update:height\": null,\n \"update:searchTimeout\": null,\n \"update:texts\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n allowSearch: Boolean,\n height: Number,\n searchTimeout: Number,\n texts: Object,\n visible: Boolean,\n width: Number\n }\n});\nexports.DxDataGridHeaderFilter = DxDataGridHeaderFilter;\nDxDataGridHeaderFilter.$_optionName = \"headerFilter\";\nDxDataGridHeaderFilter.$_expectedChildren = {\n dataGridHeaderFilterTexts: { isCollectionItem: false, optionName: \"texts\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxDataGridHeaderFilterTexts = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:cancel\": null,\n \"update:emptyValue\": null,\n \"update:ok\": null,\n },\n props: {\n cancel: String,\n emptyValue: String,\n ok: String\n }\n});\nexports.DxDataGridHeaderFilterTexts = DxDataGridHeaderFilterTexts;\nDxDataGridHeaderFilterTexts.$_optionName = \"texts\";\nvar DxEditing = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowAdding\": null,\n \"update:allowDeleting\": null,\n \"update:allowUpdating\": null,\n \"update:changes\": null,\n \"update:confirmDelete\": null,\n \"update:editColumnName\": null,\n \"update:editRowKey\": null,\n \"update:form\": null,\n \"update:mode\": null,\n \"update:popup\": null,\n \"update:refreshMode\": null,\n \"update:selectTextOnEditStart\": null,\n \"update:startEditAction\": null,\n \"update:texts\": null,\n \"update:useIcons\": null,\n },\n props: {\n allowAdding: Boolean,\n allowDeleting: [Boolean, Function],\n allowUpdating: [Boolean, Function],\n changes: Array,\n confirmDelete: Boolean,\n editColumnName: String,\n editRowKey: {},\n form: Object,\n mode: String,\n popup: Object,\n refreshMode: String,\n selectTextOnEditStart: Boolean,\n startEditAction: String,\n texts: {},\n useIcons: Boolean\n }\n});\nexports.DxEditing = DxEditing;\nDxEditing.$_optionName = \"editing\";\nDxEditing.$_expectedChildren = {\n change: { isCollectionItem: true, optionName: \"changes\" },\n editingTexts: { isCollectionItem: false, optionName: \"texts\" },\n form: { isCollectionItem: false, optionName: \"form\" },\n popup: { isCollectionItem: false, optionName: \"popup\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxEditingTexts = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:addRow\": null,\n \"update:cancelAllChanges\": null,\n \"update:cancelRowChanges\": null,\n \"update:confirmDeleteMessage\": null,\n \"update:confirmDeleteTitle\": null,\n \"update:deleteRow\": null,\n \"update:editRow\": null,\n \"update:saveAllChanges\": null,\n \"update:saveRowChanges\": null,\n \"update:undeleteRow\": null,\n \"update:validationCancelChanges\": null,\n },\n props: {\n addRow: String,\n cancelAllChanges: String,\n cancelRowChanges: String,\n confirmDeleteMessage: String,\n confirmDeleteTitle: String,\n deleteRow: String,\n editRow: String,\n saveAllChanges: String,\n saveRowChanges: String,\n undeleteRow: String,\n validationCancelChanges: String\n }\n});\nexports.DxEditingTexts = DxEditingTexts;\nDxEditingTexts.$_optionName = \"texts\";\nvar DxEmailRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:type\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n type: String\n }\n});\nexports.DxEmailRule = DxEmailRule;\nDxEmailRule.$_optionName = \"validationRules\";\nDxEmailRule.$_isCollectionItem = true;\nDxEmailRule.$_predefinedProps = {\n type: \"email\"\n};\nvar DxExport = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowExportSelectedData\": null,\n \"update:customizeExcelCell\": null,\n \"update:enabled\": null,\n \"update:excelFilterEnabled\": null,\n \"update:excelWrapTextEnabled\": null,\n \"update:fileName\": null,\n \"update:ignoreExcelErrors\": null,\n \"update:proxyUrl\": null,\n \"update:texts\": null,\n },\n props: {\n allowExportSelectedData: Boolean,\n customizeExcelCell: Function,\n enabled: Boolean,\n excelFilterEnabled: Boolean,\n excelWrapTextEnabled: Boolean,\n fileName: String,\n ignoreExcelErrors: Boolean,\n proxyUrl: String,\n texts: Object\n }\n});\nexports.DxExport = DxExport;\nDxExport.$_optionName = \"export\";\nDxExport.$_expectedChildren = {\n exportTexts: { isCollectionItem: false, optionName: \"texts\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxExportTexts = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:exportAll\": null,\n \"update:exportSelectedRows\": null,\n \"update:exportTo\": null,\n },\n props: {\n exportAll: String,\n exportSelectedRows: String,\n exportTo: String\n }\n});\nexports.DxExportTexts = DxExportTexts;\nDxExportTexts.$_optionName = \"texts\";\nvar DxField = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:calculateFilterExpression\": null,\n \"update:caption\": null,\n \"update:customizeText\": null,\n \"update:dataField\": null,\n \"update:dataType\": null,\n \"update:defaultFilterOperation\": null,\n \"update:editorOptions\": null,\n \"update:editorTemplate\": null,\n \"update:falseText\": null,\n \"update:filterOperations\": null,\n \"update:format\": null,\n \"update:lookup\": null,\n \"update:name\": null,\n \"update:trueText\": null,\n },\n props: {\n calculateFilterExpression: Function,\n caption: String,\n customizeText: Function,\n dataField: String,\n dataType: String,\n defaultFilterOperation: String,\n editorOptions: {},\n editorTemplate: {},\n falseText: String,\n filterOperations: Array,\n format: [Object, Function, String],\n lookup: Object,\n name: String,\n trueText: String\n }\n});\nexports.DxField = DxField;\nDxField.$_optionName = \"fields\";\nDxField.$_isCollectionItem = true;\nDxField.$_expectedChildren = {\n fieldLookup: { isCollectionItem: false, optionName: \"lookup\" },\n format: { isCollectionItem: false, optionName: \"format\" },\n lookup: { isCollectionItem: false, optionName: \"lookup\" }\n};\nvar DxFieldLookup = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowClearing\": null,\n \"update:dataSource\": null,\n \"update:displayExpr\": null,\n \"update:valueExpr\": null,\n },\n props: {\n allowClearing: Boolean,\n dataSource: [Array, Object],\n displayExpr: [Function, String],\n valueExpr: [Function, String]\n }\n});\nexports.DxFieldLookup = DxFieldLookup;\nDxFieldLookup.$_optionName = \"lookup\";\nvar DxFilterBuilder = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:allowHierarchicalFields\": null,\n \"update:bindingOptions\": null,\n \"update:customOperations\": null,\n \"update:defaultGroupOperation\": null,\n \"update:disabled\": null,\n \"update:elementAttr\": null,\n \"update:fields\": null,\n \"update:filterOperationDescriptions\": null,\n \"update:focusStateEnabled\": null,\n \"update:groupOperationDescriptions\": null,\n \"update:groupOperations\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:maxGroupLevel\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onEditorPrepared\": null,\n \"update:onEditorPreparing\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:onValueChanged\": null,\n \"update:rtlEnabled\": null,\n \"update:tabIndex\": null,\n \"update:value\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n allowHierarchicalFields: Boolean,\n bindingOptions: {},\n customOperations: Array,\n defaultGroupOperation: String,\n disabled: Boolean,\n elementAttr: {},\n fields: Array,\n filterOperationDescriptions: Object,\n focusStateEnabled: Boolean,\n groupOperationDescriptions: Object,\n groupOperations: Array,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n maxGroupLevel: Number,\n onContentReady: Function,\n onDisposing: Function,\n onEditorPrepared: Function,\n onEditorPreparing: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n onValueChanged: Function,\n rtlEnabled: Boolean,\n tabIndex: Number,\n value: [Array, Function, String],\n visible: Boolean,\n width: [Function, Number, String]\n }\n});\nexports.DxFilterBuilder = DxFilterBuilder;\nDxFilterBuilder.$_optionName = \"filterBuilder\";\nDxFilterBuilder.$_expectedChildren = {\n customOperation: { isCollectionItem: true, optionName: \"customOperations\" },\n field: { isCollectionItem: true, optionName: \"fields\" },\n filterOperationDescriptions: { isCollectionItem: false, optionName: \"filterOperationDescriptions\" },\n groupOperationDescriptions: { isCollectionItem: false, optionName: \"groupOperationDescriptions\" }\n};\nvar DxFilterBuilderPopup = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:animation\": null,\n \"update:bindingOptions\": null,\n \"update:closeOnOutsideClick\": null,\n \"update:container\": null,\n \"update:contentTemplate\": null,\n \"update:deferRendering\": null,\n \"update:disabled\": null,\n \"update:dragEnabled\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:fullScreen\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:maxHeight\": null,\n \"update:maxWidth\": null,\n \"update:minHeight\": null,\n \"update:minWidth\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onHidden\": null,\n \"update:onHiding\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:onResize\": null,\n \"update:onResizeEnd\": null,\n \"update:onResizeStart\": null,\n \"update:onShowing\": null,\n \"update:onShown\": null,\n \"update:onTitleRendered\": null,\n \"update:position\": null,\n \"update:resizeEnabled\": null,\n \"update:rtlEnabled\": null,\n \"update:shading\": null,\n \"update:shadingColor\": null,\n \"update:showCloseButton\": null,\n \"update:showTitle\": null,\n \"update:tabIndex\": null,\n \"update:title\": null,\n \"update:titleTemplate\": null,\n \"update:toolbarItems\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n animation: Object,\n bindingOptions: {},\n closeOnOutsideClick: [Boolean, Function],\n container: {},\n contentTemplate: {},\n deferRendering: Boolean,\n disabled: Boolean,\n dragEnabled: Boolean,\n elementAttr: {},\n focusStateEnabled: Boolean,\n fullScreen: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n maxHeight: [Function, Number, String],\n maxWidth: [Function, Number, String],\n minHeight: [Function, Number, String],\n minWidth: [Function, Number, String],\n onContentReady: Function,\n onDisposing: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onHidden: Function,\n onHiding: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n onResize: Function,\n onResizeEnd: Function,\n onResizeStart: Function,\n onShowing: Function,\n onShown: Function,\n onTitleRendered: Function,\n position: [Function, Object, String],\n resizeEnabled: Boolean,\n rtlEnabled: Boolean,\n shading: Boolean,\n shadingColor: String,\n showCloseButton: Boolean,\n showTitle: Boolean,\n tabIndex: Number,\n title: String,\n titleTemplate: {},\n toolbarItems: Array,\n visible: Boolean,\n width: [Function, Number, String]\n }\n});\nexports.DxFilterBuilderPopup = DxFilterBuilderPopup;\nDxFilterBuilderPopup.$_optionName = \"filterBuilderPopup\";\nvar DxFilterOperationDescriptions = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:between\": null,\n \"update:contains\": null,\n \"update:endsWith\": null,\n \"update:equal\": null,\n \"update:greaterThan\": null,\n \"update:greaterThanOrEqual\": null,\n \"update:isBlank\": null,\n \"update:isNotBlank\": null,\n \"update:lessThan\": null,\n \"update:lessThanOrEqual\": null,\n \"update:notContains\": null,\n \"update:notEqual\": null,\n \"update:startsWith\": null,\n },\n props: {\n between: String,\n contains: String,\n endsWith: String,\n equal: String,\n greaterThan: String,\n greaterThanOrEqual: String,\n isBlank: String,\n isNotBlank: String,\n lessThan: String,\n lessThanOrEqual: String,\n notContains: String,\n notEqual: String,\n startsWith: String\n }\n});\nexports.DxFilterOperationDescriptions = DxFilterOperationDescriptions;\nDxFilterOperationDescriptions.$_optionName = \"filterOperationDescriptions\";\nvar DxFilterPanel = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:customizeText\": null,\n \"update:filterEnabled\": null,\n \"update:texts\": null,\n \"update:visible\": null,\n },\n props: {\n customizeText: Function,\n filterEnabled: Boolean,\n texts: Object,\n visible: Boolean\n }\n});\nexports.DxFilterPanel = DxFilterPanel;\nDxFilterPanel.$_optionName = \"filterPanel\";\nDxFilterPanel.$_expectedChildren = {\n filterPanelTexts: { isCollectionItem: false, optionName: \"texts\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxFilterPanelTexts = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:clearFilter\": null,\n \"update:createFilter\": null,\n \"update:filterEnabledHint\": null,\n },\n props: {\n clearFilter: String,\n createFilter: String,\n filterEnabledHint: String\n }\n});\nexports.DxFilterPanelTexts = DxFilterPanelTexts;\nDxFilterPanelTexts.$_optionName = \"texts\";\nvar DxFilterRow = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:applyFilter\": null,\n \"update:applyFilterText\": null,\n \"update:betweenEndText\": null,\n \"update:betweenStartText\": null,\n \"update:operationDescriptions\": null,\n \"update:resetOperationText\": null,\n \"update:showAllText\": null,\n \"update:showOperationChooser\": null,\n \"update:visible\": null,\n },\n props: {\n applyFilter: String,\n applyFilterText: String,\n betweenEndText: String,\n betweenStartText: String,\n operationDescriptions: Object,\n resetOperationText: String,\n showAllText: String,\n showOperationChooser: Boolean,\n visible: Boolean\n }\n});\nexports.DxFilterRow = DxFilterRow;\nDxFilterRow.$_optionName = \"filterRow\";\nDxFilterRow.$_expectedChildren = {\n operationDescriptions: { isCollectionItem: false, optionName: \"operationDescriptions\" }\n};\nvar DxForm = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:alignItemLabels\": null,\n \"update:alignItemLabelsInAllGroups\": null,\n \"update:bindingOptions\": null,\n \"update:colCount\": null,\n \"update:colCountByScreen\": null,\n \"update:customizeItem\": null,\n \"update:disabled\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:formData\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:items\": null,\n \"update:labelLocation\": null,\n \"update:minColWidth\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onEditorEnterKey\": null,\n \"update:onFieldDataChanged\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:optionalMark\": null,\n \"update:readOnly\": null,\n \"update:requiredMark\": null,\n \"update:requiredMessage\": null,\n \"update:rtlEnabled\": null,\n \"update:screenByWidth\": null,\n \"update:scrollingEnabled\": null,\n \"update:showColonAfterLabel\": null,\n \"update:showOptionalMark\": null,\n \"update:showRequiredMark\": null,\n \"update:showValidationSummary\": null,\n \"update:tabIndex\": null,\n \"update:validationGroup\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n alignItemLabels: Boolean,\n alignItemLabelsInAllGroups: Boolean,\n bindingOptions: {},\n colCount: [Number, String],\n colCountByScreen: {},\n customizeItem: Function,\n disabled: Boolean,\n elementAttr: {},\n focusStateEnabled: Boolean,\n formData: {},\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n items: Array,\n labelLocation: String,\n minColWidth: Number,\n onContentReady: Function,\n onDisposing: Function,\n onEditorEnterKey: Function,\n onFieldDataChanged: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n optionalMark: String,\n readOnly: Boolean,\n requiredMark: String,\n requiredMessage: String,\n rtlEnabled: Boolean,\n screenByWidth: Function,\n scrollingEnabled: Boolean,\n showColonAfterLabel: Boolean,\n showOptionalMark: Boolean,\n showRequiredMark: Boolean,\n showValidationSummary: Boolean,\n tabIndex: Number,\n validationGroup: String,\n visible: Boolean,\n width: [Function, Number, String]\n }\n});\nexports.DxForm = DxForm;\nDxForm.$_optionName = \"form\";\nDxForm.$_expectedChildren = {\n colCountByScreen: { isCollectionItem: false, optionName: \"colCountByScreen\" }\n};\nvar DxFormat = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:currency\": null,\n \"update:formatter\": null,\n \"update:parser\": null,\n \"update:precision\": null,\n \"update:type\": null,\n },\n props: {\n currency: String,\n formatter: Function,\n parser: Function,\n precision: Number,\n type: String\n }\n});\nexports.DxFormat = DxFormat;\nDxFormat.$_optionName = \"format\";\nvar DxFormItem = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:colSpan\": null,\n \"update:cssClass\": null,\n \"update:dataField\": null,\n \"update:editorOptions\": null,\n \"update:editorType\": null,\n \"update:helpText\": null,\n \"update:isRequired\": null,\n \"update:itemType\": null,\n \"update:label\": null,\n \"update:name\": null,\n \"update:template\": null,\n \"update:validationRules\": null,\n \"update:visible\": null,\n \"update:visibleIndex\": null,\n },\n props: {\n colSpan: Number,\n cssClass: String,\n dataField: String,\n editorOptions: {},\n editorType: String,\n helpText: String,\n isRequired: Boolean,\n itemType: String,\n label: Object,\n name: String,\n template: {},\n validationRules: Array,\n visible: Boolean,\n visibleIndex: Number\n }\n});\nexports.DxFormItem = DxFormItem;\nDxFormItem.$_optionName = \"formItem\";\nDxFormItem.$_expectedChildren = {\n AsyncRule: { isCollectionItem: true, optionName: \"validationRules\" },\n CompareRule: { isCollectionItem: true, optionName: \"validationRules\" },\n CustomRule: { isCollectionItem: true, optionName: \"validationRules\" },\n EmailRule: { isCollectionItem: true, optionName: \"validationRules\" },\n label: { isCollectionItem: false, optionName: \"label\" },\n NumericRule: { isCollectionItem: true, optionName: \"validationRules\" },\n PatternRule: { isCollectionItem: true, optionName: \"validationRules\" },\n RangeRule: { isCollectionItem: true, optionName: \"validationRules\" },\n RequiredRule: { isCollectionItem: true, optionName: \"validationRules\" },\n StringLengthRule: { isCollectionItem: true, optionName: \"validationRules\" },\n validationRule: { isCollectionItem: true, optionName: \"validationRules\" }\n};\nvar DxGrouping = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowCollapsing\": null,\n \"update:autoExpandAll\": null,\n \"update:contextMenuEnabled\": null,\n \"update:expandMode\": null,\n \"update:texts\": null,\n },\n props: {\n allowCollapsing: Boolean,\n autoExpandAll: Boolean,\n contextMenuEnabled: Boolean,\n expandMode: String,\n texts: Object\n }\n});\nexports.DxGrouping = DxGrouping;\nDxGrouping.$_optionName = \"grouping\";\nDxGrouping.$_expectedChildren = {\n groupingTexts: { isCollectionItem: false, optionName: \"texts\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxGroupingTexts = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:groupByThisColumn\": null,\n \"update:groupContinuedMessage\": null,\n \"update:groupContinuesMessage\": null,\n \"update:ungroup\": null,\n \"update:ungroupAll\": null,\n },\n props: {\n groupByThisColumn: String,\n groupContinuedMessage: String,\n groupContinuesMessage: String,\n ungroup: String,\n ungroupAll: String\n }\n});\nexports.DxGroupingTexts = DxGroupingTexts;\nDxGroupingTexts.$_optionName = \"texts\";\nvar DxGroupItem = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:alignByColumn\": null,\n \"update:column\": null,\n \"update:customizeText\": null,\n \"update:displayFormat\": null,\n \"update:name\": null,\n \"update:showInColumn\": null,\n \"update:showInGroupFooter\": null,\n \"update:skipEmptyValues\": null,\n \"update:summaryType\": null,\n \"update:valueFormat\": null,\n },\n props: {\n alignByColumn: Boolean,\n column: String,\n customizeText: Function,\n displayFormat: String,\n name: String,\n showInColumn: String,\n showInGroupFooter: Boolean,\n skipEmptyValues: Boolean,\n summaryType: String,\n valueFormat: [Object, Function, String]\n }\n});\nexports.DxGroupItem = DxGroupItem;\nDxGroupItem.$_optionName = \"groupItems\";\nDxGroupItem.$_isCollectionItem = true;\nDxGroupItem.$_expectedChildren = {\n valueFormat: { isCollectionItem: false, optionName: \"valueFormat\" }\n};\nvar DxGroupOperationDescriptions = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:and\": null,\n \"update:notAnd\": null,\n \"update:notOr\": null,\n \"update:or\": null,\n },\n props: {\n and: String,\n notAnd: String,\n notOr: String,\n or: String\n }\n});\nexports.DxGroupOperationDescriptions = DxGroupOperationDescriptions;\nDxGroupOperationDescriptions.$_optionName = \"groupOperationDescriptions\";\nvar DxGroupPanel = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowColumnDragging\": null,\n \"update:emptyPanelText\": null,\n \"update:visible\": null,\n },\n props: {\n allowColumnDragging: Boolean,\n emptyPanelText: String,\n visible: [Boolean, String]\n }\n});\nexports.DxGroupPanel = DxGroupPanel;\nDxGroupPanel.$_optionName = \"groupPanel\";\nvar DxHeaderFilter = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSearch\": null,\n \"update:dataSource\": null,\n \"update:groupInterval\": null,\n \"update:height\": null,\n \"update:searchMode\": null,\n \"update:searchTimeout\": null,\n \"update:texts\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n allowSearch: Boolean,\n dataSource: [Array, Object, Function],\n groupInterval: [Number, String],\n height: Number,\n searchMode: String,\n searchTimeout: Number,\n texts: Object,\n visible: Boolean,\n width: Number\n }\n});\nexports.DxHeaderFilter = DxHeaderFilter;\nDxHeaderFilter.$_optionName = \"headerFilter\";\nvar DxHide = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:complete\": null,\n \"update:delay\": null,\n \"update:direction\": null,\n \"update:duration\": null,\n \"update:easing\": null,\n \"update:from\": null,\n \"update:staggerDelay\": null,\n \"update:start\": null,\n \"update:to\": null,\n \"update:type\": null,\n },\n props: {\n complete: Function,\n delay: Number,\n direction: String,\n duration: Number,\n easing: String,\n from: {},\n staggerDelay: Number,\n start: Function,\n to: {},\n type: String\n }\n});\nexports.DxHide = DxHide;\nDxHide.$_optionName = \"hide\";\nvar DxKeyboardNavigation = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:editOnKeyPress\": null,\n \"update:enabled\": null,\n \"update:enterKeyAction\": null,\n \"update:enterKeyDirection\": null,\n },\n props: {\n editOnKeyPress: Boolean,\n enabled: Boolean,\n enterKeyAction: String,\n enterKeyDirection: String\n }\n});\nexports.DxKeyboardNavigation = DxKeyboardNavigation;\nDxKeyboardNavigation.$_optionName = \"keyboardNavigation\";\nvar DxLabel = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:alignment\": null,\n \"update:location\": null,\n \"update:showColon\": null,\n \"update:text\": null,\n \"update:visible\": null,\n },\n props: {\n alignment: String,\n location: String,\n showColon: Boolean,\n text: String,\n visible: Boolean\n }\n});\nexports.DxLabel = DxLabel;\nDxLabel.$_optionName = \"label\";\nvar DxLoadPanel = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:enabled\": null,\n \"update:height\": null,\n \"update:indicatorSrc\": null,\n \"update:shading\": null,\n \"update:shadingColor\": null,\n \"update:showIndicator\": null,\n \"update:showPane\": null,\n \"update:text\": null,\n \"update:width\": null,\n },\n props: {\n enabled: [Boolean, String],\n height: Number,\n indicatorSrc: String,\n shading: Boolean,\n shadingColor: String,\n showIndicator: Boolean,\n showPane: Boolean,\n text: String,\n width: Number\n }\n});\nexports.DxLoadPanel = DxLoadPanel;\nDxLoadPanel.$_optionName = \"loadPanel\";\nvar DxLookup = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowClearing\": null,\n \"update:calculateCellValue\": null,\n \"update:dataSource\": null,\n \"update:displayExpr\": null,\n \"update:valueExpr\": null,\n },\n props: {\n allowClearing: Boolean,\n calculateCellValue: Function,\n dataSource: [Array, Object, Function],\n displayExpr: [Function, String],\n valueExpr: String\n }\n});\nexports.DxLookup = DxLookup;\nDxLookup.$_optionName = \"lookup\";\nvar DxMasterDetail = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:autoExpandAll\": null,\n \"update:enabled\": null,\n \"update:template\": null,\n },\n props: {\n autoExpandAll: Boolean,\n enabled: Boolean,\n template: {}\n }\n});\nexports.DxMasterDetail = DxMasterDetail;\nDxMasterDetail.$_optionName = \"masterDetail\";\nvar DxMy = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxMy = DxMy;\nDxMy.$_optionName = \"my\";\nvar DxNumericRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:type\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n type: String\n }\n});\nexports.DxNumericRule = DxNumericRule;\nDxNumericRule.$_optionName = \"validationRules\";\nDxNumericRule.$_isCollectionItem = true;\nDxNumericRule.$_predefinedProps = {\n type: \"numeric\"\n};\nvar DxOffset = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: Number,\n y: Number\n }\n});\nexports.DxOffset = DxOffset;\nDxOffset.$_optionName = \"offset\";\nvar DxOperationDescriptions = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:between\": null,\n \"update:contains\": null,\n \"update:endsWith\": null,\n \"update:equal\": null,\n \"update:greaterThan\": null,\n \"update:greaterThanOrEqual\": null,\n \"update:lessThan\": null,\n \"update:lessThanOrEqual\": null,\n \"update:notContains\": null,\n \"update:notEqual\": null,\n \"update:startsWith\": null,\n },\n props: {\n between: String,\n contains: String,\n endsWith: String,\n equal: String,\n greaterThan: String,\n greaterThanOrEqual: String,\n lessThan: String,\n lessThanOrEqual: String,\n notContains: String,\n notEqual: String,\n startsWith: String\n }\n});\nexports.DxOperationDescriptions = DxOperationDescriptions;\nDxOperationDescriptions.$_optionName = \"operationDescriptions\";\nvar DxPager = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowedPageSizes\": null,\n \"update:displayMode\": null,\n \"update:infoText\": null,\n \"update:showInfo\": null,\n \"update:showNavigationButtons\": null,\n \"update:showPageSizeSelector\": null,\n \"update:visible\": null,\n },\n props: {\n allowedPageSizes: [Array, String],\n displayMode: String,\n infoText: String,\n showInfo: Boolean,\n showNavigationButtons: Boolean,\n showPageSizeSelector: Boolean,\n visible: [Boolean, String]\n }\n});\nexports.DxPager = DxPager;\nDxPager.$_optionName = \"pager\";\nvar DxPaging = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:enabled\": null,\n \"update:pageIndex\": null,\n \"update:pageSize\": null,\n },\n props: {\n enabled: Boolean,\n pageIndex: Number,\n pageSize: Number\n }\n});\nexports.DxPaging = DxPaging;\nDxPaging.$_optionName = \"paging\";\nvar DxPatternRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:pattern\": null,\n \"update:type\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n pattern: {},\n type: String\n }\n});\nexports.DxPatternRule = DxPatternRule;\nDxPatternRule.$_optionName = \"validationRules\";\nDxPatternRule.$_isCollectionItem = true;\nDxPatternRule.$_predefinedProps = {\n type: \"pattern\"\n};\nvar DxPopup = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:animation\": null,\n \"update:bindingOptions\": null,\n \"update:closeOnOutsideClick\": null,\n \"update:container\": null,\n \"update:contentTemplate\": null,\n \"update:deferRendering\": null,\n \"update:disabled\": null,\n \"update:dragEnabled\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:fullScreen\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:maxHeight\": null,\n \"update:maxWidth\": null,\n \"update:minHeight\": null,\n \"update:minWidth\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onHidden\": null,\n \"update:onHiding\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:onResize\": null,\n \"update:onResizeEnd\": null,\n \"update:onResizeStart\": null,\n \"update:onShowing\": null,\n \"update:onShown\": null,\n \"update:onTitleRendered\": null,\n \"update:position\": null,\n \"update:resizeEnabled\": null,\n \"update:rtlEnabled\": null,\n \"update:shading\": null,\n \"update:shadingColor\": null,\n \"update:showCloseButton\": null,\n \"update:showTitle\": null,\n \"update:tabIndex\": null,\n \"update:title\": null,\n \"update:titleTemplate\": null,\n \"update:toolbarItems\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n animation: Object,\n bindingOptions: {},\n closeOnOutsideClick: [Boolean, Function],\n container: {},\n contentTemplate: {},\n deferRendering: Boolean,\n disabled: Boolean,\n dragEnabled: Boolean,\n elementAttr: {},\n focusStateEnabled: Boolean,\n fullScreen: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n maxHeight: [Function, Number, String],\n maxWidth: [Function, Number, String],\n minHeight: [Function, Number, String],\n minWidth: [Function, Number, String],\n onContentReady: Function,\n onDisposing: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onHidden: Function,\n onHiding: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n onResize: Function,\n onResizeEnd: Function,\n onResizeStart: Function,\n onShowing: Function,\n onShown: Function,\n onTitleRendered: Function,\n position: [Function, Object, String],\n resizeEnabled: Boolean,\n rtlEnabled: Boolean,\n shading: Boolean,\n shadingColor: String,\n showCloseButton: Boolean,\n showTitle: Boolean,\n tabIndex: Number,\n title: String,\n titleTemplate: {},\n toolbarItems: Array,\n visible: Boolean,\n width: [Function, Number, String]\n }\n});\nexports.DxPopup = DxPopup;\nDxPopup.$_optionName = \"popup\";\nDxPopup.$_expectedChildren = {\n animation: { isCollectionItem: false, optionName: \"animation\" },\n position: { isCollectionItem: false, optionName: \"position\" },\n toolbarItem: { isCollectionItem: true, optionName: \"toolbarItems\" }\n};\nvar DxPosition = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:at\": null,\n \"update:boundary\": null,\n \"update:boundaryOffset\": null,\n \"update:collision\": null,\n \"update:my\": null,\n \"update:of\": null,\n \"update:offset\": null,\n },\n props: {\n at: [Object, String],\n boundary: {},\n boundaryOffset: [Object, String],\n collision: [Object, String],\n my: [Object, String],\n of: {},\n offset: [Object, String]\n }\n});\nexports.DxPosition = DxPosition;\nDxPosition.$_optionName = \"position\";\nDxPosition.$_expectedChildren = {\n at: { isCollectionItem: false, optionName: \"at\" },\n boundaryOffset: { isCollectionItem: false, optionName: \"boundaryOffset\" },\n collision: { isCollectionItem: false, optionName: \"collision\" },\n my: { isCollectionItem: false, optionName: \"my\" },\n offset: { isCollectionItem: false, optionName: \"offset\" }\n};\nvar DxRangeRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:max\": null,\n \"update:message\": null,\n \"update:min\": null,\n \"update:reevaluate\": null,\n \"update:type\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n max: {},\n message: String,\n min: {},\n reevaluate: Boolean,\n type: String\n }\n});\nexports.DxRangeRule = DxRangeRule;\nDxRangeRule.$_optionName = \"validationRules\";\nDxRangeRule.$_isCollectionItem = true;\nDxRangeRule.$_predefinedProps = {\n type: \"range\"\n};\nvar DxRemoteOperations = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:filtering\": null,\n \"update:grouping\": null,\n \"update:groupPaging\": null,\n \"update:paging\": null,\n \"update:sorting\": null,\n \"update:summary\": null,\n },\n props: {\n filtering: Boolean,\n grouping: Boolean,\n groupPaging: Boolean,\n paging: Boolean,\n sorting: Boolean,\n summary: Boolean\n }\n});\nexports.DxRemoteOperations = DxRemoteOperations;\nDxRemoteOperations.$_optionName = \"remoteOperations\";\nvar DxRequiredRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:message\": null,\n \"update:trim\": null,\n \"update:type\": null,\n },\n props: {\n message: String,\n trim: Boolean,\n type: String\n }\n});\nexports.DxRequiredRule = DxRequiredRule;\nDxRequiredRule.$_optionName = \"validationRules\";\nDxRequiredRule.$_isCollectionItem = true;\nDxRequiredRule.$_predefinedProps = {\n type: \"required\"\n};\nvar DxRowDragging = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowDropInsideItem\": null,\n \"update:allowReordering\": null,\n \"update:autoScroll\": null,\n \"update:boundary\": null,\n \"update:container\": null,\n \"update:cursorOffset\": null,\n \"update:data\": null,\n \"update:dragDirection\": null,\n \"update:dragTemplate\": null,\n \"update:dropFeedbackMode\": null,\n \"update:filter\": null,\n \"update:group\": null,\n \"update:handle\": null,\n \"update:onAdd\": null,\n \"update:onDragChange\": null,\n \"update:onDragEnd\": null,\n \"update:onDragMove\": null,\n \"update:onDragStart\": null,\n \"update:onRemove\": null,\n \"update:onReorder\": null,\n \"update:scrollSensitivity\": null,\n \"update:scrollSpeed\": null,\n \"update:showDragIcons\": null,\n },\n props: {\n allowDropInsideItem: Boolean,\n allowReordering: Boolean,\n autoScroll: Boolean,\n boundary: {},\n container: {},\n cursorOffset: [Object, String],\n data: {},\n dragDirection: String,\n dragTemplate: {},\n dropFeedbackMode: String,\n filter: String,\n group: String,\n handle: String,\n onAdd: Function,\n onDragChange: Function,\n onDragEnd: Function,\n onDragMove: Function,\n onDragStart: Function,\n onRemove: Function,\n onReorder: Function,\n scrollSensitivity: Number,\n scrollSpeed: Number,\n showDragIcons: Boolean\n }\n});\nexports.DxRowDragging = DxRowDragging;\nDxRowDragging.$_optionName = \"rowDragging\";\nDxRowDragging.$_expectedChildren = {\n cursorOffset: { isCollectionItem: false, optionName: \"cursorOffset\" }\n};\nvar DxScrolling = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:columnRenderingMode\": null,\n \"update:mode\": null,\n \"update:preloadEnabled\": null,\n \"update:rowRenderingMode\": null,\n \"update:scrollByContent\": null,\n \"update:scrollByThumb\": null,\n \"update:showScrollbar\": null,\n \"update:useNative\": null,\n },\n props: {\n columnRenderingMode: String,\n mode: String,\n preloadEnabled: Boolean,\n rowRenderingMode: String,\n scrollByContent: Boolean,\n scrollByThumb: Boolean,\n showScrollbar: String,\n useNative: [Boolean, String]\n }\n});\nexports.DxScrolling = DxScrolling;\nDxScrolling.$_optionName = \"scrolling\";\nvar DxSearchPanel = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:highlightCaseSensitive\": null,\n \"update:highlightSearchText\": null,\n \"update:placeholder\": null,\n \"update:searchVisibleColumnsOnly\": null,\n \"update:text\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n highlightCaseSensitive: Boolean,\n highlightSearchText: Boolean,\n placeholder: String,\n searchVisibleColumnsOnly: Boolean,\n text: String,\n visible: Boolean,\n width: Number\n }\n});\nexports.DxSearchPanel = DxSearchPanel;\nDxSearchPanel.$_optionName = \"searchPanel\";\nvar DxSelection = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSelectAll\": null,\n \"update:deferred\": null,\n \"update:maxFilterLengthInRequest\": null,\n \"update:mode\": null,\n \"update:selectAllMode\": null,\n \"update:showCheckBoxesMode\": null,\n },\n props: {\n allowSelectAll: Boolean,\n deferred: Boolean,\n maxFilterLengthInRequest: Number,\n mode: String,\n selectAllMode: String,\n showCheckBoxesMode: String\n }\n});\nexports.DxSelection = DxSelection;\nDxSelection.$_optionName = \"selection\";\nvar DxShow = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:complete\": null,\n \"update:delay\": null,\n \"update:direction\": null,\n \"update:duration\": null,\n \"update:easing\": null,\n \"update:from\": null,\n \"update:staggerDelay\": null,\n \"update:start\": null,\n \"update:to\": null,\n \"update:type\": null,\n },\n props: {\n complete: Function,\n delay: Number,\n direction: String,\n duration: Number,\n easing: String,\n from: {},\n staggerDelay: Number,\n start: Function,\n to: {},\n type: String\n }\n});\nexports.DxShow = DxShow;\nDxShow.$_optionName = \"show\";\nvar DxSortByGroupSummaryInfo = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:groupColumn\": null,\n \"update:sortOrder\": null,\n \"update:summaryItem\": null,\n },\n props: {\n groupColumn: String,\n sortOrder: String,\n summaryItem: [Number, String]\n }\n});\nexports.DxSortByGroupSummaryInfo = DxSortByGroupSummaryInfo;\nDxSortByGroupSummaryInfo.$_optionName = \"sortByGroupSummaryInfo\";\nDxSortByGroupSummaryInfo.$_isCollectionItem = true;\nvar DxSorting = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ascendingText\": null,\n \"update:clearText\": null,\n \"update:descendingText\": null,\n \"update:mode\": null,\n \"update:showSortIndexes\": null,\n },\n props: {\n ascendingText: String,\n clearText: String,\n descendingText: String,\n mode: String,\n showSortIndexes: Boolean\n }\n});\nexports.DxSorting = DxSorting;\nDxSorting.$_optionName = \"sorting\";\nvar DxStateStoring = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:customLoad\": null,\n \"update:customSave\": null,\n \"update:enabled\": null,\n \"update:savingTimeout\": null,\n \"update:storageKey\": null,\n \"update:type\": null,\n },\n props: {\n customLoad: Function,\n customSave: Function,\n enabled: Boolean,\n savingTimeout: Number,\n storageKey: String,\n type: String\n }\n});\nexports.DxStateStoring = DxStateStoring;\nDxStateStoring.$_optionName = \"stateStoring\";\nvar DxStringLengthRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:max\": null,\n \"update:message\": null,\n \"update:min\": null,\n \"update:trim\": null,\n \"update:type\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n max: Number,\n message: String,\n min: Number,\n trim: Boolean,\n type: String\n }\n});\nexports.DxStringLengthRule = DxStringLengthRule;\nDxStringLengthRule.$_optionName = \"validationRules\";\nDxStringLengthRule.$_isCollectionItem = true;\nDxStringLengthRule.$_predefinedProps = {\n type: \"stringLength\"\n};\nvar DxSummary = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:calculateCustomSummary\": null,\n \"update:groupItems\": null,\n \"update:recalculateWhileEditing\": null,\n \"update:skipEmptyValues\": null,\n \"update:texts\": null,\n \"update:totalItems\": null,\n },\n props: {\n calculateCustomSummary: Function,\n groupItems: Array,\n recalculateWhileEditing: Boolean,\n skipEmptyValues: Boolean,\n texts: Object,\n totalItems: Array\n }\n});\nexports.DxSummary = DxSummary;\nDxSummary.$_optionName = \"summary\";\nDxSummary.$_expectedChildren = {\n groupItem: { isCollectionItem: true, optionName: \"groupItems\" },\n summaryTexts: { isCollectionItem: false, optionName: \"texts\" },\n texts: { isCollectionItem: false, optionName: \"texts\" },\n totalItem: { isCollectionItem: true, optionName: \"totalItems\" }\n};\nvar DxSummaryTexts = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:avg\": null,\n \"update:avgOtherColumn\": null,\n \"update:count\": null,\n \"update:max\": null,\n \"update:maxOtherColumn\": null,\n \"update:min\": null,\n \"update:minOtherColumn\": null,\n \"update:sum\": null,\n \"update:sumOtherColumn\": null,\n },\n props: {\n avg: String,\n avgOtherColumn: String,\n count: String,\n max: String,\n maxOtherColumn: String,\n min: String,\n minOtherColumn: String,\n sum: String,\n sumOtherColumn: String\n }\n});\nexports.DxSummaryTexts = DxSummaryTexts;\nDxSummaryTexts.$_optionName = \"texts\";\nvar DxTexts = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:addRow\": null,\n \"update:avg\": null,\n \"update:avgOtherColumn\": null,\n \"update:cancel\": null,\n \"update:cancelAllChanges\": null,\n \"update:cancelRowChanges\": null,\n \"update:clearFilter\": null,\n \"update:confirmDeleteMessage\": null,\n \"update:confirmDeleteTitle\": null,\n \"update:count\": null,\n \"update:createFilter\": null,\n \"update:deleteRow\": null,\n \"update:editRow\": null,\n \"update:emptyValue\": null,\n \"update:exportAll\": null,\n \"update:exportSelectedRows\": null,\n \"update:exportTo\": null,\n \"update:filterEnabledHint\": null,\n \"update:fix\": null,\n \"update:groupByThisColumn\": null,\n \"update:groupContinuedMessage\": null,\n \"update:groupContinuesMessage\": null,\n \"update:leftPosition\": null,\n \"update:max\": null,\n \"update:maxOtherColumn\": null,\n \"update:min\": null,\n \"update:minOtherColumn\": null,\n \"update:ok\": null,\n \"update:rightPosition\": null,\n \"update:saveAllChanges\": null,\n \"update:saveRowChanges\": null,\n \"update:sum\": null,\n \"update:sumOtherColumn\": null,\n \"update:undeleteRow\": null,\n \"update:unfix\": null,\n \"update:ungroup\": null,\n \"update:ungroupAll\": null,\n \"update:validationCancelChanges\": null,\n },\n props: {\n addRow: String,\n avg: String,\n avgOtherColumn: String,\n cancel: String,\n cancelAllChanges: String,\n cancelRowChanges: String,\n clearFilter: String,\n confirmDeleteMessage: String,\n confirmDeleteTitle: String,\n count: String,\n createFilter: String,\n deleteRow: String,\n editRow: String,\n emptyValue: String,\n exportAll: String,\n exportSelectedRows: String,\n exportTo: String,\n filterEnabledHint: String,\n fix: String,\n groupByThisColumn: String,\n groupContinuedMessage: String,\n groupContinuesMessage: String,\n leftPosition: String,\n max: String,\n maxOtherColumn: String,\n min: String,\n minOtherColumn: String,\n ok: String,\n rightPosition: String,\n saveAllChanges: String,\n saveRowChanges: String,\n sum: String,\n sumOtherColumn: String,\n undeleteRow: String,\n unfix: String,\n ungroup: String,\n ungroupAll: String,\n validationCancelChanges: String\n }\n});\nexports.DxTexts = DxTexts;\nDxTexts.$_optionName = \"texts\";\nvar DxToolbarItem = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:disabled\": null,\n \"update:html\": null,\n \"update:location\": null,\n \"update:options\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:toolbar\": null,\n \"update:visible\": null,\n \"update:widget\": null,\n },\n props: {\n disabled: Boolean,\n html: String,\n location: String,\n options: {},\n template: {},\n text: String,\n toolbar: String,\n visible: Boolean,\n widget: String\n }\n});\nexports.DxToolbarItem = DxToolbarItem;\nDxToolbarItem.$_optionName = \"toolbarItems\";\nDxToolbarItem.$_isCollectionItem = true;\nvar DxTotalItem = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:alignment\": null,\n \"update:column\": null,\n \"update:cssClass\": null,\n \"update:customizeText\": null,\n \"update:displayFormat\": null,\n \"update:name\": null,\n \"update:showInColumn\": null,\n \"update:skipEmptyValues\": null,\n \"update:summaryType\": null,\n \"update:valueFormat\": null,\n },\n props: {\n alignment: String,\n column: String,\n cssClass: String,\n customizeText: Function,\n displayFormat: String,\n name: String,\n showInColumn: String,\n skipEmptyValues: Boolean,\n summaryType: String,\n valueFormat: [Object, Function, String]\n }\n});\nexports.DxTotalItem = DxTotalItem;\nDxTotalItem.$_optionName = \"totalItems\";\nDxTotalItem.$_isCollectionItem = true;\nDxTotalItem.$_expectedChildren = {\n valueFormat: { isCollectionItem: false, optionName: \"valueFormat\" }\n};\nvar DxValidationRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:comparisonTarget\": null,\n \"update:comparisonType\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:max\": null,\n \"update:message\": null,\n \"update:min\": null,\n \"update:pattern\": null,\n \"update:reevaluate\": null,\n \"update:trim\": null,\n \"update:type\": null,\n \"update:validationCallback\": null,\n },\n props: {\n comparisonTarget: Function,\n comparisonType: String,\n ignoreEmptyValue: Boolean,\n max: {},\n message: String,\n min: {},\n pattern: {},\n reevaluate: Boolean,\n trim: Boolean,\n type: String,\n validationCallback: Function\n }\n});\nexports.DxValidationRule = DxValidationRule;\nDxValidationRule.$_optionName = \"validationRules\";\nDxValidationRule.$_isCollectionItem = true;\nDxValidationRule.$_predefinedProps = {\n type: \"required\"\n};\nvar DxValueFormat = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:currency\": null,\n \"update:formatter\": null,\n \"update:parser\": null,\n \"update:precision\": null,\n \"update:type\": null,\n },\n props: {\n currency: String,\n formatter: Function,\n parser: Function,\n precision: Number,\n type: String\n }\n});\nexports.DxValueFormat = DxValueFormat;\nDxValueFormat.$_optionName = \"valueFormat\";\nexports.default = DxDataGrid;\n","/*!\n * devextreme-vue\n * Version: 21.1.4\n * Build date: Mon Jun 21 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.DxToolbarItem = exports.DxShow = exports.DxPosition = exports.DxOptions = exports.DxOffset = exports.DxMy = exports.DxHide = exports.DxDropDownOptions = exports.DxDisplayFormat = exports.DxCollision = exports.DxCalendarOptions = exports.DxButton = exports.DxBoundaryOffset = exports.DxAt = exports.DxAnimation = exports.DxDateBox = void 0;\nvar date_box_1 = __importDefault(require(\"devextreme/ui/date_box\"));\nvar index_1 = require(\"./core/index\");\nvar index_2 = require(\"./core/index\");\nvar DxDateBox = index_1.createComponent({\n props: {\n acceptCustomValue: Boolean,\n accessKey: String,\n activeStateEnabled: Boolean,\n adaptivityEnabled: Boolean,\n applyButtonText: String,\n applyValueMode: String,\n buttons: Array,\n calendarOptions: Object,\n cancelButtonText: String,\n dateOutOfRangeMessage: String,\n dateSerializationFormat: String,\n deferRendering: Boolean,\n disabled: Boolean,\n disabledDates: [Array, Function],\n displayFormat: [Object, Function, String],\n dropDownButtonTemplate: {},\n dropDownOptions: Object,\n elementAttr: {},\n focusStateEnabled: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n inputAttr: {},\n interval: Number,\n invalidDateMessage: String,\n isValid: Boolean,\n max: {},\n maxLength: [Number, String],\n min: {},\n name: String,\n onChange: Function,\n onClosed: 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 onKeyUp: Function,\n onOpened: Function,\n onOptionChanged: Function,\n onPaste: Function,\n onValueChanged: Function,\n opened: Boolean,\n openOnFieldClick: Boolean,\n pickerType: String,\n placeholder: String,\n readOnly: Boolean,\n rtlEnabled: Boolean,\n showAnalogClock: Boolean,\n showClearButton: Boolean,\n showDropDownButton: Boolean,\n spellcheck: Boolean,\n stylingMode: String,\n tabIndex: Number,\n text: String,\n type: String,\n useMaskBehavior: Boolean,\n validationError: {},\n validationErrors: Array,\n validationMessageMode: String,\n validationStatus: String,\n value: {},\n valueChangeEvent: String,\n visible: Boolean,\n width: [Function, Number, String]\n },\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:acceptCustomValue\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:adaptivityEnabled\": null,\n \"update:applyButtonText\": null,\n \"update:applyValueMode\": null,\n \"update:buttons\": null,\n \"update:calendarOptions\": null,\n \"update:cancelButtonText\": null,\n \"update:dateOutOfRangeMessage\": null,\n \"update:dateSerializationFormat\": null,\n \"update:deferRendering\": null,\n \"update:disabled\": null,\n \"update:disabledDates\": null,\n \"update:displayFormat\": null,\n \"update:dropDownButtonTemplate\": null,\n \"update:dropDownOptions\": 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:interval\": null,\n \"update:invalidDateMessage\": null,\n \"update:isValid\": null,\n \"update:max\": null,\n \"update:maxLength\": null,\n \"update:min\": null,\n \"update:name\": null,\n \"update:onChange\": null,\n \"update:onClosed\": 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:onKeyUp\": null,\n \"update:onOpened\": null,\n \"update:onOptionChanged\": null,\n \"update:onPaste\": null,\n \"update:onValueChanged\": null,\n \"update:opened\": null,\n \"update:openOnFieldClick\": null,\n \"update:pickerType\": null,\n \"update:placeholder\": null,\n \"update:readOnly\": null,\n \"update:rtlEnabled\": null,\n \"update:showAnalogClock\": null,\n \"update:showClearButton\": null,\n \"update:showDropDownButton\": null,\n \"update:spellcheck\": null,\n \"update:stylingMode\": null,\n \"update:tabIndex\": null,\n \"update:text\": null,\n \"update:type\": null,\n \"update:useMaskBehavior\": 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 model: { prop: \"value\", event: \"update:value\" },\n computed: {\n instance: function () {\n return this.$_instance;\n }\n },\n beforeCreate: function () {\n this.$_WidgetClass = date_box_1.default;\n this.$_expectedChildren = {\n button: { isCollectionItem: true, optionName: \"buttons\" },\n calendarOptions: { isCollectionItem: false, optionName: \"calendarOptions\" },\n displayFormat: { isCollectionItem: false, optionName: \"displayFormat\" },\n dropDownOptions: { isCollectionItem: false, optionName: \"dropDownOptions\" }\n };\n }\n});\nexports.DxDateBox = DxDateBox;\nvar DxAnimation = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:hide\": null,\n \"update:show\": null,\n },\n props: {\n hide: Object,\n show: Object\n }\n});\nexports.DxAnimation = DxAnimation;\nDxAnimation.$_optionName = \"animation\";\nDxAnimation.$_expectedChildren = {\n hide: { isCollectionItem: false, optionName: \"hide\" },\n show: { isCollectionItem: false, optionName: \"show\" }\n};\nvar DxAt = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxAt = DxAt;\nDxAt.$_optionName = \"at\";\nvar DxBoundaryOffset = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: Number,\n y: Number\n }\n});\nexports.DxBoundaryOffset = DxBoundaryOffset;\nDxBoundaryOffset.$_optionName = \"boundaryOffset\";\nvar DxButton = 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 DxCalendarOptions = 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:cellTemplate\": null,\n \"update:currentDate\": null,\n \"update:dateSerializationFormat\": null,\n \"update:disabled\": null,\n \"update:disabledDates\": null,\n \"update:elementAttr\": null,\n \"update:firstDayOfWeek\": null,\n \"update:focusStateEnabled\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:isValid\": null,\n \"update:max\": null,\n \"update:maxZoomLevel\": null,\n \"update:min\": null,\n \"update:minZoomLevel\": null,\n \"update:name\": 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:onValueChanged\": null,\n \"update:readOnly\": null,\n \"update:rtlEnabled\": null,\n \"update:showTodayButton\": null,\n \"update:stylingMode\": null,\n \"update:tabIndex\": null,\n \"update:validationError\": null,\n \"update:validationErrors\": null,\n \"update:validationMessageMode\": null,\n \"update:validationStatus\": null,\n \"update:value\": null,\n \"update:visible\": null,\n \"update:width\": null,\n \"update:zoomLevel\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n bindingOptions: {},\n cellTemplate: {},\n currentDate: {},\n dateSerializationFormat: String,\n disabled: Boolean,\n disabledDates: [Array, Function],\n elementAttr: {},\n firstDayOfWeek: {\n type: Number,\n validator: function (v) { return typeof (v) !== \"number\" || [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6\n ].indexOf(v) !== -1; }\n },\n focusStateEnabled: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n isValid: Boolean,\n max: {},\n maxZoomLevel: String,\n min: {},\n minZoomLevel: String,\n name: String,\n onContentReady: Function,\n onDisposing: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n onValueChanged: Function,\n readOnly: Boolean,\n rtlEnabled: Boolean,\n showTodayButton: Boolean,\n stylingMode: String,\n tabIndex: Number,\n validationError: {},\n validationErrors: Array,\n validationMessageMode: String,\n validationStatus: String,\n value: {},\n visible: Boolean,\n width: [Function, Number, String],\n zoomLevel: String\n }\n});\nexports.DxCalendarOptions = DxCalendarOptions;\nDxCalendarOptions.$_optionName = \"calendarOptions\";\nvar DxCollision = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxCollision = DxCollision;\nDxCollision.$_optionName = \"collision\";\nvar DxDisplayFormat = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:currency\": null,\n \"update:formatter\": null,\n \"update:parser\": null,\n \"update:precision\": null,\n \"update:type\": null,\n },\n props: {\n currency: String,\n formatter: Function,\n parser: Function,\n precision: Number,\n type: String\n }\n});\nexports.DxDisplayFormat = DxDisplayFormat;\nDxDisplayFormat.$_optionName = \"displayFormat\";\nvar DxDropDownOptions = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:animation\": null,\n \"update:bindingOptions\": null,\n \"update:closeOnOutsideClick\": null,\n \"update:container\": null,\n \"update:contentTemplate\": null,\n \"update:deferRendering\": null,\n \"update:disabled\": null,\n \"update:dragEnabled\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:fullScreen\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:maxHeight\": null,\n \"update:maxWidth\": null,\n \"update:minHeight\": null,\n \"update:minWidth\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onHidden\": null,\n \"update:onHiding\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:onResize\": null,\n \"update:onResizeEnd\": null,\n \"update:onResizeStart\": null,\n \"update:onShowing\": null,\n \"update:onShown\": null,\n \"update:onTitleRendered\": null,\n \"update:position\": null,\n \"update:resizeEnabled\": null,\n \"update:rtlEnabled\": null,\n \"update:shading\": null,\n \"update:shadingColor\": null,\n \"update:showCloseButton\": null,\n \"update:showTitle\": null,\n \"update:tabIndex\": null,\n \"update:title\": null,\n \"update:titleTemplate\": null,\n \"update:toolbarItems\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n animation: Object,\n bindingOptions: {},\n closeOnOutsideClick: [Boolean, Function],\n container: {},\n contentTemplate: {},\n deferRendering: Boolean,\n disabled: Boolean,\n dragEnabled: Boolean,\n elementAttr: {},\n focusStateEnabled: Boolean,\n fullScreen: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n maxHeight: [Function, Number, String],\n maxWidth: [Function, Number, String],\n minHeight: [Function, Number, String],\n minWidth: [Function, Number, String],\n onContentReady: Function,\n onDisposing: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onHidden: Function,\n onHiding: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n onResize: Function,\n onResizeEnd: Function,\n onResizeStart: Function,\n onShowing: Function,\n onShown: Function,\n onTitleRendered: Function,\n position: [Function, Object, String],\n resizeEnabled: Boolean,\n rtlEnabled: Boolean,\n shading: Boolean,\n shadingColor: String,\n showCloseButton: Boolean,\n showTitle: Boolean,\n tabIndex: Number,\n title: String,\n titleTemplate: {},\n toolbarItems: Array,\n visible: Boolean,\n width: [Function, Number, String]\n }\n});\nexports.DxDropDownOptions = DxDropDownOptions;\nDxDropDownOptions.$_optionName = \"dropDownOptions\";\nDxDropDownOptions.$_expectedChildren = {\n animation: { isCollectionItem: false, optionName: \"animation\" },\n position: { isCollectionItem: false, optionName: \"position\" },\n toolbarItem: { isCollectionItem: true, optionName: \"toolbarItems\" }\n};\nvar DxHide = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:complete\": null,\n \"update:delay\": null,\n \"update:direction\": null,\n \"update:duration\": null,\n \"update:easing\": null,\n \"update:from\": null,\n \"update:staggerDelay\": null,\n \"update:start\": null,\n \"update:to\": null,\n \"update:type\": null,\n },\n props: {\n complete: Function,\n delay: Number,\n direction: String,\n duration: Number,\n easing: String,\n from: {},\n staggerDelay: Number,\n start: Function,\n to: {},\n type: String\n }\n});\nexports.DxHide = DxHide;\nDxHide.$_optionName = \"hide\";\nvar DxMy = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxMy = DxMy;\nDxMy.$_optionName = \"my\";\nvar DxOffset = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: Number,\n y: Number\n }\n});\nexports.DxOffset = DxOffset;\nDxOffset.$_optionName = \"offset\";\nvar 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 DxPosition = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:at\": null,\n \"update:boundary\": null,\n \"update:boundaryOffset\": null,\n \"update:collision\": null,\n \"update:my\": null,\n \"update:of\": null,\n \"update:offset\": null,\n },\n props: {\n at: [Object, String],\n boundary: {},\n boundaryOffset: [Object, String],\n collision: [Object, String],\n my: [Object, String],\n of: {},\n offset: [Object, String]\n }\n});\nexports.DxPosition = DxPosition;\nDxPosition.$_optionName = \"position\";\nDxPosition.$_expectedChildren = {\n at: { isCollectionItem: false, optionName: \"at\" },\n boundaryOffset: { isCollectionItem: false, optionName: \"boundaryOffset\" },\n collision: { isCollectionItem: false, optionName: \"collision\" },\n my: { isCollectionItem: false, optionName: \"my\" },\n offset: { isCollectionItem: false, optionName: \"offset\" }\n};\nvar DxShow = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:complete\": null,\n \"update:delay\": null,\n \"update:direction\": null,\n \"update:duration\": null,\n \"update:easing\": null,\n \"update:from\": null,\n \"update:staggerDelay\": null,\n \"update:start\": null,\n \"update:to\": null,\n \"update:type\": null,\n },\n props: {\n complete: Function,\n delay: Number,\n direction: String,\n duration: Number,\n easing: String,\n from: {},\n staggerDelay: Number,\n start: Function,\n to: {},\n type: String\n }\n});\nexports.DxShow = DxShow;\nDxShow.$_optionName = \"show\";\nvar DxToolbarItem = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:disabled\": null,\n \"update:html\": null,\n \"update:location\": null,\n \"update:options\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:toolbar\": null,\n \"update:visible\": null,\n \"update:widget\": null,\n },\n props: {\n disabled: Boolean,\n html: String,\n location: String,\n options: {},\n template: {},\n text: String,\n toolbar: String,\n visible: Boolean,\n widget: String\n }\n});\nexports.DxToolbarItem = DxToolbarItem;\nDxToolbarItem.$_optionName = \"toolbarItems\";\nDxToolbarItem.$_isCollectionItem = true;\nexports.default = DxDateBox;\n","/*!\n * devextreme-vue\n * Version: 21.1.4\n * Build date: Mon Jun 21 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.DxProgressBar = void 0;\nvar progress_bar_1 = __importDefault(require(\"devextreme/ui/progress_bar\"));\nvar index_1 = require(\"./core/index\");\nvar DxProgressBar = index_1.createComponent({\n props: {\n disabled: Boolean,\n elementAttr: {},\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n isValid: Boolean,\n max: Number,\n min: Number,\n onComplete: Function,\n onContentReady: Function,\n onDisposing: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n onValueChanged: Function,\n readOnly: Boolean,\n rtlEnabled: Boolean,\n showStatus: Boolean,\n statusFormat: [Function, String],\n validationError: {},\n validationErrors: Array,\n validationMessageMode: String,\n validationStatus: String,\n value: Number,\n visible: Boolean,\n width: [Function, Number, String]\n },\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:disabled\": null,\n \"update:elementAttr\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:isValid\": null,\n \"update:max\": null,\n \"update:min\": null,\n \"update:onComplete\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:onValueChanged\": null,\n \"update:readOnly\": null,\n \"update:rtlEnabled\": null,\n \"update:showStatus\": null,\n \"update:statusFormat\": null,\n \"update:validationError\": null,\n \"update:validationErrors\": null,\n \"update:validationMessageMode\": null,\n \"update:validationStatus\": null,\n \"update:value\": 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 = progress_bar_1.default;\n }\n});\nexports.DxProgressBar = DxProgressBar;\nexports.default = DxProgressBar;\n","/*!\n * devextreme-vue\n * Version: 21.1.4\n * Build date: Mon Jun 21 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.DxTooltip = exports.DxLabel = exports.DxFormat = exports.DxRangeSlider = void 0;\nvar range_slider_1 = __importDefault(require(\"devextreme/ui/range_slider\"));\nvar index_1 = require(\"./core/index\");\nvar index_2 = require(\"./core/index\");\nvar DxRangeSlider = index_1.createComponent({\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n disabled: Boolean,\n elementAttr: {},\n end: Number,\n endName: String,\n focusStateEnabled: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n isValid: Boolean,\n keyStep: Number,\n label: Object,\n max: Number,\n min: Number,\n onContentReady: Function,\n onDisposing: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n onValueChanged: Function,\n readOnly: Boolean,\n rtlEnabled: Boolean,\n showRange: Boolean,\n start: Number,\n startName: String,\n step: Number,\n tabIndex: Number,\n tooltip: Object,\n validationError: {},\n validationErrors: Array,\n validationMessageMode: String,\n validationStatus: String,\n value: Array,\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:disabled\": null,\n \"update:elementAttr\": null,\n \"update:end\": null,\n \"update:endName\": null,\n \"update:focusStateEnabled\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:isValid\": null,\n \"update:keyStep\": null,\n \"update:label\": null,\n \"update:max\": null,\n \"update:min\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:onValueChanged\": null,\n \"update:readOnly\": null,\n \"update:rtlEnabled\": null,\n \"update:showRange\": null,\n \"update:start\": null,\n \"update:startName\": null,\n \"update:step\": null,\n \"update:tabIndex\": null,\n \"update:tooltip\": null,\n \"update:validationError\": null,\n \"update:validationErrors\": null,\n \"update:validationMessageMode\": null,\n \"update:validationStatus\": null,\n \"update:value\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n model: { prop: \"value\", event: \"update:value\" },\n computed: {\n instance: function () {\n return this.$_instance;\n }\n },\n beforeCreate: function () {\n this.$_WidgetClass = range_slider_1.default;\n this.$_expectedChildren = {\n label: { isCollectionItem: false, optionName: \"label\" },\n tooltip: { isCollectionItem: false, optionName: \"tooltip\" }\n };\n }\n});\nexports.DxRangeSlider = DxRangeSlider;\nvar DxFormat = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:currency\": null,\n \"update:formatter\": null,\n \"update:parser\": null,\n \"update:precision\": null,\n \"update:type\": null,\n },\n props: {\n currency: String,\n formatter: Function,\n parser: Function,\n precision: Number,\n type: String\n }\n});\nexports.DxFormat = DxFormat;\nDxFormat.$_optionName = \"format\";\nvar DxLabel = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:format\": null,\n \"update:position\": null,\n \"update:visible\": null,\n },\n props: {\n format: [Object, Function, String],\n position: String,\n visible: Boolean\n }\n});\nexports.DxLabel = DxLabel;\nDxLabel.$_optionName = \"label\";\nDxLabel.$_expectedChildren = {\n format: { isCollectionItem: false, optionName: \"format\" }\n};\nvar DxTooltip = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:enabled\": null,\n \"update:format\": null,\n \"update:position\": null,\n \"update:showMode\": null,\n },\n props: {\n enabled: Boolean,\n format: [Object, Function, String],\n position: String,\n showMode: String\n }\n});\nexports.DxTooltip = DxTooltip;\nDxTooltip.$_optionName = \"tooltip\";\nDxTooltip.$_expectedChildren = {\n format: { isCollectionItem: false, optionName: \"format\" }\n};\nexports.default = DxRangeSlider;\n","/*!\n * devextreme-vue\n * Version: 21.1.4\n * Build date: Mon Jun 21 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.DxItem = exports.DxTabPanel = void 0;\nvar tab_panel_1 = __importDefault(require(\"devextreme/ui/tab_panel\"));\nvar index_1 = require(\"./core/index\");\nvar index_2 = require(\"./core/index\");\nvar DxTabPanel = index_1.createComponent({\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n animationEnabled: Boolean,\n dataSource: [Array, Object, String],\n deferRendering: Boolean,\n disabled: Boolean,\n elementAttr: {},\n focusStateEnabled: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n itemHoldTimeout: Number,\n items: Array,\n itemTemplate: {},\n itemTitleTemplate: {},\n loop: Boolean,\n noDataText: String,\n onContentReady: Function,\n onDisposing: Function,\n onInitialized: Function,\n onItemClick: [Function, String],\n onItemContextMenu: Function,\n onItemHold: Function,\n onItemRendered: Function,\n onOptionChanged: Function,\n onSelectionChanged: Function,\n onTitleClick: [Function, String],\n onTitleHold: Function,\n onTitleRendered: Function,\n repaintChangesOnly: Boolean,\n rtlEnabled: Boolean,\n scrollByContent: Boolean,\n scrollingEnabled: Boolean,\n selectedIndex: Number,\n selectedItem: {},\n showNavButtons: Boolean,\n swipeEnabled: Boolean,\n tabIndex: Number,\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:dataSource\": null,\n \"update:deferRendering\": 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:itemHoldTimeout\": null,\n \"update:items\": null,\n \"update:itemTemplate\": null,\n \"update:itemTitleTemplate\": null,\n \"update:loop\": null,\n \"update:noDataText\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onInitialized\": null,\n \"update:onItemClick\": null,\n \"update:onItemContextMenu\": null,\n \"update:onItemHold\": null,\n \"update:onItemRendered\": null,\n \"update:onOptionChanged\": null,\n \"update:onSelectionChanged\": null,\n \"update:onTitleClick\": null,\n \"update:onTitleHold\": null,\n \"update:onTitleRendered\": null,\n \"update:repaintChangesOnly\": null,\n \"update:rtlEnabled\": null,\n \"update:scrollByContent\": null,\n \"update:scrollingEnabled\": null,\n \"update:selectedIndex\": null,\n \"update:selectedItem\": null,\n \"update:showNavButtons\": null,\n \"update:swipeEnabled\": null,\n \"update:tabIndex\": 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 = tab_panel_1.default;\n this.$_expectedChildren = {\n item: { isCollectionItem: true, optionName: \"items\" }\n };\n }\n});\nexports.DxTabPanel = DxTabPanel;\nvar DxItem = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:badge\": null,\n \"update:disabled\": null,\n \"update:html\": null,\n \"update:icon\": null,\n \"update:tabTemplate\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:title\": null,\n \"update:visible\": null,\n },\n props: {\n badge: String,\n disabled: Boolean,\n html: String,\n icon: String,\n tabTemplate: {},\n template: {},\n text: String,\n title: String,\n visible: Boolean\n }\n});\nexports.DxItem = DxItem;\nDxItem.$_optionName = \"items\";\nDxItem.$_isCollectionItem = true;\nexports.default = DxTabPanel;\n","/**\r\n * DevExtreme (esm/core/utils/date.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 isString,\r\n isDate,\r\n isDefined,\r\n isNumeric\r\n} from \"./type\";\r\nimport {\r\n adjust\r\n} from \"./math\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport {\r\n camelize\r\n} from \"./inflector\";\r\nimport browser from \"./browser\";\r\nvar isIE11 = browser.msie && parseInt(browser.version) <= 11;\r\nvar dateUnitIntervals = [\"millisecond\", \"second\", \"minute\", \"hour\", \"day\", \"week\", \"month\", \"quarter\", \"year\"];\r\nvar toMilliseconds = function toMilliseconds(value) {\r\n switch (value) {\r\n case \"millisecond\":\r\n return 1;\r\n case \"second\":\r\n return 1e3 * toMilliseconds(\"millisecond\");\r\n case \"minute\":\r\n return 60 * toMilliseconds(\"second\");\r\n case \"hour\":\r\n return 60 * toMilliseconds(\"minute\");\r\n case \"day\":\r\n return 24 * toMilliseconds(\"hour\");\r\n case \"week\":\r\n return 7 * toMilliseconds(\"day\");\r\n case \"month\":\r\n return 30 * toMilliseconds(\"day\");\r\n case \"quarter\":\r\n return 3 * toMilliseconds(\"month\");\r\n case \"year\":\r\n return 365 * toMilliseconds(\"day\");\r\n default:\r\n return 0\r\n }\r\n};\r\nvar getDatesInterval = function(startDate, endDate, intervalUnit) {\r\n var delta = endDate.getTime() - startDate.getTime();\r\n var millisecondCount = toMilliseconds(intervalUnit) || 1;\r\n return Math.floor(delta / millisecondCount)\r\n};\r\nvar getNextDateUnit = function(unit, withWeeks) {\r\n var interval = getDateUnitInterval(unit);\r\n switch (interval) {\r\n case \"millisecond\":\r\n return \"second\";\r\n case \"second\":\r\n return \"minute\";\r\n case \"minute\":\r\n return \"hour\";\r\n case \"hour\":\r\n return \"day\";\r\n case \"day\":\r\n return withWeeks ? \"week\" : \"month\";\r\n case \"week\":\r\n return \"month\";\r\n case \"month\":\r\n return \"quarter\";\r\n case \"quarter\":\r\n case \"year\":\r\n return \"year\";\r\n default:\r\n return 0\r\n }\r\n};\r\nvar convertMillisecondsToDateUnits = function(value) {\r\n var i;\r\n var dateUnitCount;\r\n var dateUnitInterval;\r\n var dateUnitIntervals = [\"millisecond\", \"second\", \"minute\", \"hour\", \"day\", \"month\", \"year\"];\r\n var result = {};\r\n for (i = dateUnitIntervals.length - 1; i >= 0; i--) {\r\n dateUnitInterval = dateUnitIntervals[i];\r\n dateUnitCount = Math.floor(value / toMilliseconds(dateUnitInterval));\r\n if (dateUnitCount > 0) {\r\n result[dateUnitInterval + \"s\"] = dateUnitCount;\r\n value -= convertDateUnitToMilliseconds(dateUnitInterval, dateUnitCount)\r\n }\r\n }\r\n return result\r\n};\r\nvar dateToMilliseconds = function(tickInterval) {\r\n var milliseconds = 0;\r\n if (isObject(tickInterval)) {\r\n each(tickInterval, (function(key, value) {\r\n milliseconds += convertDateUnitToMilliseconds(key.substr(0, key.length - 1), value)\r\n }))\r\n }\r\n if (isString(tickInterval)) {\r\n milliseconds = convertDateUnitToMilliseconds(tickInterval, 1)\r\n }\r\n return milliseconds\r\n};\r\n\r\nfunction convertDateUnitToMilliseconds(dateUnit, count) {\r\n return toMilliseconds(dateUnit) * count\r\n}\r\n\r\nfunction getDateUnitInterval(tickInterval) {\r\n var maxInterval = -1;\r\n var i;\r\n if (isString(tickInterval)) {\r\n return tickInterval\r\n }\r\n if (isObject(tickInterval)) {\r\n each(tickInterval, (function(key, value) {\r\n for (i = 0; i < dateUnitIntervals.length; i++) {\r\n if (value && (key === dateUnitIntervals[i] + \"s\" || key === dateUnitIntervals[i]) && maxInterval < i) {\r\n maxInterval = i\r\n }\r\n }\r\n }));\r\n return dateUnitIntervals[maxInterval]\r\n }\r\n return \"\"\r\n}\r\nvar tickIntervalToFormatMap = {\r\n millisecond: \"millisecond\",\r\n second: \"longtime\",\r\n minute: \"shorttime\",\r\n hour: \"shorttime\",\r\n day: \"day\",\r\n week: \"day\",\r\n month: \"month\",\r\n quarter: \"quarter\",\r\n year: \"year\"\r\n};\r\n\r\nfunction getDateFormatByTickInterval(tickInterval) {\r\n return tickIntervalToFormatMap[getDateUnitInterval(tickInterval)] || \"\"\r\n}\r\nvar getQuarter = function(month) {\r\n return Math.floor(month / 3)\r\n};\r\nvar getFirstQuarterMonth = function(month) {\r\n return 3 * getQuarter(month)\r\n};\r\n\r\nfunction correctDateWithUnitBeginning(date, dateInterval, withCorrection, firstDayOfWeek) {\r\n date = new Date(date.getTime());\r\n var oldDate = new Date(date.getTime());\r\n var firstQuarterMonth;\r\n var month;\r\n var dateUnitInterval = getDateUnitInterval(dateInterval);\r\n switch (dateUnitInterval) {\r\n case \"second\":\r\n date = new Date(1e3 * Math.floor(oldDate.getTime() / 1e3));\r\n break;\r\n case \"minute\":\r\n date = new Date(6e4 * Math.floor(oldDate.getTime() / 6e4));\r\n break;\r\n case \"hour\":\r\n date = new Date(36e5 * Math.floor(oldDate.getTime() / 36e5));\r\n break;\r\n case \"year\":\r\n date.setMonth(0);\r\n case \"month\":\r\n date.setDate(1);\r\n case \"day\":\r\n date.setHours(0, 0, 0, 0);\r\n break;\r\n case \"week\":\r\n date = getFirstWeekDate(date, firstDayOfWeek || 0);\r\n date.setHours(0, 0, 0, 0);\r\n break;\r\n case \"quarter\":\r\n firstQuarterMonth = getFirstQuarterMonth(date.getMonth());\r\n month = date.getMonth();\r\n date.setDate(1);\r\n date.setHours(0, 0, 0, 0);\r\n if (month !== firstQuarterMonth) {\r\n date.setMonth(firstQuarterMonth)\r\n }\r\n }\r\n if (withCorrection && \"hour\" !== dateUnitInterval && \"minute\" !== dateUnitInterval && \"second\" !== dateUnitInterval) {\r\n fixTimezoneGap(oldDate, date)\r\n }\r\n return date\r\n}\r\n\r\nfunction trimTime(date) {\r\n return correctDateWithUnitBeginning(date, \"day\")\r\n}\r\nvar setToDayEnd = function(date) {\r\n var result = trimTime(date);\r\n result.setDate(result.getDate() + 1);\r\n return new Date(result.getTime() - 1)\r\n};\r\nvar getDatesDifferences = function(date1, date2) {\r\n var counter = 0;\r\n var differences = {\r\n year: date1.getFullYear() !== date2.getFullYear(),\r\n month: date1.getMonth() !== date2.getMonth(),\r\n day: date1.getDate() !== date2.getDate(),\r\n hour: date1.getHours() !== date2.getHours(),\r\n minute: date1.getMinutes() !== date2.getMinutes(),\r\n second: date1.getSeconds() !== date2.getSeconds(),\r\n millisecond: date1.getMilliseconds() !== date2.getMilliseconds()\r\n };\r\n each(differences, (function(key, value) {\r\n if (value) {\r\n counter++\r\n }\r\n }));\r\n if (0 === counter && 0 !== getTimezonesDifference(date1, date2)) {\r\n differences.hour = true;\r\n counter++\r\n }\r\n differences.count = counter;\r\n return differences\r\n};\r\n\r\nfunction addDateInterval(value, interval, dir) {\r\n var result = new Date(value.getTime());\r\n var intervalObject = isString(interval) ? getDateIntervalByString(interval.toLowerCase()) : isNumeric(interval) ? convertMillisecondsToDateUnits(interval) : interval;\r\n if (intervalObject.years) {\r\n result.setFullYear(result.getFullYear() + intervalObject.years * dir)\r\n }\r\n if (intervalObject.quarters) {\r\n result.setMonth(result.getMonth() + 3 * intervalObject.quarters * dir)\r\n }\r\n if (intervalObject.months) {\r\n result.setMonth(result.getMonth() + intervalObject.months * dir)\r\n }\r\n if (intervalObject.weeks) {\r\n result.setDate(result.getDate() + 7 * intervalObject.weeks * dir)\r\n }\r\n if (intervalObject.days) {\r\n result.setDate(result.getDate() + intervalObject.days * dir)\r\n }\r\n if (intervalObject.hours) {\r\n result.setTime(result.getTime() + 36e5 * intervalObject.hours * dir)\r\n }\r\n if (intervalObject.minutes) {\r\n result.setTime(result.getTime() + 6e4 * intervalObject.minutes * dir)\r\n }\r\n if (intervalObject.seconds) {\r\n result.setTime(result.getTime() + 1e3 * intervalObject.seconds * dir)\r\n }\r\n if (intervalObject.milliseconds) {\r\n result.setTime(result.getTime() + intervalObject.milliseconds * dir)\r\n }\r\n return result\r\n}\r\nvar addInterval = function(value, interval, isNegative) {\r\n var dir = isNegative ? -1 : 1;\r\n return isDate(value) ? addDateInterval(value, interval, dir) : adjust(value + interval * dir, interval)\r\n};\r\nvar getSequenceByInterval = function(min, max, interval) {\r\n var intervals = [];\r\n var cur;\r\n intervals.push(isDate(min) ? new Date(min.getTime()) : min);\r\n cur = min;\r\n while (cur < max) {\r\n cur = addInterval(cur, interval);\r\n intervals.push(cur)\r\n }\r\n return intervals\r\n};\r\nvar getViewFirstCellDate = function(viewType, date) {\r\n if (\"month\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth(), 1)\r\n }\r\n if (\"year\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), 0, date.getDate())\r\n }\r\n if (\"decade\" === viewType) {\r\n return createDateWithFullYear(getFirstYearInDecade(date), date.getMonth(), date.getDate())\r\n }\r\n if (\"century\" === viewType) {\r\n return createDateWithFullYear(getFirstDecadeInCentury(date), date.getMonth(), date.getDate())\r\n }\r\n};\r\nvar getViewLastCellDate = function(viewType, date) {\r\n if (\"month\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth(), getLastMonthDay(date))\r\n }\r\n if (\"year\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), 11, date.getDate())\r\n }\r\n if (\"decade\" === viewType) {\r\n return createDateWithFullYear(getFirstYearInDecade(date) + 9, date.getMonth(), date.getDate())\r\n }\r\n if (\"century\" === viewType) {\r\n return createDateWithFullYear(getFirstDecadeInCentury(date) + 90, date.getMonth(), date.getDate())\r\n }\r\n};\r\nvar getViewMinBoundaryDate = function(viewType, date) {\r\n var resultDate = createDateWithFullYear(date.getFullYear(), date.getMonth(), 1);\r\n if (\"month\" === viewType) {\r\n return resultDate\r\n }\r\n resultDate.setMonth(0);\r\n if (\"year\" === viewType) {\r\n return resultDate\r\n }\r\n if (\"decade\" === viewType) {\r\n resultDate.setFullYear(getFirstYearInDecade(date))\r\n }\r\n if (\"century\" === viewType) {\r\n resultDate.setFullYear(getFirstDecadeInCentury(date))\r\n }\r\n return resultDate\r\n};\r\nvar getViewMaxBoundaryDate = function(viewType, date) {\r\n var resultDate = new Date(date);\r\n resultDate.setDate(getLastMonthDay(date));\r\n if (\"month\" === viewType) {\r\n return resultDate\r\n }\r\n resultDate.setMonth(11);\r\n resultDate.setDate(getLastMonthDay(resultDate));\r\n if (\"year\" === viewType) {\r\n return resultDate\r\n }\r\n if (\"decade\" === viewType) {\r\n resultDate.setFullYear(getFirstYearInDecade(date) + 9)\r\n }\r\n if (\"century\" === viewType) {\r\n resultDate.setFullYear(getFirstDecadeInCentury(date) + 99)\r\n }\r\n return resultDate\r\n};\r\n\r\nfunction getLastMonthDay(date) {\r\n var resultDate = createDateWithFullYear(date.getFullYear(), date.getMonth() + 1, 0);\r\n return resultDate.getDate()\r\n}\r\nvar getViewUp = function(typeView) {\r\n switch (typeView) {\r\n case \"month\":\r\n return \"year\";\r\n case \"year\":\r\n return \"decade\";\r\n case \"decade\":\r\n return \"century\"\r\n }\r\n};\r\nvar getViewDown = function(typeView) {\r\n switch (typeView) {\r\n case \"century\":\r\n return \"decade\";\r\n case \"decade\":\r\n return \"year\";\r\n case \"year\":\r\n return \"month\"\r\n }\r\n};\r\nvar getDifferenceInMonth = function(typeView) {\r\n var difference = 1;\r\n if (\"year\" === typeView) {\r\n difference = 12\r\n }\r\n if (\"decade\" === typeView) {\r\n difference = 120\r\n }\r\n if (\"century\" === typeView) {\r\n difference = 1200\r\n }\r\n return difference\r\n};\r\nvar getDifferenceInMonthForCells = function(typeView) {\r\n var difference = 1;\r\n if (\"decade\" === typeView) {\r\n difference = 12\r\n }\r\n if (\"century\" === typeView) {\r\n difference = 120\r\n }\r\n return difference\r\n};\r\n\r\nfunction getDateIntervalByString(intervalString) {\r\n var result = {};\r\n switch (intervalString) {\r\n case \"year\":\r\n result.years = 1;\r\n break;\r\n case \"month\":\r\n result.months = 1;\r\n break;\r\n case \"quarter\":\r\n result.months = 3;\r\n break;\r\n case \"week\":\r\n result.weeks = 1;\r\n break;\r\n case \"day\":\r\n result.days = 1;\r\n break;\r\n case \"hour\":\r\n result.hours = 1;\r\n break;\r\n case \"minute\":\r\n result.minutes = 1;\r\n break;\r\n case \"second\":\r\n result.seconds = 1;\r\n break;\r\n case \"millisecond\":\r\n result.milliseconds = 1\r\n }\r\n return result\r\n}\r\n\r\nfunction sameDate(date1, date2) {\r\n return sameMonthAndYear(date1, date2) && date1.getDate() === date2.getDate()\r\n}\r\n\r\nfunction sameMonthAndYear(date1, date2) {\r\n return sameYear(date1, date2) && date1.getMonth() === date2.getMonth()\r\n}\r\n\r\nfunction sameYear(date1, date2) {\r\n return date1 && date2 && date1.getFullYear() === date2.getFullYear()\r\n}\r\nvar sameDecade = function(date1, date2) {\r\n if (!isDefined(date1) || !isDefined(date2)) {\r\n return\r\n }\r\n var startDecadeDate1 = date1.getFullYear() - date1.getFullYear() % 10;\r\n var startDecadeDate2 = date2.getFullYear() - date2.getFullYear() % 10;\r\n return date1 && date2 && startDecadeDate1 === startDecadeDate2\r\n};\r\nvar sameCentury = function(date1, date2) {\r\n if (!isDefined(date1) || !isDefined(date2)) {\r\n return\r\n }\r\n var startCenturyDate1 = date1.getFullYear() - date1.getFullYear() % 100;\r\n var startCenturyDate2 = date2.getFullYear() - date2.getFullYear() % 100;\r\n return date1 && date2 && startCenturyDate1 === startCenturyDate2\r\n};\r\n\r\nfunction getFirstDecadeInCentury(date) {\r\n return date && date.getFullYear() - date.getFullYear() % 100\r\n}\r\n\r\nfunction getFirstYearInDecade(date) {\r\n return date && date.getFullYear() - date.getFullYear() % 10\r\n}\r\nvar getShortDateFormat = function() {\r\n return \"yyyy/MM/dd\"\r\n};\r\nvar getFirstMonthDate = function(date) {\r\n if (!isDefined(date)) {\r\n return\r\n }\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth(), 1)\r\n};\r\nvar getLastMonthDate = function(date) {\r\n if (!isDefined(date)) {\r\n return\r\n }\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth() + 1, 0)\r\n};\r\n\r\nfunction getFirstWeekDate(date, firstDayOfWeek) {\r\n var delta = (date.getDay() - firstDayOfWeek + 7) % 7;\r\n var result = new Date(date);\r\n result.setDate(date.getDate() - delta);\r\n return result\r\n}\r\nvar normalizeDateByWeek = function(date, currentDate) {\r\n var differenceInDays = dateUtils.getDatesInterval(date, currentDate, \"day\");\r\n var resultDate = new Date(date);\r\n if (differenceInDays >= 6) {\r\n resultDate = new Date(resultDate.setDate(resultDate.getDate() + 7))\r\n }\r\n return resultDate\r\n};\r\nvar dateInRange = function(date, min, max, format) {\r\n if (\"date\" === format) {\r\n min = min && dateUtils.correctDateWithUnitBeginning(min, \"day\");\r\n max = max && dateUtils.correctDateWithUnitBeginning(max, \"day\");\r\n date = date && dateUtils.correctDateWithUnitBeginning(date, \"day\")\r\n }\r\n return normalizeDate(date, min, max) === date\r\n};\r\nvar intervalsOverlap = function(options) {\r\n var {\r\n firstMin: firstMin,\r\n firstMax: firstMax,\r\n secondMin: secondMin,\r\n secondMax: secondMax\r\n } = options;\r\n return firstMin <= secondMin && secondMin <= firstMax || firstMin > secondMin && firstMin < secondMax || firstMin < secondMax && firstMax > secondMax\r\n};\r\nvar dateTimeFromDecimal = function(number) {\r\n var hours = Math.floor(number);\r\n var minutes = number % 1 * 60;\r\n return {\r\n hours: hours,\r\n minutes: minutes\r\n }\r\n};\r\nvar roundDateByStartDayHour = function(date, startDayHour) {\r\n var startTime = this.dateTimeFromDecimal(startDayHour);\r\n var result = new Date(date);\r\n if (date.getHours() === startTime.hours && date.getMinutes() < startTime.minutes || date.getHours() < startTime.hours) {\r\n result.setHours(startTime.hours, startTime.minutes, 0, 0)\r\n }\r\n return result\r\n};\r\n\r\nfunction normalizeDate(date, min, max) {\r\n var normalizedDate = date;\r\n if (!isDefined(date)) {\r\n return date\r\n }\r\n if (isDefined(min) && date < min) {\r\n normalizedDate = min\r\n }\r\n if (isDefined(max) && date > max) {\r\n normalizedDate = max\r\n }\r\n return normalizedDate\r\n}\r\n\r\nfunction fixTimezoneGap(oldDate, newDate) {\r\n if (!isDefined(oldDate)) {\r\n return\r\n }\r\n var diff = newDate.getHours() - oldDate.getHours();\r\n if (0 === diff) {\r\n return\r\n }\r\n var sign = 1 === diff || -23 === diff ? -1 : 1;\r\n var trial = new Date(newDate.getTime() + 36e5 * sign);\r\n if (sign > 0 || trial.getDate() === newDate.getDate()) {\r\n newDate.setTime(trial.getTime())\r\n }\r\n}\r\nvar roundToHour = function(date) {\r\n date.setHours(date.getHours() + 1);\r\n date.setMinutes(0);\r\n return date\r\n};\r\n\r\nfunction getTimezonesDifference(min, max) {\r\n return 60 * (max.getTimezoneOffset() - min.getTimezoneOffset()) * 1e3\r\n}\r\nvar makeDate = function(date) {\r\n return new Date(date)\r\n};\r\nvar getDatesOfInterval = function(startDate, endDate, step) {\r\n var result = [];\r\n var currentDate = new Date(startDate.getTime());\r\n while (currentDate < endDate) {\r\n result.push(new Date(currentDate.getTime()));\r\n currentDate = this.addInterval(currentDate, step)\r\n }\r\n return result\r\n};\r\nvar createDate = function(date) {\r\n return new Date(isIE11 && isDate(date) ? date.getTime() : date)\r\n};\r\nvar createDateWithFullYear = function(year) {\r\n var result = new Date(...arguments);\r\n result.setFullYear(year);\r\n return result\r\n};\r\nvar dateUtils = {\r\n dateUnitIntervals: dateUnitIntervals,\r\n convertMillisecondsToDateUnits: convertMillisecondsToDateUnits,\r\n dateToMilliseconds: dateToMilliseconds,\r\n getNextDateUnit: getNextDateUnit,\r\n convertDateUnitToMilliseconds: convertDateUnitToMilliseconds,\r\n getDateUnitInterval: getDateUnitInterval,\r\n getDateFormatByTickInterval: getDateFormatByTickInterval,\r\n getDatesDifferences: getDatesDifferences,\r\n correctDateWithUnitBeginning: correctDateWithUnitBeginning,\r\n trimTime: trimTime,\r\n setToDayEnd: setToDayEnd,\r\n roundDateByStartDayHour: roundDateByStartDayHour,\r\n dateTimeFromDecimal: dateTimeFromDecimal,\r\n addDateInterval: addDateInterval,\r\n addInterval: addInterval,\r\n getSequenceByInterval: getSequenceByInterval,\r\n getDateIntervalByString: getDateIntervalByString,\r\n sameDate: sameDate,\r\n sameMonthAndYear: sameMonthAndYear,\r\n sameMonth: sameMonthAndYear,\r\n sameYear: sameYear,\r\n sameDecade: sameDecade,\r\n sameCentury: sameCentury,\r\n getDifferenceInMonth: getDifferenceInMonth,\r\n getDifferenceInMonthForCells: getDifferenceInMonthForCells,\r\n getFirstYearInDecade: getFirstYearInDecade,\r\n getFirstDecadeInCentury: getFirstDecadeInCentury,\r\n getShortDateFormat: getShortDateFormat,\r\n getViewFirstCellDate: getViewFirstCellDate,\r\n getViewLastCellDate: getViewLastCellDate,\r\n getViewDown: getViewDown,\r\n getViewUp: getViewUp,\r\n getLastMonthDay: getLastMonthDay,\r\n getLastMonthDate: getLastMonthDate,\r\n getFirstMonthDate: getFirstMonthDate,\r\n getFirstWeekDate: getFirstWeekDate,\r\n normalizeDateByWeek: normalizeDateByWeek,\r\n getQuarter: getQuarter,\r\n getFirstQuarterMonth: getFirstQuarterMonth,\r\n dateInRange: dateInRange,\r\n intervalsOverlap: intervalsOverlap,\r\n roundToHour: roundToHour,\r\n normalizeDate: normalizeDate,\r\n getViewMinBoundaryDate: getViewMinBoundaryDate,\r\n getViewMaxBoundaryDate: getViewMaxBoundaryDate,\r\n fixTimezoneGap: fixTimezoneGap,\r\n getTimezonesDifference: getTimezonesDifference,\r\n makeDate: makeDate,\r\n getDatesInterval: getDatesInterval,\r\n getDatesOfInterval: getDatesOfInterval,\r\n createDate: createDate,\r\n createDateWithFullYear: createDateWithFullYear\r\n};\r\ndateUtils.sameView = function(view, date1, date2) {\r\n return dateUtils[camelize(\"same \" + view)](date1, date2)\r\n};\r\nexport default dateUtils;\r\n","/**\r\n * DevExtreme (esm/core/utils/date_serialization.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 getFormatter as getLDMLFormatter\r\n} from \"../../localization/ldml/date.formatter\";\r\nimport defaultDateNames from \"../../localization/default_date_names\";\r\nimport {\r\n isString,\r\n isDate,\r\n isNumeric as isNumber\r\n} from \"./type\";\r\nimport browser from \"./browser\";\r\nvar NUMBER_SERIALIZATION_FORMAT = \"number\";\r\nvar DATE_SERIALIZATION_FORMAT = \"yyyy/MM/dd\";\r\nvar DATETIME_SERIALIZATION_FORMAT = \"yyyy/MM/dd HH:mm:ss\";\r\nvar ISO8601_PATTERN = /^(\\d{4,})(-)?(\\d{2})(-)?(\\d{2})(?:T(\\d{2})(:)?(\\d{2})?(:)?(\\d{2}(?:\\.(\\d{1,3})\\d*)?)?)?(Z|([+-])(\\d{2})(:)?(\\d{2})?)?$/;\r\nvar ISO8601_TIME_PATTERN = /^(\\d{2}):(\\d{2})(:(\\d{2}))?$/;\r\nvar ISO8601_PATTERN_PARTS = [\"\", \"yyyy\", \"\", \"MM\", \"\", \"dd\", \"THH\", \"\", \"mm\", \"\", \"ss\", \".SSS\"];\r\nvar DATE_SERIALIZATION_PATTERN = /^(\\d{4})\\/(\\d{2})\\/(\\d{2})$/;\r\nvar MILLISECOND_LENGHT = 3;\r\nvar isIE11 = browser.msie && parseInt(browser.version) <= 11;\r\nvar dateParser = function(text, skipISO8601Parsing) {\r\n var result;\r\n if (isString(text) && !skipISO8601Parsing) {\r\n result = parseISO8601String(text)\r\n }\r\n return result || parseDate(text)\r\n};\r\n\r\nfunction getTimePart(part) {\r\n return +part || 0\r\n}\r\n\r\nfunction parseDate(text) {\r\n var isDefaultSerializationFormat = getDateSerializationFormat(text) === DATE_SERIALIZATION_FORMAT;\r\n var parsedValue = !isDate(text) && Date.parse(text);\r\n if ((!parsedValue || isIE11) && isDefaultSerializationFormat) {\r\n var parts = text.match(DATE_SERIALIZATION_PATTERN);\r\n if (parts) {\r\n var newDate = new Date(getTimePart(parts[1]), getTimePart(parts[2]), getTimePart(parts[3]));\r\n newDate.setFullYear(getTimePart(parts[1]));\r\n newDate.setMonth(getTimePart(parts[2]) - 1);\r\n newDate.setDate(getTimePart(parts[3]));\r\n return newDate\r\n }\r\n }\r\n return isNumber(parsedValue) ? new Date(parsedValue) : text\r\n}\r\n\r\nfunction parseISO8601String(text) {\r\n var parts = text.match(ISO8601_PATTERN);\r\n if (!parts) {\r\n parts = text.match(ISO8601_TIME_PATTERN);\r\n if (parts) {\r\n return new Date(0, 0, 0, getTimePart(parts[1]), getTimePart(parts[2]), getTimePart(parts[4]))\r\n }\r\n return\r\n }\r\n var year = parts[1];\r\n var month = --parts[3];\r\n var day = parts[5];\r\n var timeZoneHour = 0;\r\n var timeZoneMinute = 0;\r\n timeZoneHour = getTimePart(parts[14]);\r\n timeZoneMinute = getTimePart(parts[16]);\r\n if (\"-\" === parts[13]) {\r\n timeZoneHour = -timeZoneHour;\r\n timeZoneMinute = -timeZoneMinute\r\n }\r\n var hour = getTimePart(parts[6]) - timeZoneHour;\r\n var minute = getTimePart(parts[8]) - timeZoneMinute;\r\n var second = getTimePart(parts[10]);\r\n var millisecond = function(part) {\r\n part = part || \"\";\r\n return getTimePart(part) * Math.pow(10, MILLISECOND_LENGHT - part.length)\r\n }(parts[11]);\r\n if (parts[12]) {\r\n return new Date(Date.UTC(year, month, day, hour, minute, second, millisecond))\r\n }\r\n return new Date(year, month, day, hour, minute, second, millisecond)\r\n}\r\nvar getIso8601Format = function(text, useUtc) {\r\n var parts = text.match(ISO8601_PATTERN);\r\n var result = \"\";\r\n if (!parts) {\r\n parts = text.match(ISO8601_TIME_PATTERN);\r\n if (parts) {\r\n return parts[3] ? \"HH:mm:ss\" : \"HH:mm\"\r\n }\r\n return\r\n }\r\n for (var i = 1; i < ISO8601_PATTERN_PARTS.length; i++) {\r\n if (parts[i]) {\r\n result += ISO8601_PATTERN_PARTS[i] || parts[i]\r\n }\r\n }\r\n if (\"Z\" === parts[12]) {\r\n result += \"'Z'\"\r\n }\r\n if (parts[14]) {\r\n if (parts[15]) {\r\n result += \"xxx\"\r\n } else if (parts[16]) {\r\n result += \"xx\"\r\n } else {\r\n result += \"x\"\r\n }\r\n }\r\n return result\r\n};\r\nvar deserializeDate = function(value) {\r\n if (\"number\" === typeof value) {\r\n return new Date(value)\r\n }\r\n return dateParser(value, !config().forceIsoDateParsing)\r\n};\r\nvar serializeDate = function(value, serializationFormat) {\r\n if (!serializationFormat) {\r\n return value\r\n }\r\n if (!isDate(value)) {\r\n return null\r\n }\r\n if (serializationFormat === NUMBER_SERIALIZATION_FORMAT) {\r\n return value && value.valueOf ? value.valueOf() : null\r\n }\r\n return getLDMLFormatter(serializationFormat, defaultDateNames)(value)\r\n};\r\nvar getDateSerializationFormat = function(value) {\r\n if (\"number\" === typeof value) {\r\n return NUMBER_SERIALIZATION_FORMAT\r\n } else if (isString(value)) {\r\n var format;\r\n if (config().forceIsoDateParsing) {\r\n format = getIso8601Format(value)\r\n }\r\n if (format) {\r\n return format\r\n } else if (value.indexOf(\":\") >= 0) {\r\n return DATETIME_SERIALIZATION_FORMAT\r\n } else {\r\n return DATE_SERIALIZATION_FORMAT\r\n }\r\n } else if (value) {\r\n return null\r\n }\r\n};\r\nexport default {\r\n dateParser: dateParser,\r\n deserializeDate: deserializeDate,\r\n serializeDate: serializeDate,\r\n getDateSerializationFormat: getDateSerializationFormat\r\n};\r\n","/**\r\n * DevExtreme (esm/events/gesture/swipeable.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 start as swipeEventStart,\r\n swipe as swipeEventSwipe,\r\n end as swipeEventEnd\r\n} from \"../swipe\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n addNamespace\r\n} from \"../utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n name\r\n} from \"../../core/utils/public_component\";\r\nvar DX_SWIPEABLE = \"dxSwipeable\";\r\nvar SWIPEABLE_CLASS = \"dx-swipeable\";\r\nvar ACTION_TO_EVENT_MAP = {\r\n onStart: swipeEventStart,\r\n onUpdated: swipeEventSwipe,\r\n onEnd: swipeEventEnd,\r\n onCancel: \"dxswipecancel\"\r\n};\r\nvar Swipeable = DOMComponent.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n elastic: true,\r\n immediate: false,\r\n direction: \"horizontal\",\r\n itemSizeFunc: null,\r\n onStart: null,\r\n onUpdated: null,\r\n onEnd: null,\r\n onCancel: null\r\n })\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(SWIPEABLE_CLASS);\r\n this._attachEventHandlers()\r\n },\r\n _attachEventHandlers: function() {\r\n this._detachEventHandlers();\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n var NAME = this.NAME;\r\n this._createEventData();\r\n each(ACTION_TO_EVENT_MAP, function(actionName, eventName) {\r\n var action = this._createActionByOption(actionName, {\r\n context: this\r\n });\r\n eventName = addNamespace(eventName, NAME);\r\n eventsEngine.on(this.$element(), eventName, this._eventData, (function(e) {\r\n return action({\r\n event: e\r\n })\r\n }))\r\n }.bind(this))\r\n },\r\n _createEventData: function() {\r\n this._eventData = {\r\n elastic: this.option(\"elastic\"),\r\n itemSizeFunc: this.option(\"itemSizeFunc\"),\r\n direction: this.option(\"direction\"),\r\n immediate: this.option(\"immediate\")\r\n }\r\n },\r\n _detachEventHandlers: function() {\r\n eventsEngine.off(this.$element(), \".\" + DX_SWIPEABLE)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"disabled\":\r\n case \"onStart\":\r\n case \"onUpdated\":\r\n case \"onEnd\":\r\n case \"onCancel\":\r\n case \"elastic\":\r\n case \"immediate\":\r\n case \"itemSizeFunc\":\r\n case \"direction\":\r\n this._detachEventHandlers();\r\n this._attachEventHandlers();\r\n break;\r\n case \"rtlEnabled\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\nname(Swipeable, DX_SWIPEABLE);\r\nexport default Swipeable;\r\n","/**\r\n * DevExtreme (esm/ui/box.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 registerComponent from \"../core/component_registrator\";\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 hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n dasherize\r\n} from \"../core/utils/inflector\";\r\nimport {\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n normalizeStyleProp,\r\n styleProp,\r\n stylePropPrefix\r\n} from \"../core/utils/style\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport browser from \"../core/utils/browser\";\r\nimport CollectionWidgetItem from \"./collection/item\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.edit\";\r\nvar BOX_CLASS = \"dx-box\";\r\nvar BOX_SELECTOR = \".dx-box\";\r\nvar BOX_ITEM_CLASS = \"dx-box-item\";\r\nvar BOX_ITEM_DATA_KEY = \"dxBoxItemData\";\r\nvar MINSIZE_MAP = {\r\n row: \"minWidth\",\r\n col: \"minHeight\"\r\n};\r\nvar MAXSIZE_MAP = {\r\n row: \"maxWidth\",\r\n col: \"maxHeight\"\r\n};\r\nvar SHRINK = 1;\r\nvar FLEX_JUSTIFY_CONTENT_MAP = {\r\n start: \"flex-start\",\r\n end: \"flex-end\",\r\n center: \"center\",\r\n \"space-between\": \"space-between\",\r\n \"space-around\": \"space-around\"\r\n};\r\nvar FLEX_ALIGN_ITEMS_MAP = {\r\n start: \"flex-start\",\r\n end: \"flex-end\",\r\n center: \"center\",\r\n stretch: \"stretch\"\r\n};\r\nvar FLEX_DIRECTION_MAP = {\r\n row: \"row\",\r\n col: \"column\"\r\n};\r\nvar setFlexProp = (element, prop, value) => {\r\n value = normalizeStyleProp(prop, value);\r\n element.style[styleProp(prop)] = value;\r\n if (!hasWindow()) {\r\n if (\"\" === value || !isDefined(value)) {\r\n return\r\n }\r\n var cssName = dasherize(prop);\r\n var styleExpr = cssName + \": \" + value + \";\";\r\n if (!element.attributes.style) {\r\n element.setAttribute(\"style\", styleExpr)\r\n } else if (element.attributes.style.value.indexOf(styleExpr) < 0) {\r\n element.attributes.style.value += \" \" + styleExpr\r\n }\r\n }\r\n};\r\nvar BOX_EVENTNAMESPACE = \"dxBox\";\r\nvar UPDATE_EVENT = \"dxupdate.\" + BOX_EVENTNAMESPACE;\r\nvar FALLBACK_BOX_ITEM = \"dx-box-fallback-item\";\r\nvar FALLBACK_WRAP_MAP = {\r\n row: \"nowrap\",\r\n col: \"normal\"\r\n};\r\nvar FALLBACK_MAIN_SIZE_MAP = {\r\n row: \"width\",\r\n col: \"height\"\r\n};\r\nvar FALLBACK_CROSS_SIZE_MAP = {\r\n row: \"height\",\r\n col: \"width\"\r\n};\r\nvar FALLBACK_PRE_MARGIN_MAP = {\r\n row: \"marginLeft\",\r\n col: \"marginTop\"\r\n};\r\nvar FALLBACK_POST_MARGIN_MAP = {\r\n row: \"marginRight\",\r\n col: \"marginBottom\"\r\n};\r\nvar FALLBACK_CROSS_PRE_MARGIN_MAP = {\r\n row: \"marginTop\",\r\n col: \"marginLeft\"\r\n};\r\nvar FALLBACK_CROSS_POST_MARGIN_MAP = {\r\n row: \"marginBottom\",\r\n col: \"marginRight\"\r\n};\r\nvar MARGINS_RTL_FLIP_MAP = {\r\n marginLeft: \"marginRight\",\r\n marginRight: \"marginLeft\"\r\n};\r\nclass BoxItem extends CollectionWidgetItem {\r\n _renderVisible(value, oldValue) {\r\n super._renderVisible(value);\r\n if (isDefined(oldValue)) {\r\n this._options.fireItemStateChangedAction({\r\n name: \"visible\",\r\n state: value,\r\n oldState: oldValue\r\n })\r\n }\r\n }\r\n}\r\nclass FlexLayoutStrategy {\r\n constructor($element, option) {\r\n this._$element = $element;\r\n this._option = option;\r\n this.initSize = noop;\r\n this.update = noop\r\n }\r\n renderBox() {\r\n this._$element.css({\r\n display: stylePropPrefix(\"flexDirection\") + \"flex\"\r\n });\r\n setFlexProp(this._$element.get(0), \"flexDirection\", FLEX_DIRECTION_MAP[this._option(\"direction\")])\r\n }\r\n renderAlign() {\r\n this._$element.css({\r\n justifyContent: this._normalizedAlign()\r\n })\r\n }\r\n _normalizedAlign() {\r\n var align = this._option(\"align\");\r\n return align in FLEX_JUSTIFY_CONTENT_MAP ? FLEX_JUSTIFY_CONTENT_MAP[align] : align\r\n }\r\n renderCrossAlign() {\r\n this._$element.css({\r\n alignItems: this._normalizedCrossAlign()\r\n })\r\n }\r\n _normalizedCrossAlign() {\r\n var crossAlign = this._option(\"crossAlign\");\r\n return crossAlign in FLEX_ALIGN_ITEMS_MAP ? FLEX_ALIGN_ITEMS_MAP[crossAlign] : crossAlign\r\n }\r\n renderItems($items) {\r\n var flexPropPrefix = stylePropPrefix(\"flexDirection\");\r\n var direction = this._option(\"direction\");\r\n each($items, (function() {\r\n var $item = $(this);\r\n var item = $item.data(BOX_ITEM_DATA_KEY);\r\n $item.css({\r\n display: flexPropPrefix + \"flex\"\r\n }).css(MAXSIZE_MAP[direction], item.maxSize || \"none\").css(MINSIZE_MAP[direction], item.minSize || \"0\");\r\n setFlexProp($item.get(0), \"flexBasis\", item.baseSize || 0);\r\n setFlexProp($item.get(0), \"flexGrow\", item.ratio);\r\n setFlexProp($item.get(0), \"flexShrink\", isDefined(item.shrink) ? item.shrink : SHRINK);\r\n $item.children().each((_, itemContent) => {\r\n $(itemContent).css({\r\n width: \"auto\",\r\n height: \"auto\",\r\n display: stylePropPrefix(\"flexDirection\") + \"flex\",\r\n flexBasis: 0\r\n });\r\n setFlexProp(itemContent, \"flexGrow\", 1);\r\n setFlexProp(itemContent, \"flexDirection\", $(itemContent)[0].style.flexDirection || \"column\")\r\n })\r\n }))\r\n }\r\n}\r\nclass FallbackLayoutStrategy {\r\n constructor($element, option) {\r\n this._$element = $element;\r\n this._option = option\r\n }\r\n renderBox() {\r\n this._$element.css({\r\n fontSize: 0,\r\n whiteSpace: FALLBACK_WRAP_MAP[this._option(\"direction\")],\r\n verticalAlign: \"top\"\r\n });\r\n eventsEngine.off(this._$element, UPDATE_EVENT);\r\n eventsEngine.on(this._$element, UPDATE_EVENT, this.update.bind(this))\r\n }\r\n renderAlign() {\r\n var $items = this._$items;\r\n if (!$items) {\r\n return\r\n }\r\n var align = this._option(\"align\");\r\n var totalItemSize = this.totalItemSize;\r\n var direction = this._option(\"direction\");\r\n var boxSize = this._$element[FALLBACK_MAIN_SIZE_MAP[direction]]();\r\n var freeSpace = boxSize - totalItemSize;\r\n var shift = 0;\r\n this._setItemsMargins($items, direction, 0);\r\n switch (align) {\r\n case \"start\":\r\n break;\r\n case \"end\":\r\n shift = freeSpace;\r\n $items.first().css(this._chooseMarginSide(FALLBACK_PRE_MARGIN_MAP[direction]), shift);\r\n break;\r\n case \"center\":\r\n shift = .5 * freeSpace;\r\n $items.first().css(this._chooseMarginSide(FALLBACK_PRE_MARGIN_MAP[direction]), shift);\r\n $items.last().css(this._chooseMarginSide(FALLBACK_POST_MARGIN_MAP[direction]), shift);\r\n break;\r\n case \"space-between\":\r\n shift = .5 * freeSpace / ($items.length - 1);\r\n this._setItemsMargins($items, direction, shift);\r\n $items.first().css(this._chooseMarginSide(FALLBACK_PRE_MARGIN_MAP[direction]), 0);\r\n $items.last().css(this._chooseMarginSide(FALLBACK_POST_MARGIN_MAP[direction]), 0);\r\n break;\r\n case \"space-around\":\r\n shift = .5 * freeSpace / $items.length;\r\n this._setItemsMargins($items, direction, shift)\r\n }\r\n }\r\n _setItemsMargins($items, direction, shift) {\r\n $items.css(this._chooseMarginSide(FALLBACK_PRE_MARGIN_MAP[direction]), shift).css(this._chooseMarginSide(FALLBACK_POST_MARGIN_MAP[direction]), shift)\r\n }\r\n renderCrossAlign() {\r\n var $items = this._$items;\r\n if (!$items) {\r\n return\r\n }\r\n var crossAlign = this._option(\"crossAlign\");\r\n var direction = this._option(\"direction\");\r\n var size = this._$element[FALLBACK_CROSS_SIZE_MAP[direction]]();\r\n var that = this;\r\n switch (crossAlign) {\r\n case \"start\":\r\n break;\r\n case \"end\":\r\n each($items, (function() {\r\n var $item = $(this);\r\n var itemSize = $item[FALLBACK_CROSS_SIZE_MAP[direction]]();\r\n var shift = size - itemSize;\r\n $item.css(that._chooseMarginSide(FALLBACK_CROSS_PRE_MARGIN_MAP[direction]), shift)\r\n }));\r\n break;\r\n case \"center\":\r\n each($items, (function() {\r\n var $item = $(this);\r\n var itemSize = $item[FALLBACK_CROSS_SIZE_MAP[direction]]();\r\n var shift = .5 * (size - itemSize);\r\n $item.css(that._chooseMarginSide(FALLBACK_CROSS_PRE_MARGIN_MAP[direction]), shift).css(that._chooseMarginSide(FALLBACK_CROSS_POST_MARGIN_MAP[direction]), shift)\r\n }));\r\n break;\r\n case \"stretch\":\r\n $items.css(that._chooseMarginSide(FALLBACK_CROSS_PRE_MARGIN_MAP[direction]), 0).css(that._chooseMarginSide(FALLBACK_CROSS_POST_MARGIN_MAP[direction]), 0).css(FALLBACK_CROSS_SIZE_MAP[direction], \"100%\")\r\n }\r\n }\r\n _chooseMarginSide(value) {\r\n if (!this._option(\"rtlEnabled\")) {\r\n return value\r\n }\r\n return MARGINS_RTL_FLIP_MAP[value] || value\r\n }\r\n renderItems($items) {\r\n this._$items = $items;\r\n var direction = this._option(\"direction\");\r\n var totalRatio = 0;\r\n var totalWeightedShrink = 0;\r\n var totalBaseSize = 0;\r\n each($items, (_, item) => {\r\n var $item = $(item);\r\n $item.css({\r\n display: \"inline-block\",\r\n verticalAlign: \"top\"\r\n });\r\n $item[FALLBACK_MAIN_SIZE_MAP[direction]](\"auto\");\r\n $item.removeClass(FALLBACK_BOX_ITEM);\r\n var itemData = $item.data(BOX_ITEM_DATA_KEY);\r\n var ratio = itemData.ratio || 0;\r\n var size = this._baseSize($item);\r\n var shrink = isDefined(itemData.shrink) ? itemData.shrink : SHRINK;\r\n totalRatio += ratio;\r\n totalWeightedShrink += shrink * size;\r\n totalBaseSize += size\r\n });\r\n var freeSpaceSize = this._boxSize() - totalBaseSize;\r\n var itemSize = $item => {\r\n var itemData = $item.data(BOX_ITEM_DATA_KEY);\r\n var size = this._baseSize($item);\r\n var factor = freeSpaceSize >= 0 ? itemData.ratio || 0 : (isDefined(itemData.shrink) ? itemData.shrink : SHRINK) * size;\r\n var totalFactor = freeSpaceSize >= 0 ? totalRatio : totalWeightedShrink;\r\n var shift = totalFactor ? Math.round(freeSpaceSize * factor / totalFactor) : 0;\r\n return size + shift\r\n };\r\n var totalItemSize = 0;\r\n each($items, (_, item) => {\r\n var $item = $(item);\r\n var itemData = $(item).data(BOX_ITEM_DATA_KEY);\r\n var size = itemSize($item);\r\n totalItemSize += size;\r\n $item.css(MAXSIZE_MAP[direction], itemData.maxSize || \"none\").css(MINSIZE_MAP[direction], itemData.minSize || \"0\").css(FALLBACK_MAIN_SIZE_MAP[direction], size);\r\n $item.addClass(FALLBACK_BOX_ITEM)\r\n });\r\n this.totalItemSize = totalItemSize\r\n }\r\n _baseSize(item) {\r\n var itemData = $(item).data(BOX_ITEM_DATA_KEY);\r\n return null == itemData.baseSize ? 0 : \"auto\" === itemData.baseSize ? this._contentSize(item) : this._parseSize(itemData.baseSize)\r\n }\r\n _contentSize(item) {\r\n return $(item)[FALLBACK_MAIN_SIZE_MAP[this._option(\"direction\")]]()\r\n }\r\n _parseSize(size) {\r\n return String(size).match(/.+%$/) ? .01 * parseFloat(size) * this._boxSizeValue : size\r\n }\r\n _boxSize(value) {\r\n if (!arguments.length) {\r\n this._boxSizeValue = this._boxSizeValue || this._totalBaseSize();\r\n return this._boxSizeValue\r\n }\r\n this._boxSizeValue = value\r\n }\r\n _totalBaseSize() {\r\n var result = 0;\r\n each(this._$items, (_, item) => {\r\n result += this._baseSize(item)\r\n });\r\n return result\r\n }\r\n initSize() {\r\n this._boxSize(this._$element[FALLBACK_MAIN_SIZE_MAP[this._option(\"direction\")]]())\r\n }\r\n update() {\r\n if (!this._$items || this._$element.is(\":hidden\")) {\r\n return\r\n }\r\n this._$items.detach();\r\n this.initSize();\r\n this._$element.append(this._$items);\r\n this.renderItems(this._$items);\r\n this.renderAlign();\r\n this.renderCrossAlign();\r\n var element = this._$element.get(0);\r\n this._$items.find(BOX_SELECTOR).each((function() {\r\n if (element === $(this).parent().closest(BOX_SELECTOR).get(0)) {\r\n eventsEngine.triggerHandler(this, UPDATE_EVENT)\r\n }\r\n }))\r\n }\r\n}\r\nclass Box extends CollectionWidget {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n direction: \"row\",\r\n align: \"start\",\r\n crossAlign: \"stretch\",\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n onItemStateChanged: void 0,\r\n _layoutStrategy: \"flex\",\r\n _queue: void 0\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: function() {\r\n return browser.msie\r\n },\r\n options: {\r\n _layoutStrategy: \"fallback\"\r\n }\r\n }])\r\n }\r\n _itemClass() {\r\n return BOX_ITEM_CLASS\r\n }\r\n _itemDataKey() {\r\n return BOX_ITEM_DATA_KEY\r\n }\r\n _itemElements() {\r\n return this._itemContainer().children(this._itemSelector())\r\n }\r\n _init() {\r\n super._init();\r\n this.$element().addClass(\"\".concat(BOX_CLASS, \"-\").concat(this.option(\"_layoutStrategy\")));\r\n this._initLayout();\r\n this._initBoxQueue()\r\n }\r\n _initLayout() {\r\n this._layout = \"fallback\" === this.option(\"_layoutStrategy\") ? new FallbackLayoutStrategy(this.$element(), this.option.bind(this)) : new FlexLayoutStrategy(this.$element(), this.option.bind(this))\r\n }\r\n _initBoxQueue() {\r\n this._queue = this.option(\"_queue\") || []\r\n }\r\n _queueIsNotEmpty() {\r\n return this.option(\"_queue\") ? false : !!this._queue.length\r\n }\r\n _pushItemToQueue($item, config) {\r\n this._queue.push({\r\n $item: $item,\r\n config: config\r\n })\r\n }\r\n _shiftItemFromQueue() {\r\n return this._queue.shift()\r\n }\r\n _initMarkup() {\r\n this.$element().addClass(BOX_CLASS);\r\n this._layout.renderBox();\r\n super._initMarkup();\r\n this._renderAlign();\r\n this._renderActions()\r\n }\r\n _renderActions() {\r\n this._onItemStateChanged = this._createActionByOption(\"onItemStateChanged\")\r\n }\r\n _renderAlign() {\r\n this._layout.renderAlign();\r\n this._layout.renderCrossAlign()\r\n }\r\n _renderItems(items) {\r\n this._layout.initSize();\r\n super._renderItems(items);\r\n while (this._queueIsNotEmpty()) {\r\n var item = this._shiftItemFromQueue();\r\n this._createComponent(item.$item, Box, extend({\r\n _layoutStrategy: this.option(\"_layoutStrategy\"),\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n itemHoldTimeout: this.option(\"itemHoldTimeout\"),\r\n onItemHold: this.option(\"onItemHold\"),\r\n onItemClick: this.option(\"onItemClick\"),\r\n onItemContextMenu: this.option(\"onItemContextMenu\"),\r\n onItemRendered: this.option(\"onItemRendered\"),\r\n _queue: this._queue\r\n }, item.config))\r\n }\r\n this._layout.renderItems(this._itemElements());\r\n clearTimeout(this._updateTimer);\r\n this._updateTimer = setTimeout(() => {\r\n if (!this._isUpdated) {\r\n this._layout.update()\r\n }\r\n this._isUpdated = false;\r\n this._updateTimer = null\r\n })\r\n }\r\n _renderItemContent(args) {\r\n var $itemNode = args.itemData && args.itemData.node;\r\n if ($itemNode) {\r\n return this._renderItemContentByNode(args, $itemNode)\r\n }\r\n return super._renderItemContent(args)\r\n }\r\n _postprocessRenderItem(args) {\r\n var boxConfig = args.itemData.box;\r\n if (!boxConfig) {\r\n return\r\n }\r\n this._pushItemToQueue(args.itemContent, boxConfig)\r\n }\r\n _createItemByTemplate(itemTemplate, args) {\r\n if (args.itemData.box) {\r\n return itemTemplate.source ? itemTemplate.source() : $()\r\n }\r\n return super._createItemByTemplate(itemTemplate, args)\r\n }\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n }\r\n _dimensionChanged() {\r\n if (this._updateTimer) {\r\n return\r\n }\r\n this._isUpdated = true;\r\n this._layout.update()\r\n }\r\n _dispose() {\r\n clearTimeout(this._updateTimer);\r\n super._dispose.apply(this, arguments)\r\n }\r\n _itemOptionChanged(item, property, value, oldValue) {\r\n if (\"visible\" === property) {\r\n this._onItemStateChanged({\r\n name: property,\r\n state: value,\r\n oldState: false !== oldValue\r\n })\r\n }\r\n super._itemOptionChanged(item, property, value)\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"_layoutStrategy\":\r\n case \"_queue\":\r\n case \"direction\":\r\n this._invalidate();\r\n break;\r\n case \"align\":\r\n this._layout.renderAlign();\r\n break;\r\n case \"crossAlign\":\r\n this._layout.renderCrossAlign();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _itemOptions() {\r\n var options = super._itemOptions();\r\n options.fireItemStateChangedAction = e => {\r\n this._onItemStateChanged(e)\r\n };\r\n return options\r\n }\r\n repaint() {\r\n this._dimensionChanged()\r\n }\r\n}\r\nBox.ItemClass = BoxItem;\r\nregisterComponent(\"dxBox\", Box);\r\nexport default Box;\r\n","/**\r\n * DevExtreme (esm/ui/shared/filtering.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 isDate,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n map\r\n} from \"../../core/utils/iterator\";\r\nvar DEFAULT_DATE_INTERVAL = [\"year\", \"month\", \"day\"];\r\nvar DEFAULT_DATETIME_INTERVAL = [\"year\", \"month\", \"day\", \"hour\", \"minute\"];\r\nvar isDateType = function(dataType) {\r\n return \"date\" === dataType || \"datetime\" === dataType\r\n};\r\nvar getGroupInterval = function(column) {\r\n var index;\r\n var result = [];\r\n var dateIntervals = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\"];\r\n var groupInterval = column.headerFilter && column.headerFilter.groupInterval;\r\n var interval = \"quarter\" === groupInterval ? \"month\" : groupInterval;\r\n if (isDateType(column.dataType) && null !== groupInterval) {\r\n result = \"datetime\" === column.dataType ? DEFAULT_DATETIME_INTERVAL : DEFAULT_DATE_INTERVAL;\r\n index = inArray(interval, dateIntervals);\r\n if (index >= 0) {\r\n result = dateIntervals.slice(0, index);\r\n result.push(groupInterval);\r\n return result\r\n }\r\n return result\r\n } else if (isDefined(groupInterval)) {\r\n return Array.isArray(groupInterval) ? groupInterval : [groupInterval]\r\n }\r\n};\r\nexport default (function() {\r\n var getFilterSelector = function(column, target) {\r\n var selector = column.dataField || column.selector;\r\n if (\"search\" === target) {\r\n selector = column.displayField || column.calculateDisplayValue || selector\r\n }\r\n return selector\r\n };\r\n var getFilterExpressionByRange = function(filterValue, target) {\r\n var endFilterValue;\r\n var startFilterExpression;\r\n var endFilterExpression;\r\n var selector = getFilterSelector(this, target);\r\n if (Array.isArray(filterValue) && isDefined(filterValue[0]) && isDefined(filterValue[1])) {\r\n startFilterExpression = [selector, \">=\", filterValue[0]];\r\n endFilterExpression = [selector, \"<=\", filterValue[1]];\r\n if (isDateType(this.dataType) && (date = filterValue[1], date.getHours() + date.getMinutes() + date.getSeconds() + date.getMilliseconds() < 1)) {\r\n endFilterValue = new Date(filterValue[1].getTime());\r\n if (\"date\" === this.dataType) {\r\n endFilterValue.setDate(filterValue[1].getDate() + 1)\r\n }\r\n endFilterExpression = [selector, \"<\", endFilterValue]\r\n }\r\n return [startFilterExpression, \"and\", endFilterExpression]\r\n }\r\n var date\r\n };\r\n var getFilterExpressionForDate = function(filterValue, selectedFilterOperation, target) {\r\n var dateStart;\r\n var dateEnd;\r\n var dateInterval;\r\n var values = function(dateValue) {\r\n if (isDate(dateValue)) {\r\n return [dateValue.getFullYear(), dateValue.getMonth(), dateValue.getDate(), dateValue.getHours(), dateValue.getMinutes(), dateValue.getSeconds()]\r\n }\r\n return map((\"\" + dateValue).split(\"/\"), (function(value, index) {\r\n return 1 === index ? Number(value) - 1 : Number(value)\r\n }))\r\n }(filterValue);\r\n var selector = getFilterSelector(this, target);\r\n if (\"headerFilter\" === target) {\r\n dateInterval = getGroupInterval(this)[values.length - 1]\r\n } else if (\"datetime\" === this.dataType) {\r\n dateInterval = \"minute\"\r\n }\r\n switch (dateInterval) {\r\n case \"year\":\r\n dateStart = new Date(values[0], 0, 1);\r\n dateEnd = new Date(values[0] + 1, 0, 1);\r\n break;\r\n case \"month\":\r\n dateStart = new Date(values[0], values[1], 1);\r\n dateEnd = new Date(values[0], values[1] + 1, 1);\r\n break;\r\n case \"quarter\":\r\n dateStart = new Date(values[0], 3 * values[1], 1);\r\n dateEnd = new Date(values[0], 3 * values[1] + 3, 1);\r\n break;\r\n case \"hour\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3] + 1);\r\n break;\r\n case \"minute\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3], values[4]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3], values[4] + 1);\r\n break;\r\n case \"second\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3], values[4], values[5]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3], values[4], values[5] + 1);\r\n break;\r\n default:\r\n dateStart = new Date(values[0], values[1], values[2]);\r\n dateEnd = new Date(values[0], values[1], values[2] + 1)\r\n }\r\n switch (selectedFilterOperation) {\r\n case \"<\":\r\n return [selector, \"<\", dateStart];\r\n case \"<=\":\r\n return [selector, \"<\", dateEnd];\r\n case \">\":\r\n return [selector, \">=\", dateEnd];\r\n case \">=\":\r\n return [selector, \">=\", dateStart];\r\n case \"<>\":\r\n return [\r\n [selector, \"<\", dateStart], \"or\", [selector, \">=\", dateEnd]\r\n ];\r\n default:\r\n return [\r\n [selector, \">=\", dateStart], \"and\", [selector, \"<\", dateEnd]\r\n ]\r\n }\r\n };\r\n var getFilterExpressionForNumber = function(filterValue, selectedFilterOperation, target) {\r\n var selector = getFilterSelector(this, target);\r\n var groupInterval = getGroupInterval(this);\r\n if (\"headerFilter\" === target && groupInterval && isDefined(filterValue)) {\r\n var values = (\"\" + filterValue).split(\"/\");\r\n var value = Number(values[values.length - 1]);\r\n var interval = groupInterval[values.length - 1];\r\n var startFilterValue = [selector, \">=\", value];\r\n var endFilterValue = [selector, \"<\", value + interval];\r\n var condition = [startFilterValue, \"and\", endFilterValue];\r\n return condition\r\n }\r\n return [selector, selectedFilterOperation || \"=\", filterValue]\r\n };\r\n return {\r\n defaultCalculateFilterExpression: function(filterValue, selectedFilterOperation, target) {\r\n var column = this;\r\n var selector = getFilterSelector(column, target);\r\n var isSearchByDisplayValue = column.calculateDisplayValue && \"search\" === target;\r\n var dataType = isSearchByDisplayValue && column.lookup && column.lookup.dataType || column.dataType;\r\n var filter = null;\r\n if ((\"headerFilter\" === target || \"filterBuilder\" === target) && null === filterValue) {\r\n filter = [selector, selectedFilterOperation || \"=\", null];\r\n if (\"string\" === dataType) {\r\n filter = [filter, \"=\" === selectedFilterOperation ? \"or\" : \"and\", [selector, selectedFilterOperation || \"=\", \"\"]]\r\n }\r\n } else if (\"string\" === dataType && (!column.lookup || isSearchByDisplayValue)) {\r\n filter = [selector, selectedFilterOperation || \"contains\", filterValue]\r\n } else if (\"between\" === selectedFilterOperation) {\r\n return getFilterExpressionByRange.apply(column, [filterValue, target])\r\n } else if (isDateType(dataType) && isDefined(filterValue)) {\r\n return getFilterExpressionForDate.apply(column, arguments)\r\n } else if (\"number\" === dataType) {\r\n return getFilterExpressionForNumber.apply(column, arguments)\r\n } else if (\"object\" !== dataType) {\r\n filter = [selector, selectedFilterOperation || \"=\", filterValue]\r\n }\r\n return filter\r\n },\r\n getGroupInterval: getGroupInterval\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/format_helper.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 isNumeric,\r\n isFunction,\r\n isDefined,\r\n isDate,\r\n isPlainObject\r\n} from \"./core/utils/type\";\r\nimport dateUtils from \"./core/utils/date\";\r\nimport numberLocalization from \"./localization/number\";\r\nimport dateLocalization from \"./localization/date\";\r\nimport dependencyInjector from \"./core/utils/dependency_injector\";\r\nimport \"./localization/currency\";\r\nexport default dependencyInjector({\r\n format: function(value, _format) {\r\n var formatIsValid = isString(_format) && \"\" !== _format || isPlainObject(_format) || isFunction(_format);\r\n var valueIsValid = isNumeric(value) || isDate(value);\r\n if (!formatIsValid || !valueIsValid) {\r\n return isDefined(value) ? value.toString() : \"\"\r\n }\r\n if (isFunction(_format)) {\r\n return _format(value)\r\n }\r\n if (isString(_format)) {\r\n _format = {\r\n type: _format\r\n }\r\n }\r\n if (isNumeric(value)) {\r\n return numberLocalization.format(value, _format)\r\n }\r\n if (isDate(value)) {\r\n return dateLocalization.format(value, _format)\r\n }\r\n },\r\n getTimeFormat: function(showSecond) {\r\n return showSecond ? \"longtime\" : \"shorttime\"\r\n },\r\n _normalizeFormat: function(format) {\r\n if (!Array.isArray(format)) {\r\n return format\r\n }\r\n if (1 === format.length) {\r\n return format[0]\r\n }\r\n return function(date) {\r\n return format.map((function(formatPart) {\r\n return dateLocalization.format(date, formatPart)\r\n })).join(\" \")\r\n }\r\n },\r\n getDateFormatByDifferences: function(dateDifferences, intervalFormat) {\r\n var resultFormat = [];\r\n var needSpecialSecondFormatter = intervalFormat && dateDifferences.millisecond && !(dateDifferences.year || dateDifferences.month || dateDifferences.day);\r\n if (needSpecialSecondFormatter) {\r\n resultFormat.push((function(date) {\r\n return date.getSeconds() + date.getMilliseconds() / 1e3 + \"s\"\r\n }))\r\n } else if (dateDifferences.millisecond) {\r\n resultFormat.push(\"millisecond\")\r\n }\r\n if (dateDifferences.hour || dateDifferences.minute || !needSpecialSecondFormatter && dateDifferences.second) {\r\n resultFormat.unshift(this.getTimeFormat(dateDifferences.second))\r\n }\r\n if (dateDifferences.year && dateDifferences.month && dateDifferences.day) {\r\n if (intervalFormat && \"month\" === intervalFormat) {\r\n return \"monthandyear\"\r\n } else {\r\n resultFormat.unshift(\"shortdate\");\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n }\r\n if (dateDifferences.year && dateDifferences.month) {\r\n return \"monthandyear\"\r\n }\r\n if (dateDifferences.year && dateDifferences.quarter) {\r\n return \"quarterandyear\"\r\n }\r\n if (dateDifferences.year) {\r\n return \"year\"\r\n }\r\n if (dateDifferences.quarter) {\r\n return \"quarter\"\r\n }\r\n if (dateDifferences.month && dateDifferences.day) {\r\n if (intervalFormat) {\r\n resultFormat.unshift((function(date) {\r\n return dateLocalization.getMonthNames(\"abbreviated\")[date.getMonth()] + \" \" + dateLocalization.format(date, \"day\")\r\n }))\r\n } else {\r\n resultFormat.unshift(\"monthandday\")\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n if (dateDifferences.month) {\r\n return \"month\"\r\n }\r\n if (dateDifferences.day) {\r\n if (intervalFormat) {\r\n resultFormat.unshift(\"day\")\r\n } else {\r\n resultFormat.unshift((function(date) {\r\n return dateLocalization.format(date, \"dayofweek\") + \", \" + dateLocalization.format(date, \"day\")\r\n }))\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n },\r\n getDateFormatByTicks: function(ticks) {\r\n var maxDiff;\r\n var currentDiff;\r\n var i;\r\n if (ticks.length > 1) {\r\n maxDiff = dateUtils.getDatesDifferences(ticks[0], ticks[1]);\r\n for (i = 1; i < ticks.length - 1; i++) {\r\n currentDiff = dateUtils.getDatesDifferences(ticks[i], ticks[i + 1]);\r\n if (maxDiff.count < currentDiff.count) {\r\n maxDiff = currentDiff\r\n }\r\n }\r\n } else {\r\n maxDiff = {\r\n year: true,\r\n month: true,\r\n day: true,\r\n hour: ticks[0].getHours() > 0,\r\n minute: ticks[0].getMinutes() > 0,\r\n second: ticks[0].getSeconds() > 0,\r\n millisecond: ticks[0].getMilliseconds() > 0\r\n }\r\n }\r\n var resultFormat = this.getDateFormatByDifferences(maxDiff);\r\n return resultFormat\r\n },\r\n getDateFormatByTickInterval: function(startValue, endValue, tickInterval) {\r\n var dateUnitInterval;\r\n var correctDateDifferences = function(dateDifferences, tickInterval, value) {\r\n switch (tickInterval) {\r\n case \"year\":\r\n case \"quarter\":\r\n dateDifferences.month = value;\r\n case \"month\":\r\n dateDifferences.day = value;\r\n case \"week\":\r\n case \"day\":\r\n dateDifferences.hour = value;\r\n case \"hour\":\r\n dateDifferences.minute = value;\r\n case \"minute\":\r\n dateDifferences.second = value;\r\n case \"second\":\r\n dateDifferences.millisecond = value\r\n }\r\n };\r\n tickInterval = isString(tickInterval) ? tickInterval.toLowerCase() : tickInterval;\r\n var dateDifferences = dateUtils.getDatesDifferences(startValue, endValue);\r\n if (startValue !== endValue) {\r\n ! function(differences, minDate, maxDate) {\r\n if (!maxDate.getMilliseconds() && maxDate.getSeconds()) {\r\n if (maxDate.getSeconds() - minDate.getSeconds() === 1) {\r\n differences.millisecond = true;\r\n differences.second = false\r\n }\r\n } else if (!maxDate.getSeconds() && maxDate.getMinutes()) {\r\n if (maxDate.getMinutes() - minDate.getMinutes() === 1) {\r\n differences.second = true;\r\n differences.minute = false\r\n }\r\n } else if (!maxDate.getMinutes() && maxDate.getHours()) {\r\n if (maxDate.getHours() - minDate.getHours() === 1) {\r\n differences.minute = true;\r\n differences.hour = false\r\n }\r\n } else if (!maxDate.getHours() && maxDate.getDate() > 1) {\r\n if (maxDate.getDate() - minDate.getDate() === 1) {\r\n differences.hour = true;\r\n differences.day = false\r\n }\r\n } else if (1 === maxDate.getDate() && maxDate.getMonth()) {\r\n if (maxDate.getMonth() - minDate.getMonth() === 1) {\r\n differences.day = true;\r\n differences.month = false\r\n }\r\n } else if (!maxDate.getMonth() && maxDate.getFullYear()) {\r\n if (maxDate.getFullYear() - minDate.getFullYear() === 1) {\r\n differences.month = true;\r\n differences.year = false\r\n }\r\n }\r\n }(dateDifferences, startValue > endValue ? endValue : startValue, startValue > endValue ? startValue : endValue)\r\n }\r\n dateUnitInterval = dateUtils.getDateUnitInterval(dateDifferences);\r\n correctDateDifferences(dateDifferences, dateUnitInterval, true);\r\n dateUnitInterval = dateUtils.getDateUnitInterval(tickInterval || \"second\");\r\n correctDateDifferences(dateDifferences, dateUnitInterval, false);\r\n dateDifferences[{\r\n week: \"day\"\r\n } [dateUnitInterval] || dateUnitInterval] = true;\r\n var resultFormat = this.getDateFormatByDifferences(dateDifferences);\r\n return resultFormat\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.utils.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport sharedFiltering from \"../shared/filtering\";\r\nimport {\r\n format\r\n} from \"../../core/utils/string\";\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 getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n toComparable\r\n} from \"../../core/utils/data\";\r\nimport {\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport LoadPanel from \"../load_panel\";\r\nimport dataUtils from \"../../data/utils\";\r\nimport formatHelper from \"../../format_helper\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nvar DATAGRID_SELECTION_DISABLED_CLASS = \"dx-selection-disabled\";\r\nvar DATAGRID_GROUP_OPENED_CLASS = \"dx-datagrid-group-opened\";\r\nvar DATAGRID_GROUP_CLOSED_CLASS = \"dx-datagrid-group-closed\";\r\nvar DATAGRID_EXPAND_CLASS = \"dx-datagrid-expand\";\r\nvar NO_DATA_CLASS = \"nodata\";\r\nvar DATE_INTERVAL_SELECTORS = {\r\n year: function(value) {\r\n return value && value.getFullYear()\r\n },\r\n month: function(value) {\r\n return value && value.getMonth() + 1\r\n },\r\n day: function(value) {\r\n return value && value.getDate()\r\n },\r\n quarter: function(value) {\r\n return value && Math.floor(value.getMonth() / 3) + 1\r\n },\r\n hour: function(value) {\r\n return value && value.getHours()\r\n },\r\n minute: function(value) {\r\n return value && value.getMinutes()\r\n },\r\n second: function(value) {\r\n return value && value.getSeconds()\r\n }\r\n};\r\nvar getIntervalSelector = function() {\r\n var data = arguments[1];\r\n var value = this.calculateCellValue(data);\r\n if (!isDefined(value)) {\r\n return null\r\n } else if (isDateType(this.dataType)) {\r\n var nameIntervalSelector = arguments[0];\r\n return DATE_INTERVAL_SELECTORS[nameIntervalSelector](value)\r\n } else if (\"number\" === this.dataType) {\r\n var groupInterval = arguments[0];\r\n return Math.floor(Number(value) / groupInterval) * groupInterval\r\n }\r\n};\r\nvar equalSelectors = function(selector1, selector2) {\r\n if (isFunction(selector1) && isFunction(selector2)) {\r\n if (selector1.originalCallback && selector2.originalCallback) {\r\n return selector1.originalCallback === selector2.originalCallback && selector1.columnIndex === selector2.columnIndex\r\n }\r\n }\r\n return selector1 === selector2\r\n};\r\n\r\nfunction isDateType(dataType) {\r\n return \"date\" === dataType || \"datetime\" === dataType\r\n}\r\nvar setEmptyText = function($container) {\r\n $container.get(0).textContent = \"\\xa0\"\r\n};\r\nvar normalizeSortingInfo = function(sort) {\r\n sort = sort || [];\r\n var result = dataUtils.normalizeSortingInfo(sort);\r\n for (var i = 0; i < sort.length; i++) {\r\n if (sort && sort[i] && void 0 !== sort[i].isExpanded) {\r\n result[i].isExpanded = sort[i].isExpanded\r\n }\r\n if (sort && sort[i] && void 0 !== sort[i].groupInterval) {\r\n result[i].groupInterval = sort[i].groupInterval\r\n }\r\n }\r\n return result\r\n};\r\nvar formatValue = function(value, options) {\r\n var valueText = formatHelper.format(value, options.format) || value && value.toString() || \"\";\r\n var formatObject = {\r\n value: value,\r\n valueText: options.getDisplayFormat ? options.getDisplayFormat(valueText) : valueText,\r\n target: options.target || \"row\",\r\n groupInterval: options.groupInterval\r\n };\r\n return options.customizeText ? options.customizeText.call(options, formatObject) : formatObject.valueText\r\n};\r\nvar getSummaryText = function(summaryItem, summaryTexts) {\r\n var displayFormat = summaryItem.displayFormat || summaryItem.columnCaption && summaryTexts[summaryItem.summaryType + \"OtherColumn\"] || summaryTexts[summaryItem.summaryType];\r\n return formatValue(summaryItem.value, {\r\n format: summaryItem.valueFormat,\r\n getDisplayFormat: function(valueText) {\r\n return displayFormat ? format(displayFormat, valueText, summaryItem.columnCaption) : valueText\r\n },\r\n customizeText: summaryItem.customizeText\r\n })\r\n};\r\nvar getWidgetInstance = function($element) {\r\n var editorData = $element.data && $element.data();\r\n var dxComponents = editorData && editorData.dxComponents;\r\n var widgetName = dxComponents && dxComponents[0];\r\n return widgetName && editorData[widgetName]\r\n};\r\nvar equalFilterParameters = function equalFilterParameters(filter1, filter2) {\r\n if (Array.isArray(filter1) && Array.isArray(filter2)) {\r\n if (filter1.length !== filter2.length) {\r\n return false\r\n } else {\r\n for (var i = 0; i < filter1.length; i++) {\r\n if (!equalFilterParameters(filter1[i], filter2[i])) {\r\n return false\r\n }\r\n }\r\n }\r\n return true\r\n } else if (isFunction(filter1) && filter1.columnIndex >= 0 && isFunction(filter2) && filter2.columnIndex >= 0) {\r\n return filter1.columnIndex === filter2.columnIndex && toComparable(filter1.filterValue) === toComparable(filter2.filterValue)\r\n } else {\r\n return toComparable(filter1) == toComparable(filter2)\r\n }\r\n};\r\nexport default {\r\n renderNoDataText: function($element) {\r\n $element = $element || this.element();\r\n if (!$element) {\r\n return\r\n }\r\n var noDataClass = this.addWidgetPrefix(NO_DATA_CLASS);\r\n var noDataElement = $element.find(\".\" + noDataClass).last();\r\n var isVisible = this._dataController.isEmpty();\r\n var isLoading = this._dataController.isLoading();\r\n if (!noDataElement.length) {\r\n noDataElement = $(\"\").addClass(noDataClass).appendTo($element)\r\n }\r\n if (isVisible && !isLoading) {\r\n noDataElement.removeClass(\"dx-hidden\").text(this._getNoDataText())\r\n } else {\r\n noDataElement.addClass(\"dx-hidden\")\r\n }\r\n },\r\n renderLoadPanel: function($element, $container, isLocalStore) {\r\n var loadPanelOptions;\r\n this._loadPanel && this._loadPanel.$element().remove();\r\n loadPanelOptions = this.option(\"loadPanel\");\r\n if (loadPanelOptions && (\"auto\" === loadPanelOptions.enabled ? !isLocalStore : loadPanelOptions.enabled)) {\r\n loadPanelOptions = extend({\r\n shading: false,\r\n message: loadPanelOptions.text,\r\n position: function() {\r\n var $window = $(getWindow());\r\n if ($element.height() > $window.height()) {\r\n return {\r\n of: $window,\r\n boundary: $element,\r\n collision: \"fit\"\r\n }\r\n }\r\n return {\r\n of: $element\r\n }\r\n },\r\n container: $container\r\n }, loadPanelOptions);\r\n this._loadPanel = this._createComponent($(\"
\").appendTo($container), LoadPanel, loadPanelOptions)\r\n } else {\r\n this._loadPanel = null\r\n }\r\n },\r\n getIndexByKey: function(key, items, keyName) {\r\n var index = -1;\r\n if (void 0 !== key && Array.isArray(items)) {\r\n keyName = arguments.length <= 2 ? \"key\" : keyName;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = isDefined(keyName) ? items[i][keyName] : items[i];\r\n if (equalByValue(key, item)) {\r\n index = i;\r\n break\r\n }\r\n }\r\n }\r\n return index\r\n },\r\n combineFilters: function(filters, operation) {\r\n var resultFilter = [];\r\n operation = operation || \"and\";\r\n for (var i = 0; i < filters.length; i++) {\r\n if (!filters[i]) {\r\n continue\r\n }\r\n if (resultFilter.length) {\r\n resultFilter.push(operation)\r\n }\r\n resultFilter.push(filters[i])\r\n }\r\n if (1 === resultFilter.length) {\r\n resultFilter = resultFilter[0]\r\n }\r\n if (resultFilter.length) {\r\n return resultFilter\r\n }\r\n },\r\n checkChanges: function(changes, changeNames) {\r\n var changesWithChangeNamesCount = 0;\r\n for (var i = 0; i < changeNames.length; i++) {\r\n if (changes[changeNames[i]]) {\r\n changesWithChangeNamesCount++\r\n }\r\n }\r\n return changes.length && changes.length === changesWithChangeNamesCount\r\n },\r\n equalFilterParameters: equalFilterParameters,\r\n proxyMethod: function(instance, methodName, defaultResult) {\r\n if (!instance[methodName]) {\r\n instance[methodName] = function() {\r\n var dataSource = this._dataSource;\r\n return dataSource ? dataSource[methodName].apply(dataSource, arguments) : defaultResult\r\n }\r\n }\r\n },\r\n formatValue: formatValue,\r\n getFormatOptionsByColumn: function(column, target) {\r\n return {\r\n format: column.format,\r\n getDisplayFormat: column.getDisplayFormat,\r\n customizeText: column.customizeText,\r\n target: target,\r\n trueText: column.trueText,\r\n falseText: column.falseText\r\n }\r\n },\r\n getDisplayValue: function(column, value, data, rowType) {\r\n if (column.displayValueMap && void 0 !== column.displayValueMap[value]) {\r\n return column.displayValueMap[value]\r\n } else if (column.calculateDisplayValue && data && \"group\" !== rowType) {\r\n return column.calculateDisplayValue(data)\r\n } else if (column.lookup && !(\"group\" === rowType && (column.calculateGroupValue || column.calculateDisplayValue))) {\r\n return column.lookup.calculateCellValue(value)\r\n }\r\n return value\r\n },\r\n getGroupRowSummaryText: function(summaryItems, summaryTexts) {\r\n var result = \"(\";\r\n for (var i = 0; i < summaryItems.length; i++) {\r\n var summaryItem = summaryItems[i];\r\n result += (i > 0 ? \", \" : \"\") + getSummaryText(summaryItem, summaryTexts)\r\n }\r\n return result + \")\"\r\n },\r\n getSummaryText: getSummaryText,\r\n normalizeSortingInfo: normalizeSortingInfo,\r\n getFormatByDataType: function(dataType) {\r\n switch (dataType) {\r\n case \"date\":\r\n return \"shortDate\";\r\n case \"datetime\":\r\n return \"shortDateShortTime\"\r\n }\r\n },\r\n getHeaderFilterGroupParameters: function(column, remoteGrouping) {\r\n var result = [];\r\n var dataField = column.dataField || column.name;\r\n var groupInterval = sharedFiltering.getGroupInterval(column);\r\n if (groupInterval) {\r\n each(groupInterval, (function(index, interval) {\r\n result.push(remoteGrouping ? {\r\n selector: dataField,\r\n groupInterval: interval,\r\n isExpanded: index < groupInterval.length - 1\r\n } : getIntervalSelector.bind(column, interval))\r\n }));\r\n return result\r\n }\r\n if (remoteGrouping) {\r\n result = [{\r\n selector: dataField,\r\n isExpanded: false\r\n }]\r\n } else {\r\n result = function(data) {\r\n var result = column.calculateCellValue(data);\r\n if (void 0 === result || \"\" === result) {\r\n result = null\r\n }\r\n return result\r\n };\r\n if (column.sortingMethod) {\r\n result = [{\r\n selector: result,\r\n compare: column.sortingMethod.bind(column)\r\n }]\r\n }\r\n }\r\n return result\r\n },\r\n equalSortParameters(sortParameters1, sortParameters2, ignoreIsExpanded) {\r\n sortParameters1 = normalizeSortingInfo(sortParameters1);\r\n sortParameters2 = normalizeSortingInfo(sortParameters2);\r\n if (Array.isArray(sortParameters1) && Array.isArray(sortParameters2)) {\r\n if (sortParameters1.length !== sortParameters2.length) {\r\n return false\r\n } else {\r\n for (var i = 0; i < sortParameters1.length; i++) {\r\n if (!equalSelectors(sortParameters1[i].selector, sortParameters2[i].selector) || sortParameters1[i].desc !== sortParameters2[i].desc || sortParameters1[i].groupInterval !== sortParameters2[i].groupInterval || !ignoreIsExpanded && Boolean(sortParameters1[i].isExpanded) !== Boolean(sortParameters2[i].isExpanded)) {\r\n return false\r\n }\r\n }\r\n }\r\n return true\r\n } else {\r\n return (!sortParameters1 || !sortParameters1.length) === (!sortParameters2 || !sortParameters2.length)\r\n }\r\n },\r\n getPointsByColumns: function(items, pointCreated, isVertical, startColumnIndex) {\r\n var cellsLength = items.length;\r\n var notCreatePoint = false;\r\n var item;\r\n var offset;\r\n var columnIndex = startColumnIndex || 0;\r\n var result = [];\r\n var rtlEnabled;\r\n for (var i = 0; i <= cellsLength; i++) {\r\n if (i < cellsLength) {\r\n item = items.eq(i);\r\n offset = item.offset();\r\n rtlEnabled = \"rtl\" === item.css(\"direction\")\r\n }\r\n var point = {\r\n index: columnIndex,\r\n x: offset ? offset.left + (!isVertical && rtlEnabled ^ i === cellsLength ? getBoundingRect(item[0]).width : 0) : 0,\r\n y: offset ? offset.top + (isVertical && i === cellsLength ? getBoundingRect(item[0]).height : 0) : 0,\r\n columnIndex: columnIndex\r\n };\r\n if (!isVertical && i > 0) {\r\n var prevItemOffset = items.eq(i - 1).offset();\r\n if (prevItemOffset.top < point.y) {\r\n point.y = prevItemOffset.top\r\n }\r\n }\r\n if (pointCreated) {\r\n notCreatePoint = pointCreated(point)\r\n }\r\n if (!notCreatePoint) {\r\n result.push(point)\r\n }\r\n columnIndex++\r\n }\r\n return result\r\n },\r\n getExpandCellTemplate: function() {\r\n return {\r\n allowRenderToDetachedContainer: true,\r\n render: function(container, options) {\r\n var $container = $(container);\r\n if (isDefined(options.value) && !(options.data && options.data.isContinuation) && !options.row.isNewRow) {\r\n var rowsView = options.component.getView(\"rowsView\");\r\n $container.addClass(DATAGRID_EXPAND_CLASS).addClass(DATAGRID_SELECTION_DISABLED_CLASS);\r\n $(\"
\").addClass(options.value ? DATAGRID_GROUP_OPENED_CLASS : DATAGRID_GROUP_CLOSED_CLASS).appendTo($container);\r\n rowsView.setAria(\"label\", options.value ? rowsView.localize(\"dxDataGrid-ariaCollapse\") : rowsView.localize(\"dxDataGrid-ariaExpand\"), $container)\r\n } else {\r\n setEmptyText($container)\r\n }\r\n }\r\n }\r\n },\r\n setEmptyText: setEmptyText,\r\n isDateType: isDateType,\r\n getSelectionRange: function(focusedElement) {\r\n try {\r\n if (focusedElement) {\r\n return {\r\n selectionStart: focusedElement.selectionStart,\r\n selectionEnd: focusedElement.selectionEnd\r\n }\r\n }\r\n } catch (e) {}\r\n return {}\r\n },\r\n setSelectionRange: function(focusedElement, selectionRange) {\r\n try {\r\n if (focusedElement && focusedElement.setSelectionRange) {\r\n focusedElement.setSelectionRange(selectionRange.selectionStart, selectionRange.selectionEnd)\r\n }\r\n } catch (e) {}\r\n },\r\n focusAndSelectElement: function(component, $element) {\r\n eventsEngine.trigger($element, \"focus\");\r\n var isSelectTextOnEditingStart = component.option(\"editing.selectTextOnEditStart\");\r\n var keyboardController = component.getController(\"keyboardNavigation\");\r\n var isEditingNavigationMode = keyboardController && keyboardController._isFastEditingStarted();\r\n var element = $element.get(0);\r\n if (isSelectTextOnEditingStart && !isEditingNavigationMode && $element.is(\".dx-texteditor-input\") && !$element.is(\"[readonly]\")) {\r\n var editor = getWidgetInstance($element.closest(\".dx-texteditor\"));\r\n when(editor && editor._loadItemDeferred).done((function() {\r\n element.select()\r\n }))\r\n }\r\n },\r\n getWidgetInstance: getWidgetInstance,\r\n getLastResizableColumnIndex: function(columns, resultWidths) {\r\n var hasResizableColumns = columns.some(column => column && !column.command && !column.fixed && false !== column.allowResizing);\r\n var lastColumnIndex;\r\n for (lastColumnIndex = columns.length - 1; columns[lastColumnIndex]; lastColumnIndex--) {\r\n var column = columns[lastColumnIndex];\r\n var width = resultWidths && resultWidths[lastColumnIndex];\r\n var allowResizing = !hasResizableColumns || false !== column.allowResizing;\r\n if (!column.command && !column.fixed && \"adaptiveHidden\" !== width && allowResizing) {\r\n break\r\n }\r\n }\r\n return lastColumnIndex\r\n },\r\n isElementInCurrentGrid: function(controller, $element) {\r\n if ($element && $element.length) {\r\n var $grid = $element.closest(\".\" + controller.getWidgetContainerClass()).parent();\r\n return $grid.is(controller.component.$element())\r\n }\r\n return false\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.modules.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n grep\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar WIDGET_WITH_LEGACY_CONTAINER_NAME = \"dxDataGrid\";\r\nvar ModuleItem = Class.inherit({\r\n _endUpdateCore: function() {},\r\n ctor: function(component) {\r\n var that = this;\r\n that._updateLockCount = 0;\r\n that.component = component;\r\n that._actions = {};\r\n that._actionConfigs = {};\r\n each(this.callbackNames() || [], (function(index, name) {\r\n var flags = that.callbackFlags(name) || {};\r\n flags.unique = true, flags.syncStrategy = true;\r\n that[this] = Callbacks(flags)\r\n }))\r\n },\r\n init: function() {},\r\n callbackNames: function() {},\r\n callbackFlags: function() {},\r\n publicMethods: function() {},\r\n beginUpdate: function() {\r\n this._updateLockCount++\r\n },\r\n endUpdate: function() {\r\n if (this._updateLockCount > 0) {\r\n this._updateLockCount--;\r\n if (!this._updateLockCount) {\r\n this._endUpdateCore()\r\n }\r\n }\r\n },\r\n option: function(name) {\r\n var component = this.component;\r\n var optionCache = component._optionCache;\r\n if (1 === arguments.length && optionCache) {\r\n if (!(name in optionCache)) {\r\n optionCache[name] = component.option(name)\r\n }\r\n return optionCache[name]\r\n }\r\n return component.option.apply(component, arguments)\r\n },\r\n _silentOption: function(name, value) {\r\n var component = this.component;\r\n var optionCache = component._optionCache;\r\n if (optionCache) {\r\n optionCache[name] = value\r\n }\r\n return component._setOptionWithoutOptionChange(name, value)\r\n },\r\n localize: function(name) {\r\n var optionCache = this.component._optionCache;\r\n if (optionCache) {\r\n if (!(name in optionCache)) {\r\n optionCache[name] = messageLocalization.format(name)\r\n }\r\n return optionCache[name]\r\n }\r\n return messageLocalization.format(name)\r\n },\r\n on: function() {\r\n return this.component.on.apply(this.component, arguments)\r\n },\r\n off: function() {\r\n return this.component.off.apply(this.component, arguments)\r\n },\r\n optionChanged: function(args) {\r\n if (args.name in this._actions) {\r\n this.createAction(args.name, this._actionConfigs[args.name]);\r\n args.handled = true\r\n }\r\n },\r\n getAction: function(actionName) {\r\n return this._actions[actionName]\r\n },\r\n setAria: function(name, value, $target) {\r\n var target = $target.get(0);\r\n var prefix = \"role\" !== name && \"id\" !== name ? \"aria-\" : \"\";\r\n if (target.setAttribute) {\r\n target.setAttribute(prefix + name, value)\r\n } else {\r\n $target.attr(prefix + name, value)\r\n }\r\n },\r\n _createComponent: function() {\r\n return this.component._createComponent.apply(this.component, arguments)\r\n },\r\n getController: function(name) {\r\n return this.component._controllers[name]\r\n },\r\n createAction: function(actionName, config) {\r\n if (isFunction(actionName)) {\r\n var action = this.component._createAction(actionName.bind(this), config);\r\n return function(e) {\r\n action({\r\n event: e\r\n })\r\n }\r\n } else {\r\n this._actions[actionName] = this.component._createActionByOption(actionName, config);\r\n this._actionConfigs[actionName] = config\r\n }\r\n },\r\n executeAction: function(actionName, options) {\r\n var action = this._actions[actionName];\r\n return action && action(options)\r\n },\r\n dispose: function() {\r\n var that = this;\r\n each(that.callbackNames() || [], (function() {\r\n that[this].empty()\r\n }))\r\n },\r\n addWidgetPrefix: function(className) {\r\n var componentName = this.component.NAME;\r\n return \"dx-\" + componentName.slice(2).toLowerCase() + (className ? \"-\" + className : \"\")\r\n },\r\n getWidgetContainerClass: function() {\r\n var containerName = this.component.NAME === WIDGET_WITH_LEGACY_CONTAINER_NAME ? null : \"container\";\r\n return this.addWidgetPrefix(containerName)\r\n }\r\n});\r\nvar Controller = ModuleItem;\r\nvar ViewController = Controller.inherit({\r\n getView: function(name) {\r\n return this.component._views[name]\r\n },\r\n getViews: function() {\r\n return this.component._views\r\n }\r\n});\r\nvar View = ModuleItem.inherit({\r\n _isReady: function() {\r\n return this.component.isReady()\r\n },\r\n _endUpdateCore: function() {\r\n this.callBase();\r\n if (!this._isReady() && this._requireReady) {\r\n this._requireRender = false;\r\n this.component._requireResize = false\r\n }\r\n if (this._requireRender) {\r\n this._requireRender = false;\r\n this.render(this._$parent)\r\n }\r\n },\r\n _invalidate: function(requireResize, requireReady) {\r\n this._requireRender = true;\r\n this.component._requireResize = hasWindow() && (this.component._requireResize || requireResize);\r\n this._requireReady = this._requireReady || requireReady\r\n },\r\n _renderCore: function() {},\r\n _resizeCore: function() {},\r\n _parentElement: function() {\r\n return this._$parent\r\n },\r\n ctor: function(component) {\r\n this.callBase(component);\r\n this.renderCompleted = Callbacks();\r\n this.resizeCompleted = Callbacks()\r\n },\r\n element: function() {\r\n return this._$element\r\n },\r\n getElementHeight: function() {\r\n var $element = this.element();\r\n if (!$element) {\r\n return 0\r\n }\r\n var marginTop = parseFloat($element.css(\"marginTop\")) || 0;\r\n var marginBottom = parseFloat($element.css(\"marginBottom\")) || 0;\r\n var offsetHeight = $element.get(0).offsetHeight;\r\n return offsetHeight + marginTop + marginBottom\r\n },\r\n isVisible: function() {\r\n return true\r\n },\r\n getTemplate: function(name) {\r\n return this.component._getTemplate(name)\r\n },\r\n render: function($parent, options) {\r\n var $element = this._$element;\r\n var isVisible = this.isVisible();\r\n if (!$element && !$parent) {\r\n return\r\n }\r\n this._requireReady = false;\r\n if (!$element) {\r\n $element = this._$element = $(\"
\").appendTo($parent);\r\n this._$parent = $parent\r\n }\r\n $element.toggleClass(\"dx-hidden\", !isVisible);\r\n if (isVisible) {\r\n this.component._optionCache = {};\r\n this._renderCore(options);\r\n this.component._optionCache = void 0;\r\n this.renderCompleted.fire(options)\r\n }\r\n },\r\n resize: function() {\r\n this.isResizing = true;\r\n this._resizeCore();\r\n this.resizeCompleted.fire();\r\n this.isResizing = false\r\n },\r\n focus: function() {\r\n eventsEngine.trigger(this.element(), \"focus\")\r\n }\r\n});\r\nvar MODULES_ORDER_MAX_INDEX = 1e6;\r\nvar processModules = function(that, componentClass) {\r\n var modules = componentClass.modules;\r\n var modulesOrder = componentClass.modulesOrder;\r\n var controllerTypes = componentClass.controllerTypes || {};\r\n var viewTypes = componentClass.viewTypes || {};\r\n if (!componentClass.controllerTypes) {\r\n if (modulesOrder) {\r\n modules.sort((function(module1, module2) {\r\n var orderIndex1 = inArray(module1.name, modulesOrder);\r\n var orderIndex2 = inArray(module2.name, modulesOrder);\r\n if (orderIndex1 < 0) {\r\n orderIndex1 = MODULES_ORDER_MAX_INDEX\r\n }\r\n if (orderIndex2 < 0) {\r\n orderIndex2 = MODULES_ORDER_MAX_INDEX\r\n }\r\n return orderIndex1 - orderIndex2\r\n }))\r\n }\r\n each(modules, (function() {\r\n var controllers = this.controllers;\r\n var moduleName = this.name;\r\n var views = this.views;\r\n controllers && each(controllers, (function(name, type) {\r\n if (controllerTypes[name]) {\r\n throw errors.Error(\"E1001\", moduleName, name)\r\n } else if (!(type && type.subclassOf && type.subclassOf(Controller))) {\r\n type.subclassOf(Controller);\r\n throw errors.Error(\"E1002\", moduleName, name)\r\n }\r\n controllerTypes[name] = type\r\n }));\r\n views && each(views, (function(name, type) {\r\n if (viewTypes[name]) {\r\n throw errors.Error(\"E1003\", moduleName, name)\r\n } else if (!(type && type.subclassOf && type.subclassOf(View))) {\r\n throw errors.Error(\"E1004\", moduleName, name)\r\n }\r\n viewTypes[name] = type\r\n }))\r\n }));\r\n each(modules, (function() {\r\n var extenders = this.extenders;\r\n if (extenders) {\r\n extenders.controllers && each(extenders.controllers, (function(name, extender) {\r\n if (controllerTypes[name]) {\r\n controllerTypes[name] = controllerTypes[name].inherit(extender)\r\n }\r\n }));\r\n extenders.views && each(extenders.views, (function(name, extender) {\r\n if (viewTypes[name]) {\r\n viewTypes[name] = viewTypes[name].inherit(extender)\r\n }\r\n }))\r\n }\r\n }));\r\n componentClass.controllerTypes = controllerTypes;\r\n componentClass.viewTypes = viewTypes\r\n }\r\n var createModuleItems = function(moduleTypes) {\r\n var moduleItems = {};\r\n each(moduleTypes, (function(name, moduleType) {\r\n var moduleItem = new moduleType(that);\r\n moduleItem.name = name;\r\n ! function(that, name, moduleItem) {\r\n var publicMethods = moduleItem.publicMethods();\r\n if (publicMethods) {\r\n each(publicMethods, (function(index, methodName) {\r\n if (moduleItem[methodName]) {\r\n if (!that[methodName]) {\r\n that[methodName] = function() {\r\n return moduleItem[methodName].apply(moduleItem, arguments)\r\n }\r\n } else {\r\n throw errors.Error(\"E1005\", methodName)\r\n }\r\n } else {\r\n throw errors.Error(\"E1006\", name, methodName)\r\n }\r\n }))\r\n }\r\n }(that, name, moduleItem);\r\n moduleItems[name] = moduleItem\r\n }));\r\n return moduleItems\r\n };\r\n that._controllers = createModuleItems(controllerTypes);\r\n that._views = createModuleItems(viewTypes)\r\n};\r\nvar callModuleItemsMethod = function(that, methodName, args) {\r\n args = args || [];\r\n if (that._controllers) {\r\n each(that._controllers, (function() {\r\n this[methodName] && this[methodName].apply(this, args)\r\n }))\r\n }\r\n if (that._views) {\r\n each(that._views, (function() {\r\n this[methodName] && this[methodName].apply(this, args)\r\n }))\r\n }\r\n};\r\nexport default {\r\n modules: [],\r\n View: View,\r\n ViewController: ViewController,\r\n Controller: Controller,\r\n registerModule: function(name, module) {\r\n var modules = this.modules;\r\n for (var i = 0; i < modules.length; i++) {\r\n if (modules[i].name === name) {\r\n return\r\n }\r\n }\r\n module.name = name;\r\n modules.push(module);\r\n delete this.controllerTypes;\r\n delete this.viewTypes\r\n },\r\n registerModulesOrder: function(moduleNames) {\r\n this.modulesOrder = moduleNames\r\n },\r\n unregisterModule: function(name) {\r\n this.modules = grep(this.modules, (function(module) {\r\n return module.name !== name\r\n }));\r\n delete this.controllerTypes;\r\n delete this.viewTypes\r\n },\r\n processModules: processModules,\r\n callModuleItemsMethod: callModuleItemsMethod\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.core.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 gridCoreUtils from \"../grid_core/ui.grid_core.utils\";\r\nimport modules from \"../grid_core/ui.grid_core.modules\";\r\nexport default _extends({}, modules, gridCoreUtils, {\r\n modules: []\r\n});\r\n","/**\r\n * DevExtreme (esm/events/double_click.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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/grid_core/ui.grid_core.column_state_mixin.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../core/utils/position\";\r\nvar COLUMN_INDICATORS_CLASS = \"dx-column-indicators\";\r\nvar GROUP_PANEL_ITEM_CLASS = \"dx-group-panel-item\";\r\nexport default {\r\n _applyColumnState: function(options) {\r\n var _that$component;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var columnAlignment = this._getColumnAlignment(options.column.alignment, rtlEnabled);\r\n var parameters = extend(true, {\r\n columnAlignment: columnAlignment\r\n }, options);\r\n var isGroupPanelItem = parameters.rootElement.hasClass(GROUP_PANEL_ITEM_CLASS);\r\n var $indicatorsContainer = this._createIndicatorContainer(parameters, isGroupPanelItem);\r\n var $span = $(\"\").addClass(this._getIndicatorClassName(options.name));\r\n var columnsController = null === (_that$component = this.component) || void 0 === _that$component ? void 0 : _that$component.getController(\"columns\");\r\n var indicatorAlignment = (null === columnsController || void 0 === columnsController ? void 0 : columnsController.getHeaderContentAlignment(columnAlignment)) || columnAlignment;\r\n parameters.container = $indicatorsContainer;\r\n parameters.indicator = $span;\r\n this._renderIndicator(parameters);\r\n $indicatorsContainer[(isGroupPanelItem || !options.showColumnLines) && \"left\" === indicatorAlignment ? \"appendTo\" : \"prependTo\"](options.rootElement);\r\n return $span\r\n },\r\n _getIndicatorClassName: noop,\r\n _getColumnAlignment: function(alignment, rtlEnabled) {\r\n rtlEnabled = rtlEnabled || this.option(\"rtlEnabled\");\r\n return alignment && \"center\" !== alignment ? alignment : getDefaultAlignment(rtlEnabled)\r\n },\r\n _createIndicatorContainer: function(options, ignoreIndicatorAlignment) {\r\n var $indicatorsContainer = this._getIndicatorContainer(options.rootElement);\r\n var indicatorAlignment = \"left\" === options.columnAlignment ? \"right\" : \"left\";\r\n if (!$indicatorsContainer.length) {\r\n $indicatorsContainer = $(\"
\").addClass(COLUMN_INDICATORS_CLASS)\r\n }\r\n this.setAria(\"role\", \"presentation\", $indicatorsContainer);\r\n return $indicatorsContainer.css(\"float\", options.showColumnLines && !ignoreIndicatorAlignment ? indicatorAlignment : null)\r\n },\r\n _getIndicatorContainer: function($cell) {\r\n return $cell && $cell.find(\".\" + COLUMN_INDICATORS_CLASS)\r\n },\r\n _getIndicatorElements: function($cell) {\r\n var $indicatorContainer = this._getIndicatorContainer($cell);\r\n return $indicatorContainer && $indicatorContainer.children()\r\n },\r\n _renderIndicator: function(options) {\r\n var $container = options.container;\r\n var $indicator = options.indicator;\r\n $container && $indicator && $container.append($indicator)\r\n },\r\n _updateIndicators: function(indicatorName) {\r\n var columns = this.getColumns();\r\n var $cells = this.getColumnElements();\r\n var $cell;\r\n if (!$cells || columns.length !== $cells.length) {\r\n return\r\n }\r\n for (var i = 0; i < columns.length; i++) {\r\n $cell = $cells.eq(i);\r\n this._updateIndicator($cell, columns[i], indicatorName);\r\n var rowOptions = $cell.parent().data(\"options\");\r\n if (rowOptions && rowOptions.cells) {\r\n rowOptions.cells[$cell.index()].column = columns[i]\r\n }\r\n }\r\n },\r\n _updateIndicator: function($cell, column, indicatorName) {\r\n if (!column.command) {\r\n return this._applyColumnState({\r\n name: indicatorName,\r\n rootElement: $cell,\r\n column: column,\r\n showColumnLines: this.option(\"showColumnLines\")\r\n })\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.columns_view.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n data as elementData\r\n} from \"../../core/element_data\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n name as dblclickEvent\r\n} from \"../../events/double_click\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n setWidth\r\n} from \"../../core/utils/style\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n isRenderer,\r\n isFunction,\r\n isString,\r\n isDefined,\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getBoundingRect,\r\n getDefaultAlignment\r\n} from \"../../core/utils/position\";\r\nimport * as iteratorUtils from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport columnStateMixin from \"./ui.grid_core.column_state_mixin\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar SCROLL_CONTAINER_CLASS = \"scroll-container\";\r\nvar GROUP_SPACE_CLASS = \"group-space\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar TABLE_CLASS = \"table\";\r\nvar TABLE_FIXED_CLASS = \"table-fixed\";\r\nvar CONTENT_FIXED_CLASS = \"content-fixed\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nvar FILTER_ROW_CLASS = \"filter-row\";\r\nvar CELL_UPDATED_ANIMATION_CLASS = \"cell-updated-animation\";\r\nvar HIDDEN_COLUMNS_WIDTH = \"0.0001px\";\r\nvar CELL_HINT_VISIBLE = \"dxCellHintVisible\";\r\nvar FORM_FIELD_ITEM_CONTENT_CLASS = \"dx-field-item-content\";\r\nvar appendElementTemplate = {\r\n render: function(options) {\r\n options.container.append(options.content)\r\n }\r\n};\r\nvar subscribeToRowEvents = function(that, $table) {\r\n var touchTarget;\r\n var touchCurrentTarget;\r\n var timeoutId;\r\n\r\n function clearTouchTargets(timeout) {\r\n return setTimeout((function() {\r\n touchTarget = touchCurrentTarget = null\r\n }), timeout)\r\n }\r\n eventsEngine.on($table, \"touchstart touchend\", \".dx-row\", (function(e) {\r\n clearTimeout(timeoutId);\r\n if (\"touchstart\" === e.type) {\r\n touchTarget = e.target;\r\n touchCurrentTarget = e.currentTarget;\r\n timeoutId = clearTouchTargets(1e3)\r\n } else {\r\n timeoutId = clearTouchTargets()\r\n }\r\n }));\r\n eventsEngine.on($table, [clickEventName, dblclickEvent, pointerEvents.down].join(\" \"), \".dx-row\", {\r\n useNative: that._isNativeClick()\r\n }, that.createAction((function(e) {\r\n var event = e.event;\r\n if (touchTarget) {\r\n event.target = touchTarget;\r\n event.currentTarget = touchCurrentTarget\r\n }\r\n if (!$(event.target).closest(\"a\").length) {\r\n e.rowIndex = that.getRowIndex(event.currentTarget);\r\n if (e.rowIndex >= 0) {\r\n e.rowElement = getPublicElement($(event.currentTarget));\r\n e.columns = that.getColumns();\r\n if (event.type === pointerEvents.down) {\r\n that._rowPointerDown(e)\r\n } else if (event.type === clickEventName) {\r\n that._rowClick(e)\r\n } else {\r\n that._rowDblClick(e)\r\n }\r\n }\r\n }\r\n })))\r\n};\r\nvar getWidthStyle = function(width) {\r\n if (\"auto\" === width) {\r\n return \"\"\r\n }\r\n return isNumeric(width) ? width + \"px\" : width\r\n};\r\nvar setCellWidth = function(cell, column, width) {\r\n cell.style.width = cell.style.maxWidth = \"auto\" === column.width ? \"\" : width\r\n};\r\nvar copyAttributes = function(element, newElement) {\r\n if (!element || !newElement) {\r\n return\r\n }\r\n var oldAttributes = element.attributes;\r\n var newAttributes = newElement.attributes;\r\n var i;\r\n for (i = 0; i < oldAttributes.length; i++) {\r\n var name = oldAttributes[i].nodeName;\r\n if (!newElement.hasAttribute(name)) {\r\n element.removeAttribute(name)\r\n }\r\n }\r\n for (i = 0; i < newAttributes.length; i++) {\r\n element.setAttribute(newAttributes[i].nodeName, newAttributes[i].nodeValue)\r\n }\r\n};\r\nexport var ColumnsView = modules.View.inherit(columnStateMixin).inherit({\r\n _createScrollableOptions: function() {\r\n var scrollingOptions = this.option(\"scrolling\");\r\n var useNativeScrolling = this.option(\"scrolling.useNative\");\r\n var options = extend({}, scrollingOptions, {\r\n direction: \"both\",\r\n bounceEnabled: false,\r\n useKeyboard: false\r\n });\r\n if (void 0 === useNativeScrolling) {\r\n useNativeScrolling = true\r\n }\r\n if (\"auto\" === useNativeScrolling) {\r\n delete options.useNative;\r\n delete options.useSimulatedScrollbar\r\n } else {\r\n options.useNative = !!useNativeScrolling;\r\n options.useSimulatedScrollbar = !useNativeScrolling\r\n }\r\n return options\r\n },\r\n _updateCell: function($cell, parameters) {\r\n if (parameters.rowType) {\r\n this._cellPrepared($cell, parameters)\r\n }\r\n },\r\n _createCell: function(options) {\r\n var column = options.column;\r\n var alignment = column.alignment || getDefaultAlignment(this.option(\"rtlEnabled\"));\r\n var cell = domAdapter.createElement(\"td\");\r\n cell.style.textAlign = alignment;\r\n var $cell = $(cell);\r\n if (\"data\" === options.rowType && column.headerId && !column.type) {\r\n if (this.component.option(\"showColumnHeaders\")) {\r\n this.setAria(\"describedby\", column.headerId, $cell)\r\n }\r\n }\r\n if (column.cssClass) {\r\n $cell.addClass(column.cssClass)\r\n }\r\n if (\"expand\" === column.command) {\r\n $cell.addClass(column.cssClass);\r\n $cell.addClass(this.addWidgetPrefix(GROUP_SPACE_CLASS))\r\n }\r\n if (column.colspan > 1) {\r\n $cell.attr(\"colSpan\", column.colspan)\r\n } else if (!column.isBand && \"auto\" !== column.visibleWidth && this.option(\"columnAutoWidth\")) {\r\n if (column.width || column.minWidth) {\r\n cell.style.minWidth = getWidthStyle(column.minWidth || column.width)\r\n }\r\n if (column.width) {\r\n setCellWidth(cell, column, getWidthStyle(column.width))\r\n }\r\n }\r\n return $cell\r\n },\r\n _createRow: function(rowObject) {\r\n var $element = $(\"\").addClass(ROW_CLASS);\r\n this.setAria(\"role\", \"row\", $element);\r\n return $element\r\n },\r\n _isAltRow: function(row) {\r\n return row && row.dataIndex % 2 === 1\r\n },\r\n _createTable: function(columns, isAppend) {\r\n var that = this;\r\n var $table = $(\"\").addClass(that.addWidgetPrefix(TABLE_CLASS)).addClass(that.addWidgetPrefix(TABLE_FIXED_CLASS));\r\n if (columns && !isAppend) {\r\n $table.append(that._createColGroup(columns));\r\n if (browser.safari) {\r\n $table.append($(\"\").append(\"\"))\r\n }\r\n that.setAria(\"role\", \"presentation\", $table)\r\n } else {\r\n that.setAria(\"hidden\", true, $table)\r\n }\r\n this.setAria(\"role\", \"presentation\", $(\"\").appendTo($table));\r\n if (isAppend) {\r\n return $table\r\n }\r\n if (browser.mozilla) {\r\n eventsEngine.on($table, \"mousedown\", \"td\", (function(e) {\r\n if (e.ctrlKey) {\r\n e.preventDefault()\r\n }\r\n }))\r\n }\r\n if (that.option(\"cellHintEnabled\")) {\r\n eventsEngine.on($table, \"mousemove\", \".dx-row > td\", this.createAction((function(args) {\r\n var e = args.event;\r\n var $element = $(e.target);\r\n var $cell = $(e.currentTarget);\r\n var $row = $cell.parent();\r\n var isDataRow = $row.hasClass(\"dx-data-row\");\r\n var isHeaderRow = $row.hasClass(\"dx-header-row\");\r\n var isGroupRow = $row.hasClass(GROUP_ROW_CLASS);\r\n var isMasterDetailRow = $row.hasClass(DETAIL_ROW_CLASS);\r\n var isFilterRow = $row.hasClass(that.addWidgetPrefix(FILTER_ROW_CLASS));\r\n var visibleColumns = that._columnsController.getVisibleColumns();\r\n var rowOptions = $row.data(\"options\");\r\n var columnIndex = $cell.index();\r\n var cellOptions = rowOptions && rowOptions.cells && rowOptions.cells[columnIndex];\r\n var column = cellOptions ? cellOptions.column : visibleColumns[columnIndex];\r\n var msieCorrection = browser.msie ? 1 : 0;\r\n if (!isMasterDetailRow && !isFilterRow && (!isDataRow || isDataRow && column && !column.cellTemplate) && (!isHeaderRow || isHeaderRow && column && !column.headerCellTemplate) && (!isGroupRow || isGroupRow && column && (void 0 === column.groupIndex || !column.groupCellTemplate))) {\r\n if ($element.data(CELL_HINT_VISIBLE)) {\r\n $element.removeAttr(\"title\");\r\n $element.data(CELL_HINT_VISIBLE, false)\r\n }\r\n var difference = $element[0].scrollWidth - $element[0].clientWidth - msieCorrection;\r\n if (difference > 0 && !isDefined($element.attr(\"title\"))) {\r\n $element.attr(\"title\", $element.text());\r\n $element.data(CELL_HINT_VISIBLE, true)\r\n }\r\n }\r\n })))\r\n }\r\n var getOptions = function(event) {\r\n var $cell = $(event.currentTarget);\r\n var $fieldItemContent = $(event.target).closest(\".\" + FORM_FIELD_ITEM_CONTENT_CLASS);\r\n var rowOptions = $cell.parent().data(\"options\");\r\n var options = rowOptions && rowOptions.cells && rowOptions.cells[$cell.index()];\r\n if (!$cell.closest(\"table\").is(event.delegateTarget)) {\r\n return\r\n }\r\n var resultOptions = extend({}, options, {\r\n cellElement: getPublicElement($cell),\r\n event: event,\r\n eventType: event.type\r\n });\r\n if ($fieldItemContent.length) {\r\n var formItemOptions = $fieldItemContent.data(\"dx-form-item\");\r\n if (formItemOptions.column) {\r\n resultOptions.column = formItemOptions.column;\r\n resultOptions.columnIndex = that._columnsController.getVisibleIndex(resultOptions.column.index)\r\n }\r\n }\r\n return resultOptions\r\n };\r\n eventsEngine.on($table, \"mouseover\", \".dx-row > td\", (function(e) {\r\n var options = getOptions(e);\r\n options && that.executeAction(\"onCellHoverChanged\", options)\r\n }));\r\n eventsEngine.on($table, \"mouseout\", \".dx-row > td\", (function(e) {\r\n var options = getOptions(e);\r\n options && that.executeAction(\"onCellHoverChanged\", options)\r\n }));\r\n eventsEngine.on($table, clickEventName, \".dx-row > td\", (function(e) {\r\n var options = getOptions(e);\r\n options && that.executeAction(\"onCellClick\", options)\r\n }));\r\n eventsEngine.on($table, dblclickEvent, \".dx-row > td\", (function(e) {\r\n var options = getOptions(e);\r\n options && that.executeAction(\"onCellDblClick\", options)\r\n }));\r\n subscribeToRowEvents(that, $table);\r\n return $table\r\n },\r\n _isNativeClick: noop,\r\n _rowPointerDown: noop,\r\n _rowClick: noop,\r\n _rowDblClick: noop,\r\n _createColGroup: function(columns) {\r\n var colgroupElement = $(\"\");\r\n for (var i = 0; i < columns.length; i++) {\r\n var colspan = columns[i].colspan || 1;\r\n for (var j = 0; j < colspan; j++) {\r\n colgroupElement.append(this._createCol(columns[i]))\r\n }\r\n }\r\n return colgroupElement\r\n },\r\n _createCol: function(column) {\r\n var width = column.visibleWidth || column.width;\r\n if (\"adaptiveHidden\" === width) {\r\n width = HIDDEN_COLUMNS_WIDTH\r\n }\r\n var col = $(\"\");\r\n setWidth(col, width);\r\n return col\r\n },\r\n renderDelayedTemplates: function() {\r\n var delayedTemplates = this._delayedTemplates;\r\n var syncTemplates = delayedTemplates.filter(template => !template.async);\r\n var asyncTemplates = delayedTemplates.filter(template => template.async);\r\n this._delayedTemplates = [];\r\n this._renderDelayedTemplatesCore(syncTemplates);\r\n this._renderDelayedTemplatesCoreAsync(asyncTemplates)\r\n },\r\n _renderDelayedTemplatesCoreAsync: function(templates) {\r\n var that = this;\r\n if (templates.length) {\r\n getWindow().setTimeout((function() {\r\n that._renderDelayedTemplatesCore(templates, true)\r\n }))\r\n }\r\n },\r\n _renderDelayedTemplatesCore: function(templates, isAsync) {\r\n var date = new Date;\r\n while (templates.length) {\r\n var templateParameters = templates.shift();\r\n var options = templateParameters.options;\r\n var doc = domAdapter.getDocument();\r\n if (!isAsync || $(options.container).closest(doc).length) {\r\n templateParameters.template.render(options)\r\n }\r\n if (isAsync && new Date - date > 30) {\r\n this._renderDelayedTemplatesCoreAsync(templates);\r\n break\r\n }\r\n }\r\n if (!templates.length && this._delayedTemplates.length) {\r\n this.renderDelayedTemplates()\r\n }\r\n },\r\n _processTemplate: function(template) {\r\n var renderingTemplate;\r\n if (template && template.render && !isRenderer(template)) {\r\n renderingTemplate = {\r\n allowRenderToDetachedContainer: template.allowRenderToDetachedContainer,\r\n render: function(options) {\r\n template.render(options.container, options.model);\r\n options.deferred && options.deferred.resolve()\r\n }\r\n }\r\n } else if (isFunction(template)) {\r\n renderingTemplate = {\r\n render: function(options) {\r\n var renderedTemplate = template(getPublicElement(options.container), options.model);\r\n if (renderedTemplate && (renderedTemplate.nodeType || isRenderer(renderedTemplate))) {\r\n options.container.append(renderedTemplate)\r\n }\r\n options.deferred && options.deferred.resolve()\r\n }\r\n }\r\n } else {\r\n var templateID = isString(template) ? template : $(template).attr(\"id\");\r\n if (!templateID) {\r\n renderingTemplate = this.getTemplate(template)\r\n } else {\r\n if (!this._templatesCache[templateID]) {\r\n this._templatesCache[templateID] = this.getTemplate(template)\r\n }\r\n renderingTemplate = this._templatesCache[templateID]\r\n }\r\n }\r\n return renderingTemplate\r\n },\r\n renderTemplate: function(container, template, options, allowRenderToDetachedContainer) {\r\n var renderingTemplate = this._processTemplate(template, options);\r\n var column = options.column;\r\n var isDataRow = \"data\" === options.rowType;\r\n var templateDeferred = new Deferred;\r\n var templateOptions = {\r\n container: container,\r\n model: options,\r\n deferred: templateDeferred,\r\n onRendered: () => {\r\n templateDeferred.resolve()\r\n }\r\n };\r\n if (renderingTemplate) {\r\n options.component = this.component;\r\n var async = column && (column.renderAsync && isDataRow || this.option(\"renderAsync\") && (false !== column.renderAsync && (column.command || column.showEditorAlways) && isDataRow || \"filter\" === options.rowType));\r\n if ((renderingTemplate.allowRenderToDetachedContainer || allowRenderToDetachedContainer) && !async) {\r\n renderingTemplate.render(templateOptions)\r\n } else {\r\n this._delayedTemplates.push({\r\n template: renderingTemplate,\r\n options: templateOptions,\r\n async: async\r\n })\r\n }\r\n } else {\r\n templateDeferred.reject()\r\n }\r\n return templateDeferred.promise()\r\n },\r\n _getBodies: function(tableElement) {\r\n return $(tableElement).children(\"tbody\").not(\".dx-header\").not(\".dx-footer\")\r\n },\r\n _wrapRowIfNeed: function($table, $row) {\r\n var $tBodies = this.option(\"rowTemplate\") && this._getBodies(this._tableElement || $table);\r\n if ($tBodies && $tBodies.filter(\".\" + ROW_CLASS).length) {\r\n var $tbody = $(\"\").addClass($row.attr(\"class\"));\r\n this.setAria(\"role\", \"presentation\", $tbody);\r\n return $tbody.append($row)\r\n }\r\n return $row\r\n },\r\n _appendRow: function($table, $row, appendTemplate) {\r\n appendTemplate = appendTemplate || appendElementTemplate;\r\n appendTemplate.render({\r\n content: $row,\r\n container: $table\r\n })\r\n },\r\n _resizeCore: function() {\r\n var scrollLeft = this._scrollLeft;\r\n if (scrollLeft >= 0) {\r\n this._scrollLeft = 0;\r\n this.scrollTo({\r\n left: scrollLeft\r\n })\r\n }\r\n },\r\n _renderCore: function(e) {\r\n var $root = this.element().parent();\r\n if (!$root || $root.parent().length) {\r\n this.renderDelayedTemplates(e)\r\n }\r\n },\r\n _renderTable: function(options) {\r\n options = options || {};\r\n options.columns = this._columnsController.getVisibleColumns();\r\n var changeType = options.change && options.change.changeType;\r\n var $table = this._createTable(options.columns, \"append\" === changeType || \"prepend\" === changeType || \"update\" === changeType);\r\n this._renderRows($table, options);\r\n return $table\r\n },\r\n _renderRows: function($table, options) {\r\n var rows = this._getRows(options.change);\r\n var columnIndices = options.change && options.change.columnIndices || [];\r\n var changeTypes = options.change && options.change.changeTypes || [];\r\n for (var i = 0; i < rows.length; i++) {\r\n this._renderRow($table, extend({\r\n row: rows[i],\r\n columnIndices: columnIndices[i],\r\n changeType: changeTypes[i]\r\n }, options))\r\n }\r\n },\r\n _renderRow: function($table, options) {\r\n if (!options.columnIndices) {\r\n options.row.cells = []\r\n }\r\n var $row = this._createRow(options.row);\r\n var $wrappedRow = this._wrapRowIfNeed($table, $row);\r\n if (\"remove\" !== options.changeType) {\r\n this._renderCells($row, options)\r\n }\r\n this._appendRow($table, $wrappedRow);\r\n var rowOptions = extend({\r\n columns: options.columns\r\n }, options.row);\r\n this._addWatchMethod(rowOptions, options.row);\r\n this._rowPrepared($wrappedRow, rowOptions, options.row)\r\n },\r\n _needRenderCell: function(columnIndex, columnIndices) {\r\n return !columnIndices || columnIndices.indexOf(columnIndex) >= 0\r\n },\r\n _renderCells: function($row, options) {\r\n var columnIndex = 0;\r\n var row = options.row;\r\n var columns = options.columns;\r\n for (var i = 0; i < columns.length; i++) {\r\n if (this._needRenderCell(i, options.columnIndices)) {\r\n this._renderCell($row, extend({\r\n column: columns[i],\r\n columnIndex: columnIndex,\r\n value: row.values && row.values[columnIndex],\r\n oldValue: row.oldValues && row.oldValues[columnIndex]\r\n }, options))\r\n }\r\n if (columns[i].colspan > 1) {\r\n columnIndex += columns[i].colspan\r\n } else {\r\n columnIndex++\r\n }\r\n }\r\n },\r\n _updateCells: function($rowElement, $newRowElement, columnIndices) {\r\n var $cells = $rowElement.children();\r\n var $newCells = $newRowElement.children();\r\n var highlightChanges = this.option(\"highlightChanges\");\r\n var cellUpdatedClass = this.addWidgetPrefix(CELL_UPDATED_ANIMATION_CLASS);\r\n columnIndices.forEach((function(columnIndex, index) {\r\n var $cell = $cells.eq(columnIndex);\r\n var $newCell = $newCells.eq(index);\r\n $cell.replaceWith($newCell);\r\n if (highlightChanges && !$newCell.hasClass(\"dx-command-expand\")) {\r\n $newCell.addClass(cellUpdatedClass)\r\n }\r\n }));\r\n copyAttributes($rowElement.get(0), $newRowElement.get(0))\r\n },\r\n _setCellAriaAttributes: function($cell, cellOptions) {\r\n if (\"freeSpace\" !== cellOptions.rowType) {\r\n this.setAria(\"selected\", false, $cell);\r\n this.setAria(\"role\", \"gridcell\", $cell);\r\n var columnIndexOffset = this._columnsController.getColumnIndexOffset();\r\n var ariaColIndex = cellOptions.columnIndex + columnIndexOffset + 1;\r\n this.setAria(\"colindex\", ariaColIndex, $cell)\r\n }\r\n },\r\n _renderCell: function($row, options) {\r\n var cellOptions = this._getCellOptions(options);\r\n if (options.columnIndices) {\r\n if (options.row.cells) {\r\n options.row.cells[cellOptions.columnIndex] = cellOptions\r\n }\r\n } else {\r\n options.row.cells.push(cellOptions)\r\n }\r\n var $cell = this._createCell(cellOptions);\r\n this._setCellAriaAttributes($cell, cellOptions);\r\n this._renderCellContent($cell, cellOptions);\r\n $row.get(0).appendChild($cell.get(0));\r\n return $cell\r\n },\r\n _renderCellContent: function($cell, options) {\r\n var template = this._getCellTemplate(options);\r\n when(!template || this.renderTemplate($cell, template, options)).done(() => {\r\n this._updateCell($cell, options)\r\n })\r\n },\r\n _getCellTemplate: function() {},\r\n _getRows: function() {\r\n return []\r\n },\r\n _getCellOptions: function(options) {\r\n var cellOptions = {\r\n column: options.column,\r\n columnIndex: options.columnIndex,\r\n rowType: options.row.rowType,\r\n isAltRow: this._isAltRow(options.row)\r\n };\r\n this._addWatchMethod(cellOptions);\r\n return cellOptions\r\n },\r\n _addWatchMethod: function(options, source) {\r\n if (!this.option(\"repaintChangesOnly\")) {\r\n return\r\n }\r\n var watchers = [];\r\n source = source || options;\r\n source.watch = source.watch || function(getter, updateFunc) {\r\n var oldValue = getter(source.data);\r\n var watcher = function(row) {\r\n var newValue = getter(source.data);\r\n if (JSON.stringify(oldValue) !== JSON.stringify(newValue)) {\r\n if (row) {\r\n updateFunc(newValue, row)\r\n }\r\n oldValue = newValue\r\n }\r\n };\r\n watchers.push(watcher);\r\n return function() {\r\n var index = watchers.indexOf(watcher);\r\n if (index >= 0) {\r\n watchers.splice(index, 1)\r\n }\r\n }\r\n };\r\n source.update = source.update || function(row) {\r\n if (row) {\r\n this.data = options.data = row.data;\r\n this.rowIndex = options.rowIndex = row.rowIndex;\r\n this.dataIndex = options.dataIndex = row.dataIndex;\r\n this.isExpanded = options.isExpanded = row.isExpanded;\r\n if (options.row) {\r\n options.row = row\r\n }\r\n }\r\n watchers.forEach((function(watcher) {\r\n watcher(row)\r\n }))\r\n };\r\n if (source !== options) {\r\n options.watch = source.watch.bind(source)\r\n }\r\n return options\r\n },\r\n _cellPrepared: function(cell, options) {\r\n options.cellElement = getPublicElement($(cell));\r\n this.executeAction(\"onCellPrepared\", options)\r\n },\r\n _rowPrepared: function($row, options) {\r\n elementData($row.get(0), \"options\", options);\r\n options.rowElement = getPublicElement($row);\r\n this.executeAction(\"onRowPrepared\", options)\r\n },\r\n _columnOptionChanged: function(e) {\r\n var optionNames = e.optionNames;\r\n if (gridCoreUtils.checkChanges(optionNames, [\"width\", \"visibleWidth\"])) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var widths = iteratorUtils.map(visibleColumns, (function(column) {\r\n var width = column.visibleWidth || column.width;\r\n return isDefined(width) ? width : \"auto\"\r\n }));\r\n this.setColumnWidths({\r\n widths: widths,\r\n optionNames: optionNames\r\n });\r\n return\r\n }\r\n if (!this._requireReady) {\r\n this.render()\r\n }\r\n },\r\n getCellIndex: function($cell) {\r\n var cellIndex = $cell.length ? $cell[0].cellIndex : -1;\r\n return cellIndex\r\n },\r\n getTableElements: function() {\r\n return this._tableElement || $()\r\n },\r\n getTableElement: function() {\r\n return this._tableElement\r\n },\r\n setTableElement: function(tableElement) {\r\n this._tableElement = tableElement\r\n },\r\n optionChanged: function(args) {\r\n this.callBase(args);\r\n switch (args.name) {\r\n case \"cellHintEnabled\":\r\n case \"onCellPrepared\":\r\n case \"onRowPrepared\":\r\n case \"onCellHoverChanged\":\r\n this._invalidate(true, true);\r\n args.handled = true\r\n }\r\n },\r\n init: function() {\r\n var that = this;\r\n that._scrollLeft = -1;\r\n that._columnsController = that.getController(\"columns\");\r\n that._dataController = that.getController(\"data\");\r\n that._delayedTemplates = [];\r\n that._templatesCache = {};\r\n that.createAction(\"onCellClick\");\r\n that.createAction(\"onRowClick\");\r\n that.createAction(\"onCellDblClick\");\r\n that.createAction(\"onRowDblClick\");\r\n that.createAction(\"onCellHoverChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onCellPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n });\r\n that.createAction(\"onRowPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\",\r\n afterExecute: function(e) {\r\n that._afterRowPrepared(e)\r\n }\r\n });\r\n that._columnsController.columnsChanged.add(that._columnOptionChanged.bind(that));\r\n that._dataController && that._dataController.changed.add(that._handleDataChanged.bind(that))\r\n },\r\n _afterRowPrepared: noop,\r\n _handleDataChanged: function() {},\r\n callbackNames: function() {\r\n return [\"scrollChanged\"]\r\n },\r\n _updateScrollLeftPosition: function() {\r\n var scrollLeft = this._scrollLeft;\r\n if (scrollLeft >= 0) {\r\n this._scrollLeft = 0;\r\n this.scrollTo({\r\n left: scrollLeft\r\n })\r\n }\r\n },\r\n scrollTo: function(pos) {\r\n var $element = this.element();\r\n var $scrollContainer = $element && $element.children(\".\" + this.addWidgetPrefix(SCROLL_CONTAINER_CLASS)).not(\".\" + this.addWidgetPrefix(CONTENT_FIXED_CLASS));\r\n if (isDefined(pos) && isDefined(pos.left) && this._scrollLeft !== pos.left) {\r\n this._scrollLeft = pos.left;\r\n $scrollContainer && $scrollContainer.scrollLeft(pos.left)\r\n }\r\n },\r\n _wrapTableInScrollContainer: function($table) {\r\n var $scrollContainer = $(\"
\");\r\n eventsEngine.on($scrollContainer, \"scroll\", () => {\r\n var scrollLeft = $scrollContainer.scrollLeft();\r\n if (scrollLeft !== this._scrollLeft) {\r\n this.scrollChanged.fire({\r\n left: scrollLeft\r\n }, this.name)\r\n }\r\n });\r\n $scrollContainer.addClass(this.addWidgetPrefix(CONTENT_CLASS)).addClass(this.addWidgetPrefix(SCROLL_CONTAINER_CLASS)).append($table).appendTo(this.element());\r\n this.setAria(\"role\", \"presentation\", $scrollContainer);\r\n return $scrollContainer\r\n },\r\n _updateContent: function($newTableElement) {\r\n this.setTableElement($newTableElement);\r\n this._wrapTableInScrollContainer($newTableElement)\r\n },\r\n _findContentElement: noop,\r\n _getWidths: function($cellElements) {\r\n var result = [];\r\n var width;\r\n if ($cellElements) {\r\n iteratorUtils.each($cellElements, (function(index, item) {\r\n width = item.offsetWidth;\r\n if (item.getBoundingClientRect) {\r\n var clientRect = getBoundingRect(item);\r\n if (clientRect.width > width - 1) {\r\n width = clientRect.width\r\n }\r\n }\r\n result.push(width)\r\n }))\r\n }\r\n return result\r\n },\r\n getColumnWidths: function($tableElement) {\r\n var result = [];\r\n var $rows;\r\n var $cells;\r\n (this.option(\"forceApplyBindings\") || noop)();\r\n $tableElement = $tableElement || this.getTableElement();\r\n if ($tableElement) {\r\n $rows = $tableElement.children(\"tbody:not(.dx-header)\").children();\r\n for (var i = 0; i < $rows.length; i++) {\r\n var $row = $rows.eq(i);\r\n var isRowVisible = \"none\" !== $row.get(0).style.display && !$row.hasClass(\"dx-state-invisible\");\r\n if (!$row.is(\".\" + GROUP_ROW_CLASS) && !$row.is(\".\" + DETAIL_ROW_CLASS) && isRowVisible) {\r\n $cells = $row.children(\"td\");\r\n break\r\n }\r\n }\r\n result = this._getWidths($cells)\r\n }\r\n return result\r\n },\r\n getVisibleColumnIndex: function(columnIndex, rowIndex) {\r\n return columnIndex\r\n },\r\n setColumnWidths: function(_ref) {\r\n var {\r\n widths: widths,\r\n $tableElement: $tableElement,\r\n columns: columns,\r\n fixed: fixed\r\n } = _ref;\r\n var $cols;\r\n var width;\r\n var minWidth;\r\n var columnIndex;\r\n var columnAutoWidth = this.option(\"columnAutoWidth\");\r\n $tableElement = $tableElement || this.getTableElement();\r\n if ($tableElement && $tableElement.length && widths) {\r\n columnIndex = 0;\r\n $cols = $tableElement.children(\"colgroup\").children(\"col\");\r\n setWidth($cols, \"auto\");\r\n columns = columns || this.getColumns(null, $tableElement);\r\n for (var i = 0; i < columns.length; i++) {\r\n if (columnAutoWidth && !fixed) {\r\n width = columns[i].width;\r\n if (width && !columns[i].command) {\r\n width = columns[i].visibleWidth || width;\r\n width = getWidthStyle(width);\r\n minWidth = getWidthStyle(columns[i].minWidth || width);\r\n var $rows = $rows || $tableElement.children().children(\".dx-row\").not(\".\" + GROUP_ROW_CLASS).not(\".\" + DETAIL_ROW_CLASS);\r\n for (var rowIndex = 0; rowIndex < $rows.length; rowIndex++) {\r\n var visibleIndex = this.getVisibleColumnIndex(i, rowIndex);\r\n var cell = $rows[rowIndex].cells[visibleIndex];\r\n if (cell) {\r\n setCellWidth(cell, columns[i], width);\r\n cell.style.minWidth = minWidth\r\n }\r\n }\r\n }\r\n }\r\n if (columns[i].colspan) {\r\n columnIndex += columns[i].colspan;\r\n continue\r\n }\r\n width = widths[columnIndex];\r\n if (\"adaptiveHidden\" === width) {\r\n width = HIDDEN_COLUMNS_WIDTH\r\n }\r\n if (\"number\" === typeof width) {\r\n width = width.toFixed(3) + \"px\"\r\n }\r\n setWidth($cols.eq(columnIndex), isDefined(width) ? width : \"auto\");\r\n columnIndex++\r\n }\r\n }\r\n },\r\n getCellElements: function(rowIndex) {\r\n return this._getCellElementsCore(rowIndex)\r\n },\r\n _getCellElementsCore: function(rowIndex) {\r\n var $row = this._getRowElements().eq(rowIndex);\r\n return $row.children()\r\n },\r\n _getCellElement: function(rowIndex, columnIdentifier) {\r\n var $cell;\r\n var $cells = this.getCellElements(rowIndex);\r\n var columnVisibleIndex = this._getVisibleColumnIndex($cells, rowIndex, columnIdentifier);\r\n if ($cells.length && columnVisibleIndex >= 0) {\r\n $cell = $cells.eq(columnVisibleIndex)\r\n }\r\n if ($cell && $cell.length) {\r\n return $cell\r\n }\r\n },\r\n _getRowElement: function(rowIndex) {\r\n var that = this;\r\n var $rowElement = $();\r\n var $tableElements = that.getTableElements();\r\n iteratorUtils.each($tableElements, (function(_, tableElement) {\r\n $rowElement = $rowElement.add(that._getRowElements($(tableElement)).eq(rowIndex))\r\n }));\r\n if ($rowElement.length) {\r\n return $rowElement\r\n }\r\n },\r\n getCellElement: function(rowIndex, columnIdentifier) {\r\n return getPublicElement(this._getCellElement(rowIndex, columnIdentifier))\r\n },\r\n getRowElement: function(rowIndex) {\r\n var $rows = this._getRowElement(rowIndex);\r\n var elements = [];\r\n if ($rows && !getPublicElement($rows).get) {\r\n for (var i = 0; i < $rows.length; i++) {\r\n elements.push($rows[i])\r\n }\r\n } else {\r\n elements = $rows\r\n }\r\n return elements\r\n },\r\n _getVisibleColumnIndex: function($cells, rowIndex, columnIdentifier) {\r\n if (isString(columnIdentifier)) {\r\n var columnIndex = this._columnsController.columnOption(columnIdentifier, \"index\");\r\n return this._columnsController.getVisibleIndex(columnIndex)\r\n }\r\n return columnIdentifier\r\n },\r\n getColumnElements: function() {},\r\n getColumns: function(rowIndex) {\r\n return this._columnsController.getVisibleColumns(rowIndex)\r\n },\r\n getCell: function(cellPosition, rows) {\r\n var $rows = rows || this._getRowElements();\r\n var $cells;\r\n if ($rows.length > 0 && cellPosition.rowIndex >= 0) {\r\n if (\"virtual\" !== this.option(\"scrolling.mode\")) {\r\n cellPosition.rowIndex = cellPosition.rowIndex < $rows.length ? cellPosition.rowIndex : $rows.length - 1\r\n }\r\n $cells = this.getCellElements(cellPosition.rowIndex);\r\n if ($cells && $cells.length > 0) {\r\n return $cells.eq($cells.length > cellPosition.columnIndex ? cellPosition.columnIndex : $cells.length - 1)\r\n }\r\n }\r\n },\r\n getRowsCount: function() {\r\n var tableElement = this.getTableElement();\r\n if (tableElement && 1 === tableElement.length) {\r\n return tableElement[0].rows.length\r\n }\r\n return 0\r\n },\r\n _getRowElementsCore: function(tableElement) {\r\n tableElement = tableElement || this.getTableElement();\r\n if (tableElement) {\r\n var tBodies = this.option(\"rowTemplate\") && tableElement.find(\"> tbody.\" + ROW_CLASS);\r\n return tBodies && tBodies.length ? tBodies : tableElement.find(\"> tbody > .\" + ROW_CLASS + \", > .\" + ROW_CLASS)\r\n }\r\n return $()\r\n },\r\n _getRowElements: function(tableElement) {\r\n return this._getRowElementsCore(tableElement)\r\n },\r\n getRowIndex: function($row) {\r\n return this._getRowElements().index($row)\r\n },\r\n getBoundingRect: function() {},\r\n getName: function() {},\r\n setScrollerSpacing: function(width) {\r\n var $element = this.element();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n $element && $element.css({\r\n paddingLeft: rtlEnabled ? width : \"\",\r\n paddingRight: !rtlEnabled ? width : \"\"\r\n })\r\n },\r\n isScrollbarVisible: function(isHorizontal) {\r\n var $element = this.element();\r\n var $tableElement = this._tableElement;\r\n if ($element && $tableElement) {\r\n return isHorizontal ? $tableElement.outerWidth() - $element.width() > 0 : $tableElement.outerHeight() - $element.height() > 0\r\n }\r\n return false\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/shared/accessibility.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar FOCUS_STATE_CLASS = \"dx-state-focused\";\r\nvar FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar FOCUSED_ROW_SELECTOR = \".dx-row-focused\";\r\nvar GRID_ROW_SELECTOR = \".dx-datagrid-rowsview .dx-row\";\r\nvar GRID_CELL_SELECTOR = \"\".concat(GRID_ROW_SELECTOR, \" > td\");\r\nvar TREELIST_ROW_SELECTOR = \".dx-treelist-rowsview .dx-row\";\r\nvar TREELIST_CELL_SELECTOR = \"\".concat(TREELIST_ROW_SELECTOR, \" > td\");\r\nvar viewItemSelectorMap = {\r\n groupPanel: [\".dx-datagrid-group-panel .dx-group-panel-item[tabindex]\"],\r\n columnHeaders: [\".dx-datagrid-headers .dx-header-row > td.dx-datagrid-action\", \".dx-treelist-headers .dx-header-row > td.dx-treelist-action\"],\r\n filterRow: [\".dx-datagrid-headers .dx-datagrid-filter-row .dx-editor-cell .dx-texteditor-input\", \".dx-treelist-headers .dx-treelist-filter-row .dx-editor-cell .dx-texteditor-input\"],\r\n rowsView: [\"\".concat(FOCUSED_ROW_SELECTOR), \"\".concat(GRID_ROW_SELECTOR, \"[tabindex]\"), \"\".concat(GRID_CELL_SELECTOR, \"[tabindex]\"), \"\".concat(GRID_CELL_SELECTOR), \"\".concat(TREELIST_ROW_SELECTOR, \"[tabindex]\"), \"\".concat(TREELIST_CELL_SELECTOR, \"[tabindex]\"), \"\".concat(TREELIST_CELL_SELECTOR)],\r\n footer: [\".dx-datagrid-total-footer .dx-datagrid-summary-item\", \".dx-treelist-total-footer .dx-treelist-summary-item\"],\r\n filterPanel: [\".dx-datagrid-filter-panel .dx-icon-filter\", \".dx-treelist-filter-panel .dx-icon-filter\"],\r\n pager: [\".dx-datagrid-pager [tabindex]\", \".dx-treelist-pager [tabindex]\"]\r\n};\r\nvar isMouseDown = false;\r\nvar isHiddenFocusing = false;\r\nvar focusedElementInfo = null;\r\n\r\nfunction processKeyDown(viewName, instance, event, action, $mainElement, executeKeyDown) {\r\n var isHandled = fireKeyDownEvent(instance, event.originalEvent, executeKeyDown);\r\n if (isHandled) {\r\n return\r\n }\r\n var keyName = normalizeKeyName(event);\r\n if (\"enter\" === keyName || \"space\" === keyName) {\r\n saveFocusedElementInfo(event.target, instance);\r\n action && action({\r\n event: event\r\n })\r\n } else if (\"tab\" === keyName) {\r\n $mainElement.addClass(FOCUS_STATE_CLASS)\r\n } else {\r\n selectView(viewName, instance, event)\r\n }\r\n}\r\n\r\nfunction saveFocusedElementInfo(target, instance) {\r\n var $target = $(target);\r\n var ariaLabel = $target.attr(\"aria-label\");\r\n var $activeElements = getActiveAccessibleElements(ariaLabel, instance.element());\r\n var targetIndex = $activeElements.index($target);\r\n focusedElementInfo = extend({}, {\r\n ariaLabel: ariaLabel,\r\n index: targetIndex\r\n }, {\r\n viewInstance: instance\r\n })\r\n}\r\n\r\nfunction getActiveAccessibleElements(ariaLabel, viewElement) {\r\n var $viewElement = $(viewElement);\r\n var $activeElements;\r\n if (ariaLabel) {\r\n $activeElements = $viewElement.find('[aria-label=\"'.concat(ariaLabel, '\"][tabindex]'))\r\n } else {\r\n $activeElements = $viewElement.find(\"[tabindex]\")\r\n }\r\n return $activeElements\r\n}\r\n\r\nfunction findFocusedViewElement(viewSelectors) {\r\n for (var index in viewSelectors) {\r\n var selector = viewSelectors[index];\r\n var $focusViewElement = $(selector).first();\r\n if ($focusViewElement.length) {\r\n return $focusViewElement\r\n }\r\n }\r\n}\r\n\r\nfunction fireKeyDownEvent(instance, event, executeAction) {\r\n var args = {\r\n event: event,\r\n handled: false\r\n };\r\n if (executeAction) {\r\n executeAction(args)\r\n } else {\r\n instance._createActionByOption(\"onKeyDown\")(args)\r\n }\r\n return args.handled\r\n}\r\n\r\nfunction onDocumentVisibilityChange() {\r\n isHiddenFocusing = \"visible\" === domAdapter.getDocument().visibilityState\r\n}\r\nexport function subscribeVisibilityChange() {\r\n eventsEngine.on(domAdapter.getDocument(), \"visibilitychange\", onDocumentVisibilityChange)\r\n}\r\nexport function unsubscribeVisibilityChange() {\r\n eventsEngine.off(domAdapter.getDocument(), \"visibilitychange\", onDocumentVisibilityChange)\r\n}\r\nexport function hiddenFocus(element) {\r\n isHiddenFocusing = true;\r\n element.focus();\r\n isHiddenFocusing = false\r\n}\r\nexport function registerKeyboardAction(viewName, instance, $element, selector, action, executeKeyDown) {\r\n if (instance.option(\"useLegacyKeyboardNavigation\")) {\r\n return noop\r\n }\r\n var getMainElement = () => $(instance.element());\r\n var keyDownHandler = e => processKeyDown(viewName, instance, e, action, getMainElement(), executeKeyDown);\r\n var mouseDownHandler = () => {\r\n isMouseDown = true;\r\n getMainElement().removeClass(FOCUS_STATE_CLASS)\r\n };\r\n var focusinHandler = () => {\r\n var needShowOverlay = !isMouseDown && !isHiddenFocusing;\r\n if (needShowOverlay) {\r\n getMainElement().addClass(FOCUS_STATE_CLASS)\r\n }\r\n isMouseDown = false\r\n };\r\n eventsEngine.on($element, \"keydown\", selector, keyDownHandler);\r\n eventsEngine.on($element, \"mousedown\", selector, mouseDownHandler);\r\n eventsEngine.on($element, \"focusin\", selector, focusinHandler);\r\n return () => {\r\n eventsEngine.off($element, \"keydown\", selector, keyDownHandler);\r\n eventsEngine.off($element, \"mousedown\", selector, mouseDownHandler);\r\n eventsEngine.off($element, \"focusin\", selector, focusinHandler)\r\n }\r\n}\r\nexport function restoreFocus(instance) {\r\n if (!instance.option(\"useLegacyKeyboardNavigation\") && focusedElementInfo) {\r\n var viewInstance = focusedElementInfo.viewInstance;\r\n if (viewInstance) {\r\n var $activeElements = getActiveAccessibleElements(focusedElementInfo.ariaLabel, viewInstance.element());\r\n var $targetElement = $activeElements.eq(focusedElementInfo.index);\r\n focusedElementInfo = null;\r\n eventsEngine.trigger($targetElement, \"focus\")\r\n }\r\n }\r\n}\r\nexport function selectView(viewName, instance, event) {\r\n var keyName = normalizeKeyName(event);\r\n if (event.ctrlKey && (\"upArrow\" === keyName || \"downArrow\" === keyName)) {\r\n var viewNames = Object.keys(viewItemSelectorMap);\r\n var viewItemIndex = viewNames.indexOf(viewName);\r\n while (viewItemIndex >= 0 && viewItemIndex < viewNames.length) {\r\n viewItemIndex = \"upArrow\" === keyName ? --viewItemIndex : ++viewItemIndex;\r\n var _viewName = viewNames[viewItemIndex];\r\n var viewSelectors = viewItemSelectorMap[_viewName];\r\n var $focusViewElement = findFocusedViewElement(viewSelectors);\r\n if ($focusViewElement && $focusViewElement.length) {\r\n $focusViewElement.attr(\"tabindex\", instance.option(\"tabindex\") || 0);\r\n eventsEngine.trigger($focusViewElement, \"focus\");\r\n $focusViewElement.removeClass(FOCUS_DISABLED_CLASS);\r\n break\r\n }\r\n }\r\n }\r\n}\r\nexport function setTabIndex(instance, $element) {\r\n if (!instance.option(\"useLegacyKeyboardnavigation\")) {\r\n $element.attr(\"tabindex\", instance.option(\"tabindex\") || 0)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.accessibility.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 accessibility from \"../../ui/shared/accessibility\";\r\nexport var registerKeyboardAction = function(viewName, instance, $element, selector, action) {\r\n var keyboardController = instance.getController(\"keyboardNavigation\");\r\n if (instance.option(\"useLegacyKeyboardNavigation\") || keyboardController && !keyboardController.isKeyboardEnabled()) {\r\n return\r\n }\r\n instance.createAction(\"onKeyDown\");\r\n accessibility.registerKeyboardAction(viewName, instance, $element, selector, action, args => {\r\n instance.executeAction(\"onKeyDown\", args)\r\n })\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.column_headers.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 ColumnsView\r\n} from \"./ui.grid_core.columns_view\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n registerKeyboardAction\r\n} from \"./ui.grid_core.accessibility\";\r\nvar CELL_CONTENT_CLASS = \"text-content\";\r\nvar HEADERS_CLASS = \"headers\";\r\nvar NOWRAP_CLASS = \"nowrap\";\r\nvar ROW_CLASS_SELECTOR = \".dx-row\";\r\nvar HEADER_ROW_CLASS = \"dx-header-row\";\r\nvar COLUMN_LINES_CLASS = \"dx-column-lines\";\r\nvar CONTEXT_MENU_SORT_ASC_ICON = \"context-menu-sort-asc\";\r\nvar CONTEXT_MENU_SORT_DESC_ICON = \"context-menu-sort-desc\";\r\nvar CONTEXT_MENU_SORT_NONE_ICON = \"context-menu-sort-none\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar VISIBILITY_HIDDEN_CLASS = \"dx-visibility-hidden\";\r\nvar TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX = \"dx-text-content-alignment-\";\r\nvar SORT_INDICATOR_CLASS = \"dx-sort-indicator\";\r\nvar SORT_INDEX_INDICATOR_CLASS = \"dx-sort-index-indicator\";\r\nvar HEADER_FILTER_CLASS_SELECTOR = \".dx-header-filter\";\r\nvar HEADER_FILTER_INDICATOR_CLASS = \"dx-header-filter-indicator\";\r\nvar MULTI_ROW_HEADER_CLASS = \"dx-header-multi-row\";\r\nexport var columnHeadersModule = {\r\n defaultOptions: function() {\r\n return {\r\n showColumnHeaders: true,\r\n cellHintEnabled: true\r\n }\r\n },\r\n views: {\r\n columnHeadersView: ColumnsView.inherit(function() {\r\n var createCellContent = function(that, $cell, options) {\r\n var $cellContent = $(\"
\").addClass(that.addWidgetPrefix(CELL_CONTENT_CLASS));\r\n that.setAria(\"role\", \"presentation\", $cellContent);\r\n addCssClassesToCellContent(that, $cell, options.column, $cellContent);\r\n var showColumnLines = that.option(\"showColumnLines\");\r\n var contentAlignment = that.getController(\"columns\").getHeaderContentAlignment(options.column.alignment);\r\n return $cellContent[showColumnLines || \"right\" === contentAlignment ? \"appendTo\" : \"prependTo\"]($cell)\r\n };\r\n\r\n function addCssClassesToCellContent(that, $cell, column, $cellContent) {\r\n var $indicatorElements = that._getIndicatorElements($cell, true);\r\n var $visibleIndicatorElements = that._getIndicatorElements($cell);\r\n var indicatorCount = $indicatorElements && $indicatorElements.length;\r\n var columnAlignment = that._getColumnAlignment(column.alignment);\r\n var sortIndicatorClassName = \".\".concat(that._getIndicatorClassName(\"sort\"));\r\n var sortIndexIndicatorClassName = \".\".concat(that._getIndicatorClassName(\"sortIndex\"));\r\n var $sortIndicator = $visibleIndicatorElements.filter(sortIndicatorClassName);\r\n var $sortIndexIndicator = $visibleIndicatorElements.children().filter(sortIndexIndicatorClassName);\r\n $cellContent = $cellContent || $cell.children(\".\" + that.addWidgetPrefix(CELL_CONTENT_CLASS));\r\n $cellContent.toggleClass(TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX + columnAlignment, indicatorCount > 0).toggleClass(TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX + (\"left\" === columnAlignment ? \"right\" : \"left\"), indicatorCount > 0 && \"center\" === column.alignment).toggleClass(SORT_INDICATOR_CLASS, !!$sortIndicator.length).toggleClass(SORT_INDEX_INDICATOR_CLASS, !!$sortIndexIndicator.length).toggleClass(HEADER_FILTER_INDICATOR_CLASS, !!$visibleIndicatorElements.filter(\".\" + that._getIndicatorClassName(\"headerFilter\")).length)\r\n }\r\n return {\r\n _createTable: function() {\r\n var $table = this.callBase.apply(this, arguments);\r\n eventsEngine.on($table, \"mousedown selectstart\", this.createAction((function(e) {\r\n var event = e.event;\r\n if (event.shiftKey) {\r\n event.preventDefault()\r\n }\r\n })));\r\n return $table\r\n },\r\n _isLegacyKeyboardNavigation() {\r\n return this.option(\"useLegacyKeyboardNavigation\")\r\n },\r\n _getDefaultTemplate: function(column) {\r\n var that = this;\r\n return function($container, options) {\r\n var $content = column.command ? $container : createCellContent(that, $container, options);\r\n var caption = \"expand\" !== column.command && column.caption;\r\n if (caption) {\r\n $content.text(caption)\r\n } else if (column.command) {\r\n $container.html(\" \")\r\n }\r\n }\r\n },\r\n _getHeaderTemplate: function(column) {\r\n return column.headerCellTemplate || {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultTemplate(column)\r\n }\r\n },\r\n _processTemplate: function(template, options) {\r\n var that = this;\r\n var resultTemplate;\r\n var column = options.column;\r\n var renderingTemplate = that.callBase(template);\r\n if (\"header\" === options.rowType && renderingTemplate && column.headerCellTemplate && !column.command) {\r\n resultTemplate = {\r\n render: function(options) {\r\n var $content = createCellContent(that, options.container, options.model);\r\n renderingTemplate.render(extend({}, options, {\r\n container: $content\r\n }))\r\n }\r\n }\r\n } else {\r\n resultTemplate = renderingTemplate\r\n }\r\n return resultTemplate\r\n },\r\n _handleDataChanged: function(e) {\r\n if (\"refresh\" !== e.changeType) {\r\n return\r\n }\r\n if (this._isGroupingChanged || this._requireReady) {\r\n this._isGroupingChanged = false;\r\n this.render()\r\n }\r\n },\r\n _renderCell: function($row, options) {\r\n var $cell = this.callBase($row, options);\r\n if (\"header\" === options.row.rowType) {\r\n $cell.addClass(CELL_FOCUS_DISABLED_CLASS);\r\n if (!this._isLegacyKeyboardNavigation()) {\r\n if (options.column && !options.column.type) {\r\n $cell.attr(\"tabindex\", this.option(\"tabindex\") || 0)\r\n }\r\n }\r\n }\r\n return $cell\r\n },\r\n _setCellAriaAttributes: function($cell, cellOptions) {\r\n this.callBase($cell, cellOptions);\r\n if (\"header\" === cellOptions.rowType) {\r\n this.setAria(\"role\", \"columnheader\", $cell);\r\n if (cellOptions.column && !cellOptions.column.command && !cellOptions.column.isBand) {\r\n $cell.attr(\"id\", cellOptions.column.headerId);\r\n this.setAria(\"label\", messageLocalization.format(\"dxDataGrid-ariaColumn\") + \" \" + cellOptions.column.caption, $cell)\r\n }\r\n }\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase(row).toggleClass(COLUMN_LINES_CLASS, this.option(\"showColumnLines\"));\r\n if (\"header\" === row.rowType) {\r\n $row.addClass(HEADER_ROW_CLASS);\r\n if (!this._isLegacyKeyboardNavigation()) {\r\n registerKeyboardAction(\"columnHeaders\", this, $row, \"td\", this._handleActionKeyDown.bind(this))\r\n }\r\n }\r\n return $row\r\n },\r\n _handleActionKeyDown: function(args) {\r\n var event = args.event;\r\n var $target = $(event.target);\r\n this._lastActionElement = event.target;\r\n if ($target.is(HEADER_FILTER_CLASS_SELECTOR)) {\r\n var headerFilterController = this.getController(\"headerFilter\");\r\n var $column = $target.closest(\"td\");\r\n var columnIndex = this.getColumnIndexByElement($column);\r\n if (columnIndex >= 0) {\r\n headerFilterController.showHeaderFilterMenu(columnIndex, false)\r\n }\r\n } else {\r\n var $row = $target.closest(ROW_CLASS_SELECTOR);\r\n this._processHeaderAction(event, $row)\r\n }\r\n event.preventDefault()\r\n },\r\n _renderCore: function() {\r\n var that = this;\r\n var $container = that.element();\r\n if (that._tableElement && !that._dataController.isLoaded() && !that._hasRowElements) {\r\n return\r\n }\r\n $container.addClass(that.addWidgetPrefix(HEADERS_CLASS)).toggleClass(that.addWidgetPrefix(NOWRAP_CLASS), !that.option(\"wordWrapEnabled\")).empty();\r\n that.setAria(\"role\", \"presentation\", $container);\r\n that._updateContent(that._renderTable());\r\n if (that.getRowCount() > 1) {\r\n $container.addClass(MULTI_ROW_HEADER_CLASS)\r\n }\r\n that.callBase.apply(that, arguments)\r\n },\r\n _renderRows: function() {\r\n var that = this;\r\n if (that._dataController.isLoaded() || that._hasRowElements) {\r\n that.callBase.apply(that, arguments);\r\n that._hasRowElements = true\r\n }\r\n },\r\n _getRowVisibleColumns: function(rowIndex) {\r\n return this._columnsController.getVisibleColumns(rowIndex)\r\n },\r\n _renderRow: function($table, options) {\r\n options.columns = this._getRowVisibleColumns(options.row.rowIndex);\r\n this.callBase($table, options)\r\n },\r\n _createCell: function(options) {\r\n var column = options.column;\r\n var $cellElement = this.callBase.apply(this, arguments);\r\n column.rowspan > 1 && \"header\" === options.rowType && $cellElement.attr(\"rowSpan\", column.rowspan);\r\n return $cellElement\r\n },\r\n _getRows: function() {\r\n var result = [];\r\n var rowCount = this.getRowCount();\r\n if (this.option(\"showColumnHeaders\")) {\r\n for (var i = 0; i < rowCount; i++) {\r\n result.push({\r\n rowType: \"header\",\r\n rowIndex: i\r\n })\r\n }\r\n }\r\n return result\r\n },\r\n _getCellTemplate: function(options) {\r\n if (\"header\" === options.rowType) {\r\n return this._getHeaderTemplate(options.column)\r\n }\r\n },\r\n _columnOptionChanged: function(e) {\r\n var changeTypes = e.changeTypes;\r\n var optionNames = e.optionNames;\r\n if (changeTypes.grouping) {\r\n this._isGroupingChanged = true;\r\n return\r\n }\r\n this.callBase(e);\r\n if (optionNames.width || optionNames.visible) {\r\n this.resizeCompleted.fire()\r\n }\r\n },\r\n _isElementVisible: function(elementOptions) {\r\n return elementOptions && elementOptions.visible\r\n },\r\n _alignCaptionByCenter: function($cell) {\r\n var $indicatorsContainer = this._getIndicatorContainer($cell, true);\r\n if ($indicatorsContainer && $indicatorsContainer.length) {\r\n $indicatorsContainer.filter(\".\" + VISIBILITY_HIDDEN_CLASS).remove();\r\n $indicatorsContainer = this._getIndicatorContainer($cell);\r\n $indicatorsContainer.clone().addClass(VISIBILITY_HIDDEN_CLASS).css(\"float\", \"\").insertBefore($cell.children(\".\" + this.addWidgetPrefix(CELL_CONTENT_CLASS)))\r\n }\r\n },\r\n _updateCell: function($cell, options) {\r\n if (\"header\" === options.rowType && \"center\" === options.column.alignment) {\r\n this._alignCaptionByCenter($cell)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _updateIndicator: function($cell, column, indicatorName) {\r\n var $indicatorElement = this.callBase.apply(this, arguments);\r\n if (\"center\" === column.alignment) {\r\n this._alignCaptionByCenter($cell)\r\n }\r\n addCssClassesToCellContent(this, $cell, column);\r\n return $indicatorElement\r\n },\r\n _getIndicatorContainer: function($cell, returnAll) {\r\n var $indicatorsContainer = this.callBase($cell);\r\n return returnAll ? $indicatorsContainer : $indicatorsContainer.filter(\":not(.\" + VISIBILITY_HIDDEN_CLASS + \")\")\r\n },\r\n _isSortableElement: function() {\r\n return true\r\n },\r\n getHeadersRowHeight: function() {\r\n var $tableElement = this.getTableElement();\r\n var $headerRows = $tableElement && $tableElement.find(\".\" + HEADER_ROW_CLASS);\r\n return $headerRows && $headerRows.toArray().reduce((function(sum, headerRow) {\r\n return sum + $(headerRow).height()\r\n }), 0) || 0\r\n },\r\n getHeaderElement: function(index) {\r\n var columnElements = this.getColumnElements();\r\n return columnElements && columnElements.eq(index)\r\n },\r\n getColumnElements: function(index, bandColumnIndex) {\r\n var that = this;\r\n var $cellElement;\r\n var columnsController = that._columnsController;\r\n var rowCount = that.getRowCount();\r\n if (that.option(\"showColumnHeaders\")) {\r\n if (rowCount > 1 && (!isDefined(index) || isDefined(bandColumnIndex))) {\r\n var result = [];\r\n var visibleColumns = isDefined(bandColumnIndex) ? columnsController.getChildrenByBandColumn(bandColumnIndex, true) : columnsController.getVisibleColumns();\r\n each(visibleColumns, (function(_, column) {\r\n var rowIndex = isDefined(index) ? index : columnsController.getRowIndex(column.index);\r\n $cellElement = that._getCellElement(rowIndex, columnsController.getVisibleIndex(column.index, rowIndex));\r\n $cellElement && result.push($cellElement.get(0))\r\n }));\r\n return $(result)\r\n } else if (!index || index < rowCount) {\r\n return that.getCellElements(index || 0)\r\n }\r\n }\r\n },\r\n getColumnIndexByElement: function($cell) {\r\n var cellIndex = this.getCellIndex($cell);\r\n var $row = $cell.closest(\".dx-row\");\r\n var rowIndex = $row[0].rowIndex;\r\n var column = this.getColumns(rowIndex)[cellIndex];\r\n return column ? column.index : -1\r\n },\r\n getVisibleColumnIndex: function(columnIndex, rowIndex) {\r\n var column = this.getColumns()[columnIndex];\r\n return column ? this._columnsController.getVisibleIndex(column.index, rowIndex) : -1\r\n },\r\n getColumnWidths: function() {\r\n var $columnElements = this.getColumnElements();\r\n if ($columnElements && $columnElements.length) {\r\n return this._getWidths($columnElements)\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n allowDragging: function(column, sourceLocation, draggingPanels) {\r\n var i;\r\n var draggableColumnCount = 0;\r\n var rowIndex = column && this._columnsController.getRowIndex(column.index);\r\n var columns = this.getColumns(0 === rowIndex ? 0 : null);\r\n var canHideColumn = (null === column || void 0 === column ? void 0 : column.allowHiding) && columns.length > 1;\r\n var allowDrag = function(column) {\r\n return column.allowReordering || column.allowGrouping || column.allowHiding\r\n };\r\n for (i = 0; i < columns.length; i++) {\r\n if (allowDrag(columns[i])) {\r\n draggableColumnCount++\r\n }\r\n }\r\n if (draggableColumnCount <= 1 && !canHideColumn) {\r\n return false\r\n } else if (!draggingPanels) {\r\n return (this.option(\"allowColumnReordering\") || this._columnsController.isColumnOptionUsed(\"allowReordering\")) && column && column.allowReordering\r\n }\r\n for (i = 0; i < draggingPanels.length; i++) {\r\n var draggingPanel = draggingPanels[i];\r\n if (draggingPanel && draggingPanel.allowDragging(column, sourceLocation)) {\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n getBoundingRect: function() {\r\n var $columnElements = this.getColumnElements();\r\n if ($columnElements && $columnElements.length) {\r\n var offset = this.getTableElement().offset();\r\n return {\r\n top: offset.top\r\n }\r\n }\r\n return null\r\n },\r\n getName: function() {\r\n return \"headers\"\r\n },\r\n getColumnCount: function() {\r\n var $columnElements = this.getColumnElements();\r\n return $columnElements ? $columnElements.length : 0\r\n },\r\n isVisible: function() {\r\n return this.option(\"showColumnHeaders\")\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"showColumnHeaders\":\r\n case \"wordWrapEnabled\":\r\n case \"showColumnLines\":\r\n this._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getHeight: function() {\r\n return this.getElementHeight()\r\n },\r\n getContextMenuItems: function(options) {\r\n var that = this;\r\n var column = options.column;\r\n if (options.row && (\"header\" === options.row.rowType || \"detailAdaptive\" === options.row.rowType)) {\r\n var sortingOptions = that.option(\"sorting\");\r\n if (sortingOptions && \"none\" !== sortingOptions.mode && column && column.allowSorting) {\r\n var onItemClick = function(params) {\r\n setTimeout((function() {\r\n that._columnsController.changeSortOrder(column.index, params.itemData.value)\r\n }))\r\n };\r\n return [{\r\n text: sortingOptions.ascendingText,\r\n value: \"asc\",\r\n disabled: \"asc\" === column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_ASC_ICON,\r\n onItemClick: onItemClick\r\n }, {\r\n text: sortingOptions.descendingText,\r\n value: \"desc\",\r\n disabled: \"desc\" === column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_DESC_ICON,\r\n onItemClick: onItemClick\r\n }, {\r\n text: sortingOptions.clearText,\r\n value: \"none\",\r\n disabled: !column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_NONE_ICON,\r\n onItemClick: onItemClick\r\n }]\r\n }\r\n }\r\n },\r\n getRowCount: function() {\r\n return this._columnsController && this._columnsController.getRowCount()\r\n },\r\n setRowsOpacity: function(columnIndex, value, rowIndex) {\r\n var that = this;\r\n var i;\r\n var columnElements;\r\n var rowCount = that.getRowCount();\r\n var columns = that._columnsController.getColumns();\r\n var column = columns && columns[columnIndex];\r\n var columnID = column && column.isBand && column.index;\r\n var setColumnOpacity = function(index, column) {\r\n if (column.ownerBand === columnID) {\r\n columnElements.eq(index).css({\r\n opacity: value\r\n });\r\n if (column.isBand) {\r\n that.setRowsOpacity(column.index, value, i + 1)\r\n }\r\n }\r\n };\r\n if (isDefined(columnID)) {\r\n rowIndex = rowIndex || 0;\r\n for (i = rowIndex; i < rowCount; i++) {\r\n columnElements = that.getCellElements(i);\r\n each(that.getColumns(i), setColumnOpacity)\r\n }\r\n }\r\n }\r\n }\r\n }())\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.column_headers.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n columnHeadersModule\r\n} from \"../grid_core/ui.grid_core.column_headers\";\r\nexport var ColumnHeadersView = columnHeadersModule.views.columnHeadersView;\r\ngridCore.registerModule(\"columnHeaders\", columnHeadersModule);\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.columns_controller.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 $ from \"../../core/renderer\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport variableWrapper from \"../../core/utils/variable_wrapper\";\r\nimport {\r\n compileGetter,\r\n compileSetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n grep\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isString,\r\n isNumeric,\r\n isFunction,\r\n isObject,\r\n isPlainObject,\r\n type\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../core/utils/position\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n inArray,\r\n normalizeIndexes\r\n} from \"../../core/utils/array\";\r\nimport config from \"../../core/config\";\r\nimport {\r\n orderEach,\r\n deepExtendArraySafe\r\n} from \"../../core/utils/object\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n captionize\r\n} from \"../../core/utils/inflector\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport numberLocalization from \"../../localization/number\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport Store from \"../../data/abstract_store\";\r\nimport {\r\n DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../data/data_source/utils\";\r\nimport filterUtils from \"../shared/filtering\";\r\nvar USER_STATE_FIELD_NAMES_15_1 = [\"filterValues\", \"filterType\", \"fixed\", \"fixedPosition\"];\r\nvar USER_STATE_FIELD_NAMES = [\"visibleIndex\", \"dataField\", \"name\", \"dataType\", \"width\", \"visible\", \"sortOrder\", \"lastSortOrder\", \"sortIndex\", \"groupIndex\", \"filterValue\", \"selectedFilterOperation\", \"added\"].concat(USER_STATE_FIELD_NAMES_15_1);\r\nvar IGNORE_COLUMN_OPTION_NAMES = {\r\n visibleWidth: true,\r\n bestFitWidth: true,\r\n bufferedFilterValue: true\r\n};\r\nvar COMMAND_EXPAND_CLASS = \"dx-command-expand\";\r\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\r\nvar GROUP_COMMAND_COLUMN_NAME = \"groupExpand\";\r\nvar regExp = /columns\\[(\\d+)\\]\\.?/gi;\r\nvar globalColumnId = 1;\r\nexport var columnsControllerModule = {\r\n defaultOptions: function() {\r\n return {\r\n commonColumnSettings: {\r\n allowFiltering: true,\r\n allowHiding: true,\r\n allowSorting: true,\r\n allowEditing: true,\r\n encodeHtml: true,\r\n trueText: messageLocalization.format(\"dxDataGrid-trueText\"),\r\n falseText: messageLocalization.format(\"dxDataGrid-falseText\")\r\n },\r\n allowColumnReordering: false,\r\n allowColumnResizing: false,\r\n columnResizingMode: \"nextColumn\",\r\n columnMinWidth: void 0,\r\n columnWidth: void 0,\r\n adaptColumnWidthByRatio: true,\r\n columns: void 0,\r\n regenerateColumnsByVisibleItems: false,\r\n customizeColumns: null,\r\n dateSerializationFormat: void 0\r\n }\r\n },\r\n controllers: {\r\n columns: modules.Controller.inherit(function() {\r\n var DEFAULT_COLUMN_OPTIONS = {\r\n visible: true,\r\n showInColumnChooser: true\r\n };\r\n var DATATYPE_OPERATIONS = {\r\n number: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"],\r\n string: [\"contains\", \"notcontains\", \"startswith\", \"endswith\", \"=\", \"<>\"],\r\n date: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"],\r\n datetime: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"]\r\n };\r\n var COLUMN_INDEX_OPTIONS = {\r\n visibleIndex: true,\r\n groupIndex: true,\r\n grouped: true,\r\n sortIndex: true,\r\n sortOrder: true\r\n };\r\n var setFilterOperationsAsDefaultValues = function(column) {\r\n column.filterOperations = column.defaultFilterOperations\r\n };\r\n var createColumn = function(that, columnOptions, userStateColumnOptions, bandColumn) {\r\n var commonColumnOptions = {};\r\n if (columnOptions) {\r\n if (isString(columnOptions)) {\r\n columnOptions = {\r\n dataField: columnOptions\r\n }\r\n }\r\n that.setName(columnOptions);\r\n var result = {};\r\n if (columnOptions.command) {\r\n result = deepExtendArraySafe(commonColumnOptions, columnOptions)\r\n } else {\r\n commonColumnOptions = that.getCommonSettings(columnOptions);\r\n if (userStateColumnOptions && userStateColumnOptions.name && userStateColumnOptions.dataField) {\r\n columnOptions = extend({}, columnOptions, {\r\n dataField: userStateColumnOptions.dataField\r\n })\r\n }\r\n var calculatedColumnOptions = that._createCalculatedColumnOptions(columnOptions, bandColumn);\r\n if (!columnOptions.type) {\r\n result = {\r\n headerId: \"dx-col-\".concat(globalColumnId++)\r\n }\r\n }\r\n result = deepExtendArraySafe(result, DEFAULT_COLUMN_OPTIONS);\r\n deepExtendArraySafe(result, commonColumnOptions);\r\n deepExtendArraySafe(result, calculatedColumnOptions);\r\n deepExtendArraySafe(result, columnOptions);\r\n deepExtendArraySafe(result, {\r\n selector: null\r\n })\r\n }\r\n if (columnOptions.filterOperations === columnOptions.defaultFilterOperations) {\r\n setFilterOperationsAsDefaultValues(result)\r\n }\r\n return result\r\n }\r\n };\r\n var createColumnsFromOptions = function createColumnsFromOptions(that, columnsOptions, bandColumn) {\r\n var result = [];\r\n if (columnsOptions) {\r\n each(columnsOptions, (function(index, columnOptions) {\r\n var userStateColumnOptions = that._columnsUserState && checkUserStateColumn(columnOptions, that._columnsUserState[index]) && that._columnsUserState[index];\r\n var column = createColumn(that, columnOptions, userStateColumnOptions, bandColumn);\r\n if (column) {\r\n if (bandColumn) {\r\n column.ownerBand = bandColumn\r\n }\r\n result.push(column);\r\n if (column.columns) {\r\n result = result.concat(createColumnsFromOptions(that, column.columns, column));\r\n delete column.columns;\r\n column.hasColumns = true\r\n }\r\n }\r\n }))\r\n }\r\n return result\r\n };\r\n var getParentBandColumns = function(columnIndex, columnParentByIndex) {\r\n var result = [];\r\n var parent = columnParentByIndex[columnIndex];\r\n while (parent) {\r\n result.unshift(parent);\r\n columnIndex = parent.index;\r\n parent = columnParentByIndex[columnIndex]\r\n }\r\n return result\r\n };\r\n var _getChildrenByBandColumn = function(columnIndex, columnChildrenByIndex, recursive) {\r\n var result = [];\r\n var children = columnChildrenByIndex[columnIndex];\r\n if (children) {\r\n for (var i = 0; i < children.length; i++) {\r\n var column = children[i];\r\n if (!isDefined(column.groupIndex) || column.showWhenGrouped) {\r\n result.push(column);\r\n if (recursive && column.isBand) {\r\n result = result.concat(_getChildrenByBandColumn(column.index, columnChildrenByIndex, recursive))\r\n }\r\n }\r\n }\r\n }\r\n return result\r\n };\r\n var getColumnFullPath = function(that, column) {\r\n var result = [];\r\n var columns;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var callbackFilter = function(item) {\r\n return item.ownerBand === column.ownerBand\r\n };\r\n if (bandColumnsCache.isPlain) {\r\n var columnIndex = that._columns.indexOf(column);\r\n if (columnIndex >= 0) {\r\n result = [\"columns[\".concat(columnIndex, \"]\")]\r\n }\r\n } else {\r\n columns = that._columns.filter(callbackFilter);\r\n while (columns.length && -1 !== columns.indexOf(column)) {\r\n result.unshift(\"columns[\".concat(columns.indexOf(column), \"]\"));\r\n column = bandColumnsCache.columnParentByIndex[column.index];\r\n columns = column ? that._columns.filter(callbackFilter) : []\r\n }\r\n }\r\n return result.join(\".\")\r\n };\r\n var calculateColspan = function calculateColspan(that, columnID) {\r\n var colspan = 0;\r\n var columns = that.getChildrenByBandColumn(columnID, true);\r\n each(columns, (function(_, column) {\r\n if (column.isBand) {\r\n column.colspan = column.colspan || calculateColspan(that, column.index);\r\n colspan += column.colspan || 1\r\n } else {\r\n colspan += 1\r\n }\r\n }));\r\n return colspan\r\n };\r\n var getValueDataType = function(value) {\r\n var dataType = type(value);\r\n if (\"string\" !== dataType && \"boolean\" !== dataType && \"number\" !== dataType && \"date\" !== dataType && \"object\" !== dataType) {\r\n dataType = void 0\r\n }\r\n return dataType\r\n };\r\n var getSerializationFormat = function(dataType, value) {\r\n switch (dataType) {\r\n case \"date\":\r\n case \"datetime\":\r\n return dateSerialization.getDateSerializationFormat(value);\r\n case \"number\":\r\n if (isString(value)) {\r\n return \"string\"\r\n }\r\n if (isNumeric(value)) {\r\n return null\r\n }\r\n }\r\n };\r\n var updateSerializers = function(options, dataType) {\r\n if (!options.deserializeValue) {\r\n if (gridCoreUtils.isDateType(dataType)) {\r\n options.deserializeValue = function(value) {\r\n return dateSerialization.deserializeDate(value)\r\n };\r\n options.serializeValue = function(value) {\r\n return isString(value) ? value : dateSerialization.serializeDate(value, this.serializationFormat)\r\n }\r\n }\r\n if (\"number\" === dataType) {\r\n options.deserializeValue = function(value) {\r\n var parsedValue = parseFloat(value);\r\n return isNaN(parsedValue) ? value : parsedValue\r\n };\r\n options.serializeValue = function(value, target) {\r\n if (\"filter\" === target) {\r\n return value\r\n }\r\n return isDefined(value) && \"string\" === this.serializationFormat ? value.toString() : value\r\n }\r\n }\r\n }\r\n };\r\n var customizeTextForBooleanDataType = function(e) {\r\n if (true === e.value) {\r\n return this.trueText || \"true\"\r\n } else if (false === e.value) {\r\n return this.falseText || \"false\"\r\n } else {\r\n return e.valueText || \"\"\r\n }\r\n };\r\n var getCustomizeTextByDataType = function(dataType) {\r\n if (\"boolean\" === dataType) {\r\n return customizeTextForBooleanDataType\r\n }\r\n };\r\n var updateColumnIndexes = function(that) {\r\n each(that._columns, (function(index, column) {\r\n column.index = index\r\n }));\r\n each(that._columns, (function(index, column) {\r\n if (isObject(column.ownerBand)) {\r\n column.ownerBand = column.ownerBand.index\r\n }\r\n }));\r\n each(that._commandColumns, (function(index, column) {\r\n column.index = -(index + 1)\r\n }))\r\n };\r\n var updateColumnGroupIndexes = function(that, currentColumn) {\r\n normalizeIndexes(that._columns, \"groupIndex\", currentColumn, (function(column) {\r\n var grouped = column.grouped;\r\n delete column.grouped;\r\n return grouped\r\n }))\r\n };\r\n var getColumnIndexByVisibleIndex = function(that, visibleIndex, location) {\r\n var rowIndex = isObject(visibleIndex) ? visibleIndex.rowIndex : null;\r\n var columns = \"group\" === location ? that.getGroupColumns() : \"columnChooser\" === location ? that.getChooserColumns() : that.getVisibleColumns(rowIndex);\r\n var column;\r\n visibleIndex = isObject(visibleIndex) ? visibleIndex.columnIndex : visibleIndex;\r\n column = columns[visibleIndex];\r\n if (column && column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n column = that._columns.filter(col => column.type === col.type)[0] || column\r\n }\r\n return column && isDefined(column.index) ? column.index : -1\r\n };\r\n\r\n function checkUserStateColumn(column, userStateColumn) {\r\n return column && userStateColumn && (userStateColumn.name === column.name || !column.name) && (userStateColumn.dataField === column.dataField || column.name)\r\n }\r\n var applyUserState = function(that) {\r\n var columnsUserState = that._columnsUserState;\r\n var ignoreColumnOptionNames = that._ignoreColumnOptionNames || [];\r\n var columns = that._columns;\r\n var columnCountById = {};\r\n var resultColumns = [];\r\n var allColumnsHaveState = true;\r\n var userStateColumnIndexes = [];\r\n var column;\r\n var userStateColumnIndex;\r\n var i;\r\n\r\n function applyFieldsState(column, userStateColumn) {\r\n if (!userStateColumn) {\r\n return\r\n }\r\n for (var index = 0; index < USER_STATE_FIELD_NAMES.length; index++) {\r\n var fieldName = USER_STATE_FIELD_NAMES[index];\r\n if (inArray(fieldName, ignoreColumnOptionNames) >= 0) {\r\n continue\r\n }\r\n if (\"dataType\" === fieldName) {\r\n column[fieldName] = column[fieldName] || userStateColumn[fieldName]\r\n } else if (inArray(fieldName, USER_STATE_FIELD_NAMES_15_1) >= 0) {\r\n if (fieldName in userStateColumn) {\r\n column[fieldName] = userStateColumn[fieldName]\r\n }\r\n } else {\r\n if (\"selectedFilterOperation\" === fieldName && userStateColumn[fieldName]) {\r\n column.defaultSelectedFilterOperation = column[fieldName] || null\r\n }\r\n column[fieldName] = userStateColumn[fieldName]\r\n }\r\n }\r\n }\r\n\r\n function findUserStateColumn(columnsUserState, column) {\r\n var id = column.name || column.dataField;\r\n var count = columnCountById[id] || 0;\r\n for (var j = 0; j < columnsUserState.length; j++) {\r\n if (checkUserStateColumn(column, columnsUserState[j])) {\r\n if (count) {\r\n count--\r\n } else {\r\n columnCountById[id] = columnCountById[id] || 0;\r\n columnCountById[id]++;\r\n return j\r\n }\r\n }\r\n }\r\n return -1\r\n }\r\n if (columnsUserState) {\r\n for (i = 0; i < columns.length; i++) {\r\n userStateColumnIndex = findUserStateColumn(columnsUserState, columns[i]);\r\n allColumnsHaveState = allColumnsHaveState && userStateColumnIndex >= 0;\r\n userStateColumnIndexes.push(userStateColumnIndex)\r\n }\r\n for (i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n userStateColumnIndex = userStateColumnIndexes[i];\r\n if (that._hasUserState || allColumnsHaveState) {\r\n applyFieldsState(column, columnsUserState[userStateColumnIndex])\r\n }\r\n if (userStateColumnIndex >= 0 && isDefined(columnsUserState[userStateColumnIndex].initialIndex)) {\r\n resultColumns[userStateColumnIndex] = column\r\n } else {\r\n resultColumns.push(column)\r\n }\r\n }\r\n var hasAddedBands = false;\r\n for (i = 0; i < columnsUserState.length; i++) {\r\n var columnUserState = columnsUserState[i];\r\n if (columnUserState.added && findUserStateColumn(columns, columnUserState) < 0) {\r\n column = createColumn(that, columnUserState.added);\r\n applyFieldsState(column, columnUserState);\r\n resultColumns.push(column);\r\n if (columnUserState.added.columns) {\r\n hasAddedBands = true\r\n }\r\n }\r\n }\r\n if (hasAddedBands) {\r\n updateColumnIndexes(that);\r\n resultColumns = createColumnsFromOptions(that, resultColumns)\r\n }\r\n assignColumns(that, resultColumns)\r\n }\r\n };\r\n var updateIndexes = function(that, column) {\r\n updateColumnIndexes(that);\r\n updateColumnGroupIndexes(that, column);\r\n ! function(that, currentColumn) {\r\n each(that._columns, (function(index, column) {\r\n if (isDefined(column.sortIndex) && !isSortOrderValid(column.sortOrder)) {\r\n delete column.sortIndex\r\n }\r\n }));\r\n normalizeIndexes(that._columns, \"sortIndex\", currentColumn, (function(column) {\r\n return !isDefined(column.groupIndex) && isSortOrderValid(column.sortOrder)\r\n }))\r\n }(that, column);\r\n resetBandColumnsCache(that);\r\n ! function(that, currentColumn) {\r\n var key;\r\n var column;\r\n var bandColumns = {};\r\n var result = [];\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var columns = that._columns.filter(column => !column.command);\r\n for (var i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n var parentBandColumns = getParentBandColumns(i, bandColumnsCache.columnParentByIndex);\r\n if (parentBandColumns.length) {\r\n var bandColumnIndex = parentBandColumns[parentBandColumns.length - 1].index;\r\n bandColumns[bandColumnIndex] = bandColumns[bandColumnIndex] || [];\r\n bandColumns[bandColumnIndex].push(column)\r\n } else {\r\n result.push(column)\r\n }\r\n }\r\n for (key in bandColumns) {\r\n normalizeIndexes(bandColumns[key], \"visibleIndex\", currentColumn)\r\n }\r\n normalizeIndexes(result, \"visibleIndex\", currentColumn)\r\n }(that, column)\r\n };\r\n var resetColumnsCache = function(that) {\r\n that.resetColumnsCache()\r\n };\r\n\r\n function assignColumns(that, columns) {\r\n that._columns = columns;\r\n resetColumnsCache(that);\r\n that.updateColumnDataTypes()\r\n }\r\n var updateColumnChanges = function(that, changeType, optionName, columnIndex) {\r\n var columnChanges = that._columnChanges || {\r\n optionNames: {\r\n length: 0\r\n },\r\n changeTypes: {\r\n length: 0\r\n },\r\n columnIndex: columnIndex\r\n };\r\n optionName = optionName || \"all\";\r\n optionName = optionName.split(\".\")[0];\r\n var changeTypes = columnChanges.changeTypes;\r\n if (changeType && !changeTypes[changeType]) {\r\n changeTypes[changeType] = true;\r\n changeTypes.length++\r\n }\r\n var optionNames = columnChanges.optionNames;\r\n if (optionName && !optionNames[optionName]) {\r\n optionNames[optionName] = true;\r\n optionNames.length++\r\n }\r\n if (void 0 === columnIndex || columnIndex !== columnChanges.columnIndex) {\r\n delete columnChanges.columnIndex\r\n }\r\n that._columnChanges = columnChanges;\r\n resetColumnsCache(that)\r\n };\r\n var fireColumnsChanged = function(that) {\r\n var onColumnsChanging = that.option(\"onColumnsChanging\");\r\n var columnChanges = that._columnChanges;\r\n var reinitOptionNames = [\"dataField\", \"lookup\", \"dataType\", \"columns\"];\r\n if (that.isInitialized() && !that._updateLockCount && columnChanges) {\r\n if (onColumnsChanging) {\r\n that._updateLockCount++;\r\n onColumnsChanging(extend({\r\n component: that.component\r\n }, columnChanges));\r\n that._updateLockCount--\r\n }\r\n that._columnChanges = void 0;\r\n if (options = columnChanges.optionNames, options && reinitOptionNames.some(name => options[name])) {\r\n that.reinit()\r\n } else {\r\n that.columnsChanged.fire(columnChanges)\r\n }\r\n }\r\n var options\r\n };\r\n var updateSortOrderWhenGrouping = function(that, column, groupIndex, prevGroupIndex) {\r\n var columnWasGrouped = prevGroupIndex >= 0;\r\n if (groupIndex >= 0) {\r\n if (!columnWasGrouped) {\r\n column.lastSortOrder = column.sortOrder\r\n }\r\n } else {\r\n var sortMode = that.option(\"sorting.mode\");\r\n var sortOrder = column.lastSortOrder;\r\n if (\"single\" === sortMode) {\r\n var sortedByAnotherColumn = that._columns.some(col => col !== column && isDefined(col.sortIndex));\r\n if (sortedByAnotherColumn) {\r\n sortOrder = void 0\r\n }\r\n }\r\n column.sortOrder = sortOrder\r\n }\r\n };\r\n var fireOptionChanged = function(that, options) {\r\n var value = options.value;\r\n var optionName = options.optionName;\r\n var prevValue = options.prevValue;\r\n var fullOptionName = options.fullOptionName;\r\n var fullOptionPath = \"\".concat(fullOptionName, \".\").concat(optionName);\r\n if (!IGNORE_COLUMN_OPTION_NAMES[optionName] && that._skipProcessingColumnsChange !== fullOptionPath) {\r\n that._skipProcessingColumnsChange = fullOptionPath;\r\n that.component._notifyOptionChanged(fullOptionPath, value, prevValue);\r\n that._skipProcessingColumnsChange = false\r\n }\r\n };\r\n var columnOptionCore = function(that, column, optionName, value, notFireEvent) {\r\n var optionGetter = compileGetter(optionName);\r\n var columnIndex = column.index;\r\n var columns;\r\n var changeType;\r\n var initialColumn;\r\n if (3 === arguments.length) {\r\n return optionGetter(column, {\r\n functionsAsIs: true\r\n })\r\n }\r\n var prevValue = optionGetter(column, {\r\n functionsAsIs: true\r\n });\r\n if (prevValue !== value) {\r\n if (\"groupIndex\" === optionName || \"calculateGroupValue\" === optionName) {\r\n changeType = \"grouping\";\r\n updateSortOrderWhenGrouping(that, column, value, prevValue)\r\n } else if (\"sortIndex\" === optionName || \"sortOrder\" === optionName || \"calculateSortValue\" === optionName) {\r\n changeType = \"sorting\"\r\n } else {\r\n changeType = \"columns\"\r\n }\r\n var optionSetter = compileSetter(optionName);\r\n optionSetter(column, value, {\r\n functionsAsIs: true\r\n });\r\n var fullOptionName = getColumnFullPath(that, column);\r\n if (COLUMN_INDEX_OPTIONS[optionName]) {\r\n updateIndexes(that, column);\r\n value = optionGetter(column)\r\n }\r\n if (\"name\" === optionName || \"allowEditing\" === optionName) {\r\n that._checkColumns()\r\n }\r\n fullOptionName && fireOptionChanged(that, {\r\n fullOptionName: fullOptionName,\r\n optionName: optionName,\r\n value: value,\r\n prevValue: prevValue\r\n });\r\n if (!isDefined(prevValue) && !isDefined(value) && 0 !== optionName.indexOf(\"buffer\")) {\r\n notFireEvent = true\r\n }\r\n if (!notFireEvent) {\r\n if (inArray(optionName, USER_STATE_FIELD_NAMES) < 0 && \"visibleWidth\" !== optionName) {\r\n columns = that.option(\"columns\");\r\n initialColumn = that.getColumnByPath(fullOptionName, columns);\r\n if (isString(initialColumn)) {\r\n initialColumn = columns[columnIndex] = {\r\n dataField: initialColumn\r\n }\r\n }\r\n if (initialColumn && checkUserStateColumn(initialColumn, column)) {\r\n optionSetter(initialColumn, value, {\r\n functionsAsIs: true\r\n })\r\n }\r\n }\r\n updateColumnChanges(that, changeType, optionName, columnIndex)\r\n } else {\r\n resetColumnsCache(that)\r\n }\r\n }\r\n };\r\n\r\n function isSortOrderValid(sortOrder) {\r\n return \"asc\" === sortOrder || \"desc\" === sortOrder\r\n }\r\n var defaultSetCellValue = function(data, value) {\r\n var path = this.dataField.split(\".\");\r\n var dotCount = path.length - 1;\r\n if (this.serializeValue) {\r\n value = this.serializeValue(value)\r\n }\r\n for (var i = 0; i < dotCount; i++) {\r\n var name = path[i];\r\n data = data[name] = data[name] || {}\r\n }\r\n data[path[dotCount]] = value\r\n };\r\n var isCustomCommandColumn = (that, commandColumn) => !!that._columns.filter(column => column.type === commandColumn.type).length;\r\n var getFixedPosition = function(that, column) {\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n if (column.command && !isCustomCommandColumn(that, column) || !column.fixedPosition) {\r\n return rtlEnabled ? \"right\" : \"left\"\r\n }\r\n return column.fixedPosition\r\n };\r\n var processExpandColumns = function(columns, expandColumns, type, columnIndex) {\r\n var customColumnIndex;\r\n var rowCount = this.getRowCount();\r\n var rowspan = columns[columnIndex] && columns[columnIndex].rowspan;\r\n var expandColumnsByType = expandColumns.filter(column => column.type === type);\r\n columns.forEach((column, index) => {\r\n if (column.type === type) {\r\n customColumnIndex = index;\r\n rowspan = columns[index + 1] ? columns[index + 1].rowspan : rowCount\r\n }\r\n });\r\n if (rowspan > 1) {\r\n expandColumnsByType = map(expandColumnsByType, (function(expandColumn) {\r\n return extend({}, expandColumn, {\r\n rowspan: rowspan\r\n })\r\n }))\r\n }\r\n expandColumnsByType.unshift.apply(expandColumnsByType, isDefined(customColumnIndex) ? [customColumnIndex, 1] : [columnIndex, 0]);\r\n columns.splice.apply(columns, expandColumnsByType);\r\n return rowspan || 1\r\n };\r\n var numberToString = function(number, digitsCount) {\r\n var str = number ? number.toString() : \"0\";\r\n while (str.length < digitsCount) {\r\n str = \"0\" + str\r\n }\r\n return str\r\n };\r\n var mergeColumns = (that, columns, commandColumns, needToExtend) => {\r\n var column;\r\n var commandColumnIndex;\r\n var result = columns.slice().map(column => extend({}, column));\r\n var isColumnFixing = that._isColumnFixing();\r\n var defaultCommandColumns = commandColumns.slice().map(column => extend({\r\n fixed: isColumnFixing\r\n }, column));\r\n var getCommandColumnIndex = column => commandColumns.reduce((result, commandColumn, index) => {\r\n var columnType = needToExtend && column.type === GROUP_COMMAND_COLUMN_NAME ? \"expand\" : column.type;\r\n return commandColumn.type === columnType || commandColumn.command === column.command ? index : result\r\n }, -1);\r\n var callbackFilter = commandColumn => commandColumn.command !== commandColumns[commandColumnIndex].command;\r\n for (var i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n commandColumnIndex = column && (column.type || column.command) ? getCommandColumnIndex(column) : -1;\r\n if (commandColumnIndex >= 0) {\r\n if (needToExtend) {\r\n result[i] = extend({\r\n fixed: isColumnFixing\r\n }, commandColumns[commandColumnIndex], column);\r\n if (column.type !== GROUP_COMMAND_COLUMN_NAME) {\r\n defaultCommandColumns = defaultCommandColumns.filter(callbackFilter)\r\n }\r\n } else {\r\n var columnOptions = {\r\n visibleIndex: column.visibleIndex,\r\n index: column.index,\r\n headerId: column.headerId,\r\n allowFixing: 0 === column.groupIndex,\r\n allowReordering: 0 === column.groupIndex,\r\n groupIndex: column.groupIndex\r\n };\r\n result[i] = extend({}, column, commandColumns[commandColumnIndex], column.type === GROUP_COMMAND_COLUMN_NAME && columnOptions)\r\n }\r\n }\r\n }\r\n if (columns.length && needToExtend && defaultCommandColumns.length) {\r\n result = result.concat(defaultCommandColumns)\r\n }\r\n return result\r\n };\r\n var isColumnFixed = (that, column) => isDefined(column.fixed) || !column.type ? column.fixed : that._isColumnFixing();\r\n var resetBandColumnsCache = that => {\r\n that._bandColumnsCache = void 0\r\n };\r\n var findColumn = (columns, identifier) => {\r\n var identifierOptionName = isString(identifier) && identifier.substr(0, identifier.indexOf(\":\"));\r\n var column;\r\n if (void 0 === identifier) {\r\n return\r\n }\r\n if (identifierOptionName) {\r\n identifier = identifier.substr(identifierOptionName.length + 1)\r\n }\r\n if (identifierOptionName) {\r\n column = columns.filter(column => \"\" + column[identifierOptionName] === identifier)[0]\r\n } else {\r\n [\"index\", \"name\", \"dataField\", \"caption\"].some(optionName => {\r\n column = columns.filter(column => column[optionName] === identifier)[0];\r\n return !!column\r\n })\r\n }\r\n return column\r\n };\r\n return {\r\n _getExpandColumnOptions: function() {\r\n return {\r\n type: \"expand\",\r\n command: \"expand\",\r\n width: \"auto\",\r\n cssClass: COMMAND_EXPAND_CLASS,\r\n allowEditing: false,\r\n allowGrouping: false,\r\n allowSorting: false,\r\n allowResizing: false,\r\n allowReordering: false,\r\n allowHiding: false\r\n }\r\n },\r\n _getFirstItems: function(dataSource) {\r\n var groupsCount;\r\n var items = [];\r\n if (dataSource && dataSource.items().length > 0) {\r\n groupsCount = gridCoreUtils.normalizeSortingInfo(dataSource.group()).length;\r\n items = function getFirstItemsCore(items, groupsCount) {\r\n if (!items || !groupsCount) {\r\n return items\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var childItems = getFirstItemsCore(items[i].items || items[i].collapsedItems, groupsCount - 1);\r\n if (childItems && childItems.length) {\r\n return childItems\r\n }\r\n }\r\n }(dataSource.items(), groupsCount) || []\r\n }\r\n return items\r\n },\r\n _endUpdateCore: function() {\r\n !this._skipProcessingColumnsChange && fireColumnsChanged(this)\r\n },\r\n init: function() {\r\n var columns = this.option(\"columns\");\r\n this._commandColumns = this._commandColumns || [];\r\n this._columns = this._columns || [];\r\n this._isColumnsFromOptions = !!columns;\r\n if (this._isColumnsFromOptions) {\r\n assignColumns(this, columns ? createColumnsFromOptions(this, columns) : []);\r\n applyUserState(this)\r\n } else {\r\n assignColumns(this, this._columnsUserState ? createColumnsFromOptions(this, this._columnsUserState) : this._columns)\r\n }! function(that) {\r\n var options = that._getExpandColumnOptions();\r\n that.addCommandColumn(options)\r\n }(this);\r\n if (this._dataSourceApplied) {\r\n this.applyDataSource(this._dataSource, true)\r\n } else {\r\n updateIndexes(this)\r\n }\r\n this._checkColumns()\r\n },\r\n callbackNames: function() {\r\n return [\"columnsChanged\"]\r\n },\r\n getColumnByPath: function(path, columns) {\r\n var column;\r\n var columnIndexes = [];\r\n path.replace(regExp, (function(_, columnIndex) {\r\n columnIndexes.push(parseInt(columnIndex));\r\n return \"\"\r\n }));\r\n if (columnIndexes.length) {\r\n if (columns) {\r\n column = columnIndexes.reduce((function(column, index) {\r\n return column && column.columns && column.columns[index]\r\n }), {\r\n columns: columns\r\n })\r\n } else {\r\n column = function(that, columnIndexes) {\r\n var result;\r\n var columns;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var callbackFilter = function(column) {\r\n var ownerBand = result ? result.index : void 0;\r\n return column.ownerBand === ownerBand\r\n };\r\n if (bandColumnsCache.isPlain) {\r\n result = that._columns[columnIndexes[0]]\r\n } else {\r\n columns = that._columns.filter(callbackFilter);\r\n for (var i = 0; i < columnIndexes.length; i++) {\r\n result = columns[columnIndexes[i]];\r\n if (result) {\r\n columns = that._columns.filter(callbackFilter)\r\n }\r\n }\r\n }\r\n return result\r\n }(this, columnIndexes)\r\n }\r\n }\r\n return column\r\n },\r\n optionChanged: function(args) {\r\n var needUpdateRequireResize;\r\n switch (args.name) {\r\n case \"adaptColumnWidthByRatio\":\r\n args.handled = true;\r\n break;\r\n case \"dataSource\":\r\n if (args.value !== args.previousValue && !this.option(\"columns\") && (!Array.isArray(args.value) || !Array.isArray(args.previousValue))) {\r\n this._columns = []\r\n }\r\n break;\r\n case \"columns\":\r\n needUpdateRequireResize = this._skipProcessingColumnsChange;\r\n args.handled = true;\r\n if (!this._skipProcessingColumnsChange) {\r\n if (args.name === args.fullName) {\r\n this._columnsUserState = null;\r\n this._ignoreColumnOptionNames = null;\r\n this.init()\r\n } else {\r\n this._columnOptionChanged(args);\r\n needUpdateRequireResize = true\r\n }\r\n }\r\n if (needUpdateRequireResize) {\r\n this._updateRequireResize(args)\r\n }\r\n break;\r\n case \"commonColumnSettings\":\r\n case \"columnAutoWidth\":\r\n case \"allowColumnResizing\":\r\n case \"allowColumnReordering\":\r\n case \"columnFixing\":\r\n case \"grouping\":\r\n case \"groupPanel\":\r\n case \"regenerateColumnsByVisibleItems\":\r\n case \"customizeColumns\":\r\n case \"editing\":\r\n case \"columnHidingEnabled\":\r\n case \"dateSerializationFormat\":\r\n case \"columnResizingMode\":\r\n case \"columnMinWidth\":\r\n case \"columnWidth\":\r\n var _args$fullName, _args$fullName2, _args$fullName3, _args$fullName4, _args$fullName5;\r\n args.handled = true;\r\n var ignoreColumnOptionNames = \"columnWidth\" === args.fullName && [\"width\"];\r\n var isEditingPopup = 0 === (null === (_args$fullName = args.fullName) || void 0 === _args$fullName ? void 0 : _args$fullName.indexOf(\"editing.popup\"));\r\n var isEditingForm = 0 === (null === (_args$fullName2 = args.fullName) || void 0 === _args$fullName2 ? void 0 : _args$fullName2.indexOf(\"editing.form\"));\r\n var isEditRowKey = 0 === (null === (_args$fullName3 = args.fullName) || void 0 === _args$fullName3 ? void 0 : _args$fullName3.indexOf(\"editing.editRowKey\"));\r\n var isEditColumnName = 0 === (null === (_args$fullName4 = args.fullName) || void 0 === _args$fullName4 ? void 0 : _args$fullName4.indexOf(\"editing.editColumnName\"));\r\n var isChanges = 0 === (null === (_args$fullName5 = args.fullName) || void 0 === _args$fullName5 ? void 0 : _args$fullName5.indexOf(\"editing.changes\"));\r\n var needReinit = !isEditingPopup && !isEditingForm && !isEditRowKey && !isChanges && !isEditColumnName;\r\n if (needReinit) {\r\n this.reinit(ignoreColumnOptionNames)\r\n }\r\n break;\r\n case \"rtlEnabled\":\r\n this.reinit();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _columnOptionChanged: function(args) {\r\n var columnOptionValue = {};\r\n var column = this.getColumnByPath(args.fullName);\r\n var columnOptionName = args.fullName.replace(regExp, \"\");\r\n if (column) {\r\n if (columnOptionName) {\r\n columnOptionValue[columnOptionName] = args.value\r\n } else {\r\n columnOptionValue = args.value\r\n }\r\n this._skipProcessingColumnsChange = args.fullName;\r\n this.columnOption(column.index, columnOptionValue);\r\n this._skipProcessingColumnsChange = false\r\n }\r\n },\r\n _updateRequireResize: function(args) {\r\n var component = this.component;\r\n if (\"width\" === args.fullName.replace(regExp, \"\") && component._updateLockCount) {\r\n component._requireResize = true\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"addColumn\", \"deleteColumn\", \"columnOption\", \"columnCount\", \"clearSorting\", \"clearGrouping\", \"getVisibleColumns\", \"getVisibleColumnIndex\"]\r\n },\r\n applyDataSource: function(dataSource, forceApplying) {\r\n var isDataSourceLoaded = dataSource && dataSource.isLoaded();\r\n this._dataSource = dataSource;\r\n if (!this._dataSourceApplied || 0 === this._dataSourceColumnsCount || forceApplying || this.option(\"regenerateColumnsByVisibleItems\")) {\r\n if (isDataSourceLoaded) {\r\n if (!this._isColumnsFromOptions) {\r\n var columnsFromDataSource = function(that, dataSource) {\r\n var firstItems = that._getFirstItems(dataSource);\r\n var fieldName;\r\n var processedFields = {};\r\n var result = [];\r\n for (var i = 0; i < firstItems.length; i++) {\r\n if (firstItems[i]) {\r\n for (fieldName in firstItems[i]) {\r\n if (!isFunction(firstItems[i][fieldName]) || variableWrapper.isWrapped(firstItems[i][fieldName])) {\r\n processedFields[fieldName] = true\r\n }\r\n }\r\n }\r\n }\r\n for (fieldName in processedFields) {\r\n if (0 !== fieldName.indexOf(\"__\")) {\r\n var column = createColumn(that, fieldName);\r\n result.push(column)\r\n }\r\n }\r\n return result\r\n }(this, dataSource);\r\n if (columnsFromDataSource.length) {\r\n assignColumns(this, columnsFromDataSource);\r\n this._dataSourceColumnsCount = this._columns.length;\r\n applyUserState(this)\r\n }\r\n }\r\n return this.updateColumns(dataSource, forceApplying)\r\n } else {\r\n this._dataSourceApplied = false\r\n }\r\n } else if (isDataSourceLoaded && !this.isAllDataTypesDefined(true) && this.updateColumnDataTypes(dataSource)) {\r\n updateColumnChanges(this, \"columns\");\r\n fireColumnsChanged(this);\r\n return (new Deferred).reject().promise()\r\n }\r\n },\r\n reset: function() {\r\n this._dataSourceApplied = false;\r\n this._dataSourceColumnsCount = void 0;\r\n this.reinit()\r\n },\r\n resetColumnsCache: function() {\r\n this._visibleColumns = void 0;\r\n this._fixedColumns = void 0;\r\n this._rowCount = void 0;\r\n resetBandColumnsCache(this)\r\n },\r\n reinit: function(ignoreColumnOptionNames) {\r\n this._columnsUserState = this.getUserState();\r\n this._ignoreColumnOptionNames = ignoreColumnOptionNames || null;\r\n this.init();\r\n if (ignoreColumnOptionNames) {\r\n this._ignoreColumnOptionNames = null\r\n }\r\n },\r\n isInitialized: function() {\r\n return !!this._columns.length || !!this.option(\"columns\")\r\n },\r\n isDataSourceApplied: function() {\r\n return this._dataSourceApplied\r\n },\r\n getCommonSettings: function(column) {\r\n var commonColumnSettings = (!column || !column.type) && this.option(\"commonColumnSettings\") || {};\r\n var groupingOptions = this.option(\"grouping\") || {};\r\n var groupPanelOptions = this.option(\"groupPanel\") || {};\r\n return extend({\r\n allowFixing: this.option(\"columnFixing.enabled\"),\r\n allowResizing: this.option(\"allowColumnResizing\") || void 0,\r\n allowReordering: this.option(\"allowColumnReordering\"),\r\n minWidth: this.option(\"columnMinWidth\"),\r\n width: this.option(\"columnWidth\"),\r\n autoExpandGroup: groupingOptions.autoExpandAll,\r\n allowCollapsing: groupingOptions.allowCollapsing,\r\n allowGrouping: groupPanelOptions.allowColumnDragging && groupPanelOptions.visible || groupingOptions.contextMenuEnabled\r\n }, commonColumnSettings)\r\n },\r\n isColumnOptionUsed: function(optionName) {\r\n for (var i = 0; i < this._columns.length; i++) {\r\n if (this._columns[i][optionName]) {\r\n return true\r\n }\r\n }\r\n },\r\n isAllDataTypesDefined: function(checkSerializers) {\r\n var columns = this._columns;\r\n if (!columns.length) {\r\n return false\r\n }\r\n for (var i = 0; i < columns.length; i++) {\r\n if (!columns[i].dataField && columns[i].calculateCellValue === columns[i].defaultCalculateCellValue) {\r\n continue\r\n }\r\n if (!columns[i].dataType || checkSerializers && columns[i].deserializeValue && void 0 === columns[i].serializationFormat) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n getColumns: function() {\r\n return this._columns\r\n },\r\n isBandColumnsUsed: function() {\r\n return this.getColumns().some((function(column) {\r\n return column.isBand\r\n }))\r\n },\r\n getGroupColumns: function() {\r\n var result = [];\r\n each(this._columns, (function() {\r\n if (isDefined(this.groupIndex)) {\r\n result[this.groupIndex] = this\r\n }\r\n }));\r\n return result\r\n },\r\n getVisibleColumns: function(rowIndex) {\r\n this._visibleColumns = this._visibleColumns || this._getVisibleColumnsCore();\r\n rowIndex = isDefined(rowIndex) ? rowIndex : this._visibleColumns.length - 1;\r\n return this._visibleColumns[rowIndex] || []\r\n },\r\n getFixedColumns: function(rowIndex) {\r\n this._fixedColumns = this._fixedColumns || this._getFixedColumnsCore();\r\n rowIndex = isDefined(rowIndex) ? rowIndex : this._fixedColumns.length - 1;\r\n return this._fixedColumns[rowIndex] || []\r\n },\r\n getFilteringColumns: function() {\r\n return this.getColumns().filter(item => (item.dataField || item.name) && (item.allowFiltering || item.allowHeaderFiltering)).map(item => {\r\n var field = extend(true, {}, item);\r\n if (!isDefined(field.dataField)) {\r\n field.dataField = field.name\r\n }\r\n field.filterOperations = item.filterOperations !== item.defaultFilterOperations ? field.filterOperations : null;\r\n return field\r\n })\r\n },\r\n getColumnIndexOffset: function() {\r\n return 0\r\n },\r\n _getFixedColumnsCore: function() {\r\n var result = [];\r\n var rowCount = this.getRowCount();\r\n var isColumnFixing = this._isColumnFixing();\r\n var transparentColumn = {\r\n command: \"transparent\"\r\n };\r\n var transparentColspan = 0;\r\n var notFixedColumnCount;\r\n var transparentColumnIndex;\r\n var lastFixedPosition;\r\n if (isColumnFixing) {\r\n for (var i = 0; i <= rowCount; i++) {\r\n notFixedColumnCount = 0;\r\n lastFixedPosition = null;\r\n transparentColumnIndex = null;\r\n var visibleColumns = this.getVisibleColumns(i, true);\r\n for (var j = 0; j < visibleColumns.length; j++) {\r\n var prevColumn = visibleColumns[j - 1];\r\n var column = visibleColumns[j];\r\n if (!column.fixed) {\r\n if (0 === i) {\r\n if (column.isBand && column.colspan) {\r\n transparentColspan += column.colspan\r\n } else {\r\n transparentColspan++\r\n }\r\n }\r\n notFixedColumnCount++;\r\n if (!isDefined(transparentColumnIndex)) {\r\n transparentColumnIndex = j\r\n }\r\n } else if (prevColumn && prevColumn.fixed && getFixedPosition(this, prevColumn) !== getFixedPosition(this, column)) {\r\n if (!isDefined(transparentColumnIndex)) {\r\n transparentColumnIndex = j\r\n }\r\n } else {\r\n lastFixedPosition = column.fixedPosition\r\n }\r\n }\r\n if (0 === i && (0 === notFixedColumnCount || notFixedColumnCount >= visibleColumns.length)) {\r\n return []\r\n }\r\n if (!isDefined(transparentColumnIndex)) {\r\n transparentColumnIndex = \"right\" === lastFixedPosition ? 0 : visibleColumns.length\r\n }\r\n result[i] = visibleColumns.slice(0);\r\n if (!transparentColumn.colspan) {\r\n transparentColumn.colspan = transparentColspan\r\n }\r\n result[i].splice(transparentColumnIndex, notFixedColumnCount, transparentColumn)\r\n }\r\n }\r\n return result.map(columns => columns.map(column => {\r\n var newColumn = _extends({}, column);\r\n if (newColumn.headerId) {\r\n newColumn.headerId += \"-fixed\"\r\n }\r\n return newColumn\r\n }))\r\n },\r\n _isColumnFixing: function() {\r\n var isColumnFixing = this.option(\"columnFixing.enabled\");\r\n !isColumnFixing && each(this._columns, (function(_, column) {\r\n if (column.fixed) {\r\n isColumnFixing = true;\r\n return false\r\n }\r\n }));\r\n return isColumnFixing\r\n },\r\n _getExpandColumnsCore: function() {\r\n return this.getGroupColumns()\r\n },\r\n getExpandColumns: function() {\r\n var expandColumns = this._getExpandColumnsCore();\r\n var expandColumn;\r\n var firstGroupColumn = expandColumns.filter(column => 0 === column.groupIndex)[0];\r\n var isFixedFirstGroupColumn = firstGroupColumn && firstGroupColumn.fixed;\r\n var isColumnFixing = this._isColumnFixing();\r\n if (expandColumns.length) {\r\n expandColumn = this.columnOption(\"command:expand\")\r\n }\r\n expandColumns = map(expandColumns, column => extend({}, column, {\r\n visibleWidth: null,\r\n minWidth: null,\r\n cellTemplate: !isDefined(column.groupIndex) ? column.cellTemplate : null,\r\n headerCellTemplate: null,\r\n fixed: !isDefined(column.groupIndex) || !isFixedFirstGroupColumn ? isColumnFixing : true\r\n }, expandColumn, {\r\n index: column.index,\r\n type: column.type || GROUP_COMMAND_COLUMN_NAME\r\n }));\r\n return expandColumns\r\n },\r\n getBandColumnsCache: function() {\r\n if (!this._bandColumnsCache) {\r\n var columns = this._columns;\r\n var columnChildrenByIndex = {};\r\n var columnParentByIndex = {};\r\n var isPlain = true;\r\n columns.forEach((function(column) {\r\n var parentIndex = column.ownerBand;\r\n var parent = columns[parentIndex];\r\n if (column.hasColumns) {\r\n isPlain = false\r\n }\r\n if (column.colspan) {\r\n column.colspan = void 0\r\n }\r\n if (column.rowspan) {\r\n column.rowspan = void 0\r\n }\r\n if (parent) {\r\n columnParentByIndex[column.index] = parent\r\n } else {\r\n parentIndex = -1\r\n }\r\n columnChildrenByIndex[parentIndex] = columnChildrenByIndex[parentIndex] || [];\r\n columnChildrenByIndex[parentIndex].push(column)\r\n }));\r\n this._bandColumnsCache = {\r\n isPlain: isPlain,\r\n columnChildrenByIndex: columnChildrenByIndex,\r\n columnParentByIndex: columnParentByIndex\r\n }\r\n }\r\n return this._bandColumnsCache\r\n },\r\n _isColumnVisible: function(column) {\r\n return column.visible && this.isParentColumnVisible(column.index)\r\n },\r\n _getVisibleColumnsCore: function() {\r\n var that = this;\r\n var i;\r\n var result = [];\r\n var rowspanGroupColumns = 0;\r\n var rowspanExpandColumns = 0;\r\n var rowCount = that.getRowCount();\r\n var positiveIndexedColumns = [];\r\n var negativeIndexedColumns = [];\r\n var notGroupedColumnsCount = 0;\r\n var isFixedToEnd;\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var expandColumns = mergeColumns(that, that.getExpandColumns(), that._columns);\r\n var columns = mergeColumns(that, that._columns, that._commandColumns, true);\r\n var columnDigitsCount = function(number) {\r\n var i;\r\n for (i = 0; number > 1; i++) {\r\n number /= 10\r\n }\r\n return i\r\n }(columns.length);\r\n ! function(that, columns, bandColumnsCache) {\r\n var rowspan;\r\n for (var i = 0; i < columns.length; i++) {\r\n var column = columns[i];\r\n if (column.visible || column.command) {\r\n if (column.isBand) {\r\n column.colspan = column.colspan || calculateColspan(that, column.index)\r\n }\r\n if (!column.isBand || !column.colspan) {\r\n rowspan = that.getRowCount();\r\n if (!column.command && (!isDefined(column.groupIndex) || column.showWhenGrouped)) {\r\n rowspan -= getParentBandColumns(column.index, bandColumnsCache.columnParentByIndex).length\r\n }\r\n if (rowspan > 1) {\r\n column.rowspan = rowspan\r\n }\r\n }\r\n }\r\n }\r\n }(that, columns, bandColumnsCache);\r\n for (i = 0; i < rowCount; i++) {\r\n result[i] = [];\r\n negativeIndexedColumns[i] = [{}];\r\n positiveIndexedColumns[i] = [{}, {}, {}]\r\n }\r\n each(columns, (function() {\r\n var visibleIndex = this.visibleIndex;\r\n var indexedColumns;\r\n var parentBandColumns = getParentBandColumns(this.index, bandColumnsCache.columnParentByIndex);\r\n var visible = that._isColumnVisible(this);\r\n if (visible && (!isDefined(this.groupIndex) || this.showWhenGrouped)) {\r\n var rowIndex = parentBandColumns.length;\r\n if (visibleIndex < 0) {\r\n visibleIndex = -visibleIndex;\r\n indexedColumns = negativeIndexedColumns[rowIndex]\r\n } else {\r\n this.fixed = parentBandColumns.length ? parentBandColumns[0].fixed : this.fixed;\r\n this.fixedPosition = parentBandColumns.length ? parentBandColumns[0].fixedPosition : this.fixedPosition;\r\n if (this.fixed) {\r\n isFixedToEnd = \"right\" === this.fixedPosition;\r\n if (rtlEnabled && (!this.command || isCustomCommandColumn(that, this))) {\r\n isFixedToEnd = !isFixedToEnd\r\n }\r\n if (isFixedToEnd) {\r\n indexedColumns = positiveIndexedColumns[rowIndex][2]\r\n } else {\r\n indexedColumns = positiveIndexedColumns[rowIndex][0]\r\n }\r\n } else {\r\n indexedColumns = positiveIndexedColumns[rowIndex][1]\r\n }\r\n }\r\n if (parentBandColumns.length) {\r\n visibleIndex = numberToString(visibleIndex, columnDigitsCount);\r\n for (i = parentBandColumns.length - 1; i >= 0; i--) {\r\n visibleIndex = numberToString(parentBandColumns[i].visibleIndex, columnDigitsCount) + visibleIndex\r\n }\r\n }\r\n indexedColumns[visibleIndex] = indexedColumns[visibleIndex] || [];\r\n indexedColumns[visibleIndex].push(this);\r\n notGroupedColumnsCount++\r\n }\r\n }));\r\n each(result, (function(rowIndex) {\r\n orderEach(negativeIndexedColumns[rowIndex], (function(_, columns) {\r\n result[rowIndex].unshift.apply(result[rowIndex], columns)\r\n }));\r\n var firstPositiveIndexColumn = result[rowIndex].length;\r\n each(positiveIndexedColumns[rowIndex], (function(index, columnsByFixing) {\r\n orderEach(columnsByFixing, (function(_, columnsByVisibleIndex) {\r\n result[rowIndex].push.apply(result[rowIndex], columnsByVisibleIndex)\r\n }))\r\n }));\r\n if (rowspanExpandColumns < rowIndex + 1) {\r\n rowspanExpandColumns += processExpandColumns.call(that, result[rowIndex], expandColumns, \"detailExpand\", firstPositiveIndexColumn)\r\n }\r\n if (rowspanGroupColumns < rowIndex + 1) {\r\n rowspanGroupColumns += processExpandColumns.call(that, result[rowIndex], expandColumns, GROUP_COMMAND_COLUMN_NAME, firstPositiveIndexColumn)\r\n }\r\n }));\r\n result.push(function getDataColumns(columns, rowIndex, bandColumnID) {\r\n var result = [];\r\n rowIndex = rowIndex || 0;\r\n columns[rowIndex] && each(columns[rowIndex], (function(_, column) {\r\n if (column.ownerBand === bandColumnID || column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n if (!column.isBand || !column.colspan) {\r\n if (!column.command || rowIndex < 1) {\r\n result.push(column)\r\n }\r\n } else {\r\n result.push.apply(result, getDataColumns(columns, rowIndex + 1, column.index))\r\n }\r\n }\r\n }));\r\n return result\r\n }(result));\r\n if (!notGroupedColumnsCount && that._columns.length) {\r\n result[rowCount].push({\r\n command: \"empty\"\r\n })\r\n }\r\n return result\r\n },\r\n getInvisibleColumns: function(columns, bandColumnIndex) {\r\n var that = this;\r\n var result = [];\r\n var hiddenColumnsByBand;\r\n columns = columns || that._columns;\r\n each(columns, (function(_, column) {\r\n if (column.ownerBand !== bandColumnIndex) {\r\n return\r\n }\r\n if (column.isBand) {\r\n if (!column.visible) {\r\n hiddenColumnsByBand = that.getChildrenByBandColumn(column.index)\r\n } else {\r\n hiddenColumnsByBand = that.getInvisibleColumns(that.getChildrenByBandColumn(column.index), column.index)\r\n }\r\n if (hiddenColumnsByBand.length) {\r\n result.push(column);\r\n result = result.concat(hiddenColumnsByBand)\r\n }\r\n return\r\n }\r\n if (!column.visible) {\r\n result.push(column)\r\n }\r\n }));\r\n return result\r\n },\r\n getChooserColumns: function(getAllColumns) {\r\n var columns = getAllColumns ? this.getColumns() : this.getInvisibleColumns();\r\n return grep(columns, (function(column) {\r\n return column.showInColumnChooser\r\n }))\r\n },\r\n allowMoveColumn: function(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var columnIndex = getColumnIndexByVisibleIndex(this, fromVisibleIndex, sourceLocation);\r\n var sourceColumn = this._columns[columnIndex];\r\n if (sourceColumn && (sourceColumn.allowReordering || sourceColumn.allowGrouping || sourceColumn.allowHiding)) {\r\n if (sourceLocation === targetLocation) {\r\n if (\"columnChooser\" === sourceLocation) {\r\n return false\r\n }\r\n fromVisibleIndex = isObject(fromVisibleIndex) ? fromVisibleIndex.columnIndex : fromVisibleIndex;\r\n toVisibleIndex = isObject(toVisibleIndex) ? toVisibleIndex.columnIndex : toVisibleIndex;\r\n return fromVisibleIndex !== toVisibleIndex && fromVisibleIndex + 1 !== toVisibleIndex\r\n } else if (\"group\" === sourceLocation && \"columnChooser\" !== targetLocation || \"group\" === targetLocation) {\r\n return sourceColumn && sourceColumn.allowGrouping\r\n } else if (\"columnChooser\" === sourceLocation || \"columnChooser\" === targetLocation) {\r\n return sourceColumn && sourceColumn.allowHiding\r\n }\r\n return true\r\n }\r\n return false\r\n },\r\n moveColumn: function(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var options = {};\r\n var prevGroupIndex;\r\n var fromIndex = getColumnIndexByVisibleIndex(this, fromVisibleIndex, sourceLocation);\r\n var toIndex = getColumnIndexByVisibleIndex(this, toVisibleIndex, targetLocation);\r\n var targetGroupIndex;\r\n if (fromIndex >= 0) {\r\n var column = this._columns[fromIndex];\r\n toVisibleIndex = isObject(toVisibleIndex) ? toVisibleIndex.columnIndex : toVisibleIndex;\r\n targetGroupIndex = toIndex >= 0 ? this._columns[toIndex].groupIndex : -1;\r\n if (isDefined(column.groupIndex) && \"group\" === sourceLocation) {\r\n if (targetGroupIndex > column.groupIndex) {\r\n targetGroupIndex--\r\n }\r\n if (\"group\" !== targetLocation) {\r\n options.groupIndex = void 0\r\n } else {\r\n prevGroupIndex = column.groupIndex;\r\n delete column.groupIndex;\r\n updateColumnGroupIndexes(this)\r\n }\r\n }\r\n if (\"group\" === targetLocation) {\r\n options.groupIndex = function(that, column, groupIndex) {\r\n var groupColumns = that.getGroupColumns();\r\n var i;\r\n if (groupIndex >= 0) {\r\n for (i = 0; i < groupColumns.length; i++) {\r\n if (groupColumns[i].groupIndex >= groupIndex) {\r\n groupColumns[i].groupIndex++\r\n }\r\n }\r\n } else {\r\n groupIndex = 0;\r\n for (i = 0; i < groupColumns.length; i++) {\r\n groupIndex = Math.max(groupIndex, groupColumns[i].groupIndex + 1)\r\n }\r\n }\r\n return groupIndex\r\n }(this, 0, targetGroupIndex);\r\n column.groupIndex = prevGroupIndex\r\n } else if (toVisibleIndex >= 0) {\r\n var targetColumn = this._columns[toIndex];\r\n if (!targetColumn || column.ownerBand !== targetColumn.ownerBand) {\r\n options.visibleIndex = MAX_SAFE_INTEGER\r\n } else if (isColumnFixed(this, column) ^ isColumnFixed(this, targetColumn)) {\r\n options.visibleIndex = MAX_SAFE_INTEGER\r\n } else {\r\n options.visibleIndex = targetColumn.visibleIndex\r\n }\r\n }\r\n var isVisible = \"columnChooser\" !== targetLocation;\r\n if (column.visible !== isVisible) {\r\n options.visible = isVisible\r\n }\r\n this.columnOption(column.index, options)\r\n }\r\n },\r\n changeSortOrder: function(columnIndex, sortOrder) {\r\n var options = {};\r\n var sortingOptions = this.option(\"sorting\");\r\n var sortingMode = sortingOptions && sortingOptions.mode;\r\n var needResetSorting = \"single\" === sortingMode || !sortOrder;\r\n var allowSorting = \"single\" === sortingMode || \"multiple\" === sortingMode;\r\n var column = this._columns[columnIndex];\r\n if (allowSorting && column && column.allowSorting) {\r\n if (needResetSorting && !isDefined(column.groupIndex)) {\r\n each(this._columns, (function(index) {\r\n if (index !== columnIndex && this.sortOrder) {\r\n if (!isDefined(this.groupIndex)) {\r\n delete this.sortOrder\r\n }\r\n delete this.sortIndex\r\n }\r\n }))\r\n }\r\n if (isSortOrderValid(sortOrder)) {\r\n if (column.sortOrder !== sortOrder) {\r\n options.sortOrder = sortOrder\r\n }\r\n } else if (\"none\" === sortOrder) {\r\n if (column.sortOrder) {\r\n options.sortIndex = void 0;\r\n options.sortOrder = void 0\r\n }\r\n } else {\r\n ! function(column) {\r\n if (\"ctrl\" === sortOrder) {\r\n if (!(\"sortOrder\" in column && \"sortIndex\" in column)) {\r\n return false\r\n }\r\n options.sortOrder = void 0;\r\n options.sortIndex = void 0\r\n } else if (isDefined(column.groupIndex) || isDefined(column.sortIndex)) {\r\n options.sortOrder = \"desc\" === column.sortOrder ? \"asc\" : \"desc\"\r\n } else {\r\n options.sortOrder = \"asc\"\r\n }\r\n return true\r\n }(column)\r\n }\r\n }\r\n this.columnOption(column.index, options)\r\n },\r\n getSortDataSourceParameters: function(useLocalSelector) {\r\n var sortColumns = [];\r\n var sort = [];\r\n each(this._columns, (function() {\r\n if ((this.dataField || this.selector || this.calculateCellValue) && isDefined(this.sortIndex) && !isDefined(this.groupIndex)) {\r\n sortColumns[this.sortIndex] = this\r\n }\r\n }));\r\n each(sortColumns, (function() {\r\n var sortOrder = this && this.sortOrder;\r\n if (isSortOrderValid(sortOrder)) {\r\n var sortItem = {\r\n selector: this.calculateSortValue || this.displayField || this.calculateDisplayValue || useLocalSelector && this.selector || this.dataField || this.calculateCellValue,\r\n desc: \"desc\" === this.sortOrder\r\n };\r\n if (this.sortingMethod) {\r\n sortItem.compare = this.sortingMethod.bind(this)\r\n }\r\n sort.push(sortItem)\r\n }\r\n }));\r\n return sort.length > 0 ? sort : null\r\n },\r\n getGroupDataSourceParameters: function(useLocalSelector) {\r\n var group = [];\r\n each(this.getGroupColumns(), (function() {\r\n var selector = this.calculateGroupValue || this.displayField || this.calculateDisplayValue || useLocalSelector && this.selector || this.dataField || this.calculateCellValue;\r\n if (selector) {\r\n var groupItem = {\r\n selector: selector,\r\n desc: \"desc\" === this.sortOrder,\r\n isExpanded: !!this.autoExpandGroup\r\n };\r\n if (this.sortingMethod) {\r\n groupItem.compare = this.sortingMethod.bind(this)\r\n }\r\n group.push(groupItem)\r\n }\r\n }));\r\n return group.length > 0 ? group : null\r\n },\r\n refresh: function(updateNewLookupsOnly) {\r\n var deferreds = [];\r\n each(this._columns, (function() {\r\n var lookup = this.lookup;\r\n if (lookup && !this.calculateDisplayValue) {\r\n if (updateNewLookupsOnly && lookup.valueMap) {\r\n return\r\n }\r\n if (lookup.update) {\r\n deferreds.push(lookup.update())\r\n }\r\n }\r\n }));\r\n return when.apply($, deferreds).done(resetColumnsCache.bind(null, this))\r\n },\r\n _updateColumnOptions: function(column, columnIndex) {\r\n column.selector = column.selector || function(data) {\r\n return column.calculateCellValue(data)\r\n };\r\n each([\"calculateSortValue\", \"calculateGroupValue\", \"calculateDisplayValue\"], (function(_, calculateCallbackName) {\r\n var calculateCallback = column[calculateCallbackName];\r\n if (isFunction(calculateCallback) && !calculateCallback.originalCallback) {\r\n column[calculateCallbackName] = function(data) {\r\n return calculateCallback.call(column, data)\r\n };\r\n column[calculateCallbackName].originalCallback = calculateCallback;\r\n column[calculateCallbackName].columnIndex = columnIndex\r\n }\r\n }));\r\n if (isString(column.calculateDisplayValue)) {\r\n column.displayField = column.calculateDisplayValue;\r\n column.calculateDisplayValue = compileGetter(column.displayField)\r\n }\r\n if (column.calculateDisplayValue) {\r\n column.displayValueMap = column.displayValueMap || {}\r\n }\r\n updateSerializers(column, column.dataType);\r\n var lookup = column.lookup;\r\n if (lookup) {\r\n updateSerializers(lookup, lookup.dataType)\r\n }\r\n var dataType = lookup ? lookup.dataType : column.dataType;\r\n if (dataType) {\r\n column.alignment = column.alignment || function(dataType, isRTL) {\r\n switch (dataType) {\r\n case \"number\":\r\n return \"right\";\r\n case \"boolean\":\r\n return \"center\";\r\n default:\r\n return getDefaultAlignment(isRTL)\r\n }\r\n }(dataType, this.option(\"rtlEnabled\"));\r\n column.format = column.format || gridCoreUtils.getFormatByDataType(dataType);\r\n column.customizeText = column.customizeText || getCustomizeTextByDataType(dataType);\r\n column.defaultFilterOperations = column.defaultFilterOperations || !lookup && DATATYPE_OPERATIONS[dataType] || [];\r\n if (!isDefined(column.filterOperations)) {\r\n setFilterOperationsAsDefaultValues(column)\r\n }\r\n column.defaultFilterOperation = column.filterOperations && column.filterOperations[0] || \"=\";\r\n column.showEditorAlways = isDefined(column.showEditorAlways) ? column.showEditorAlways : \"boolean\" === dataType && !column.cellTemplate\r\n }\r\n },\r\n updateColumnDataTypes: function(dataSource) {\r\n var that = this;\r\n var dateSerializationFormat = that.option(\"dateSerializationFormat\");\r\n var firstItems = that._getFirstItems(dataSource);\r\n var isColumnDataTypesUpdated = false;\r\n each(that._columns, (function(index, column) {\r\n var i;\r\n var value;\r\n var dataType;\r\n var lookupDataType;\r\n var valueDataType;\r\n var lookup = column.lookup;\r\n if (gridCoreUtils.isDateType(column.dataType) && void 0 === column.serializationFormat) {\r\n column.serializationFormat = dateSerializationFormat\r\n }\r\n if (lookup && gridCoreUtils.isDateType(lookup.dataType) && void 0 === column.serializationFormat) {\r\n lookup.serializationFormat = dateSerializationFormat\r\n }\r\n if (column.calculateCellValue && firstItems.length) {\r\n if (!column.dataType || lookup && !lookup.dataType) {\r\n for (i = 0; i < firstItems.length; i++) {\r\n value = column.calculateCellValue(firstItems[i]);\r\n if (!column.dataType) {\r\n valueDataType = getValueDataType(value);\r\n dataType = dataType || valueDataType;\r\n if (dataType && valueDataType && dataType !== valueDataType) {\r\n dataType = \"string\"\r\n }\r\n }\r\n if (lookup && !lookup.dataType) {\r\n valueDataType = getValueDataType(gridCoreUtils.getDisplayValue(column, value, firstItems[i]));\r\n lookupDataType = lookupDataType || valueDataType;\r\n if (lookupDataType && valueDataType && lookupDataType !== valueDataType) {\r\n lookupDataType = \"string\"\r\n }\r\n }\r\n }\r\n if (dataType || lookupDataType) {\r\n if (dataType) {\r\n column.dataType = dataType\r\n }\r\n if (lookup && lookupDataType) {\r\n lookup.dataType = lookupDataType\r\n }\r\n isColumnDataTypesUpdated = true\r\n }\r\n }\r\n if (void 0 === column.serializationFormat || lookup && void 0 === lookup.serializationFormat) {\r\n for (i = 0; i < firstItems.length; i++) {\r\n value = column.calculateCellValue(firstItems[i], true);\r\n if (void 0 === column.serializationFormat) {\r\n column.serializationFormat = getSerializationFormat(column.dataType, value)\r\n }\r\n if (lookup && void 0 === lookup.serializationFormat) {\r\n lookup.serializationFormat = getSerializationFormat(lookup.dataType, lookup.calculateCellValue(value, true))\r\n }\r\n }\r\n }\r\n }\r\n that._updateColumnOptions(column, index)\r\n }));\r\n return isColumnDataTypesUpdated\r\n },\r\n _customizeColumns: function(columns) {\r\n var customizeColumns = this.option(\"customizeColumns\");\r\n if (customizeColumns) {\r\n var hasOwnerBand = columns.some((function(column) {\r\n return isObject(column.ownerBand)\r\n }));\r\n if (hasOwnerBand) {\r\n updateIndexes(this)\r\n }\r\n customizeColumns(columns);\r\n assignColumns(this, createColumnsFromOptions(this, columns))\r\n }\r\n },\r\n updateColumns: function(dataSource, forceApplying) {\r\n if (!forceApplying) {\r\n this.updateSortingGrouping(dataSource)\r\n }\r\n if (!dataSource || dataSource.isLoaded()) {\r\n var sortParameters = dataSource ? dataSource.sort() || [] : this.getSortDataSourceParameters();\r\n var groupParameters = dataSource ? dataSource.group() || [] : this.getGroupDataSourceParameters();\r\n var filterParameters = null === dataSource || void 0 === dataSource ? void 0 : dataSource.lastLoadOptions().filter;\r\n this._customizeColumns(this._columns);\r\n updateIndexes(this);\r\n var columns = this._columns;\r\n return when(this.refresh(true)).always(() => {\r\n if (this._columns !== columns) {\r\n return\r\n }\r\n this._updateChanges(dataSource, {\r\n sorting: sortParameters,\r\n grouping: groupParameters,\r\n filtering: filterParameters\r\n });\r\n fireColumnsChanged(this)\r\n })\r\n }\r\n },\r\n _updateChanges: function(dataSource, parameters) {\r\n if (dataSource) {\r\n this.updateColumnDataTypes(dataSource);\r\n this._dataSourceApplied = true\r\n }\r\n if (!gridCoreUtils.equalSortParameters(parameters.sorting, this.getSortDataSourceParameters())) {\r\n updateColumnChanges(this, \"sorting\")\r\n }\r\n if (!gridCoreUtils.equalSortParameters(parameters.grouping, this.getGroupDataSourceParameters())) {\r\n updateColumnChanges(this, \"grouping\")\r\n }\r\n var dataController = this.getController(\"data\");\r\n if (dataController && !gridCoreUtils.equalFilterParameters(parameters.filtering, dataController.getCombinedFilter())) {\r\n updateColumnChanges(this, \"filtering\")\r\n }\r\n updateColumnChanges(this, \"columns\")\r\n },\r\n updateSortingGrouping: function(dataSource, fromDataSource) {\r\n var that = this;\r\n var sortParameters;\r\n var isColumnsChanged;\r\n var updateSortGroupParameterIndexes = function(columns, sortParameters, indexParameterName) {\r\n each(columns, (function(index, column) {\r\n delete column[indexParameterName];\r\n if (sortParameters) {\r\n for (var i = 0; i < sortParameters.length; i++) {\r\n var selector = sortParameters[i].selector;\r\n var isExpanded = sortParameters[i].isExpanded;\r\n if (selector === column.dataField || selector === column.name || selector === column.selector || selector === column.calculateCellValue || selector === column.calculateGroupValue || selector === column.calculateDisplayValue) {\r\n column.sortOrder = column.sortOrder || (sortParameters[i].desc ? \"desc\" : \"asc\");\r\n if (void 0 !== isExpanded) {\r\n column.autoExpandGroup = isExpanded\r\n }\r\n column[indexParameterName] = i;\r\n break\r\n }\r\n }\r\n }\r\n }))\r\n };\r\n if (dataSource) {\r\n sortParameters = gridCoreUtils.normalizeSortingInfo(dataSource.sort());\r\n var groupParameters = gridCoreUtils.normalizeSortingInfo(dataSource.group());\r\n var columnsGroupParameters = that.getGroupDataSourceParameters();\r\n var columnsSortParameters = that.getSortDataSourceParameters();\r\n if (!that._columns.length) {\r\n each(groupParameters, (function(index, group) {\r\n that._columns.push(group.selector)\r\n }));\r\n each(sortParameters, (function(index, sort) {\r\n that._columns.push(sort.selector)\r\n }));\r\n assignColumns(that, createColumnsFromOptions(that, that._columns))\r\n }\r\n if ((fromDataSource || !columnsGroupParameters && !that._hasUserState) && !gridCoreUtils.equalSortParameters(groupParameters, columnsGroupParameters)) {\r\n updateSortGroupParameterIndexes(that._columns, groupParameters, \"groupIndex\");\r\n if (fromDataSource) {\r\n updateColumnChanges(that, \"grouping\");\r\n isColumnsChanged = true\r\n }\r\n }\r\n if ((fromDataSource || !columnsSortParameters && !that._hasUserState) && !gridCoreUtils.equalSortParameters(sortParameters, columnsSortParameters)) {\r\n updateSortGroupParameterIndexes(that._columns, sortParameters, \"sortIndex\");\r\n if (fromDataSource) {\r\n updateColumnChanges(that, \"sorting\");\r\n isColumnsChanged = true\r\n }\r\n }\r\n if (isColumnsChanged) {\r\n fireColumnsChanged(that)\r\n }\r\n }\r\n },\r\n updateFilter: function(filter, remoteFiltering, columnIndex, filterValue) {\r\n if (!Array.isArray(filter)) {\r\n return filter\r\n }\r\n filter = extend([], filter);\r\n columnIndex = void 0 !== filter.columnIndex ? filter.columnIndex : columnIndex;\r\n filterValue = void 0 !== filter.filterValue ? filter.filterValue : filterValue;\r\n if (isString(filter[0]) && \"!\" !== filter[0]) {\r\n var column = this.columnOption(filter[0]);\r\n if (remoteFiltering) {\r\n if (config().forceIsoDateParsing && column && column.serializeValue && filter.length > 1) {\r\n filter[filter.length - 1] = column.serializeValue(filter[filter.length - 1], \"filter\")\r\n }\r\n } else if (column && column.selector) {\r\n filter[0] = column.selector;\r\n filter[0].columnIndex = column.index\r\n }\r\n } else if (isFunction(filter[0])) {\r\n filter[0].columnIndex = columnIndex;\r\n filter[0].filterValue = filterValue\r\n }\r\n for (var i = 0; i < filter.length; i++) {\r\n filter[i] = this.updateFilter(filter[i], remoteFiltering, columnIndex, filterValue)\r\n }\r\n return filter\r\n },\r\n columnCount: function() {\r\n return this._columns ? this._columns.length : 0\r\n },\r\n columnOption: function(identifier, option, value, notFireEvent) {\r\n var that = this;\r\n var columns = that._columns.concat(that._commandColumns);\r\n var column = findColumn(columns, identifier);\r\n if (column) {\r\n if (1 === arguments.length) {\r\n return extend({}, column)\r\n }\r\n if (isString(option)) {\r\n if (2 === arguments.length) {\r\n return columnOptionCore(that, column, option)\r\n } else {\r\n columnOptionCore(that, column, option, value, notFireEvent)\r\n }\r\n } else if (isObject(option)) {\r\n each(option, (function(optionName, value) {\r\n columnOptionCore(that, column, optionName, value, notFireEvent)\r\n }))\r\n }\r\n fireColumnsChanged(that)\r\n }\r\n },\r\n clearSorting: function() {\r\n var columnCount = this.columnCount();\r\n this.beginUpdate();\r\n for (var i = 0; i < columnCount; i++) {\r\n this.columnOption(i, \"sortOrder\", void 0)\r\n }\r\n this.endUpdate()\r\n },\r\n clearGrouping: function() {\r\n var columnCount = this.columnCount();\r\n this.beginUpdate();\r\n for (var i = 0; i < columnCount; i++) {\r\n this.columnOption(i, \"groupIndex\", void 0)\r\n }\r\n this.endUpdate()\r\n },\r\n getVisibleIndex: function(index, rowIndex) {\r\n var columns = this.getVisibleColumns(rowIndex);\r\n for (var i = columns.length - 1; i >= 0; i--) {\r\n if (columns[i].index === index) {\r\n return i\r\n }\r\n }\r\n return -1\r\n },\r\n getVisibleIndexByColumn: function(column, rowIndex) {\r\n var visibleColumns = this.getVisibleColumns(rowIndex);\r\n var visibleColumn = visibleColumns.filter(col => col.index === column.index && col.command === column.command)[0];\r\n return visibleColumns.indexOf(visibleColumn)\r\n },\r\n getVisibleColumnIndex: function(id, rowIndex) {\r\n var index = this.columnOption(id, \"index\");\r\n return this.getVisibleIndex(index, rowIndex)\r\n },\r\n addColumn: function(options) {\r\n var column = createColumn(this, options);\r\n var index = this._columns.length;\r\n this._columns.push(column);\r\n if (column.isBand) {\r\n this._columns = createColumnsFromOptions(this, this._columns);\r\n column = this._columns[index]\r\n }\r\n column.added = options;\r\n updateIndexes(this, column);\r\n this.updateColumns(this._dataSource);\r\n this._checkColumns()\r\n },\r\n deleteColumn: function(id) {\r\n var column = this.columnOption(id);\r\n if (column && column.index >= 0) {\r\n columns = this._columns, void columns.forEach(column => {\r\n if (isDefined(column.ownerBand)) {\r\n column.ownerBand = columns[column.ownerBand]\r\n }\r\n });\r\n this._columns.splice(column.index, 1);\r\n if (column.isBand) {\r\n var childIndexes = this.getChildrenByBandColumn(column.index).map(column => column.index);\r\n this._columns = this._columns.filter(column => childIndexes.indexOf(column.index) < 0)\r\n }\r\n updateIndexes(this);\r\n this.updateColumns(this._dataSource)\r\n }\r\n var columns\r\n },\r\n addCommandColumn: function(options) {\r\n var commandColumn = this._commandColumns.filter(column => column.command === options.command)[0];\r\n if (!commandColumn) {\r\n commandColumn = options;\r\n this._commandColumns.push(commandColumn)\r\n }\r\n },\r\n getUserState: function() {\r\n var columns = this._columns;\r\n var result = [];\r\n var i;\r\n\r\n function handleStateField(index, value) {\r\n if (void 0 !== columns[i][value]) {\r\n result[i][value] = columns[i][value]\r\n }\r\n }\r\n for (i = 0; i < columns.length; i++) {\r\n result[i] = {};\r\n each(USER_STATE_FIELD_NAMES, handleStateField)\r\n }\r\n return result\r\n },\r\n setName: function(column) {\r\n var dataField = column.dataField;\r\n if (!isDefined(column.name) && isDefined(dataField)) {\r\n column.name = dataField\r\n }\r\n },\r\n setUserState: function(state) {\r\n var dataSource = this._dataSource;\r\n var ignoreColumnOptionNames = this.option(\"stateStoring.ignoreColumnOptionNames\");\r\n null === state || void 0 === state ? void 0 : state.forEach(this.setName);\r\n if (!ignoreColumnOptionNames) {\r\n ignoreColumnOptionNames = [];\r\n var commonColumnSettings = this.getCommonSettings();\r\n if (!this.option(\"columnChooser.enabled\")) {\r\n ignoreColumnOptionNames.push(\"visible\")\r\n }\r\n if (\"none\" === this.option(\"sorting.mode\")) {\r\n ignoreColumnOptionNames.push(\"sortIndex\", \"sortOrder\")\r\n }\r\n if (!commonColumnSettings.allowGrouping) {\r\n ignoreColumnOptionNames.push(\"groupIndex\")\r\n }\r\n if (!commonColumnSettings.allowFixing) {\r\n ignoreColumnOptionNames.push(\"fixed\", \"fixedPosition\")\r\n }\r\n if (!commonColumnSettings.allowResizing) {\r\n ignoreColumnOptionNames.push(\"width\", \"visibleWidth\")\r\n }\r\n var isFilterPanelHidden = !this.option(\"filterPanel.visible\");\r\n if (!this.option(\"filterRow.visible\") && isFilterPanelHidden) {\r\n ignoreColumnOptionNames.push(\"filterValue\", \"selectedFilterOperation\")\r\n }\r\n if (!this.option(\"headerFilter.visible\") && isFilterPanelHidden) {\r\n ignoreColumnOptionNames.push(\"filterValues\", \"filterType\")\r\n }\r\n }\r\n this._columnsUserState = state;\r\n this._ignoreColumnOptionNames = ignoreColumnOptionNames;\r\n this._hasUserState = !!state;\r\n updateColumnChanges(this, \"filtering\");\r\n this.init();\r\n if (dataSource) {\r\n dataSource.sort(this.getSortDataSourceParameters());\r\n dataSource.group(this.getGroupDataSourceParameters())\r\n }\r\n },\r\n _checkColumns: function() {\r\n var usedNames = {};\r\n var hasEditableColumnWithoutName = false;\r\n var duplicatedNames = [];\r\n this._columns.forEach(column => {\r\n var _column$columns;\r\n var name = column.name;\r\n var isBand = null === (_column$columns = column.columns) || void 0 === _column$columns ? void 0 : _column$columns.length;\r\n var isEditable = column.allowEditing && (column.dataField || column.setCellValue) && !isBand;\r\n if (name) {\r\n if (usedNames[name]) {\r\n duplicatedNames.push('\"'.concat(name, '\"'))\r\n }\r\n usedNames[name] = true\r\n } else if (isEditable) {\r\n hasEditableColumnWithoutName = true\r\n }\r\n });\r\n if (duplicatedNames.length) {\r\n errors.log(\"E1059\", duplicatedNames.join(\", \"))\r\n }\r\n if (hasEditableColumnWithoutName) {\r\n errors.log(\"E1060\")\r\n }\r\n },\r\n _createCalculatedColumnOptions: function(columnOptions, bandColumn) {\r\n var calculatedColumnOptions = {};\r\n var dataField = columnOptions.dataField;\r\n if (Array.isArray(columnOptions.columns) && columnOptions.columns.length || columnOptions.isBand) {\r\n calculatedColumnOptions.isBand = true;\r\n dataField = null\r\n }\r\n if (dataField) {\r\n if (isString(dataField)) {\r\n var getter = compileGetter(dataField);\r\n calculatedColumnOptions = {\r\n caption: captionize(dataField),\r\n calculateCellValue: function(data, skipDeserialization) {\r\n var value = getter(data);\r\n return this.deserializeValue && !skipDeserialization ? this.deserializeValue(value) : value\r\n },\r\n setCellValue: defaultSetCellValue,\r\n parseValue: function(text) {\r\n var result;\r\n var parsedValue;\r\n if (\"number\" === this.dataType) {\r\n if (isString(text) && this.format) {\r\n parsedValue = numberLocalization.parse(text);\r\n if (isNumeric(parsedValue)) {\r\n result = parsedValue\r\n }\r\n } else if (isDefined(text) && isNumeric(text)) {\r\n result = Number(text)\r\n }\r\n } else if (\"boolean\" === this.dataType) {\r\n if (text === this.trueText) {\r\n result = true\r\n } else if (text === this.falseText) {\r\n result = false\r\n }\r\n } else if (gridCoreUtils.isDateType(this.dataType)) {\r\n parsedValue = dateLocalization.parse(text, this.format);\r\n if (parsedValue) {\r\n result = parsedValue\r\n }\r\n } else {\r\n result = text\r\n }\r\n return result\r\n }\r\n }\r\n }\r\n calculatedColumnOptions.allowFiltering = true\r\n } else {\r\n calculatedColumnOptions.allowFiltering = !!columnOptions.calculateFilterExpression\r\n }\r\n calculatedColumnOptions.calculateFilterExpression = function() {\r\n return filterUtils.defaultCalculateFilterExpression.apply(this, arguments)\r\n };\r\n calculatedColumnOptions.createFilterExpression = function(filterValue) {\r\n var result;\r\n if (this.calculateFilterExpression) {\r\n result = this.calculateFilterExpression.apply(this, arguments)\r\n }\r\n if (isFunction(result)) {\r\n result = [result, \"=\", true]\r\n }\r\n if (result) {\r\n result.columnIndex = this.index;\r\n result.filterValue = filterValue\r\n }\r\n return result\r\n };\r\n if (!dataField || !isString(dataField)) {\r\n extend(true, calculatedColumnOptions, {\r\n allowSorting: false,\r\n allowGrouping: false,\r\n calculateCellValue: function() {\r\n return null\r\n }\r\n })\r\n }\r\n if (bandColumn) {\r\n calculatedColumnOptions.allowFixing = false\r\n }\r\n if (columnOptions.dataType) {\r\n calculatedColumnOptions.userDataType = columnOptions.dataType\r\n }\r\n if (columnOptions.selectedFilterOperation && !(\"defaultSelectedFilterOperation\" in calculatedColumnOptions)) {\r\n calculatedColumnOptions.defaultSelectedFilterOperation = columnOptions.selectedFilterOperation\r\n }\r\n if (columnOptions.lookup) {\r\n calculatedColumnOptions.lookup = {\r\n calculateCellValue: function(value, skipDeserialization) {\r\n if (this.valueExpr) {\r\n value = this.valueMap && this.valueMap[value]\r\n }\r\n return this.deserializeValue && !skipDeserialization ? this.deserializeValue(value) : value\r\n },\r\n updateValueMap: function() {\r\n this.valueMap = {};\r\n if (this.items) {\r\n var calculateValue = compileGetter(this.valueExpr);\r\n var calculateDisplayValue = compileGetter(this.displayExpr);\r\n for (var i = 0; i < this.items.length; i++) {\r\n var item = this.items[i];\r\n var displayValue = calculateDisplayValue(item);\r\n this.valueMap[calculateValue(item)] = displayValue;\r\n this.dataType = this.dataType || getValueDataType(displayValue)\r\n }\r\n }\r\n },\r\n update: function() {\r\n var that = this;\r\n var dataSource = that.dataSource;\r\n if (dataSource) {\r\n if (isFunction(dataSource) && !variableWrapper.isWrapped(dataSource)) {\r\n dataSource = dataSource({})\r\n }\r\n if (isPlainObject(dataSource) || dataSource instanceof Store || Array.isArray(dataSource)) {\r\n if (that.valueExpr) {\r\n var dataSourceOptions = normalizeDataSourceOptions(dataSource);\r\n dataSourceOptions.paginate = false;\r\n dataSource = new DataSource(dataSourceOptions);\r\n return dataSource.load().done((function(data) {\r\n that.items = data;\r\n that.updateValueMap && that.updateValueMap()\r\n }))\r\n }\r\n } else {\r\n errors.log(\"E1016\")\r\n }\r\n } else {\r\n that.updateValueMap && that.updateValueMap()\r\n }\r\n }\r\n }\r\n }\r\n calculatedColumnOptions.resizedCallbacks = Callbacks();\r\n if (columnOptions.resized) {\r\n calculatedColumnOptions.resizedCallbacks.add(columnOptions.resized.bind(columnOptions))\r\n }\r\n each(calculatedColumnOptions, (function(optionName) {\r\n if (isFunction(calculatedColumnOptions[optionName]) && 0 !== optionName.indexOf(\"default\")) {\r\n var defaultOptionName = \"default\" + optionName.charAt(0).toUpperCase() + optionName.substr(1);\r\n calculatedColumnOptions[defaultOptionName] = calculatedColumnOptions[optionName]\r\n }\r\n }));\r\n return calculatedColumnOptions\r\n },\r\n getRowCount: function() {\r\n this._rowCount = this._rowCount || function(that) {\r\n var rowCount = 1;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var columnParentByIndex = bandColumnsCache.columnParentByIndex;\r\n that._columns.forEach((function(column) {\r\n var parents = getParentBandColumns(column.index, columnParentByIndex);\r\n var invisibleParents = parents.filter((function(column) {\r\n return !column.visible\r\n }));\r\n if (column.visible && !invisibleParents.length) {\r\n rowCount = Math.max(rowCount, parents.length + 1)\r\n }\r\n }));\r\n return rowCount\r\n }(this);\r\n return this._rowCount\r\n },\r\n getRowIndex: function(columnIndex, alwaysGetRowIndex) {\r\n var column = this._columns[columnIndex];\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n return column && (alwaysGetRowIndex || column.visible && !(column.command || isDefined(column.groupIndex))) ? getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex).length : 0\r\n },\r\n getChildrenByBandColumn: function(bandColumnIndex, onlyVisibleDirectChildren) {\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var result = _getChildrenByBandColumn(bandColumnIndex, bandColumnsCache.columnChildrenByIndex, !onlyVisibleDirectChildren);\r\n if (onlyVisibleDirectChildren) {\r\n return result.filter((function(column) {\r\n return column.visible && !column.command\r\n })).sort((function(column1, column2) {\r\n return column1.visibleIndex - column2.visibleIndex\r\n }))\r\n }\r\n return result\r\n },\r\n isParentBandColumn: function(columnIndex, bandColumnIndex) {\r\n var result = false;\r\n var column = this._columns[columnIndex];\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var parentBandColumns = column && getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex);\r\n if (parentBandColumns) {\r\n each(parentBandColumns, (function(_, bandColumn) {\r\n if (bandColumn.index === bandColumnIndex) {\r\n result = true;\r\n return false\r\n }\r\n }))\r\n }\r\n return result\r\n },\r\n isParentColumnVisible: function(columnIndex) {\r\n var result = true;\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var bandColumns = columnIndex >= 0 && getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex);\r\n bandColumns && each(bandColumns, (function(_, bandColumn) {\r\n result = result && bandColumn.visible;\r\n return result\r\n }));\r\n return result\r\n },\r\n getColumnId: function(column) {\r\n if (column.command && column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n if (isCustomCommandColumn(this, column)) {\r\n return \"type:\" + column.type\r\n }\r\n return \"command:\" + column.command\r\n }\r\n return column.index\r\n },\r\n getCustomizeTextByDataType: getCustomizeTextByDataType,\r\n getHeaderContentAlignment: function(columnAlignment) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (rtlEnabled) {\r\n return \"left\" === columnAlignment ? \"right\" : \"left\"\r\n }\r\n return columnAlignment\r\n }\r\n }\r\n }())\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.columns_controller.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n columnsControllerModule\r\n} from \"../grid_core/ui.grid_core.columns_controller\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\ngridCore.registerModule(\"columns\", {\r\n defaultOptions: function() {\r\n return extend(true, {}, columnsControllerModule.defaultOptions(), {\r\n commonColumnSettings: {\r\n allowExporting: true\r\n }\r\n })\r\n },\r\n controllers: columnsControllerModule.controllers\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.data_source_adapter.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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\nimport gridCore from \"../data_grid/ui.data_grid.core\";\r\nimport {\r\n executeAsync,\r\n getKeyHash\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isPlainObject,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport ArrayStore from \"../../data/array_store\";\r\nimport {\r\n applyBatch\r\n} from \"../../data/array_utils\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nexport default gridCore.Controller.inherit(function() {\r\n function cloneItems(items, groupCount) {\r\n if (items) {\r\n items = items.slice(0);\r\n if (groupCount) {\r\n for (var i = 0; i < items.length; i++) {\r\n items[i] = extend({\r\n key: items[i].key\r\n }, items[i]);\r\n items[i].items = cloneItems(items[i].items, groupCount - 1)\r\n }\r\n }\r\n }\r\n return items\r\n }\r\n\r\n function calculateOperationTypes(loadOptions, lastLoadOptions, isFullReload) {\r\n var operationTypes = {\r\n reload: true,\r\n fullReload: true\r\n };\r\n if (lastLoadOptions) {\r\n operationTypes = {\r\n sorting: !gridCore.equalSortParameters(loadOptions.sort, lastLoadOptions.sort),\r\n grouping: !gridCore.equalSortParameters(loadOptions.group, lastLoadOptions.group, true),\r\n groupExpanding: !gridCore.equalSortParameters(loadOptions.group, lastLoadOptions.group) || lastLoadOptions.groupExpand,\r\n filtering: !gridCore.equalFilterParameters(loadOptions.filter, lastLoadOptions.filter),\r\n pageIndex: loadOptions.pageIndex !== lastLoadOptions.pageIndex,\r\n skip: loadOptions.skip !== lastLoadOptions.skip,\r\n take: loadOptions.take !== lastLoadOptions.take,\r\n pageSize: loadOptions.pageSize !== lastLoadOptions.pageSize,\r\n fullReload: isFullReload\r\n };\r\n operationTypes.reload = isFullReload || operationTypes.sorting || operationTypes.grouping || operationTypes.filtering;\r\n operationTypes.paging = operationTypes.pageIndex || operationTypes.pageSize || operationTypes.take\r\n }\r\n return operationTypes\r\n }\r\n\r\n function getPageKey(pageIndex, loadPageCount) {\r\n return isDefined(loadPageCount) ? \"\".concat(pageIndex, \":\").concat(loadPageCount) : pageIndex\r\n }\r\n\r\n function getPageDataFromCache(options) {\r\n var key = getPageKey(options.pageIndex, options.loadPageCount);\r\n return options.cachedPagesData.pages[key]\r\n }\r\n return {\r\n init: function(dataSource, remoteOperations) {\r\n var that = this;\r\n that._dataSource = dataSource;\r\n that._remoteOperations = remoteOperations || {};\r\n that._isLastPage = !dataSource.isLastPage();\r\n that._hasLastPage = false;\r\n that._currentTotalCount = 0;\r\n that._cachedPagesData = {\r\n pages: {}\r\n };\r\n that._lastOperationTypes = {};\r\n that._eventsStrategy = dataSource._eventsStrategy;\r\n that._skipCorrection = 0;\r\n that._isLoadingAll = false;\r\n that.changed = Callbacks();\r\n that.loadingChanged = Callbacks();\r\n that.loadError = Callbacks();\r\n that.customizeStoreLoadOptions = Callbacks();\r\n that.changing = Callbacks();\r\n that._dataChangedHandler = that._handleDataChanged.bind(that);\r\n that._dataLoadingHandler = that._handleDataLoading.bind(that);\r\n that._dataLoadedHandler = that._handleDataLoaded.bind(that);\r\n that._loadingChangedHandler = that._handleLoadingChanged.bind(that);\r\n that._loadErrorHandler = that._handleLoadError.bind(that);\r\n that._pushHandler = that._handlePush.bind(that);\r\n that._changingHandler = that._handleChanging.bind(that);\r\n dataSource.on(\"changed\", that._dataChangedHandler);\r\n dataSource.on(\"customizeStoreLoadOptions\", that._dataLoadingHandler);\r\n dataSource.on(\"customizeLoadResult\", that._dataLoadedHandler);\r\n dataSource.on(\"loadingChanged\", that._loadingChangedHandler);\r\n dataSource.on(\"loadError\", that._loadErrorHandler);\r\n dataSource.on(\"changing\", that._changingHandler);\r\n dataSource.store().on(\"push\", that._pushHandler);\r\n each(dataSource, (function(memberName, member) {\r\n if (!that[memberName] && isFunction(member)) {\r\n that[memberName] = function() {\r\n return this._dataSource[memberName].apply(this._dataSource, arguments)\r\n }\r\n }\r\n }))\r\n },\r\n remoteOperations: function() {\r\n return this._remoteOperations\r\n },\r\n dispose: function(isSharedDataSource) {\r\n var dataSource = this._dataSource;\r\n var store = dataSource.store();\r\n dataSource.off(\"changed\", this._dataChangedHandler);\r\n dataSource.off(\"customizeStoreLoadOptions\", this._dataLoadingHandler);\r\n dataSource.off(\"customizeLoadResult\", this._dataLoadedHandler);\r\n dataSource.off(\"loadingChanged\", this._loadingChangedHandler);\r\n dataSource.off(\"loadError\", this._loadErrorHandler);\r\n dataSource.off(\"changing\", this._changingHandler);\r\n store && store.off(\"push\", this._pushHandler);\r\n if (!isSharedDataSource) {\r\n dataSource.dispose()\r\n }\r\n },\r\n refresh: function(options, operationTypes) {\r\n var dataSource = this._dataSource;\r\n if (operationTypes.reload) {\r\n this.resetCurrentTotalCount();\r\n this._isLastPage = !dataSource.paginate();\r\n this._hasLastPage = this._isLastPage\r\n }\r\n },\r\n resetCurrentTotalCount: function() {\r\n this._currentTotalCount = 0;\r\n this._skipCorrection = 0\r\n },\r\n resetCache: function() {\r\n this._cachedStoreData = void 0;\r\n this._cachedPagingData = void 0\r\n },\r\n resetPagesCache: function() {\r\n this._cachedPagesData = {\r\n pages: {}\r\n }\r\n },\r\n _needClearStoreDataCache: function() {\r\n var remoteOperations = this.remoteOperations();\r\n var operationTypes = calculateOperationTypes(this._lastLoadOptions || {}, {});\r\n var isLocalOperations = Object.keys(remoteOperations).every(operationName => !operationTypes[operationName] || !remoteOperations[operationName]);\r\n return !isLocalOperations\r\n },\r\n push: function(changes, fromStore) {\r\n var store = this.store();\r\n if (this._needClearStoreDataCache()) {\r\n this._cachedStoreData = void 0\r\n }\r\n this._cachedPagingData = void 0;\r\n this.resetPagesCache(true);\r\n if (this._cachedStoreData) {\r\n applyBatch({\r\n keyInfo: store,\r\n data: this._cachedStoreData,\r\n changes: changes\r\n })\r\n }\r\n if (!fromStore) {\r\n this._applyBatch(changes)\r\n }\r\n },\r\n getDataIndexGetter: function() {\r\n if (!this._dataIndexGetter) {\r\n var indexByKey;\r\n var storeData;\r\n var store = this.store();\r\n this._dataIndexGetter = data => {\r\n var isCacheUpdated = storeData && storeData !== this._cachedStoreData;\r\n if (!indexByKey || isCacheUpdated) {\r\n storeData = this._cachedStoreData || [];\r\n indexByKey = {};\r\n for (var i = 0; i < storeData.length; i++) {\r\n indexByKey[getKeyHash(store.keyOf(storeData[i]))] = i\r\n }\r\n }\r\n return indexByKey[getKeyHash(store.keyOf(data))]\r\n }\r\n }\r\n return this._dataIndexGetter\r\n },\r\n _getKeyInfo: function() {\r\n return this.store()\r\n },\r\n _applyBatch: function(changes) {\r\n var keyInfo = this._getKeyInfo();\r\n var dataSource = this._dataSource;\r\n var groupCount = gridCore.normalizeSortingInfo(this.group()).length;\r\n var totalCount = this.totalCount();\r\n var isVirtualMode = \"virtual\" === this.option(\"scrolling.mode\");\r\n changes = changes.filter((function(change) {\r\n return !dataSource.paginate() || \"insert\" !== change.type || void 0 !== change.index\r\n }));\r\n var getItemCount = () => groupCount ? this.itemsCount() : this._items.length;\r\n var oldItemCount = getItemCount();\r\n applyBatch({\r\n keyInfo: keyInfo,\r\n data: this._items,\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: true\r\n });\r\n applyBatch({\r\n keyInfo: keyInfo,\r\n data: dataSource.items(),\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: true\r\n });\r\n if (this._currentTotalCount > 0 || isVirtualMode && totalCount === oldItemCount) {\r\n this._skipCorrection += getItemCount() - oldItemCount\r\n }\r\n changes.splice(0, changes.length)\r\n },\r\n _handlePush: function(changes) {\r\n this.push(changes, true)\r\n },\r\n _handleChanging: function(e) {\r\n this.changing.fire(e);\r\n this._applyBatch(e.changes)\r\n },\r\n _needCleanCacheByOperation: function(operationType, remoteOperations) {\r\n var operationTypesByOrder = [\"filtering\", \"sorting\", \"paging\"];\r\n var operationTypeIndex = operationTypesByOrder.indexOf(operationType);\r\n var currentOperationTypes = operationTypeIndex >= 0 ? operationTypesByOrder.slice(operationTypeIndex) : [operationType];\r\n return currentOperationTypes.some(operationType => remoteOperations[operationType])\r\n },\r\n _customizeRemoteOperations: function(options, operationTypes) {\r\n var that = this;\r\n var cachedStoreData = that._cachedStoreData;\r\n var cachedPagingData = that._cachedPagingData;\r\n var cachedPagesData = that._cachedPagesData;\r\n if (options.storeLoadOptions.filter && !options.remoteOperations.filtering || options.storeLoadOptions.sort && !options.remoteOperations.sorting) {\r\n options.remoteOperations = {\r\n filtering: options.remoteOperations.filtering\r\n }\r\n }\r\n if (operationTypes.fullReload) {\r\n cachedStoreData = void 0;\r\n cachedPagingData = void 0;\r\n cachedPagesData = {\r\n pages: {}\r\n }\r\n } else {\r\n if (operationTypes.reload) {\r\n cachedPagingData = void 0;\r\n cachedPagesData = {\r\n pages: {}\r\n }\r\n } else if (operationTypes.pageSize || operationTypes.groupExpanding) {\r\n cachedPagesData = {\r\n pages: {}\r\n }\r\n }\r\n each(operationTypes, (function(operationType, value) {\r\n if (value && that._needCleanCacheByOperation(operationType, options.remoteOperations)) {\r\n cachedStoreData = void 0;\r\n cachedPagingData = void 0\r\n }\r\n }))\r\n }\r\n if (cachedPagingData) {\r\n options.remoteOperations.paging = false\r\n }\r\n options.cachedStoreData = cachedStoreData;\r\n options.cachedPagingData = cachedPagingData;\r\n options.cachedPagesData = cachedPagesData;\r\n if (!options.isCustomLoading) {\r\n that._cachedStoreData = cachedStoreData;\r\n that._cachedPagingData = cachedPagingData;\r\n that._cachedPagesData = cachedPagesData\r\n }\r\n },\r\n _handleDataLoading: function(options) {\r\n var dataSource = this._dataSource;\r\n var lastLoadOptions = this._lastLoadOptions;\r\n this.customizeStoreLoadOptions.fire(options);\r\n options.delay = this.option(\"loadingTimeout\");\r\n options.originalStoreLoadOptions = options.storeLoadOptions;\r\n options.remoteOperations = extend({}, this.remoteOperations());\r\n var isFullReload = !this.isLoaded() && !this._isRefreshing;\r\n if (this.option(\"integrationOptions.renderedOnServer\") && !this.isLoaded()) {\r\n options.delay = void 0\r\n }\r\n var loadOptions = extend({\r\n pageIndex: this.pageIndex(),\r\n pageSize: this.pageSize()\r\n }, options.storeLoadOptions);\r\n var operationTypes = calculateOperationTypes(loadOptions, lastLoadOptions, isFullReload);\r\n this._customizeRemoteOperations(options, operationTypes);\r\n if (!options.isCustomLoading) {\r\n var isRefreshing = this._isRefreshing;\r\n options.pageIndex = dataSource.pageIndex();\r\n options.lastLoadOptions = loadOptions;\r\n options.operationTypes = operationTypes;\r\n this._loadingOperationTypes = operationTypes;\r\n this._isRefreshing = true;\r\n when(isRefreshing || this._isRefreshed || this.refresh(options, operationTypes)).done(() => {\r\n if (this._lastOperationId === options.operationId) {\r\n this._isRefreshed = true;\r\n this.load().always(() => {\r\n this._isRefreshed = false\r\n })\r\n }\r\n }).fail(() => {\r\n dataSource.cancel(options.operationId)\r\n }).always(() => {\r\n this._isRefreshing = false\r\n });\r\n dataSource.cancel(this._lastOperationId);\r\n this._lastOperationId = options.operationId;\r\n if (this._isRefreshing) {\r\n dataSource.cancel(this._lastOperationId)\r\n }\r\n }\r\n this._handleDataLoadingCore(options)\r\n },\r\n _handleDataLoadingCore: function(options) {\r\n var remoteOperations = options.remoteOperations;\r\n options.loadOptions = {};\r\n var cachedExtra = options.cachedPagesData.extra;\r\n var localLoadOptionNames = {\r\n filter: !remoteOperations.filtering,\r\n sort: !remoteOperations.sorting,\r\n group: !remoteOperations.grouping,\r\n summary: !remoteOperations.summary,\r\n skip: !remoteOperations.paging,\r\n take: !remoteOperations.paging,\r\n requireTotalCount: cachedExtra && \"totalCount\" in cachedExtra || !remoteOperations.paging\r\n };\r\n each(options.storeLoadOptions, (function(optionName, optionValue) {\r\n if (localLoadOptionNames[optionName]) {\r\n options.loadOptions[optionName] = optionValue;\r\n delete options.storeLoadOptions[optionName]\r\n }\r\n }));\r\n if (cachedExtra) {\r\n options.extra = cachedExtra\r\n }\r\n options.data = getPageDataFromCache(options) || options.cachedStoreData\r\n },\r\n _handleDataLoaded: function(options) {\r\n var loadOptions = options.loadOptions;\r\n var localPaging = options.remoteOperations && !options.remoteOperations.paging;\r\n var cachedPagesData = options.cachedPagesData;\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var needCache = false !== this.option(\"cacheEnabled\") && storeLoadOptions;\r\n var needPageCache = needCache && !options.isCustomLoading && cachedPagesData && (!localPaging || storeLoadOptions.group);\r\n var needPagingCache = needCache && localPaging;\r\n var needStoreCache = needPagingCache && !options.isCustomLoading;\r\n if (!loadOptions) {\r\n this._dataSource.cancel(options.operationId);\r\n return\r\n }\r\n if (options.lastLoadOptions) {\r\n this._lastLoadOptions = options.lastLoadOptions;\r\n Object.keys(options.operationTypes).forEach(operationType => {\r\n this._lastOperationTypes[operationType] = this._lastOperationTypes[operationType] || options.operationTypes[operationType]\r\n })\r\n }\r\n if (localPaging) {\r\n options.skip = loadOptions.skip;\r\n options.take = loadOptions.take;\r\n delete loadOptions.skip;\r\n delete loadOptions.take\r\n }\r\n if (loadOptions.group) {\r\n loadOptions.group = options.group || loadOptions.group\r\n }\r\n var groupCount = gridCore.normalizeSortingInfo(storeLoadOptions.group || loadOptions.group).length;\r\n if (!needPageCache || !getPageDataFromCache(options)) {\r\n if (needPagingCache && options.cachedPagingData) {\r\n options.data = cloneItems(options.cachedPagingData, groupCount)\r\n } else {\r\n if (needStoreCache) {\r\n if (!this._cachedStoreData) {\r\n this._cachedStoreData = cloneItems(options.data, gridCore.normalizeSortingInfo(storeLoadOptions.group).length)\r\n } else if (options.mergeStoreLoadData) {\r\n options.data = this._cachedStoreData = this._cachedStoreData.concat(options.data)\r\n }\r\n }\r\n new ArrayStore(options.data).load(loadOptions).done(data => {\r\n options.data = data;\r\n if (needStoreCache) {\r\n this._cachedPagingData = cloneItems(options.data, groupCount)\r\n }\r\n }).fail(error => {\r\n options.data = (new Deferred).reject(error)\r\n })\r\n }\r\n if (loadOptions.requireTotalCount && localPaging) {\r\n options.extra = isPlainObject(options.extra) ? options.extra : {};\r\n options.extra.totalCount = options.data.length\r\n }\r\n if (options.extra && options.extra.totalCount >= 0 && (false === storeLoadOptions.requireTotalCount || false === loadOptions.requireTotalCount)) {\r\n options.extra.totalCount = -1\r\n }\r\n this._handleDataLoadedCore(options);\r\n if (needPageCache) {\r\n cachedPagesData.extra = cachedPagesData.extra || extend({}, options.extra);\r\n when(options.data).done(data => {\r\n ! function(options, data) {\r\n var pageIndex = options.pageIndex;\r\n if (void 0 !== pageIndex) {\r\n var key = getPageKey(pageIndex, options.loadPageCount);\r\n options.cachedPagesData.pages[key] = data\r\n }\r\n }(options, cloneItems(data, groupCount))\r\n })\r\n }\r\n }\r\n options.storeLoadOptions = options.originalStoreLoadOptions\r\n },\r\n _handleDataLoadedCore: function(options) {\r\n if (options.remoteOperations && !options.remoteOperations.paging && Array.isArray(options.data)) {\r\n if (void 0 !== options.skip) {\r\n options.data = options.data.slice(options.skip)\r\n }\r\n if (void 0 !== options.take) {\r\n options.data = options.data.slice(0, options.take)\r\n }\r\n }\r\n },\r\n _handleLoadingChanged: function(isLoading) {\r\n this.loadingChanged.fire(isLoading)\r\n },\r\n _handleLoadError: function(error) {\r\n this.loadError.fire(error);\r\n this.changed.fire({\r\n changeType: \"loadError\",\r\n error: error\r\n })\r\n },\r\n _loadPageSize: function() {\r\n return this.pageSize()\r\n },\r\n _handleDataChanged: function(args) {\r\n var currentTotalCount;\r\n var dataSource = this._dataSource;\r\n var isLoading = false;\r\n var itemsCount = this.itemsCount();\r\n this._isLastPage = !itemsCount || !this._loadPageSize() || itemsCount < this._loadPageSize();\r\n if (this._isLastPage) {\r\n this._hasLastPage = true\r\n }\r\n if (dataSource.totalCount() >= 0) {\r\n if (dataSource.pageIndex() >= this.pageCount()) {\r\n dataSource.pageIndex(this.pageCount() - 1);\r\n this.pageIndex(dataSource.pageIndex());\r\n this.resetPagesCache();\r\n dataSource.load();\r\n isLoading = true\r\n }\r\n } else if (!args || isDefined(args.changeType)) {\r\n currentTotalCount = dataSource.pageIndex() * this.pageSize() + itemsCount;\r\n this._currentTotalCount = Math.max(this._currentTotalCount, currentTotalCount);\r\n if (0 === itemsCount && dataSource.pageIndex() >= this.pageCount()) {\r\n dataSource.pageIndex(this.pageCount() - 1);\r\n if (\"infinite\" !== this.option(\"scrolling.mode\")) {\r\n dataSource.load();\r\n isLoading = true\r\n }\r\n }\r\n }\r\n if (!isLoading) {\r\n this._operationTypes = this._lastOperationTypes;\r\n this._lastOperationTypes = {};\r\n this.component._optionCache = {};\r\n this.changed.fire(args);\r\n this.component._optionCache = void 0\r\n }\r\n },\r\n _scheduleCustomLoadCallbacks: function(deferred) {\r\n var that = this;\r\n that._isCustomLoading = true;\r\n deferred.always((function() {\r\n that._isCustomLoading = false\r\n }))\r\n },\r\n loadingOperationTypes: function() {\r\n return this._loadingOperationTypes\r\n },\r\n operationTypes: function() {\r\n return this._operationTypes\r\n },\r\n lastLoadOptions: function() {\r\n return this._lastLoadOptions || {}\r\n },\r\n isLastPage: function() {\r\n return this._isLastPage\r\n },\r\n totalCount: function() {\r\n return parseInt((this._currentTotalCount || this._dataSource.totalCount()) + this._skipCorrection)\r\n },\r\n itemsCount: function() {\r\n return this._dataSource.items().length\r\n },\r\n totalItemsCount: function() {\r\n return this.totalCount()\r\n },\r\n pageSize: function() {\r\n var dataSource = this._dataSource;\r\n if (!arguments.length && !dataSource.paginate()) {\r\n return 0\r\n }\r\n return dataSource.pageSize.apply(dataSource, arguments)\r\n },\r\n pageCount: function() {\r\n var count = this.totalItemsCount() - this._skipCorrection;\r\n var pageSize = this.pageSize();\r\n if (pageSize && count > 0) {\r\n return Math.max(1, Math.ceil(count / pageSize))\r\n }\r\n return 1\r\n },\r\n hasKnownLastPage: function() {\r\n return this._hasLastPage || this._dataSource.totalCount() >= 0\r\n },\r\n loadFromStore: function(loadOptions, store) {\r\n var dataSource = this._dataSource;\r\n var d = new Deferred;\r\n if (!dataSource) {\r\n return\r\n }\r\n store = store || dataSource.store();\r\n store.load(loadOptions).done((function(data, extra) {\r\n if (data && !Array.isArray(data) && Array.isArray(data.data)) {\r\n extra = data;\r\n data = data.data\r\n }\r\n d.resolve(data, extra)\r\n })).fail(d.reject);\r\n return d\r\n },\r\n isCustomLoading: function() {\r\n return !!this._isCustomLoading\r\n },\r\n load: function(options) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var d = new Deferred;\r\n if (options) {\r\n var store = dataSource.store();\r\n var dataSourceLoadOptions = dataSource.loadOptions();\r\n var loadResult = {\r\n storeLoadOptions: options,\r\n isCustomLoading: true\r\n };\r\n each(store._customLoadOptions() || [], (function(_, optionName) {\r\n if (!(optionName in loadResult.storeLoadOptions)) {\r\n loadResult.storeLoadOptions[optionName] = dataSourceLoadOptions[optionName]\r\n }\r\n }));\r\n this._isLoadingAll = options.isLoadingAll;\r\n that._scheduleCustomLoadCallbacks(d);\r\n dataSource._scheduleLoadCallbacks(d);\r\n that._handleDataLoading(loadResult);\r\n ! function(action, timeout) {\r\n if (isDefined(timeout)) {\r\n executeAsync(action, timeout)\r\n } else {\r\n action()\r\n }\r\n }((function() {\r\n if (!dataSource.store()) {\r\n return d.reject(\"canceled\")\r\n }\r\n when(loadResult.data || that.loadFromStore(loadResult.storeLoadOptions)).done((function(data, extra) {\r\n loadResult.data = data;\r\n loadResult.extra = extra || {};\r\n that._handleDataLoaded(loadResult);\r\n if (options.requireTotalCount && void 0 === loadResult.extra.totalCount) {\r\n loadResult.extra.totalCount = store.totalCount(loadResult.storeLoadOptions)\r\n }\r\n when(loadResult.data, loadResult.extra.totalCount).done((function(data, totalCount) {\r\n loadResult.extra.totalCount = totalCount;\r\n d.resolve(data, loadResult.extra)\r\n })).fail(d.reject)\r\n })).fail(d.reject)\r\n }), that.option(\"loadingTimeout\"));\r\n return d.fail((function() {\r\n that._eventsStrategy.fireEvent(\"loadError\", arguments)\r\n })).always(() => {\r\n this._isLoadingAll = false\r\n }).promise()\r\n } else {\r\n return dataSource.load()\r\n }\r\n },\r\n reload: function(full) {\r\n return full ? this._dataSource.reload() : this._dataSource.load()\r\n },\r\n getCachedStoreData: function() {\r\n return this._cachedStoreData\r\n }\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.data_source_adapter.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 DataSourceAdapter from \"../grid_core/ui.grid_core.data_source_adapter\";\r\nvar dataSourceAdapterType = DataSourceAdapter;\r\nexport default {\r\n extend: function(extender) {\r\n dataSourceAdapterType = dataSourceAdapterType.inherit(extender)\r\n },\r\n create: function(component) {\r\n return new dataSourceAdapterType(component)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.data_controller.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 modules from \"./ui.grid_core.modules\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport ArrayStore from \"../../data/array_store\";\r\nimport CustomStore from \"../../data/custom_store\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n noop,\r\n deferRender,\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport DataHelperMixin from \"../../data_helper\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n findChanges\r\n} from \"../../core/utils/array_compare\";\r\nexport var dataControllerModule = {\r\n defaultOptions: function() {\r\n return {\r\n loadingTimeout: 0,\r\n dataSource: null,\r\n cacheEnabled: true,\r\n repaintChangesOnly: false,\r\n highlightChanges: false,\r\n onDataErrorOccurred: null,\r\n remoteOperations: \"auto\",\r\n paging: {\r\n enabled: true,\r\n pageSize: void 0,\r\n pageIndex: void 0\r\n }\r\n }\r\n },\r\n controllers: {\r\n data: modules.Controller.inherit({}).include(DataHelperMixin).inherit(function() {\r\n var changePaging = function(that, optionName, value) {\r\n var dataSource = that._dataSource;\r\n if (dataSource) {\r\n if (void 0 !== value) {\r\n if (dataSource[optionName]() !== value) {\r\n if (\"pageSize\" === optionName) {\r\n dataSource.pageIndex(0)\r\n }\r\n dataSource[optionName](value);\r\n that._skipProcessingPagingChange = true;\r\n that.option(\"paging.\" + optionName, value);\r\n that._skipProcessingPagingChange = false;\r\n return dataSource[\"pageIndex\" === optionName ? \"load\" : \"reload\"]().done(that.pageChanged.fire.bind(that.pageChanged))\r\n }\r\n return Deferred().resolve().promise()\r\n }\r\n return dataSource[optionName]()\r\n }\r\n return 0\r\n };\r\n var members = {\r\n init: function() {\r\n var that = this;\r\n that._items = [];\r\n that._columnsController = that.getController(\"columns\");\r\n that._currentOperationTypes = null;\r\n that._dataChangedHandler = e => {\r\n that._currentOperationTypes = this._dataSource.operationTypes();\r\n that._handleDataChanged(e);\r\n that._currentOperationTypes = null\r\n };\r\n that._columnsChangedHandler = that._handleColumnsChanged.bind(that);\r\n that._loadingChangedHandler = that._handleLoadingChanged.bind(that);\r\n that._loadErrorHandler = that._handleLoadError.bind(that);\r\n that._customizeStoreLoadOptionsHandler = that._handleCustomizeStoreLoadOptions.bind(that);\r\n that._changingHandler = that._handleChanging.bind(that);\r\n that._columnsController.columnsChanged.add(that._columnsChangedHandler);\r\n that._isLoading = false;\r\n that._isCustomLoading = false;\r\n that._repaintChangesOnly = void 0;\r\n that._changes = [];\r\n that.createAction(\"onDataErrorOccurred\");\r\n that.dataErrorOccurred.add((function(error) {\r\n return that.executeAction(\"onDataErrorOccurred\", {\r\n error: error\r\n })\r\n }));\r\n that._refreshDataSource()\r\n },\r\n callbackNames: function() {\r\n return [\"changed\", \"loadingChanged\", \"dataErrorOccurred\", \"pageChanged\", \"dataSourceChanged\"]\r\n },\r\n callbackFlags: function(name) {\r\n if (\"dataErrorOccurred\" === name) {\r\n return {\r\n stopOnFalse: true\r\n }\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"beginCustomLoading\", \"endCustomLoading\", \"refresh\", \"filter\", \"clearFilter\", \"getCombinedFilter\", \"keyOf\", \"byKey\", \"getDataByKeys\", \"pageIndex\", \"pageSize\", \"pageCount\", \"totalCount\", \"_disposeDataSource\", \"getKeyByRowIndex\", \"getRowIndexByKey\", \"getDataSource\", \"getVisibleRows\", \"repaintRows\"]\r\n },\r\n reset: function() {\r\n this._columnsController.reset();\r\n this._items = [];\r\n this._refreshDataSource()\r\n },\r\n optionChanged: function(args) {\r\n var dataSource;\r\n\r\n function handled() {\r\n args.handled = true\r\n }\r\n if (\"dataSource\" === args.name && args.name === args.fullName && (args.value === args.previousValue || this.option(\"columns\") && Array.isArray(args.value) && Array.isArray(args.previousValue))) {\r\n if (args.value !== args.previousValue) {\r\n var store = this.store();\r\n if (store) {\r\n store._array = args.value\r\n }\r\n }\r\n handled();\r\n this.refresh(this.option(\"repaintChangesOnly\"));\r\n return\r\n }\r\n switch (args.name) {\r\n case \"cacheEnabled\":\r\n case \"repaintChangesOnly\":\r\n case \"highlightChanges\":\r\n case \"loadingTimeout\":\r\n handled();\r\n break;\r\n case \"remoteOperations\":\r\n case \"keyExpr\":\r\n case \"dataSource\":\r\n case \"scrolling\":\r\n handled();\r\n this.reset();\r\n break;\r\n case \"paging\":\r\n dataSource = this.dataSource();\r\n if (dataSource && this._setPagingOptions(dataSource)) {\r\n dataSource.load().done(this.pageChanged.fire.bind(this.pageChanged))\r\n }\r\n handled();\r\n break;\r\n case \"rtlEnabled\":\r\n this.reset();\r\n break;\r\n case \"columns\":\r\n dataSource = this.dataSource();\r\n if (dataSource && dataSource.isLoading() && args.name === args.fullName) {\r\n this._useSortingGroupingFromColumns = true;\r\n dataSource.load()\r\n }\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n isReady: function() {\r\n return !this._isLoading\r\n },\r\n getDataSource: function() {\r\n return this._dataSource && this._dataSource._dataSource\r\n },\r\n getCombinedFilter: function(returnDataField) {\r\n return this.combinedFilter(void 0, returnDataField)\r\n },\r\n combinedFilter: function(filter, returnDataField) {\r\n var dataSource = this._dataSource;\r\n var columnsController = this._columnsController;\r\n if (dataSource) {\r\n if (void 0 === filter) {\r\n filter = dataSource.filter()\r\n }\r\n var additionalFilter = this._calculateAdditionalFilter();\r\n if (additionalFilter) {\r\n if (columnsController.isDataSourceApplied() || columnsController.isAllDataTypesDefined()) {\r\n filter = gridCoreUtils.combineFilters([additionalFilter, filter])\r\n }\r\n }\r\n filter = columnsController.updateFilter(filter, returnDataField || dataSource.remoteOperations().filtering)\r\n }\r\n return filter\r\n },\r\n waitReady: function() {\r\n if (this._updateLockCount) {\r\n this._readyDeferred = new Deferred;\r\n return this._readyDeferred\r\n }\r\n return when()\r\n },\r\n _endUpdateCore: function() {\r\n var changes = this._changes;\r\n if (changes.length) {\r\n this._changes = [];\r\n var repaintChangesOnly = changes.every(change => change.repaintChangesOnly);\r\n this.updateItems(1 === changes.length ? changes[0] : {\r\n repaintChangesOnly: repaintChangesOnly\r\n })\r\n }\r\n if (this._readyDeferred) {\r\n this._readyDeferred.resolve();\r\n this._readyDeferred = null\r\n }\r\n },\r\n _handleCustomizeStoreLoadOptions: function(e) {\r\n var columnsController = this._columnsController;\r\n var dataSource = this._dataSource;\r\n var storeLoadOptions = e.storeLoadOptions;\r\n if (e.isCustomLoading && !storeLoadOptions.isLoadingAll) {\r\n return\r\n }\r\n storeLoadOptions.filter = this.combinedFilter(storeLoadOptions.filter);\r\n if (!columnsController.isDataSourceApplied()) {\r\n columnsController.updateColumnDataTypes(dataSource)\r\n }\r\n this._columnsUpdating = true;\r\n columnsController.updateSortingGrouping(dataSource, !this._useSortingGroupingFromColumns);\r\n this._columnsUpdating = false;\r\n storeLoadOptions.sort = columnsController.getSortDataSourceParameters();\r\n storeLoadOptions.group = columnsController.getGroupDataSourceParameters();\r\n dataSource.sort(storeLoadOptions.sort);\r\n dataSource.group(storeLoadOptions.group);\r\n storeLoadOptions.sort = columnsController.getSortDataSourceParameters(!dataSource.remoteOperations().sorting);\r\n e.group = columnsController.getGroupDataSourceParameters(!dataSource.remoteOperations().grouping)\r\n },\r\n _handleColumnsChanged: function(e) {\r\n var that = this;\r\n var changeTypes = e.changeTypes;\r\n var optionNames = e.optionNames;\r\n var filterValue;\r\n var filterValues;\r\n var filterApplied;\r\n if (changeTypes.sorting || changeTypes.grouping) {\r\n if (that._dataSource && !that._columnsUpdating) {\r\n that._dataSource.group(that._columnsController.getGroupDataSourceParameters());\r\n that._dataSource.sort(that._columnsController.getSortDataSourceParameters());\r\n that.reload()\r\n }\r\n } else if (changeTypes.columns) {\r\n if (optionNames.filterValues || optionNames.filterValue || optionNames.selectedFilterOperation) {\r\n filterValue = that._columnsController.columnOption(e.columnIndex, \"filterValue\");\r\n filterValues = that._columnsController.columnOption(e.columnIndex, \"filterValues\");\r\n if (Array.isArray(filterValues) || void 0 === e.columnIndex || isDefined(filterValue) || !optionNames.selectedFilterOperation || optionNames.filterValue) {\r\n that._applyFilter();\r\n filterApplied = true\r\n }\r\n }\r\n if (!that._needApplyFilter && !gridCoreUtils.checkChanges(optionNames, [\"width\", \"visibleWidth\", \"filterValue\", \"bufferedFilterValue\", \"selectedFilterOperation\", \"filterValues\", \"filterType\"])) {\r\n that._columnsController.columnsChanged.add((function updateItemsHandler() {\r\n that._columnsController.columnsChanged.remove(updateItemsHandler);\r\n that.updateItems()\r\n }))\r\n }\r\n if (isDefined(optionNames.visible)) {\r\n var column = that._columnsController.columnOption(e.columnIndex);\r\n if (column && (isDefined(column.filterValue) || isDefined(column.filterValues))) {\r\n that._applyFilter();\r\n filterApplied = true\r\n }\r\n }\r\n }\r\n if (!filterApplied && changeTypes.filtering) {\r\n that.reload()\r\n }\r\n },\r\n _handleDataChanged: function(e) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var columnsController = that._columnsController;\r\n var isAsyncDataSourceApplying = false;\r\n this._useSortingGroupingFromColumns = false;\r\n if (dataSource && !that._isDataSourceApplying) {\r\n that._isDataSourceApplying = true;\r\n when(that._columnsController.applyDataSource(dataSource)).done((function() {\r\n if (that._isLoading) {\r\n that._handleLoadingChanged(false)\r\n }\r\n if (isAsyncDataSourceApplying && e && e.isDelayed) {\r\n e.isDelayed = false\r\n }\r\n that._isDataSourceApplying = false;\r\n var needApplyFilter = that._needApplyFilter;\r\n that._needApplyFilter = false;\r\n if (needApplyFilter && !that._isAllDataTypesDefined && (additionalFilter = that._calculateAdditionalFilter(), additionalFilter && additionalFilter.length)) {\r\n errors.log(\"W1005\", that.component.NAME);\r\n that._applyFilter()\r\n } else {\r\n that.updateItems(e, true)\r\n }\r\n var additionalFilter\r\n })).fail((function() {\r\n that._isDataSourceApplying = false\r\n }));\r\n if (that._isDataSourceApplying) {\r\n isAsyncDataSourceApplying = true;\r\n that._handleLoadingChanged(true)\r\n }\r\n that._needApplyFilter = !that._columnsController.isDataSourceApplied();\r\n that._isAllDataTypesDefined = columnsController.isAllDataTypesDefined()\r\n }\r\n },\r\n _handleLoadingChanged: function(isLoading) {\r\n this._isLoading = isLoading;\r\n this._fireLoadingChanged()\r\n },\r\n _handleLoadError: function(e) {\r\n this.dataErrorOccurred.fire(e)\r\n },\r\n fireError: function() {\r\n this.dataErrorOccurred.fire(errors.Error.apply(errors, arguments))\r\n },\r\n _setPagingOptions: function(dataSource) {\r\n var pageIndex = this.option(\"paging.pageIndex\");\r\n var pageSize = this.option(\"paging.pageSize\");\r\n var pagingEnabled = this.option(\"paging.enabled\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var appendMode = \"infinite\" === scrollingMode;\r\n var virtualMode = \"virtual\" === scrollingMode;\r\n var paginate = pagingEnabled || virtualMode || appendMode;\r\n var isChanged = false;\r\n dataSource.requireTotalCount(!appendMode);\r\n if (void 0 !== pagingEnabled && dataSource.paginate() !== paginate) {\r\n dataSource.paginate(paginate);\r\n isChanged = true\r\n }\r\n if (void 0 !== pageSize && dataSource.pageSize() !== pageSize) {\r\n dataSource.pageSize(pageSize);\r\n isChanged = true\r\n }\r\n if (void 0 !== pageIndex && dataSource.pageIndex() !== pageIndex) {\r\n dataSource.pageIndex(pageIndex);\r\n isChanged = true\r\n }\r\n return isChanged\r\n },\r\n _getSpecificDataSourceOption: function() {\r\n var dataSource = this.option(\"dataSource\");\r\n if (Array.isArray(dataSource)) {\r\n return {\r\n store: {\r\n type: \"array\",\r\n data: dataSource,\r\n key: this.option(\"keyExpr\")\r\n }\r\n }\r\n }\r\n return dataSource\r\n },\r\n _initDataSource: function() {\r\n var dataSource = this.option(\"dataSource\");\r\n var oldDataSource = this._dataSource;\r\n this.callBase();\r\n dataSource = this._dataSource;\r\n this._useSortingGroupingFromColumns = true;\r\n if (dataSource) {\r\n this._setPagingOptions(dataSource);\r\n this.setDataSource(dataSource)\r\n } else if (oldDataSource) {\r\n this.updateItems()\r\n }\r\n },\r\n _loadDataSource: function() {\r\n var dataSource = this._dataSource;\r\n var result = new Deferred;\r\n when(this._columnsController.refresh(true)).always((function() {\r\n if (dataSource) {\r\n dataSource.load().done(result.resolve).fail(result.reject)\r\n } else {\r\n result.resolve()\r\n }\r\n }));\r\n return result.promise()\r\n },\r\n _beforeProcessItems: function(items) {\r\n return items.slice(0)\r\n },\r\n getRowIndexDelta: function() {\r\n return 0\r\n },\r\n _processItems: function(items, change) {\r\n var that = this;\r\n var rowIndexDelta = that.getRowIndexDelta();\r\n var changeType = change.changeType;\r\n var visibleColumns = that._columnsController.getVisibleColumns(null, \"loadingAll\" === changeType);\r\n var visibleItems = that._items;\r\n var lastVisibleItem = \"append\" === changeType && visibleItems.length > 0 ? visibleItems[visibleItems.length - 1] : null;\r\n var dataIndex = isDefined(null === lastVisibleItem || void 0 === lastVisibleItem ? void 0 : lastVisibleItem.dataIndex) ? lastVisibleItem.dataIndex + 1 : 0;\r\n var options = {\r\n visibleColumns: visibleColumns,\r\n dataIndex: dataIndex\r\n };\r\n var result = [];\r\n each(items, (function(index, item) {\r\n if (isDefined(item)) {\r\n options.rowIndex = index - rowIndexDelta;\r\n item = that._processItem(item, options);\r\n result.push(item)\r\n }\r\n }));\r\n return result\r\n },\r\n _processItem: function(item, options) {\r\n item = this._generateDataItem(item, options);\r\n item = this._processDataItem(item, options);\r\n item.dataIndex = options.dataIndex++;\r\n return item\r\n },\r\n _generateDataItem: function(data) {\r\n return {\r\n rowType: \"data\",\r\n data: data,\r\n key: this.keyOf(data)\r\n }\r\n },\r\n _processDataItem: function(dataItem, options) {\r\n dataItem.values = this.generateDataValues(dataItem.data, options.visibleColumns);\r\n return dataItem\r\n },\r\n generateDataValues: function(data, columns, isModified) {\r\n var values = [];\r\n var value;\r\n for (var i = 0; i < columns.length; i++) {\r\n var column = columns[i];\r\n value = isModified ? void 0 : null;\r\n if (!column.command) {\r\n if (column.calculateCellValue) {\r\n value = column.calculateCellValue(data)\r\n } else if (column.dataField) {\r\n value = data[column.dataField]\r\n }\r\n }\r\n values.push(value)\r\n }\r\n return values\r\n },\r\n _applyChange: function(change) {\r\n if (\"update\" === change.changeType) {\r\n this._applyChangeUpdate(change)\r\n } else if (this.items().length && change.repaintChangesOnly && \"refresh\" === change.changeType) {\r\n this._applyChangesOnly(change)\r\n } else if (\"refresh\" === change.changeType) {\r\n this._applyChangeFull(change)\r\n }\r\n },\r\n _applyChangeFull: function(change) {\r\n this._items = change.items.slice(0)\r\n },\r\n _getRowIndices: function(change) {\r\n var rowIndices = change.rowIndices.slice(0);\r\n var rowIndexDelta = this.getRowIndexDelta();\r\n rowIndices.sort((function(a, b) {\r\n return a - b\r\n }));\r\n for (var i = 0; i < rowIndices.length; i++) {\r\n var correctedRowIndex = rowIndices[i];\r\n if (change.allowInvisibleRowIndices) {\r\n correctedRowIndex += rowIndexDelta\r\n }\r\n if (correctedRowIndex < 0) {\r\n rowIndices.splice(i, 1);\r\n i--\r\n }\r\n }\r\n return rowIndices\r\n },\r\n _applyChangeUpdate: function(change) {\r\n var that = this;\r\n var items = change.items;\r\n var rowIndices = that._getRowIndices(change);\r\n var rowIndexDelta = that.getRowIndexDelta();\r\n var repaintChangesOnly = that.option(\"repaintChangesOnly\");\r\n var prevIndex = -1;\r\n var rowIndexCorrection = 0;\r\n var changeType;\r\n change.items = [];\r\n change.rowIndices = [];\r\n change.columnIndices = [];\r\n change.changeTypes = [];\r\n var equalItems = function(item1, item2, strict) {\r\n var result = item1 && item2 && equalByValue(item1.key, item2.key);\r\n if (result && strict) {\r\n result = item1.rowType === item2.rowType && (\"detail\" !== item2.rowType || item1.isEditing === item2.isEditing)\r\n }\r\n return result\r\n };\r\n each(rowIndices, (function(index, rowIndex) {\r\n var columnIndices;\r\n rowIndex += rowIndexCorrection + rowIndexDelta;\r\n if (prevIndex === rowIndex) {\r\n return\r\n }\r\n prevIndex = rowIndex;\r\n var oldItem = that._items[rowIndex];\r\n var oldNextItem = that._items[rowIndex + 1];\r\n var newItem = items[rowIndex];\r\n var newNextItem = items[rowIndex + 1];\r\n var strict = equalItems(oldItem, oldNextItem) || equalItems(newItem, newNextItem);\r\n if (newItem) {\r\n newItem.rowIndex = rowIndex;\r\n change.items.push(newItem)\r\n }\r\n if (oldItem && newItem && equalItems(oldItem, newItem, strict)) {\r\n changeType = \"update\";\r\n that._items[rowIndex] = newItem;\r\n if (oldItem.visible !== newItem.visible) {\r\n change.items.splice(-1, 1, {\r\n visible: newItem.visible\r\n })\r\n } else if (repaintChangesOnly && !change.isFullUpdate) {\r\n columnIndices = that._partialUpdateRow(oldItem, newItem, rowIndex - rowIndexDelta)\r\n }\r\n } else if (newItem && !oldItem || newNextItem && equalItems(oldItem, newNextItem, strict)) {\r\n changeType = \"insert\";\r\n that._items.splice(rowIndex, 0, newItem);\r\n rowIndexCorrection++\r\n } else if (oldItem && !newItem || oldNextItem && equalItems(newItem, oldNextItem, strict)) {\r\n changeType = \"remove\";\r\n that._items.splice(rowIndex, 1);\r\n rowIndexCorrection--;\r\n prevIndex = -1\r\n } else if (newItem) {\r\n changeType = \"update\";\r\n that._items[rowIndex] = newItem\r\n } else {\r\n return\r\n }\r\n change.rowIndices.push(rowIndex - rowIndexDelta);\r\n change.changeTypes.push(changeType);\r\n change.columnIndices.push(columnIndices)\r\n }))\r\n },\r\n _isCellChanged: function(oldRow, newRow, visibleRowIndex, columnIndex, isLiveUpdate) {\r\n if (JSON.stringify(oldRow.values[columnIndex]) !== JSON.stringify(newRow.values[columnIndex])) {\r\n return true\r\n }\r\n\r\n function isCellModified(row, columnIndex) {\r\n return row.modifiedValues ? void 0 !== row.modifiedValues[columnIndex] : false\r\n }\r\n if (isCellModified(oldRow, columnIndex) !== isCellModified(newRow, columnIndex)) {\r\n return true\r\n }\r\n return false\r\n },\r\n _getChangedColumnIndices: function(oldItem, newItem, visibleRowIndex, isLiveUpdate) {\r\n if (oldItem.rowType === newItem.rowType && \"group\" !== newItem.rowType && \"groupFooter\" !== newItem.rowType) {\r\n var columnIndices = [];\r\n if (\"detail\" !== newItem.rowType) {\r\n for (var columnIndex = 0; columnIndex < oldItem.values.length; columnIndex++) {\r\n if (this._isCellChanged(oldItem, newItem, visibleRowIndex, columnIndex, isLiveUpdate)) {\r\n columnIndices.push(columnIndex)\r\n }\r\n }\r\n }\r\n return columnIndices\r\n }\r\n },\r\n _partialUpdateRow: function(oldItem, newItem, visibleRowIndex, isLiveUpdate) {\r\n var changedColumnIndices = this._getChangedColumnIndices(oldItem, newItem, visibleRowIndex, isLiveUpdate);\r\n if (changedColumnIndices) {\r\n oldItem.cells && oldItem.cells.forEach((function(cell, columnIndex) {\r\n var isCellChanged = changedColumnIndices.indexOf(columnIndex) >= 0;\r\n if (!isCellChanged && cell && cell.update) {\r\n cell.update(newItem)\r\n }\r\n }));\r\n newItem.update = oldItem.update;\r\n newItem.watch = oldItem.watch;\r\n newItem.cells = oldItem.cells;\r\n if (isLiveUpdate) {\r\n newItem.oldValues = oldItem.values\r\n }\r\n oldItem.update && oldItem.update(newItem)\r\n }\r\n return changedColumnIndices\r\n },\r\n _isItemEquals: function(item1, item2) {\r\n if (JSON.stringify(item1.values) !== JSON.stringify(item2.values)) {\r\n return false\r\n }\r\n if ([\"modified\", \"isNewRow\", \"removed\", \"isEditing\"].some(field => item1[field] !== item2[field])) {\r\n return false\r\n }\r\n if (\"group\" === item1.rowType || \"groupFooter\" === item1.rowType) {\r\n var _item1$data, _item2$data, _item1$data2, _item2$data2;\r\n var expandedMatch = item1.isExpanded === item2.isExpanded;\r\n var summaryCellsMatch = JSON.stringify(item1.summaryCells) === JSON.stringify(item2.summaryCells);\r\n var continuationMatch = (null === (_item1$data = item1.data) || void 0 === _item1$data ? void 0 : _item1$data.isContinuation) === (null === (_item2$data = item2.data) || void 0 === _item2$data ? void 0 : _item2$data.isContinuation) && (null === (_item1$data2 = item1.data) || void 0 === _item1$data2 ? void 0 : _item1$data2.isContinuationOnNextPage) === (null === (_item2$data2 = item2.data) || void 0 === _item2$data2 ? void 0 : _item2$data2.isContinuationOnNextPage);\r\n if (!expandedMatch || !summaryCellsMatch || !continuationMatch) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n _applyChangesOnly: function(change) {\r\n var rowIndices = [];\r\n var columnIndices = [];\r\n var changeTypes = [];\r\n var items = [];\r\n var newIndexByKey = {};\r\n\r\n function getRowKey(row) {\r\n if (row) {\r\n return row.rowType + \",\" + JSON.stringify(row.key)\r\n }\r\n }\r\n var currentItems = this._items;\r\n var oldItems = currentItems.slice();\r\n change.items.forEach((function(item, index) {\r\n var key = getRowKey(item);\r\n newIndexByKey[key] = index;\r\n item.rowIndex = index\r\n }));\r\n var result = findChanges(oldItems, change.items, getRowKey, (item1, item2) => {\r\n if (!this._isItemEquals(item1, item2)) {\r\n return false\r\n }\r\n if (item1.cells) {\r\n item1.update && item1.update(item2);\r\n item1.cells.forEach((function(cell) {\r\n if (cell && cell.update) {\r\n cell.update(item2)\r\n }\r\n }))\r\n }\r\n return true\r\n });\r\n if (!result) {\r\n this._applyChangeFull(change);\r\n return\r\n }\r\n result.forEach(change => {\r\n switch (change.type) {\r\n case \"update\":\r\n var index = change.index;\r\n var newItem = change.data;\r\n var oldItem = change.oldItem;\r\n var changedColumnIndices = this._partialUpdateRow(oldItem, newItem, index, true);\r\n rowIndices.push(index);\r\n changeTypes.push(\"update\");\r\n items.push(newItem);\r\n currentItems[index] = newItem;\r\n columnIndices.push(changedColumnIndices);\r\n break;\r\n case \"insert\":\r\n rowIndices.push(change.index);\r\n changeTypes.push(\"insert\");\r\n items.push(change.data);\r\n columnIndices.push(void 0);\r\n currentItems.splice(change.index, 0, change.data);\r\n break;\r\n case \"remove\":\r\n rowIndices.push(change.index);\r\n changeTypes.push(\"remove\");\r\n currentItems.splice(change.index, 1);\r\n items.push(change.oldItem);\r\n columnIndices.push(void 0)\r\n }\r\n });\r\n change.repaintChangesOnly = true;\r\n change.changeType = \"update\";\r\n change.rowIndices = rowIndices;\r\n change.columnIndices = columnIndices;\r\n change.changeTypes = changeTypes;\r\n change.items = items;\r\n if (oldItems.length) {\r\n change.isLiveUpdate = true\r\n }\r\n this._correctRowIndices((function(rowIndex) {\r\n var oldItem = oldItems[rowIndex];\r\n var key = getRowKey(oldItem);\r\n var newRowIndex = newIndexByKey[key];\r\n return newRowIndex >= 0 ? newRowIndex - rowIndex : 0\r\n }))\r\n },\r\n _correctRowIndices: noop,\r\n _afterProcessItems: function(items) {\r\n return items\r\n },\r\n _updateItemsCore: function(change) {\r\n var items;\r\n var dataSource = this._dataSource;\r\n var changeType = change.changeType || \"refresh\";\r\n change.changeType = changeType;\r\n if (dataSource) {\r\n items = change.items || dataSource.items();\r\n items = this._beforeProcessItems(items);\r\n items = this._processItems(items, change);\r\n items = this._afterProcessItems(items, change);\r\n change.items = items;\r\n var oldItems = this._items.length === items.length && this._items;\r\n this._applyChange(change);\r\n var rowIndexDelta = this.getRowIndexDelta();\r\n each(this._items, (index, item) => {\r\n item.rowIndex = index - rowIndexDelta;\r\n if (oldItems) {\r\n item.cells = oldItems[index].cells || []\r\n }\r\n })\r\n } else {\r\n this._items = []\r\n }\r\n },\r\n _handleChanging: function(e) {\r\n var rows = this.getVisibleRows();\r\n var dataSource = this.dataSource();\r\n if (dataSource) {\r\n e.changes.forEach((function(change) {\r\n if (\"insert\" === change.type && change.index >= 0) {\r\n var dataIndex = 0;\r\n for (var i = 0; i < change.index; i++) {\r\n var row = rows[i];\r\n if (row && (\"data\" === row.rowType || \"group\" === row.rowType)) {\r\n dataIndex++\r\n }\r\n }\r\n change.index = dataIndex\r\n }\r\n }))\r\n }\r\n },\r\n updateItems: function(change, isDataChanged) {\r\n change = change || {};\r\n if (void 0 !== this._repaintChangesOnly) {\r\n change.repaintChangesOnly = this._repaintChangesOnly\r\n } else if (change.changes) {\r\n change.repaintChangesOnly = this.option(\"repaintChangesOnly\")\r\n } else if (isDataChanged) {\r\n var operationTypes = this.dataSource().operationTypes();\r\n change.repaintChangesOnly = operationTypes && !operationTypes.grouping && !operationTypes.filtering && this.option(\"repaintChangesOnly\");\r\n change.isDataChanged = true;\r\n if (operationTypes && (operationTypes.reload || operationTypes.paging || operationTypes.groupExpanding)) {\r\n change.needUpdateDimensions = true\r\n }\r\n }\r\n if (this._updateLockCount) {\r\n this._changes.push(change);\r\n return\r\n }\r\n this._updateItemsCore(change);\r\n if (change.cancel) {\r\n return\r\n }\r\n this._fireChanged(change)\r\n },\r\n loadingOperationTypes: function() {\r\n var dataSource = this.dataSource();\r\n return dataSource && dataSource.loadingOperationTypes() || {}\r\n },\r\n _fireChanged: function(change) {\r\n if (this._currentOperationTypes) {\r\n change.operationTypes = this._currentOperationTypes;\r\n this._currentOperationTypes = null\r\n }\r\n deferRender(() => {\r\n this.changed.fire(change)\r\n })\r\n },\r\n isLoading: function() {\r\n return this._isLoading || this._isCustomLoading\r\n },\r\n _fireLoadingChanged: function() {\r\n this.loadingChanged.fire(this.isLoading(), this._loadingText)\r\n },\r\n _calculateAdditionalFilter: function() {\r\n return null\r\n },\r\n _applyFilter: function() {\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n dataSource.pageIndex(0);\r\n return this.reload().done(this.pageChanged.fire.bind(this.pageChanged))\r\n }\r\n },\r\n filter: function(filterExpr) {\r\n var dataSource = this._dataSource;\r\n var filter = dataSource && dataSource.filter();\r\n if (0 === arguments.length) {\r\n return filter\r\n }\r\n filterExpr = arguments.length > 1 ? Array.prototype.slice.call(arguments, 0) : filterExpr;\r\n if (gridCoreUtils.equalFilterParameters(filter, filterExpr)) {\r\n return\r\n }\r\n if (dataSource) {\r\n dataSource.filter(filterExpr)\r\n }\r\n this._applyFilter()\r\n },\r\n clearFilter: function(filterName) {\r\n var that = this;\r\n var columnsController = that._columnsController;\r\n var clearColumnOption = function(optionName) {\r\n var columnCount = columnsController.columnCount();\r\n for (var index = 0; index < columnCount; index++) {\r\n columnsController.columnOption(index, optionName, void 0)\r\n }\r\n };\r\n that.component.beginUpdate();\r\n if (arguments.length > 0) {\r\n switch (filterName) {\r\n case \"dataSource\":\r\n that.filter(null);\r\n break;\r\n case \"search\":\r\n that.searchByText(\"\");\r\n break;\r\n case \"header\":\r\n clearColumnOption(\"filterValues\");\r\n break;\r\n case \"row\":\r\n clearColumnOption(\"filterValue\")\r\n }\r\n } else {\r\n that.filter(null);\r\n that.searchByText(\"\");\r\n clearColumnOption(\"filterValue\");\r\n clearColumnOption(\"bufferedFilterValue\");\r\n clearColumnOption(\"filterValues\")\r\n }\r\n that.component.endUpdate()\r\n },\r\n _fireDataSourceChanged: function() {\r\n var that = this;\r\n that.changed.add((function changedHandler() {\r\n that.changed.remove(changedHandler);\r\n that.dataSourceChanged.fire()\r\n }))\r\n },\r\n _getDataSourceAdapter: noop,\r\n _createDataSourceAdapterCore: function(dataSource, remoteOperations) {\r\n var dataSourceAdapterProvider = this._getDataSourceAdapter();\r\n var dataSourceAdapter = dataSourceAdapterProvider.create(this.component);\r\n dataSourceAdapter.init(dataSource, remoteOperations);\r\n return dataSourceAdapter\r\n },\r\n isLocalStore: function(store) {\r\n store = store || this.store();\r\n return store instanceof ArrayStore\r\n },\r\n isCustomStore: function(store) {\r\n store = store || this.store();\r\n return store instanceof CustomStore\r\n },\r\n _createDataSourceAdapter: function(dataSource) {\r\n var remoteOperations = this.option(\"remoteOperations\");\r\n var store = dataSource.store();\r\n var enabledRemoteOperations = {\r\n filtering: true,\r\n sorting: true,\r\n paging: true,\r\n grouping: true,\r\n summary: true\r\n };\r\n if (remoteOperations && remoteOperations.groupPaging) {\r\n remoteOperations = extend({}, enabledRemoteOperations, remoteOperations)\r\n }\r\n if (\"auto\" === remoteOperations) {\r\n remoteOperations = this.isLocalStore(store) || this.isCustomStore(store) ? {} : {\r\n filtering: true,\r\n sorting: true,\r\n paging: true\r\n }\r\n }\r\n if (true === remoteOperations) {\r\n remoteOperations = enabledRemoteOperations\r\n }\r\n return this._createDataSourceAdapterCore(dataSource, remoteOperations)\r\n },\r\n setDataSource: function(dataSource) {\r\n var oldDataSource = this._dataSource;\r\n if (!dataSource && oldDataSource) {\r\n oldDataSource.cancelAll();\r\n oldDataSource.changed.remove(this._dataChangedHandler);\r\n oldDataSource.loadingChanged.remove(this._loadingChangedHandler);\r\n oldDataSource.loadError.remove(this._loadErrorHandler);\r\n oldDataSource.customizeStoreLoadOptions.remove(this._customizeStoreLoadOptionsHandler);\r\n oldDataSource.changing.remove(this._changingHandler);\r\n oldDataSource.dispose(this._isSharedDataSource)\r\n }\r\n if (dataSource) {\r\n dataSource = this._createDataSourceAdapter(dataSource)\r\n }\r\n this._dataSource = dataSource;\r\n if (dataSource) {\r\n this._fireDataSourceChanged();\r\n this._isLoading = !dataSource.isLoaded();\r\n this._needApplyFilter = true;\r\n this._isAllDataTypesDefined = this._columnsController.isAllDataTypesDefined();\r\n dataSource.changed.add(this._dataChangedHandler);\r\n dataSource.loadingChanged.add(this._loadingChangedHandler);\r\n dataSource.loadError.add(this._loadErrorHandler);\r\n dataSource.customizeStoreLoadOptions.add(this._customizeStoreLoadOptionsHandler);\r\n dataSource.changing.add(this._changingHandler)\r\n }\r\n },\r\n items: function() {\r\n return this._items\r\n },\r\n isEmpty: function() {\r\n return !this.items().length\r\n },\r\n pageCount: function() {\r\n return this._dataSource ? this._dataSource.pageCount() : 1\r\n },\r\n dataSource: function() {\r\n return this._dataSource\r\n },\r\n store: function() {\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.store()\r\n },\r\n loadAll: function(data) {\r\n var that = this;\r\n var d = new Deferred;\r\n var dataSource = that._dataSource;\r\n if (dataSource) {\r\n if (data) {\r\n var options = {\r\n data: data,\r\n isCustomLoading: true,\r\n storeLoadOptions: {\r\n isLoadingAll: true\r\n },\r\n loadOptions: {\r\n filter: that.getCombinedFilter(),\r\n group: dataSource.group(),\r\n sort: dataSource.sort()\r\n }\r\n };\r\n dataSource._handleDataLoaded(options);\r\n when(options.data).done((function(data) {\r\n data = that._beforeProcessItems(data);\r\n d.resolve(that._processItems(data, {\r\n changeType: \"loadingAll\"\r\n }), options.extra && options.extra.summary)\r\n })).fail(d.reject)\r\n } else if (!dataSource.isLoading()) {\r\n var loadOptions = extend({}, dataSource.loadOptions(), {\r\n isLoadingAll: true,\r\n requireTotalCount: false\r\n });\r\n dataSource.load(loadOptions).done((function(items, extra) {\r\n items = that._beforeProcessItems(items);\r\n items = that._processItems(items, {\r\n changeType: \"loadingAll\"\r\n });\r\n d.resolve(items, extra && extra.summary)\r\n })).fail(d.reject)\r\n } else {\r\n d.reject()\r\n }\r\n } else {\r\n d.resolve([])\r\n }\r\n return d\r\n },\r\n getKeyByRowIndex: function(rowIndex, byLoaded) {\r\n var item = this.items(byLoaded)[rowIndex];\r\n if (item) {\r\n return item.key\r\n }\r\n },\r\n getRowIndexByKey: function(key, byLoaded) {\r\n return gridCoreUtils.getIndexByKey(key, this.items(byLoaded))\r\n },\r\n keyOf: function(data) {\r\n var store = this.store();\r\n if (store) {\r\n return store.keyOf(data)\r\n }\r\n },\r\n byKey: function(key) {\r\n var store = this.store();\r\n var rowIndex = this.getRowIndexByKey(key);\r\n var result;\r\n if (!store) {\r\n return\r\n }\r\n if (rowIndex >= 0) {\r\n result = (new Deferred).resolve(this.items()[rowIndex].data)\r\n }\r\n return result || store.byKey(key)\r\n },\r\n key: function() {\r\n var store = this.store();\r\n if (store) {\r\n return store.key()\r\n }\r\n },\r\n getRowIndexOffset: function() {\r\n return 0\r\n },\r\n getDataByKeys: function(rowKeys) {\r\n var that = this;\r\n var result = new Deferred;\r\n var deferreds = [];\r\n var data = [];\r\n each(rowKeys, (function(index, key) {\r\n deferreds.push(that.byKey(key).done((function(keyData) {\r\n data[index] = keyData\r\n })))\r\n }));\r\n when.apply($, deferreds).always((function() {\r\n result.resolve(data)\r\n }));\r\n return result\r\n },\r\n pageIndex: function(value) {\r\n return changePaging(this, \"pageIndex\", value)\r\n },\r\n pageSize: function(value) {\r\n return changePaging(this, \"pageSize\", value)\r\n },\r\n beginCustomLoading: function(messageText) {\r\n this._isCustomLoading = true;\r\n this._loadingText = messageText || \"\";\r\n this._fireLoadingChanged()\r\n },\r\n endCustomLoading: function() {\r\n this._isCustomLoading = false;\r\n this._loadingText = void 0;\r\n this._fireLoadingChanged()\r\n },\r\n refresh: function(options) {\r\n if (true === options) {\r\n options = {\r\n reload: true,\r\n changesOnly: true\r\n }\r\n } else if (!options) {\r\n options = {\r\n lookup: true,\r\n selection: true,\r\n reload: true\r\n }\r\n }\r\n var that = this;\r\n var dataSource = that.getDataSource();\r\n var changesOnly = options.changesOnly;\r\n var d = new Deferred;\r\n var customizeLoadResult = function() {\r\n that._repaintChangesOnly = !!changesOnly\r\n };\r\n when(!options.lookup || that._columnsController.refresh()).always((function() {\r\n if (options.load || options.reload) {\r\n dataSource && dataSource.on(\"customizeLoadResult\", customizeLoadResult);\r\n when(that.reload(options.reload, changesOnly)).always((function() {\r\n dataSource && dataSource.off(\"customizeLoadResult\", customizeLoadResult);\r\n that._repaintChangesOnly = void 0\r\n })).done(d.resolve).fail(d.reject)\r\n } else {\r\n that.updateItems({\r\n repaintChangesOnly: options.changesOnly\r\n });\r\n d.resolve()\r\n }\r\n }));\r\n return d.promise()\r\n },\r\n getVisibleRows: function() {\r\n return this.items()\r\n },\r\n _disposeDataSource: function() {\r\n this.setDataSource(null)\r\n },\r\n dispose: function() {\r\n this._disposeDataSource();\r\n this.callBase.apply(this, arguments)\r\n },\r\n repaintRows: function(rowIndexes, changesOnly) {\r\n rowIndexes = Array.isArray(rowIndexes) ? rowIndexes : [rowIndexes];\r\n if (rowIndexes.length > 1 || isDefined(rowIndexes[0])) {\r\n this.updateItems({\r\n changeType: \"update\",\r\n rowIndices: rowIndexes,\r\n isFullUpdate: !changesOnly\r\n })\r\n }\r\n },\r\n skipProcessingPagingChange: function(fullName) {\r\n return this._skipProcessingPagingChange && (\"paging.pageIndex\" === fullName || \"paging.pageSize\" === fullName)\r\n },\r\n getUserState: function() {\r\n return {\r\n searchText: this.option(\"searchPanel.text\"),\r\n pageIndex: this.pageIndex(),\r\n pageSize: this.pageSize()\r\n }\r\n },\r\n getCachedStoreData: function() {\r\n return this._dataSource && this._dataSource.getCachedStoreData()\r\n }\r\n };\r\n gridCoreUtils.proxyMethod(members, \"load\");\r\n gridCoreUtils.proxyMethod(members, \"reload\");\r\n gridCoreUtils.proxyMethod(members, \"push\");\r\n gridCoreUtils.proxyMethod(members, \"itemsCount\", 0);\r\n gridCoreUtils.proxyMethod(members, \"totalItemsCount\", 0);\r\n gridCoreUtils.proxyMethod(members, \"hasKnownLastPage\", true);\r\n gridCoreUtils.proxyMethod(members, \"isLoaded\", true);\r\n gridCoreUtils.proxyMethod(members, \"totalCount\", 0);\r\n return members\r\n }())\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.data_controller.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 gridCore from \"./ui.data_grid.core\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport dataSourceAdapterProvider from \"./ui.data_grid.data_source_adapter\";\r\nimport {\r\n dataControllerModule\r\n} from \"../grid_core/ui.grid_core.data_controller\";\r\nexport var DataController = dataControllerModule.controllers.data.inherit({\r\n _getDataSourceAdapter: function() {\r\n return dataSourceAdapterProvider\r\n },\r\n _getSpecificDataSourceOption: function() {\r\n var dataSource = this.option(\"dataSource\");\r\n if (dataSource && !Array.isArray(dataSource) && this.option(\"keyExpr\")) {\r\n errors.log(\"W1011\")\r\n }\r\n return this.callBase()\r\n }\r\n});\r\ngridCore.registerModule(\"data\", {\r\n defaultOptions: dataControllerModule.defaultOptions,\r\n controllers: {\r\n data: DataController\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.sorting_mixin.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 isDefined\r\n} from \"../../core/utils/type\";\r\nimport $ from \"../../core/renderer\";\r\nvar SORT_CLASS = \"dx-sort\";\r\nvar SORT_NONE_CLASS = \"dx-sort-none\";\r\nvar SORTUP_CLASS = \"dx-sort-up\";\r\nvar SORTDOWN_CLASS = \"dx-sort-down\";\r\nvar SORT_INDEX_CLASS = \"dx-sort-index\";\r\nvar SORT_INDEX_ICON_CLASS = \"dx-sort-index-icon\";\r\nvar HEADERS_ACTION_CLASS = \"action\";\r\nexport default {\r\n _applyColumnState: function(options) {\r\n var ariaSortState;\r\n var $sortIndicator;\r\n var sortingMode = this.option(\"sorting.mode\");\r\n var rootElement = options.rootElement;\r\n var column = options.column;\r\n var $indicatorsContainer = this._getIndicatorContainer(rootElement);\r\n if (\"sort\" === options.name) {\r\n rootElement.find(\".\" + SORT_CLASS).remove();\r\n !$indicatorsContainer.children().length && $indicatorsContainer.remove();\r\n var isSortingAllowed = (\"single\" === sortingMode || \"multiple\" === sortingMode) && column.allowSorting;\r\n if (!isDefined(column.groupIndex) && (isSortingAllowed || isDefined(column.sortOrder))) {\r\n ariaSortState = \"asc\" === column.sortOrder ? \"ascending\" : \"descending\";\r\n $sortIndicator = this.callBase(options).toggleClass(SORTUP_CLASS, \"asc\" === column.sortOrder).toggleClass(SORTDOWN_CLASS, \"desc\" === column.sortOrder);\r\n var hasSeveralSortIndexes = this.getController && !!this.getController(\"columns\").columnOption(\"sortIndex:1\");\r\n if (hasSeveralSortIndexes && this.option(\"sorting.showSortIndexes\") && column.sortIndex >= 0) {\r\n $(\"\").addClass(SORT_INDEX_ICON_CLASS).text(column.sortIndex + 1).appendTo($sortIndicator);\r\n $sortIndicator.addClass(SORT_INDEX_CLASS)\r\n }\r\n options.rootElement.addClass(this.addWidgetPrefix(HEADERS_ACTION_CLASS))\r\n }\r\n if (!isDefined(column.sortOrder)) {\r\n this.setAria(\"sort\", \"none\", rootElement)\r\n } else {\r\n this.setAria(\"sort\", ariaSortState, rootElement)\r\n }\r\n return $sortIndicator\r\n } else {\r\n return this.callBase(options)\r\n }\r\n },\r\n _getIndicatorClassName: function(name) {\r\n if (\"sort\" === name) {\r\n return SORT_CLASS\r\n } else if (\"sortIndex\" === name) {\r\n return SORT_INDEX_ICON_CLASS\r\n }\r\n return this.callBase(name)\r\n },\r\n _renderIndicator: function(options) {\r\n var column = options.column;\r\n var $container = options.container;\r\n var $indicator = options.indicator;\r\n if (\"sort\" === options.name) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (!isDefined(column.sortOrder)) {\r\n $indicator && $indicator.addClass(SORT_NONE_CLASS)\r\n }\r\n if ($container.children().length && (!rtlEnabled && \"left\" === options.columnAlignment || rtlEnabled && \"right\" === options.columnAlignment)) {\r\n $container.prepend($indicator);\r\n return\r\n }\r\n }\r\n this.callBase(options)\r\n },\r\n _updateIndicator: function($cell, column, indicatorName) {\r\n if (\"sort\" === indicatorName && isDefined(column.groupIndex)) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _getIndicatorElements: function($cell, returnAll) {\r\n var $indicatorElements = this.callBase($cell);\r\n return returnAll ? $indicatorElements : $indicatorElements && $indicatorElements.not(\".\" + SORT_NONE_CLASS)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.sorting.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport sortingMixin from \"../grid_core/ui.grid_core.sorting_mixin\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nvar COLUMN_HEADERS_VIEW_NAMESPACE = \"dxDataGridColumnHeadersView\";\r\nvar ColumnHeadersViewSortingExtender = extend({}, sortingMixin, {\r\n _createRow(row) {\r\n var $row = this.callBase(row);\r\n if (\"header\" === row.rowType) {\r\n eventsEngine.on($row, addNamespace(clickEventName, COLUMN_HEADERS_VIEW_NAMESPACE), \"td\", this.createAction(e => {\r\n this._processHeaderAction(e.event, $row)\r\n }))\r\n }\r\n return $row\r\n },\r\n _processHeaderAction: function(event, $row) {\r\n if ($(event.currentTarget).parent().get(0) !== $row.get(0)) {\r\n return\r\n }\r\n var that = this;\r\n var keyName = null;\r\n var $cellElementFromEvent = $(event.currentTarget);\r\n var rowIndex = $cellElementFromEvent.parent().index();\r\n var columnIndex = -1;\r\n [].slice.call(that.getCellElements(rowIndex)).some(($cellElement, index) => {\r\n if ($cellElement === $cellElementFromEvent.get(0)) {\r\n columnIndex = index;\r\n return true\r\n }\r\n });\r\n var visibleColumns = that._columnsController.getVisibleColumns(rowIndex);\r\n var column = visibleColumns[columnIndex];\r\n var editingController = that.getController(\"editing\");\r\n var editingMode = that.option(\"editing.mode\");\r\n var isCellEditing = editingController && editingController.isEditing() && (\"batch\" === editingMode || \"cell\" === editingMode);\r\n if (isCellEditing || !that._isSortableElement($(event.target))) {\r\n return\r\n }\r\n if (column && !isDefined(column.groupIndex) && !column.command) {\r\n if (event.shiftKey) {\r\n keyName = \"shift\"\r\n } else if (isCommandKeyPressed(event)) {\r\n keyName = \"ctrl\"\r\n }\r\n setTimeout(() => {\r\n that._columnsController.changeSortOrder(column.index, keyName)\r\n })\r\n }\r\n },\r\n _renderCellContent($cell, options) {\r\n var column = options.column;\r\n if (!column.command && \"header\" === options.rowType) {\r\n this._applyColumnState({\r\n name: \"sort\",\r\n rootElement: $cell,\r\n column: column,\r\n showColumnLines: this.option(\"showColumnLines\")\r\n })\r\n }\r\n this.callBase($cell, options)\r\n },\r\n _columnOptionChanged(e) {\r\n var changeTypes = e.changeTypes;\r\n if (1 === changeTypes.length && changeTypes.sorting) {\r\n this._updateIndicators(\"sort\");\r\n return\r\n }\r\n this.callBase(e)\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"sorting\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nvar HeaderPanelSortingExtender = extend({}, sortingMixin, {\r\n _createGroupPanelItem($rootElement, groupColumn) {\r\n var that = this;\r\n var $item = that.callBase(...arguments);\r\n eventsEngine.on($item, addNamespace(clickEventName, \"dxDataGridHeaderPanel\"), that.createAction(() => {\r\n that._processGroupItemAction(groupColumn.index)\r\n }));\r\n that._applyColumnState({\r\n name: \"sort\",\r\n rootElement: $item,\r\n column: {\r\n alignment: that.option(\"rtlEnabled\") ? \"right\" : \"left\",\r\n allowSorting: groupColumn.allowSorting,\r\n sortOrder: \"desc\" === groupColumn.sortOrder ? \"desc\" : \"asc\"\r\n },\r\n showColumnLines: true\r\n });\r\n return $item\r\n },\r\n _processGroupItemAction(groupColumnIndex) {\r\n setTimeout(() => this.getController(\"columns\").changeSortOrder(groupColumnIndex))\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"sorting\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport var sortingModule = {\r\n defaultOptions: () => ({\r\n sorting: {\r\n mode: \"single\",\r\n ascendingText: messageLocalization.format(\"dxDataGrid-sortingAscendingText\"),\r\n descendingText: messageLocalization.format(\"dxDataGrid-sortingDescendingText\"),\r\n clearText: messageLocalization.format(\"dxDataGrid-sortingClearText\"),\r\n showSortIndexes: true\r\n }\r\n }),\r\n extenders: {\r\n views: {\r\n columnHeadersView: ColumnHeadersViewSortingExtender,\r\n headerPanel: HeaderPanelSortingExtender\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.sorting.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n sortingModule\r\n} from \"../grid_core/ui.grid_core.sorting\";\r\ngridCore.registerModule(\"sorting\", sortingModule);\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.rows.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 hasWindow\r\n} from \"../../core/utils/window\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n deferRender,\r\n deferUpdate\r\n} from \"../../core/utils/common\";\r\nimport {\r\n setHeight\r\n} from \"../../core/utils/style\";\r\nimport {\r\n isDefined,\r\n isNumeric,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getBoundingRect,\r\n getDefaultAlignment\r\n} from \"../../core/utils/position\";\r\nimport {\r\n isEmpty\r\n} from \"../../core/utils/string\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n ColumnsView\r\n} from \"./ui.grid_core.columns_view\";\r\nimport Scrollable from \"../scroll_view/ui.scrollable\";\r\nimport {\r\n removeEvent\r\n} from \"../../core/remove_event\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport browser from \"../../core/utils/browser\";\r\nvar ROWS_VIEW_CLASS = \"rowsview\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar NOWRAP_CLASS = \"nowrap\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar DATA_ROW_CLASS = \"dx-data-row\";\r\nvar FREE_SPACE_CLASS = \"dx-freespace-row\";\r\nvar ROW_LINES_CLASS = \"dx-row-lines\";\r\nvar COLUMN_LINES_CLASS = \"dx-column-lines\";\r\nvar ROW_ALTERNATION_CLASS = \"dx-row-alt\";\r\nvar LAST_ROW_BORDER = \"dx-last-row-border\";\r\nvar EMPTY_CLASS = \"dx-empty\";\r\nvar ROW_INSERTED_ANIMATION_CLASS = \"row-inserted-animation\";\r\nvar LOADPANEL_HIDE_TIMEOUT = 200;\r\n\r\nfunction getMaxHorizontalScrollOffset(scrollable) {\r\n return scrollable ? scrollable.scrollWidth() - scrollable.clientWidth() : 0\r\n}\r\nexport var rowsModule = {\r\n defaultOptions: function() {\r\n return {\r\n hoverStateEnabled: false,\r\n scrolling: {\r\n useNative: \"auto\"\r\n },\r\n loadPanel: {\r\n enabled: \"auto\",\r\n text: messageLocalization.format(\"Loading\"),\r\n width: 200,\r\n height: 90,\r\n showIndicator: true,\r\n indicatorSrc: \"\",\r\n showPane: true\r\n },\r\n rowTemplate: null,\r\n columnAutoWidth: false,\r\n noDataText: messageLocalization.format(\"dxDataGrid-noDataText\"),\r\n wordWrapEnabled: false,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n rowAlternationEnabled: false,\r\n activeStateEnabled: false,\r\n twoWayBindingEnabled: true\r\n }\r\n },\r\n views: {\r\n rowsView: ColumnsView.inherit(function() {\r\n var defaultCellTemplate = function($container, options) {\r\n var isDataTextEmpty = isEmpty(options.text) && \"data\" === options.rowType;\r\n var text = options.text;\r\n var container = $container.get(0);\r\n if (isDataTextEmpty) {\r\n gridCoreUtils.setEmptyText($container)\r\n } else if (options.column.encodeHtml) {\r\n container.textContent = text\r\n } else {\r\n container.innerHTML = text\r\n }\r\n };\r\n return {\r\n _getDefaultTemplate: function(column) {\r\n switch (column.command) {\r\n case \"empty\":\r\n return function(container) {\r\n container.html(\" \")\r\n };\r\n default:\r\n return defaultCellTemplate\r\n }\r\n },\r\n _getDefaultGroupTemplate: function(column) {\r\n var summaryTexts = this.option(\"summary.texts\");\r\n return function($container, options) {\r\n var data = options.data;\r\n var text = options.column.caption + \": \" + options.text;\r\n var container = $container.get(0);\r\n if (options.summaryItems && options.summaryItems.length) {\r\n text += \" \" + gridCoreUtils.getGroupRowSummaryText(options.summaryItems, summaryTexts)\r\n }\r\n if (data) {\r\n if (options.groupContinuedMessage && options.groupContinuesMessage) {\r\n text += \" (\" + options.groupContinuedMessage + \". \" + options.groupContinuesMessage + \")\"\r\n } else if (options.groupContinuesMessage) {\r\n text += \" (\" + options.groupContinuesMessage + \")\"\r\n } else if (options.groupContinuedMessage) {\r\n text += \" (\" + options.groupContinuedMessage + \")\"\r\n }\r\n }\r\n $container.addClass(GROUP_CELL_CLASS);\r\n if (column.encodeHtml) {\r\n container.textContent = text\r\n } else {\r\n container.innerHTML = text\r\n }\r\n }\r\n },\r\n _update: function() {},\r\n _getCellTemplate: function(options) {\r\n var column = options.column;\r\n var template;\r\n if (\"group\" === options.rowType && isDefined(column.groupIndex) && !column.showWhenGrouped && !column.command) {\r\n template = column.groupCellTemplate || {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultGroupTemplate(column)\r\n }\r\n } else if ((\"data\" === options.rowType || column.command) && column.cellTemplate) {\r\n template = column.cellTemplate\r\n } else {\r\n template = {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultTemplate(column)\r\n }\r\n }\r\n return template\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase(row);\r\n if (row) {\r\n var isGroup = \"group\" === row.rowType;\r\n var isDataRow = \"data\" === row.rowType;\r\n isDataRow && $row.addClass(DATA_ROW_CLASS);\r\n isDataRow && this.option(\"showRowLines\") && $row.addClass(ROW_LINES_CLASS);\r\n this.option(\"showColumnLines\") && $row.addClass(COLUMN_LINES_CLASS);\r\n if (false === row.visible) {\r\n $row.hide()\r\n }\r\n if (isGroup) {\r\n $row.addClass(GROUP_ROW_CLASS);\r\n var isRowExpanded = row.isExpanded;\r\n this.setAria(\"role\", \"row\", $row);\r\n this.setAria(\"expanded\", isDefined(isRowExpanded) && isRowExpanded.toString(), $row)\r\n }\r\n }\r\n return $row\r\n },\r\n _rowPrepared: function($row, rowOptions, row) {\r\n if (\"data\" === rowOptions.rowType) {\r\n if (this.option(\"rowAlternationEnabled\")) {\r\n this._isAltRow(row) && $row.addClass(ROW_ALTERNATION_CLASS);\r\n rowOptions.watch && rowOptions.watch(() => this._isAltRow(row), value => {\r\n $row.toggleClass(ROW_ALTERNATION_CLASS, value)\r\n })\r\n }\r\n this._setAriaRowIndex(rowOptions, $row);\r\n rowOptions.watch && rowOptions.watch(() => rowOptions.rowIndex, () => this._setAriaRowIndex(rowOptions, $row))\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _setAriaRowIndex: function(row, $row) {\r\n var component = this.component;\r\n var isPagerMode = \"standard\" === component.option(\"scrolling.mode\") && \"virtual\" !== component.option(\"scrolling.rowRenderingMode\");\r\n var rowIndex = row.rowIndex + 1;\r\n if (isPagerMode) {\r\n rowIndex = component.pageIndex() * component.pageSize() + rowIndex\r\n } else {\r\n rowIndex += this._dataController.getRowIndexOffset()\r\n }\r\n this.setAria(\"rowindex\", rowIndex, $row)\r\n },\r\n _afterRowPrepared: function(e) {\r\n var arg = e.args[0];\r\n var dataController = this._dataController;\r\n var row = dataController.getVisibleRows()[arg.rowIndex];\r\n var watch = this.option(\"integrationOptions.watchMethod\");\r\n if (!arg.data || \"data\" !== arg.rowType || arg.isNewRow || !this.option(\"twoWayBindingEnabled\") || !watch || !row) {\r\n return\r\n }\r\n var dispose = watch(() => dataController.generateDataValues(arg.data, arg.columns), () => {\r\n dataController.repaintRows([row.rowIndex], this.option(\"repaintChangesOnly\"))\r\n }, {\r\n deep: true,\r\n skipImmediate: true\r\n });\r\n eventsEngine.on(arg.rowElement, removeEvent, dispose)\r\n },\r\n _renderScrollable: function(force) {\r\n var $element = this.element();\r\n if (!$element.children().length) {\r\n $element.append(\"
\")\r\n }\r\n if (force || !this._loadPanel) {\r\n this._renderLoadPanel($element, $element.parent(), this._dataController.isLocalStore())\r\n }\r\n if ((force || !this.getScrollable()) && this._dataController.isLoaded()) {\r\n var columns = this.getColumns();\r\n var allColumnsHasWidth = true;\r\n for (var i = 0; i < columns.length; i++) {\r\n if (!columns[i].width && !columns[i].minWidth) {\r\n allColumnsHasWidth = false;\r\n break\r\n }\r\n }\r\n if (this.option(\"columnAutoWidth\") || this._hasHeight || allColumnsHasWidth || this._columnsController._isColumnFixing()) {\r\n this._renderScrollableCore($element)\r\n }\r\n }\r\n },\r\n _handleScroll: function(e) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n this._isScrollByEvent = !!e.event;\r\n this._scrollTop = e.scrollOffset.top;\r\n this._scrollLeft = e.scrollOffset.left;\r\n if (rtlEnabled) {\r\n this._scrollRight = getMaxHorizontalScrollOffset(e.component) - this._scrollLeft\r\n }\r\n this.scrollChanged.fire(e.scrollOffset, this.name)\r\n },\r\n _renderScrollableCore: function($element) {\r\n var dxScrollableOptions = this._createScrollableOptions();\r\n var scrollHandler = this._handleScroll.bind(this);\r\n dxScrollableOptions.onScroll = scrollHandler;\r\n this._scrollable = this._createComponent($element, Scrollable, dxScrollableOptions);\r\n this._scrollableContainer = this._scrollable && this._scrollable._$container\r\n },\r\n _renderLoadPanel: gridCoreUtils.renderLoadPanel,\r\n _renderContent: function(contentElement, tableElement) {\r\n contentElement.empty().append(tableElement);\r\n return this._findContentElement()\r\n },\r\n _updateContent: function(newTableElement, change) {\r\n var that = this;\r\n var tableElement = that.getTableElement();\r\n var contentElement = that._findContentElement();\r\n var changeType = change && change.changeType;\r\n var executors = [];\r\n var highlightChanges = this.option(\"highlightChanges\");\r\n var rowInsertedClass = this.addWidgetPrefix(ROW_INSERTED_ANIMATION_CLASS);\r\n switch (changeType) {\r\n case \"update\":\r\n each(change.rowIndices, (function(index, rowIndex) {\r\n var $newRowElement = that._getRowElements(newTableElement).eq(index);\r\n var changeType = change.changeTypes && change.changeTypes[index];\r\n var item = change.items && change.items[index];\r\n executors.push((function() {\r\n var $rowsElement = that._getRowElements();\r\n var $rowElement = $rowsElement.eq(rowIndex);\r\n switch (changeType) {\r\n case \"update\":\r\n if (item) {\r\n var columnIndices = change.columnIndices && change.columnIndices[index];\r\n if (isDefined(item.visible) && item.visible !== $rowElement.is(\":visible\")) {\r\n $rowElement.toggle(item.visible)\r\n } else if (columnIndices) {\r\n that._updateCells($rowElement, $newRowElement, columnIndices)\r\n } else {\r\n $rowElement.replaceWith($newRowElement)\r\n }\r\n }\r\n break;\r\n case \"insert\":\r\n if (!$rowsElement.length) {\r\n if (tableElement) {\r\n var target = $newRowElement.is(\"tbody\") ? tableElement : tableElement.children(\"tbody\");\r\n $newRowElement.prependTo(target)\r\n }\r\n } else if ($rowElement.length) {\r\n $newRowElement.insertBefore($rowElement)\r\n } else {\r\n $newRowElement.insertAfter($rowsElement.last())\r\n }\r\n if (highlightChanges && change.isLiveUpdate) {\r\n $newRowElement.addClass(rowInsertedClass)\r\n }\r\n break;\r\n case \"remove\":\r\n $rowElement.remove()\r\n }\r\n }))\r\n }));\r\n each(executors, (function() {\r\n this()\r\n }));\r\n newTableElement.remove();\r\n break;\r\n default:\r\n that.setTableElement(newTableElement);\r\n contentElement.addClass(that.addWidgetPrefix(CONTENT_CLASS));\r\n that._renderContent(contentElement, newTableElement)\r\n }\r\n },\r\n _createEmptyRow: function(className, isFixed, height) {\r\n var $cell;\r\n var $row = this._createRow();\r\n var columns = isFixed ? this.getFixedColumns() : this.getColumns();\r\n $row.addClass(className).toggleClass(COLUMN_LINES_CLASS, this.option(\"showColumnLines\"));\r\n for (var i = 0; i < columns.length; i++) {\r\n $cell = this._createCell({\r\n column: columns[i],\r\n rowType: \"freeSpace\",\r\n columnIndex: i,\r\n columns: columns\r\n });\r\n isNumeric(height) && $cell.css(\"height\", height);\r\n $row.append($cell)\r\n }\r\n this.setAria(\"role\", \"presentation\", $row);\r\n return $row\r\n },\r\n _appendEmptyRow: function($table, $emptyRow, location) {\r\n var $tBodies = this._getBodies($table);\r\n var isTableContainer = !$tBodies.length || $emptyRow.is(\"tbody\");\r\n var $container = isTableContainer ? $table : $tBodies;\r\n if (\"top\" === location) {\r\n $container.first().prepend($emptyRow);\r\n if (isTableContainer) {\r\n var $colgroup = $container.children(\"colgroup\");\r\n $container.prepend($colgroup)\r\n }\r\n } else {\r\n $container.last().append($emptyRow)\r\n }\r\n },\r\n _renderFreeSpaceRow: function($tableElement) {\r\n var $freeSpaceRowElement = this._createEmptyRow(FREE_SPACE_CLASS);\r\n $freeSpaceRowElement = this._wrapRowIfNeed($tableElement, $freeSpaceRowElement);\r\n this._appendEmptyRow($tableElement, $freeSpaceRowElement)\r\n },\r\n _checkRowKeys: function(options) {\r\n var that = this;\r\n var rows = that._getRows(options);\r\n var keyExpr = that._dataController.store() && that._dataController.store().key();\r\n keyExpr && rows.some((function(row) {\r\n if (\"data\" === row.rowType && void 0 === row.key) {\r\n that._dataController.fireError(\"E1046\", keyExpr);\r\n return true\r\n }\r\n }))\r\n },\r\n _needUpdateRowHeight: function(itemsCount) {\r\n return itemsCount > 0 && !this._rowHeight\r\n },\r\n _getRowsHeight: function($tableElement) {\r\n var $rowElements = $tableElement.children(\"tbody\").children().not(\".dx-virtual-row\").not(\".\" + FREE_SPACE_CLASS);\r\n return $rowElements.toArray().reduce((function(sum, row) {\r\n return sum + getBoundingRect(row).height\r\n }), 0)\r\n },\r\n _updateRowHeight: function() {\r\n var $tableElement = this.getTableElement();\r\n var itemsCount = this._dataController.items().length;\r\n if ($tableElement && this._needUpdateRowHeight(itemsCount)) {\r\n var rowsHeight = this._getRowsHeight($tableElement);\r\n this._rowHeight = rowsHeight / itemsCount\r\n }\r\n },\r\n _findContentElement: function() {\r\n var $content = this.element();\r\n var scrollable = this.getScrollable();\r\n if ($content) {\r\n if (scrollable) {\r\n $content = $(scrollable.content())\r\n }\r\n return $content.children().first()\r\n }\r\n },\r\n _getRowElements: function(tableElement) {\r\n var $rows = this.callBase(tableElement);\r\n return $rows && $rows.not(\".\" + FREE_SPACE_CLASS)\r\n },\r\n _getFreeSpaceRowElements: function($table) {\r\n var tableElements = $table || this.getTableElements();\r\n return tableElements && tableElements.children(\"tbody\").children(\".\" + FREE_SPACE_CLASS)\r\n },\r\n _getNoDataText: function() {\r\n return this.option(\"noDataText\")\r\n },\r\n _rowClick: function(e) {\r\n var item = this._dataController.items()[e.rowIndex] || {};\r\n this.executeAction(\"onRowClick\", extend({\r\n evaluate: function(expr) {\r\n var getter = compileGetter(expr);\r\n return getter(item.data)\r\n }\r\n }, e, item))\r\n },\r\n _rowDblClick: function(e) {\r\n var item = this._dataController.items()[e.rowIndex] || {};\r\n this.executeAction(\"onRowDblClick\", extend({}, e, item))\r\n },\r\n _getColumnsCountBeforeGroups: function(columns) {\r\n for (var i = 0; i < columns.length; i++) {\r\n if (\"groupExpand\" === columns[i].type) {\r\n return i\r\n }\r\n }\r\n return 0\r\n },\r\n _getGroupCellOptions: function(options) {\r\n var columnsCountBeforeGroups = this._getColumnsCountBeforeGroups(options.columns);\r\n var columnIndex = (options.row.groupIndex || 0) + columnsCountBeforeGroups;\r\n return {\r\n columnIndex: columnIndex,\r\n colspan: options.columns.length - columnIndex - 1\r\n }\r\n },\r\n _renderCells: function($row, options) {\r\n if (\"group\" === options.row.rowType) {\r\n this._renderGroupedCells($row, options)\r\n } else if (options.row.values) {\r\n this.callBase($row, options)\r\n }\r\n },\r\n _renderGroupedCells: function($row, options) {\r\n var row = options.row;\r\n var expandColumn;\r\n var columns = options.columns;\r\n var rowIndex = row.rowIndex;\r\n var isExpanded;\r\n var groupCellOptions = this._getGroupCellOptions(options);\r\n for (var i = 0; i <= groupCellOptions.columnIndex; i++) {\r\n if (i === groupCellOptions.columnIndex && columns[i].allowCollapsing && \"infinite\" !== options.scrollingMode) {\r\n isExpanded = !!row.isExpanded;\r\n expandColumn = columns[i]\r\n } else {\r\n isExpanded = null;\r\n expandColumn = {\r\n command: \"expand\",\r\n cssClass: columns[i].cssClass\r\n }\r\n }\r\n this._renderCell($row, {\r\n value: isExpanded,\r\n row: row,\r\n rowIndex: rowIndex,\r\n column: expandColumn,\r\n columnIndex: i\r\n })\r\n }\r\n var groupColumnAlignment = getDefaultAlignment(this.option(\"rtlEnabled\"));\r\n var groupColumn = extend({}, columns[groupCellOptions.columnIndex], {\r\n command: null,\r\n cssClass: null,\r\n width: null,\r\n showWhenGrouped: false,\r\n alignment: groupColumnAlignment\r\n });\r\n if (groupCellOptions.colspan > 1) {\r\n groupColumn.colspan = groupCellOptions.colspan\r\n }\r\n this._renderCell($row, {\r\n value: row.values[row.groupIndex],\r\n row: row,\r\n rowIndex: rowIndex,\r\n column: groupColumn,\r\n columnIndex: groupCellOptions.columnIndex\r\n })\r\n },\r\n _renderRows: function($table, options) {\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n this.callBase($table, extend({\r\n scrollingMode: scrollingMode\r\n }, options));\r\n this._checkRowKeys(options.change);\r\n this._renderFreeSpaceRow($table);\r\n if (!this._hasHeight) {\r\n this.updateFreeSpaceRowHeight($table)\r\n }\r\n },\r\n _renderRow: function($table, options) {\r\n var row = options.row;\r\n var rowTemplate = this.option(\"rowTemplate\");\r\n if ((\"data\" === row.rowType || \"group\" === row.rowType) && !isDefined(row.groupIndex) && rowTemplate) {\r\n this.renderTemplate($table, rowTemplate, extend({\r\n columns: options.columns\r\n }, row), true)\r\n } else {\r\n this.callBase($table, options)\r\n }\r\n },\r\n _renderTable: function(options) {\r\n var that = this;\r\n var $table = that.callBase(options);\r\n if (!isDefined(that.getTableElement())) {\r\n that.setTableElement($table);\r\n that._renderScrollable(true);\r\n that.resizeCompleted.add((function resizeCompletedHandler() {\r\n var scrollableInstance = that.getScrollable();\r\n if (scrollableInstance && that.element().closest(getWindow().document).length) {\r\n that.resizeCompleted.remove(resizeCompletedHandler);\r\n scrollableInstance._visibilityChanged(true)\r\n }\r\n }))\r\n } else {\r\n that._renderScrollable()\r\n }\r\n return $table\r\n },\r\n _createTable: function() {\r\n var $table = this.callBase.apply(this, arguments);\r\n if (this.option(\"rowTemplate\")) {\r\n $table.appendTo(this.component.$element())\r\n }\r\n return $table\r\n },\r\n _renderCore: function(change) {\r\n var $element = this.element();\r\n $element.addClass(this.addWidgetPrefix(ROWS_VIEW_CLASS)).toggleClass(this.addWidgetPrefix(NOWRAP_CLASS), !this.option(\"wordWrapEnabled\"));\r\n $element.toggleClass(EMPTY_CLASS, 0 === this._dataController.items().length);\r\n this.setAria(\"role\", \"presentation\", $element);\r\n var $table = this._renderTable({\r\n change: change\r\n });\r\n this._updateContent($table, change);\r\n this.callBase(change);\r\n this._lastColumnWidths = null\r\n },\r\n _getRows: function(change) {\r\n return change && change.items || this._dataController.items()\r\n },\r\n _getCellOptions: function(options) {\r\n var column = options.column;\r\n var row = options.row;\r\n var data = row.data;\r\n var summaryCells = row && row.summaryCells;\r\n var value = options.value;\r\n var displayValue = gridCoreUtils.getDisplayValue(column, value, data, row.rowType);\r\n var parameters = this.callBase(options);\r\n parameters.value = value;\r\n parameters.oldValue = options.oldValue;\r\n parameters.displayValue = displayValue;\r\n parameters.row = row;\r\n parameters.key = row.key;\r\n parameters.data = data;\r\n parameters.rowType = row.rowType;\r\n parameters.values = row.values;\r\n parameters.text = !column.command ? gridCoreUtils.formatValue(displayValue, column) : \"\";\r\n parameters.rowIndex = row.rowIndex;\r\n parameters.summaryItems = summaryCells && summaryCells[options.columnIndex];\r\n parameters.resized = column.resizedCallbacks;\r\n if (isDefined(column.groupIndex) && !column.command) {\r\n var groupingTextsOptions = this.option(\"grouping.texts\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n if (\"virtual\" !== scrollingMode && \"infinite\" !== scrollingMode) {\r\n parameters.groupContinuesMessage = data && data.isContinuationOnNextPage && groupingTextsOptions && groupingTextsOptions.groupContinuesMessage;\r\n parameters.groupContinuedMessage = data && data.isContinuation && groupingTextsOptions && groupingTextsOptions.groupContinuedMessage\r\n }\r\n }\r\n return parameters\r\n },\r\n _setRowsOpacityCore: function($rows, visibleColumns, columnIndex, value) {\r\n var columnsController = this._columnsController;\r\n var columns = columnsController.getColumns();\r\n var column = columns && columns[columnIndex];\r\n var columnID = column && column.isBand && column.index;\r\n each($rows, (function(rowIndex, row) {\r\n if (!$(row).hasClass(GROUP_ROW_CLASS)) {\r\n for (var i = 0; i < visibleColumns.length; i++) {\r\n if (isNumeric(columnID) && columnsController.isParentBandColumn(visibleColumns[i].index, columnID) || visibleColumns[i].index === columnIndex) {\r\n $rows.eq(rowIndex).children().eq(i).css({\r\n opacity: value\r\n });\r\n if (!isNumeric(columnID)) {\r\n break\r\n }\r\n }\r\n }\r\n }\r\n }))\r\n },\r\n _getDevicePixelRatio: function() {\r\n return getWindow().devicePixelRatio\r\n },\r\n renderNoDataText: gridCoreUtils.renderNoDataText,\r\n getCellOptions: function(rowIndex, columnIdentifier) {\r\n var rowOptions = this._dataController.items()[rowIndex];\r\n var cellOptions;\r\n var column;\r\n if (rowOptions) {\r\n if (isString(columnIdentifier)) {\r\n column = this._columnsController.columnOption(columnIdentifier)\r\n } else {\r\n column = this._columnsController.getVisibleColumns()[columnIdentifier]\r\n }\r\n if (column) {\r\n cellOptions = this._getCellOptions({\r\n value: column.calculateCellValue(rowOptions.data),\r\n rowIndex: rowOptions.rowIndex,\r\n row: rowOptions,\r\n column: column\r\n })\r\n }\r\n }\r\n return cellOptions\r\n },\r\n getRow: function(index) {\r\n if (index >= 0) {\r\n var rows = this._getRowElements();\r\n if (rows.length > index) {\r\n return $(rows[index])\r\n }\r\n }\r\n },\r\n updateFreeSpaceRowHeight: function($table) {\r\n var dataController = this._dataController;\r\n var itemCount = dataController.items(true).length;\r\n var contentElement = this._findContentElement();\r\n var freeSpaceRowElements = this._getFreeSpaceRowElements($table);\r\n if (freeSpaceRowElements && contentElement && dataController.totalCount() >= 0) {\r\n var isFreeSpaceRowVisible = false;\r\n if (itemCount > 0) {\r\n if (!this._hasHeight) {\r\n var freeSpaceRowCount = dataController.pageSize() - itemCount;\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n if (freeSpaceRowCount > 0 && dataController.pageCount() > 1 && \"virtual\" !== scrollingMode && \"infinite\" !== scrollingMode) {\r\n setHeight(freeSpaceRowElements, freeSpaceRowCount * this._rowHeight);\r\n isFreeSpaceRowVisible = true\r\n }\r\n if (!isFreeSpaceRowVisible && $table) {\r\n setHeight(freeSpaceRowElements, 0)\r\n } else {\r\n freeSpaceRowElements.toggle(isFreeSpaceRowVisible)\r\n }\r\n this._updateLastRowBorder(isFreeSpaceRowVisible)\r\n } else {\r\n freeSpaceRowElements.hide();\r\n deferUpdate(() => {\r\n var scrollbarWidth = this.getScrollbarWidth(true);\r\n var elementHeightWithoutScrollbar = this.element().height() - scrollbarWidth;\r\n var contentHeight = contentElement.outerHeight();\r\n var showFreeSpaceRow = elementHeightWithoutScrollbar - contentHeight > 0;\r\n var rowsHeight = this._getRowsHeight(contentElement.children().first());\r\n var $tableElement = $table || this.getTableElements();\r\n var borderTopWidth = Math.ceil(parseFloat($tableElement.css(\"borderTopWidth\")));\r\n var heightCorrection = this._getHeightCorrection();\r\n var resultHeight = elementHeightWithoutScrollbar - rowsHeight - borderTopWidth - heightCorrection;\r\n if (showFreeSpaceRow) {\r\n deferRender(() => {\r\n freeSpaceRowElements.css(\"height\", resultHeight);\r\n isFreeSpaceRowVisible = true;\r\n freeSpaceRowElements.show()\r\n })\r\n }\r\n deferRender(() => this._updateLastRowBorder(isFreeSpaceRowVisible))\r\n })\r\n }\r\n } else {\r\n freeSpaceRowElements.css(\"height\", 0);\r\n freeSpaceRowElements.show();\r\n this._updateLastRowBorder(true)\r\n }\r\n }\r\n },\r\n _getHeightCorrection: function() {\r\n var isZoomedWebkit = browser.webkit && this._getDevicePixelRatio() >= 2;\r\n var isChromeLatest = browser.chrome && browser.version >= 91;\r\n var hasExtraBorderTop = browser.mozilla && browser.version >= 70 && !this.option(\"showRowLines\");\r\n return isZoomedWebkit || hasExtraBorderTop || isChromeLatest ? 1 : 0\r\n },\r\n _columnOptionChanged: function(e) {\r\n var optionNames = e.optionNames;\r\n if (e.changeTypes.grouping) {\r\n return\r\n }\r\n if (optionNames.width || optionNames.visibleWidth) {\r\n this.callBase(e);\r\n this._fireColumnResizedCallbacks()\r\n }\r\n },\r\n getScrollable: function() {\r\n return this._scrollable\r\n },\r\n init: function() {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n that.callBase();\r\n that._editorFactoryController = that.getController(\"editorFactory\");\r\n that._rowHeight = 0;\r\n that._scrollTop = 0;\r\n that._scrollLeft = -1;\r\n that._scrollRight = 0;\r\n that._hasHeight = false;\r\n dataController.loadingChanged.add((function(isLoading, messageText) {\r\n that.setLoading(isLoading, messageText)\r\n }));\r\n dataController.dataSourceChanged.add((function() {\r\n if (that._scrollLeft >= 0) {\r\n that._handleScroll({\r\n component: that.getScrollable(),\r\n scrollOffset: {\r\n top: that._scrollTop,\r\n left: that._scrollLeft\r\n }\r\n })\r\n }\r\n }))\r\n },\r\n _handleDataChanged: function(change) {\r\n switch (change.changeType) {\r\n case \"refresh\":\r\n case \"prepend\":\r\n case \"append\":\r\n case \"update\":\r\n this.render(null, change);\r\n break;\r\n default:\r\n this._update(change)\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"isScrollbarVisible\", \"getTopVisibleRowData\", \"getScrollbarWidth\", \"getCellElement\", \"getRowElement\", \"getScrollable\"]\r\n },\r\n contentWidth: function() {\r\n return this.element().width() - this.getScrollbarWidth()\r\n },\r\n getScrollbarWidth: function(isHorizontal) {\r\n var scrollableContainer = this._scrollableContainer && this._scrollableContainer.get(0);\r\n var scrollbarWidth = 0;\r\n if (scrollableContainer) {\r\n if (!isHorizontal) {\r\n scrollbarWidth = scrollableContainer.clientWidth ? scrollableContainer.offsetWidth - scrollableContainer.clientWidth : 0\r\n } else {\r\n scrollbarWidth = scrollableContainer.clientHeight ? scrollableContainer.offsetHeight - scrollableContainer.clientHeight : 0;\r\n scrollbarWidth += (that = this, scrollable = that.getScrollable(), scrollable ? Math.ceil(parseFloat($(scrollable.content()).css(\"paddingBottom\"))) : 0)\r\n }\r\n }\r\n var that, scrollable;\r\n return scrollbarWidth > 0 ? scrollbarWidth : 0\r\n },\r\n _fireColumnResizedCallbacks: function() {\r\n var lastColumnWidths = this._lastColumnWidths || [];\r\n var columnWidths = [];\r\n var columns = this.getColumns();\r\n for (var i = 0; i < columns.length; i++) {\r\n columnWidths[i] = columns[i].visibleWidth;\r\n if (columns[i].resizedCallbacks && !isDefined(columns[i].groupIndex) && lastColumnWidths[i] !== columnWidths[i]) {\r\n columns[i].resizedCallbacks.fire(columnWidths[i])\r\n }\r\n }\r\n this._lastColumnWidths = columnWidths\r\n },\r\n _updateLastRowBorder: function(isFreeSpaceRowVisible) {\r\n if (this.option(\"showBorders\") && this.option(\"showRowLines\") && !isFreeSpaceRowVisible) {\r\n this.element().addClass(LAST_ROW_BORDER)\r\n } else {\r\n this.element().removeClass(LAST_ROW_BORDER)\r\n }\r\n },\r\n _updateScrollable: function() {\r\n var dxScrollable = Scrollable.getInstance(this.element());\r\n if (dxScrollable) {\r\n dxScrollable.update();\r\n this._updateHorizontalScrollPosition()\r\n }\r\n },\r\n _updateHorizontalScrollPosition: function() {\r\n var scrollable = this.getScrollable();\r\n var scrollLeft = scrollable && scrollable.scrollOffset().left;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (rtlEnabled) {\r\n var maxHorizontalScrollOffset = getMaxHorizontalScrollOffset(scrollable);\r\n var scrollRight = maxHorizontalScrollOffset - scrollLeft;\r\n if (scrollRight !== this._scrollRight) {\r\n this._scrollLeft = maxHorizontalScrollOffset - this._scrollRight\r\n }\r\n }\r\n if (this._scrollLeft >= 0 && scrollLeft !== this._scrollLeft) {\r\n scrollable.scrollTo({\r\n x: this._scrollLeft\r\n })\r\n }\r\n },\r\n _resizeCore: function() {\r\n var that = this;\r\n that._fireColumnResizedCallbacks();\r\n that._updateRowHeight();\r\n deferRender((function() {\r\n that._renderScrollable();\r\n that.renderNoDataText();\r\n that.updateFreeSpaceRowHeight();\r\n deferUpdate((function() {\r\n that._updateScrollable()\r\n }))\r\n }))\r\n },\r\n scrollTo: function(location) {\r\n var $element = this.element();\r\n var dxScrollable = $element && Scrollable.getInstance($element);\r\n if (dxScrollable) {\r\n dxScrollable.scrollTo(location)\r\n }\r\n },\r\n height: function(_height, hasHeight) {\r\n var that = this;\r\n var $element = this.element();\r\n if (0 === arguments.length) {\r\n return $element ? $element.outerHeight(true) : 0\r\n }\r\n that._hasHeight = void 0 === hasHeight ? \"auto\" !== _height : hasHeight;\r\n if (isDefined(_height) && $element) {\r\n setHeight($element, _height)\r\n }\r\n },\r\n setLoading: function(isLoading, messageText) {\r\n var loadPanel = this._loadPanel;\r\n var dataController = this._dataController;\r\n var loadPanelOptions = this.option(\"loadPanel\") || {};\r\n var animation = dataController.isLoaded() ? loadPanelOptions.animation : null;\r\n var $element = this.element();\r\n if (!hasWindow()) {\r\n return\r\n }\r\n if (!loadPanel && void 0 !== messageText && dataController.isLocalStore() && \"auto\" === loadPanelOptions.enabled && $element) {\r\n this._renderLoadPanel($element, $element.parent());\r\n loadPanel = this._loadPanel\r\n }\r\n if (loadPanel) {\r\n var visibilityOptions = {\r\n message: messageText || loadPanelOptions.text,\r\n animation: animation,\r\n visible: isLoading\r\n };\r\n clearTimeout(this._hideLoadingTimeoutID);\r\n if (loadPanel.option(\"visible\") && !isLoading) {\r\n this._hideLoadingTimeoutID = setTimeout((function() {\r\n loadPanel.option(visibilityOptions)\r\n }), LOADPANEL_HIDE_TIMEOUT)\r\n } else {\r\n loadPanel.option(visibilityOptions)\r\n }\r\n }\r\n },\r\n setRowsOpacity: function(columnIndex, value) {\r\n var $rows = this._getRowElements().not(\".\" + GROUP_ROW_CLASS) || [];\r\n this._setRowsOpacityCore($rows, this.getColumns(), columnIndex, value)\r\n },\r\n _getCellElementsCore: function(rowIndex) {\r\n var $cells = this.callBase.apply(this, arguments);\r\n if ($cells) {\r\n var groupCellIndex = $cells.filter(\".\" + GROUP_CELL_CLASS).index();\r\n if (groupCellIndex >= 0 && $cells.length > groupCellIndex + 1) {\r\n return $cells.slice(0, groupCellIndex + 1)\r\n }\r\n }\r\n return $cells\r\n },\r\n getTopVisibleItemIndex: function(isFloor) {\r\n var itemIndex = 0;\r\n var prevOffsetTop = 0;\r\n var offsetTop = 0;\r\n var scrollPosition = this._scrollTop;\r\n var $contentElement = this._findContentElement();\r\n var contentElementOffsetTop = $contentElement && $contentElement.offset().top;\r\n var items = this._dataController.items();\r\n var tableElement = this.getTableElement();\r\n if (items.length && tableElement) {\r\n var rowElements = this._getRowElements(tableElement).filter(\":visible\");\r\n for (itemIndex = 0; itemIndex < items.length; itemIndex++) {\r\n prevOffsetTop = offsetTop;\r\n var rowElement = rowElements.eq(itemIndex);\r\n if (rowElement.length) {\r\n offsetTop = rowElement.offset().top - contentElementOffsetTop;\r\n if (offsetTop > scrollPosition) {\r\n if (itemIndex) {\r\n if (isFloor || 2 * scrollPosition < Math.round(offsetTop + prevOffsetTop)) {\r\n itemIndex--\r\n }\r\n }\r\n break\r\n }\r\n }\r\n }\r\n if (itemIndex && itemIndex === items.length) {\r\n itemIndex--\r\n }\r\n }\r\n return itemIndex\r\n },\r\n getTopVisibleRowData: function() {\r\n var itemIndex = this.getTopVisibleItemIndex();\r\n var items = this._dataController.items();\r\n if (items[itemIndex]) {\r\n return items[itemIndex].data\r\n }\r\n },\r\n _scrollToElement: function($element, offset) {\r\n var scrollable = this.getScrollable();\r\n scrollable && scrollable.scrollToElement($element, offset)\r\n },\r\n optionChanged: function(args) {\r\n this.callBase(args);\r\n switch (args.name) {\r\n case \"wordWrapEnabled\":\r\n case \"showColumnLines\":\r\n case \"showRowLines\":\r\n case \"rowAlternationEnabled\":\r\n case \"rowTemplate\":\r\n case \"twoWayBindingEnabled\":\r\n this._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n case \"scrolling\":\r\n this._rowHeight = null;\r\n this._tableElement = null;\r\n args.handled = true;\r\n break;\r\n case \"rtlEnabled\":\r\n this._rowHeight = null;\r\n this._tableElement = null;\r\n break;\r\n case \"loadPanel\":\r\n this._tableElement = null;\r\n this._invalidate(true, \"loadPanel.enabled\" !== args.fullName);\r\n args.handled = true;\r\n break;\r\n case \"noDataText\":\r\n this.renderNoDataText();\r\n args.handled = true\r\n }\r\n },\r\n dispose: function() {\r\n clearTimeout(this._hideLoadingTimeoutID);\r\n this._scrollable && this._scrollable.dispose()\r\n },\r\n setScrollerSpacing: function() {}\r\n }\r\n }())\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.rows.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n rowsModule\r\n} from \"../grid_core/ui.grid_core.rows\";\r\nexport var RowsView = rowsModule.views.rowsView;\r\ngridCore.registerModule(\"rows\", rowsModule);\r\n","/**\r\n * DevExtreme (esm/ui/hierarchical_collection/ui.data_converter.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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.4\r\n * Build date: Mon Jun 21 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/ui/hierarchical_collection/ui.hierarchical_collection_widget.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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/ui/context_menu/ui.menu_base.edit.strategy.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 map\r\n} from \"../../core/utils/iterator\";\r\nimport PlainEditStrategy from \"../collection/ui.collection_widget.edit.strategy.plain\";\r\nclass MenuBaseEditStrategy extends PlainEditStrategy {\r\n _getPlainItems() {\r\n return map(this._collectionWidget.option(\"items\"), (function getMenuItems(item) {\r\n return item.items ? [item].concat(map(item.items, getMenuItems)) : item\r\n }))\r\n }\r\n _stringifyItem(item) {\r\n return JSON.stringify(item, (key, value) => {\r\n if (\"template\" === key) {\r\n return this._getTemplateString(value)\r\n }\r\n return value\r\n })\r\n }\r\n _getTemplateString(template) {\r\n var result;\r\n if (\"object\" === typeof template) {\r\n result = $(template).text()\r\n } else {\r\n result = template.toString()\r\n }\r\n return result\r\n }\r\n}\r\nexport default MenuBaseEditStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/context_menu/ui.menu_base.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 asyncNoop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isPlainObject,\r\n isObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n render\r\n} from \"../widget/utils.ink_ripple\";\r\nimport HierarchicalCollectionWidget from \"../hierarchical_collection/ui.hierarchical_collection_widget\";\r\nimport MenuBaseEditStrategy from \"./ui.menu_base.edit.strategy\";\r\nimport devices from \"../../core/devices\";\r\nimport MenuItem from \"../collection/item\";\r\nvar DX_MENU_CLASS = \"dx-menu\";\r\nvar DX_MENU_NO_ICONS_CLASS = DX_MENU_CLASS + \"-no-icons\";\r\nvar DX_MENU_BASE_CLASS = \"dx-menu-base\";\r\nvar ITEM_CLASS = DX_MENU_CLASS + \"-item\";\r\nvar DX_ITEM_CONTENT_CLASS = ITEM_CLASS + \"-content\";\r\nvar DX_MENU_SELECTED_ITEM_CLASS = ITEM_CLASS + \"-selected\";\r\nvar DX_MENU_ITEM_WRAPPER_CLASS = ITEM_CLASS + \"-wrapper\";\r\nvar DX_MENU_ITEMS_CONTAINER_CLASS = DX_MENU_CLASS + \"-items-container\";\r\nvar DX_MENU_ITEM_EXPANDED_CLASS = ITEM_CLASS + \"-expanded\";\r\nvar DX_MENU_SEPARATOR_CLASS = DX_MENU_CLASS + \"-separator\";\r\nvar DX_MENU_ITEM_LAST_GROUP_ITEM = DX_MENU_CLASS + \"-last-group-item\";\r\nvar DX_ITEM_HAS_TEXT = ITEM_CLASS + \"-has-text\";\r\nvar DX_ITEM_HAS_ICON = ITEM_CLASS + \"-has-icon\";\r\nvar DX_ITEM_HAS_SUBMENU = ITEM_CLASS + \"-has-submenu\";\r\nvar DX_MENU_ITEM_POPOUT_CLASS = ITEM_CLASS + \"-popout\";\r\nvar DX_MENU_ITEM_POPOUT_CONTAINER_CLASS = DX_MENU_ITEM_POPOUT_CLASS + \"-container\";\r\nvar DX_MENU_ITEM_CAPTION_CLASS = ITEM_CLASS + \"-text\";\r\nvar SINGLE_SELECTION_MODE = \"single\";\r\nvar DEFAULT_DELAY = {\r\n show: 50,\r\n hide: 300\r\n};\r\nclass MenuBase extends HierarchicalCollectionWidget {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n items: [],\r\n cssClass: \"\",\r\n activeStateEnabled: true,\r\n showSubmenuMode: {\r\n name: \"onHover\",\r\n delay: {\r\n show: 50,\r\n hide: 300\r\n }\r\n },\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n from: 0,\r\n to: 1,\r\n duration: 100\r\n },\r\n hide: {\r\n type: \"fade\",\r\n from: 1,\r\n to: 0,\r\n duration: 100\r\n }\r\n },\r\n selectByClick: false,\r\n focusOnSelectedItem: false,\r\n keyExpr: null,\r\n _itemAttributes: {\r\n role: \"menuitem\"\r\n },\r\n useInkRipple: false\r\n })\r\n }\r\n _itemDataKey() {\r\n return \"dxMenuItemDataKey\"\r\n }\r\n _itemClass() {\r\n return ITEM_CLASS\r\n }\r\n _setAriaSelected() {}\r\n _selectedItemClass() {\r\n return DX_MENU_SELECTED_ITEM_CLASS\r\n }\r\n _widgetClass() {\r\n return DX_MENU_BASE_CLASS\r\n }\r\n _focusTarget() {\r\n return this._itemContainer()\r\n }\r\n _clean() {\r\n this.option(\"focusedElement\", null);\r\n super._clean()\r\n }\r\n _supportedKeys() {\r\n return extend(super._supportedKeys(), {\r\n space: () => {\r\n var $item = $(this.option(\"focusedElement\"));\r\n if (!$item.length || !this._isSelectionEnabled()) {\r\n return\r\n }\r\n this.selectItem($item[0])\r\n },\r\n pageUp: noop,\r\n pageDown: noop\r\n })\r\n }\r\n _isSelectionEnabled() {\r\n return this.option(\"selectionMode\") === SINGLE_SELECTION_MODE\r\n }\r\n _init() {\r\n this._activeStateUnit = \".\".concat(ITEM_CLASS);\r\n super._init();\r\n this._renderSelectedItem();\r\n this._initActions()\r\n }\r\n _getTextContainer(itemData) {\r\n var itemText = itemData.text;\r\n var $itemContainer = $(\"\").addClass(DX_MENU_ITEM_CAPTION_CLASS);\r\n var itemContent = isPlainObject(itemData) ? itemText : String(itemData);\r\n return itemText && $itemContainer.text(itemContent)\r\n }\r\n _getPopoutContainer(itemData) {\r\n var items = itemData.items;\r\n var $popOutContainer;\r\n if (items && items.length) {\r\n var $popOutImage = $(\"
\").addClass(DX_MENU_ITEM_POPOUT_CLASS);\r\n $popOutContainer = $(\"\").addClass(DX_MENU_ITEM_POPOUT_CONTAINER_CLASS).append($popOutImage)\r\n }\r\n return $popOutContainer\r\n }\r\n _getDataAdapterOptions() {\r\n return {\r\n rootValue: 0,\r\n multipleSelection: false,\r\n recursiveSelection: false,\r\n recursiveExpansion: false,\r\n searchValue: \"\"\r\n }\r\n }\r\n _selectByItem(selectedItem) {\r\n if (!selectedItem) {\r\n return\r\n }\r\n var nodeToSelect = this._dataAdapter.getNodeByItem(selectedItem);\r\n this._dataAdapter.toggleSelection(nodeToSelect.internalFields.key, true)\r\n }\r\n _renderSelectedItem() {\r\n var selectedKeys = this._dataAdapter.getSelectedNodesKeys();\r\n var selectedKey = selectedKeys.length && selectedKeys[0];\r\n var selectedItem = this.option(\"selectedItem\");\r\n if (!selectedKey) {\r\n this._selectByItem(selectedItem);\r\n return\r\n }\r\n var node = this._dataAdapter.getNodeByKey(selectedKey);\r\n if (false === node.selectable) {\r\n return\r\n }\r\n if (!selectedItem) {\r\n this.option(\"selectedItem\", node.internalFields.item);\r\n return\r\n }\r\n if (selectedItem !== node.internalFields.item) {\r\n this._dataAdapter.toggleSelection(selectedKey, false);\r\n this._selectByItem(selectedItem)\r\n }\r\n }\r\n _initActions() {}\r\n _initMarkup() {\r\n super._initMarkup();\r\n this._addCustomCssClass(this.$element());\r\n this.option(\"useInkRipple\") && this._renderInkRipple()\r\n }\r\n _renderInkRipple() {\r\n this._inkRipple = render()\r\n }\r\n _toggleActiveState($element, value, e) {\r\n super._toggleActiveState.apply(this, arguments);\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: $element,\r\n event: e\r\n };\r\n if (value) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n }\r\n _getShowSubmenuMode() {\r\n var optionValue = this.option(\"showSubmenuMode\");\r\n optionValue = isObject(optionValue) ? optionValue.name : optionValue;\r\n return this._isDesktopDevice() ? optionValue : \"onClick\"\r\n }\r\n _initSelectedItems() {}\r\n _isDesktopDevice() {\r\n return \"desktop\" === devices.real().deviceType\r\n }\r\n _initEditStrategy() {\r\n var Strategy = MenuBaseEditStrategy;\r\n this._editStrategy = new Strategy(this)\r\n }\r\n _addCustomCssClass($element) {\r\n $element.addClass(this.option(\"cssClass\"))\r\n }\r\n _itemWrapperSelector() {\r\n return \".\".concat(DX_MENU_ITEM_WRAPPER_CLASS)\r\n }\r\n _hoverStartHandler(e) {\r\n var $itemElement = this._getItemElementByEventArgs(e);\r\n if (!$itemElement || this._isItemDisabled($itemElement)) {\r\n return\r\n }\r\n e.stopPropagation();\r\n if (\"onHover\" === this._getShowSubmenuMode()) {\r\n clearTimeout(this._showSubmenusTimeout);\r\n this._showSubmenusTimeout = setTimeout(this._showSubmenu.bind(this, $itemElement), this._getSubmenuDelay(\"show\"))\r\n }\r\n }\r\n _getAvailableItems($itemElements) {\r\n return super._getAvailableItems($itemElements).filter((function() {\r\n return \"hidden\" !== $(this).css(\"visibility\")\r\n }))\r\n }\r\n _isItemDisabled($item) {\r\n return this._disabledGetter($item.data(this._itemDataKey()))\r\n }\r\n _showSubmenu($itemElement) {\r\n this._addExpandedClass($itemElement)\r\n }\r\n _addExpandedClass(itemElement) {\r\n $(itemElement).addClass(DX_MENU_ITEM_EXPANDED_CLASS)\r\n }\r\n _getSubmenuDelay(action) {\r\n var {\r\n delay: delay\r\n } = this.option(\"showSubmenuMode\");\r\n if (!isDefined(delay)) {\r\n return DEFAULT_DELAY[action]\r\n }\r\n return isObject(delay) ? delay[action] : delay\r\n }\r\n _getItemElementByEventArgs(eventArgs) {\r\n var $target = $(eventArgs.target);\r\n if ($target.hasClass(this._itemClass()) || $target.get(0) === eventArgs.currentTarget) {\r\n return $target\r\n }\r\n while (!$target.hasClass(this._itemClass())) {\r\n $target = $target.parent();\r\n if ($target.hasClass(\"dx-submenu\")) {\r\n return null\r\n }\r\n }\r\n return $target\r\n }\r\n _hoverEndHandler() {\r\n clearTimeout(this._showSubmenusTimeout)\r\n }\r\n _hasSubmenu(node) {\r\n return node && node.internalFields.childrenKeys.length\r\n }\r\n _renderContentImpl() {\r\n this._renderItems(this._dataAdapter.getRootNodes())\r\n }\r\n _renderItems(nodes, submenuContainer) {\r\n if (nodes.length) {\r\n this.hasIcons = false;\r\n var $nodeContainer = this._renderContainer(this.$element(), submenuContainer);\r\n var firstVisibleIndex = -1;\r\n var nextGroupFirstIndex = -1;\r\n each(nodes, (index, node) => {\r\n var isVisibleNode = false !== node.visible;\r\n if (isVisibleNode && firstVisibleIndex < 0) {\r\n firstVisibleIndex = index\r\n }\r\n var isBeginGroup = firstVisibleIndex < index && (node.beginGroup || index === nextGroupFirstIndex);\r\n if (isBeginGroup) {\r\n nextGroupFirstIndex = isVisibleNode ? index : index + 1\r\n }\r\n if (index === nextGroupFirstIndex && firstVisibleIndex < index) {\r\n this._renderSeparator($nodeContainer)\r\n }\r\n this._renderItem(index, node, $nodeContainer)\r\n });\r\n if (!this.hasIcons) {\r\n $nodeContainer.addClass(DX_MENU_NO_ICONS_CLASS)\r\n }\r\n }\r\n }\r\n _renderContainer($wrapper) {\r\n var $container = $(\"
    \");\r\n this.setAria(\"role\", \"none\", $container);\r\n return $container.appendTo($wrapper).addClass(DX_MENU_ITEMS_CONTAINER_CLASS)\r\n }\r\n _createDOMElement($nodeContainer) {\r\n var $node = $(\"
  • \");\r\n this.setAria(\"role\", \"none\", $node);\r\n return $node.appendTo($nodeContainer).addClass(DX_MENU_ITEM_WRAPPER_CLASS)\r\n }\r\n _renderItem(index, node, $nodeContainer, $nodeElement) {\r\n var items = this.option(\"items\");\r\n var $node = $nodeElement || this._createDOMElement($nodeContainer);\r\n if (items[index + 1] && items[index + 1].beginGroup) {\r\n $node.addClass(DX_MENU_ITEM_LAST_GROUP_ITEM)\r\n }\r\n var $itemFrame = super._renderItem(index, node.internalFields.item, $node);\r\n if (node.internalFields.item === this.option(\"selectedItem\")) {\r\n $itemFrame.addClass(DX_MENU_SELECTED_ITEM_CLASS)\r\n }\r\n $itemFrame.attr(\"tabIndex\", -1);\r\n if (this._hasSubmenu(node)) {\r\n this.setAria(\"haspopup\", \"true\", $itemFrame)\r\n }\r\n }\r\n _renderItemFrame(index, itemData, $itemContainer) {\r\n var $itemFrame = $itemContainer.children(\".\".concat(ITEM_CLASS));\r\n return $itemFrame.length ? $itemFrame : super._renderItemFrame.apply(this, arguments)\r\n }\r\n _refreshItem($item, item) {\r\n var node = this._dataAdapter.getNodeByItem(item);\r\n var index = $item.data(this._itemIndexKey());\r\n var $nodeContainer = $item.closest(\"ul\");\r\n var $nodeElement = $item.closest(\"li\");\r\n this._renderItem(index, node, $nodeContainer, $nodeElement)\r\n }\r\n _addContentClasses(itemData, $itemFrame) {\r\n var hasText = itemData.text ? !!itemData.text.length : false;\r\n var hasIcon = !!itemData.icon;\r\n var hasSubmenu = itemData.items ? !!itemData.items.length : false;\r\n $itemFrame.toggleClass(DX_ITEM_HAS_TEXT, hasText);\r\n $itemFrame.toggleClass(DX_ITEM_HAS_ICON, hasIcon);\r\n if (!this.hasIcons) {\r\n this.hasIcons = hasIcon\r\n }\r\n $itemFrame.toggleClass(DX_ITEM_HAS_SUBMENU, hasSubmenu)\r\n }\r\n _getItemContent($itemFrame) {\r\n var $itemContent = super._getItemContent($itemFrame);\r\n if (!$itemContent.length) {\r\n $itemContent = $itemFrame.children(\".\".concat(DX_ITEM_CONTENT_CLASS))\r\n }\r\n return $itemContent\r\n }\r\n _postprocessRenderItem(args) {\r\n var $itemElement = $(args.itemElement);\r\n var selectedIndex = this._dataAdapter.getSelectedNodesKeys();\r\n if (!selectedIndex.length || !this._selectedGetter(args.itemData) || !this._isItemSelectable(args.itemData)) {\r\n this._setAriaSelected($itemElement, \"false\");\r\n return\r\n }\r\n var node = this._dataAdapter.getNodeByItem(args.itemData);\r\n if (node.internalFields.key === selectedIndex[0]) {\r\n $itemElement.addClass(this._selectedItemClass());\r\n this._setAriaSelected($itemElement, \"true\")\r\n } else {\r\n this._setAriaSelected($itemElement, \"false\")\r\n }\r\n }\r\n _isItemSelectable(item) {\r\n return false !== item.selectable\r\n }\r\n _renderSeparator($itemsContainer) {\r\n $(\"
  • \").appendTo($itemsContainer).addClass(DX_MENU_SEPARATOR_CLASS)\r\n }\r\n _itemClickHandler(e) {\r\n if (e._skipHandling) {\r\n return\r\n }\r\n var itemClickActionHandler = this._createAction(this._updateSubmenuVisibilityOnClick.bind(this));\r\n this._itemDXEventHandler(e, \"onItemClick\", {}, {\r\n afterExecute: itemClickActionHandler.bind(this)\r\n });\r\n e._skipHandling = true\r\n }\r\n _updateSubmenuVisibilityOnClick(actionArgs) {\r\n this._updateSelectedItemOnClick(actionArgs);\r\n if (\"onClick\" === this._getShowSubmenuMode()) {\r\n this._addExpandedClass(actionArgs.args[0].itemElement)\r\n }\r\n }\r\n _updateSelectedItemOnClick(actionArgs) {\r\n var args = actionArgs.args ? actionArgs.args[0] : actionArgs;\r\n if (!this._isItemSelectionAllowed(args.itemData)) {\r\n return\r\n }\r\n var selectedItemKey = this._dataAdapter.getSelectedNodesKeys();\r\n var selectedNode = selectedItemKey.length && this._dataAdapter.getNodeByKey(selectedItemKey[0]);\r\n if (selectedNode) {\r\n this._toggleItemSelection(selectedNode, false)\r\n }\r\n if (!selectedNode || selectedNode.internalFields.item !== args.itemData) {\r\n this.selectItem(args.itemData)\r\n } else {\r\n this._fireSelectionChangeEvent(null, this.option(\"selectedItem\"));\r\n this._setOptionWithoutOptionChange(\"selectedItem\", null)\r\n }\r\n }\r\n _isItemSelectionAllowed(item) {\r\n var isSelectionByClickEnabled = this._isSelectionEnabled() && this.option(\"selectByClick\");\r\n return !this._isContainerEmpty() && isSelectionByClickEnabled && this._isItemSelectable(item) && !this._itemsGetter(item)\r\n }\r\n _isContainerEmpty() {\r\n return this._itemContainer().is(\":empty\")\r\n }\r\n _syncSelectionOptions() {\r\n return asyncNoop()\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"showSubmenuMode\":\r\n break;\r\n case \"selectedItem\":\r\n var node = this._dataAdapter.getNodeByItem(args.value);\r\n var selectedKey = this._dataAdapter.getSelectedNodesKeys()[0];\r\n if (node && node.internalFields.key !== selectedKey) {\r\n if (false === node.selectable) {\r\n break\r\n }\r\n if (selectedKey) {\r\n this._toggleItemSelection(this._dataAdapter.getNodeByKey(selectedKey), false)\r\n }\r\n this._toggleItemSelection(node, true);\r\n this._updateSelectedItems()\r\n }\r\n break;\r\n case \"cssClass\":\r\n case \"position\":\r\n case \"selectByClick\":\r\n case \"animation\":\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _toggleItemSelection(node, value) {\r\n var itemElement = this._getElementByItem(node.internalFields.item);\r\n itemElement && $(itemElement).toggleClass(DX_MENU_SELECTED_ITEM_CLASS);\r\n this._dataAdapter.toggleSelection(node.internalFields.key, value)\r\n }\r\n _getElementByItem(itemData) {\r\n var result;\r\n each(this._itemElements(), (_, itemElement) => {\r\n if ($(itemElement).data(this._itemDataKey()) !== itemData) {\r\n return true\r\n }\r\n result = itemElement;\r\n return false\r\n });\r\n return result\r\n }\r\n _updateSelectedItems(oldSelection, newSelection) {\r\n if (oldSelection || newSelection) {\r\n this._fireSelectionChangeEvent(newSelection, oldSelection)\r\n }\r\n }\r\n _fireSelectionChangeEvent(addedSelection, removedSelection) {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })({\r\n addedItems: [addedSelection],\r\n removedItems: [removedSelection]\r\n })\r\n }\r\n selectItem(itemElement) {\r\n var itemData = itemElement.nodeType ? this._getItemData(itemElement) : itemElement;\r\n var selectedKey = this._dataAdapter.getSelectedNodesKeys()[0];\r\n var selectedItem = this.option(\"selectedItem\");\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n if (node.internalFields.key !== selectedKey) {\r\n if (selectedKey) {\r\n this._toggleItemSelection(this._dataAdapter.getNodeByKey(selectedKey), false)\r\n }\r\n this._toggleItemSelection(node, true);\r\n this._updateSelectedItems(selectedItem, itemData);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", itemData)\r\n }\r\n }\r\n unselectItem(itemElement) {\r\n var itemData = itemElement.nodeType ? this._getItemData(itemElement) : itemElement;\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n var selectedItem = this.option(\"selectedItem\");\r\n if (node.internalFields.selected) {\r\n this._toggleItemSelection(node, false);\r\n this._updateSelectedItems(selectedItem, null);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", null)\r\n }\r\n }\r\n}\r\nMenuBase.ItemClass = MenuItem;\r\nexport default MenuBase;\r\n","/**\r\n * DevExtreme (esm/ui/context_menu/ui.context_menu.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 Guid from \"../../core/guid\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isObject,\r\n isRenderer,\r\n isWindow,\r\n isFunction,\r\n isPlainObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n contains\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport fx from \"../../animation/fx\";\r\nimport animationPosition from \"../../animation/position\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport MenuBase from \"./ui.menu_base\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n name as contextMenuEventName\r\n} from \"../../events/contextmenu\";\r\nimport holdEvent from \"../../events/hold\";\r\nvar DX_MENU_CLASS = \"dx-menu\";\r\nvar DX_MENU_ITEM_CLASS = DX_MENU_CLASS + \"-item\";\r\nvar DX_MENU_ITEM_EXPANDED_CLASS = DX_MENU_ITEM_CLASS + \"-expanded\";\r\nvar DX_MENU_PHONE_CLASS = \"dx-menu-phone-overlay\";\r\nvar DX_MENU_ITEMS_CONTAINER_CLASS = DX_MENU_CLASS + \"-items-container\";\r\nvar DX_MENU_ITEM_WRAPPER_CLASS = DX_MENU_ITEM_CLASS + \"-wrapper\";\r\nvar DX_SUBMENU_CLASS = \"dx-submenu\";\r\nvar DX_CONTEXT_MENU_CLASS = \"dx-context-menu\";\r\nvar DX_HAS_CONTEXT_MENU_CLASS = \"dx-has-context-menu\";\r\nvar DX_STATE_DISABLED_CLASS = \"dx-state-disabled\";\r\nvar DX_STATE_FOCUSED_CLASS = \"dx-state-focused\";\r\nvar DX_STATE_HOVER_CLASS = \"dx-state-hover\";\r\nvar FOCUS_UP = \"up\";\r\nvar FOCUS_DOWN = \"down\";\r\nvar FOCUS_LEFT = \"left\";\r\nvar FOCUS_RIGHT = \"right\";\r\nvar FOCUS_FIRST = \"first\";\r\nvar FOCUS_LAST = \"last\";\r\nvar ACTIONS = [\"onShowing\", \"onShown\", \"onSubmenuCreated\", \"onHiding\", \"onHidden\", \"onPositioning\", \"onLeftFirstItem\", \"onLeftLastItem\", \"onCloseRootSubmenu\", \"onExpandLastSubmenu\"];\r\nvar LOCAL_SUBMENU_DIRECTIONS = [FOCUS_UP, FOCUS_DOWN, FOCUS_FIRST, FOCUS_LAST];\r\nvar DEFAULT_SHOW_EVENT = \"dxcontextmenu\";\r\nclass ContextMenu extends MenuBase {\r\n getShowEvent(showEventOption) {\r\n var result = null;\r\n if (isObject(showEventOption)) {\r\n if (null !== showEventOption.name) {\r\n result = showEventOption.name || DEFAULT_SHOW_EVENT\r\n }\r\n } else {\r\n result = showEventOption\r\n }\r\n return result\r\n }\r\n getShowDelay(showEventOption) {\r\n return isObject(showEventOption) && showEventOption.delay\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n showEvent: DEFAULT_SHOW_EVENT,\r\n closeOnOutsideClick: true,\r\n position: {\r\n at: \"top left\",\r\n my: \"top left\"\r\n },\r\n onShowing: null,\r\n onShown: null,\r\n onSubmenuCreated: null,\r\n onHiding: null,\r\n onHidden: null,\r\n onPositioning: null,\r\n submenuDirection: \"auto\",\r\n visible: false,\r\n target: void 0,\r\n onLeftFirstItem: null,\r\n onLeftLastItem: null,\r\n onCloseRootSubmenu: null,\r\n onExpandLastSubmenu: null\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: () => !hasWindow(),\r\n options: {\r\n animation: null\r\n }\r\n }])\r\n }\r\n _initActions() {\r\n this._actions = {};\r\n each(ACTIONS, (index, action) => {\r\n this._actions[action] = this._createActionByOption(action) || noop\r\n })\r\n }\r\n _setOptionsByReference() {\r\n super._setOptionsByReference();\r\n extend(this._optionsByReference, {\r\n animation: true,\r\n selectedItem: true\r\n })\r\n }\r\n _focusInHandler() {}\r\n _itemContainer() {\r\n return this._overlay ? this._overlay.$content() : $()\r\n }\r\n _eventBindingTarget() {\r\n return this._itemContainer()\r\n }\r\n itemsContainer() {\r\n return this._overlay ? this._overlay.$content() : void 0\r\n }\r\n _supportedKeys() {\r\n return extend(super._supportedKeys(), {\r\n space: () => {\r\n var $item = $(this.option(\"focusedElement\"));\r\n this.hide();\r\n if (!$item.length || !this._isSelectionEnabled()) {\r\n return\r\n }\r\n this.selectItem($item[0])\r\n },\r\n escape: this.hide\r\n })\r\n }\r\n _getActiveItem() {\r\n var $availableItems = this._getAvailableItems();\r\n var $focusedItem = $availableItems.filter(\".\".concat(DX_STATE_FOCUSED_CLASS));\r\n var $hoveredItem = $availableItems.filter(\".\".concat(DX_STATE_HOVER_CLASS));\r\n var $hoveredItemContainer = $hoveredItem.closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS));\r\n if ($hoveredItemContainer.find(\".\".concat(DX_MENU_ITEM_CLASS)).index($focusedItem) >= 0) {\r\n return $focusedItem\r\n }\r\n if ($hoveredItem.length) {\r\n return $hoveredItem\r\n }\r\n return super._getActiveItem()\r\n }\r\n _moveFocus(location) {\r\n var $items = this._getItemsByLocation(location);\r\n var $oldTarget = this._getActiveItem(true);\r\n var $hoveredItem = this.itemsContainer().find(\".\".concat(DX_STATE_HOVER_CLASS));\r\n var $focusedItem = $(this.option(\"focusedElement\"));\r\n var $activeItemHighlighted = !!($focusedItem.length || $hoveredItem.length);\r\n var $newTarget;\r\n switch (location) {\r\n case FOCUS_UP:\r\n $newTarget = $activeItemHighlighted ? this._prevItem($items) : $oldTarget;\r\n this._setFocusedElement($newTarget);\r\n if ($oldTarget.is($items.first())) {\r\n this._actions.onLeftFirstItem($oldTarget)\r\n }\r\n break;\r\n case FOCUS_DOWN:\r\n $newTarget = $activeItemHighlighted ? this._nextItem($items) : $oldTarget;\r\n this._setFocusedElement($newTarget);\r\n if ($oldTarget.is($items.last())) {\r\n this._actions.onLeftLastItem($oldTarget)\r\n }\r\n break;\r\n case FOCUS_RIGHT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._hideSubmenuHandler() : this._expandSubmenuHandler($items, location);\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_LEFT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._expandSubmenuHandler($items, location) : this._hideSubmenuHandler();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_FIRST:\r\n $newTarget = $items.first();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_LAST:\r\n $newTarget = $items.last();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n default:\r\n return super._moveFocus(location)\r\n }\r\n }\r\n _setFocusedElement($element) {\r\n if ($element && 0 !== $element.length) {\r\n this.option(\"focusedElement\", getPublicElement($element))\r\n }\r\n }\r\n _getItemsByLocation(location) {\r\n var $activeItem = this._getActiveItem(true);\r\n var $items;\r\n if (inArray(location, LOCAL_SUBMENU_DIRECTIONS) >= 0) {\r\n $items = $activeItem.closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS)).children().children()\r\n }\r\n $items = this._getAvailableItems($items);\r\n return $items\r\n }\r\n _getAriaTarget() {\r\n return this.$element()\r\n }\r\n _refreshActiveDescendant() {\r\n if (isDefined(this._overlay)) {\r\n var $target = this._overlay.$content();\r\n super._refreshActiveDescendant($target)\r\n }\r\n }\r\n _hideSubmenuHandler() {\r\n var $curItem = this._getActiveItem(true);\r\n var $parentItem = $curItem.parents(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS)).first();\r\n if ($parentItem.length) {\r\n this._hideSubmenusOnSameLevel($parentItem);\r\n this._hideSubmenu($curItem.closest(\".\".concat(DX_SUBMENU_CLASS)));\r\n return $parentItem\r\n }\r\n this._actions.onCloseRootSubmenu($curItem);\r\n return $curItem\r\n }\r\n _expandSubmenuHandler($items, location) {\r\n var $curItem = this._getActiveItem(true);\r\n var itemData = this._getItemData($curItem);\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n var isItemHasSubmenu = this._hasSubmenu(node);\r\n var $submenu = $curItem.children(\".\".concat(DX_SUBMENU_CLASS));\r\n if (isItemHasSubmenu && !$curItem.hasClass(DX_STATE_DISABLED_CLASS)) {\r\n if (!$submenu.length || \"hidden\" === $submenu.css(\"visibility\")) {\r\n this._showSubmenu($curItem)\r\n }\r\n return this._nextItem(this._getItemsByLocation(location))\r\n }\r\n this._actions.onExpandLastSubmenu($curItem);\r\n return\r\n }\r\n _clean() {\r\n if (this._overlay) {\r\n this._overlay.$element().remove();\r\n this._overlay = null\r\n }\r\n this._detachShowContextMenuEvents(this._getTarget());\r\n super._clean()\r\n }\r\n _initMarkup() {\r\n this.$element().addClass(DX_HAS_CONTEXT_MENU_CLASS);\r\n super._initMarkup()\r\n }\r\n _render() {\r\n super._render();\r\n this._renderVisibility(this.option(\"visible\"));\r\n this._addWidgetClass()\r\n }\r\n _renderContentImpl() {\r\n this._detachShowContextMenuEvents(this._getTarget());\r\n this._attachShowContextMenuEvents()\r\n }\r\n _attachKeyboardEvents() {\r\n !this._keyboardListenerId && this._focusTarget().length && super._attachKeyboardEvents()\r\n }\r\n _renderContextMenuOverlay() {\r\n if (this._overlay) {\r\n return\r\n }\r\n var overlayOptions = this._getOverlayOptions();\r\n this._overlay = this._createComponent($(\"
    \").appendTo(this._$element), Overlay, overlayOptions);\r\n var $overlayContent = this._overlay.$content();\r\n $overlayContent.addClass(DX_CONTEXT_MENU_CLASS);\r\n this._addCustomCssClass($overlayContent);\r\n this._addPlatformDependentClass($overlayContent);\r\n this._attachContextMenuEvent()\r\n }\r\n preventShowingDefaultContextMenuAboveOverlay() {\r\n var $itemContainer = this._itemContainer();\r\n var eventName = addNamespace(contextMenuEventName, this.NAME);\r\n eventsEngine.off($itemContainer, eventName, \".\".concat(DX_SUBMENU_CLASS));\r\n eventsEngine.on($itemContainer, eventName, \".\".concat(DX_SUBMENU_CLASS), (e => {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n eventsEngine.off($itemContainer, eventName, \".\".concat(DX_SUBMENU_CLASS))\r\n }).bind(this))\r\n }\r\n _itemContextMenuHandler(e) {\r\n super._itemContextMenuHandler(e);\r\n e.stopPropagation()\r\n }\r\n _addPlatformDependentClass($element) {\r\n if (devices.current().phone) {\r\n $element.addClass(DX_MENU_PHONE_CLASS)\r\n }\r\n }\r\n _detachShowContextMenuEvents(target) {\r\n var showEvent = this.getShowEvent(this.option(\"showEvent\"));\r\n if (!showEvent) {\r\n return\r\n }\r\n var eventName = addNamespace(showEvent, this.NAME);\r\n if (this._showContextMenuEventHandler) {\r\n eventsEngine.off(domAdapter.getDocument(), eventName, target, this._showContextMenuEventHandler)\r\n } else {\r\n eventsEngine.off($(target), eventName)\r\n }\r\n }\r\n _attachShowContextMenuEvents() {\r\n var target = this._getTarget();\r\n var showEvent = this.getShowEvent(this.option(\"showEvent\"));\r\n if (!showEvent) {\r\n return\r\n }\r\n var eventName = addNamespace(showEvent, this.NAME);\r\n var contextMenuAction = this._createAction(e => {\r\n var delay = this.getShowDelay(this.option(\"showEvent\"));\r\n if (delay) {\r\n setTimeout(() => this._show(e.event), delay)\r\n } else {\r\n this._show(e.event)\r\n }\r\n }, {\r\n validatingTargetName: \"target\"\r\n });\r\n var handler = e => contextMenuAction({\r\n event: e,\r\n target: $(e.currentTarget)\r\n });\r\n contextMenuAction = this._createAction(contextMenuAction);\r\n if (isRenderer(target) || target.nodeType || isWindow(target)) {\r\n this._showContextMenuEventHandler = void 0;\r\n eventsEngine.on(target, eventName, handler)\r\n } else {\r\n this._showContextMenuEventHandler = handler;\r\n eventsEngine.on(domAdapter.getDocument(), eventName, target, this._showContextMenuEventHandler)\r\n }\r\n }\r\n _hoverEndHandler(e) {\r\n super._hoverEndHandler(e);\r\n e.stopPropagation()\r\n }\r\n _renderDimensions() {}\r\n _renderContainer($wrapper, submenuContainer) {\r\n var $holder = submenuContainer || this._itemContainer();\r\n $wrapper = $(\"
    \");\r\n $wrapper.appendTo($holder).addClass(DX_SUBMENU_CLASS).css(\"visibility\", submenuContainer ? \"hidden\" : \"visible\");\r\n var $itemsContainer = super._renderContainer($wrapper);\r\n if (submenuContainer) {\r\n return $itemsContainer\r\n }\r\n if (this.option(\"width\")) {\r\n return $itemsContainer.css(\"minWidth\", this.option(\"width\"))\r\n }\r\n if (this.option(\"height\")) {\r\n return $itemsContainer.css(\"minHeight\", this.option(\"height\"))\r\n }\r\n return $itemsContainer\r\n }\r\n _renderSubmenuItems(node, $itemFrame) {\r\n this._renderItems(this._getChildNodes(node), $itemFrame);\r\n this._actions.onSubmenuCreated({\r\n itemElement: getPublicElement($itemFrame),\r\n itemData: node.internalFields.item,\r\n submenuElement: getPublicElement($itemFrame.children(\".\".concat(DX_SUBMENU_CLASS)))\r\n })\r\n }\r\n _getOverlayOptions() {\r\n var position = this.option(\"position\");\r\n var overlayOptions = {\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n animation: this.option(\"animation\"),\r\n innerOverlay: true,\r\n closeOnOutsideClick: this._closeOnOutsideClickHandler.bind(this),\r\n propagateOutsideClick: true,\r\n closeOnTargetScroll: true,\r\n deferRendering: false,\r\n position: {\r\n at: position.at,\r\n my: position.my,\r\n of: this._getTarget(),\r\n collision: \"flipfit\"\r\n },\r\n shading: false,\r\n showTitle: false,\r\n height: \"auto\",\r\n width: \"auto\",\r\n onShown: this._overlayShownActionHandler.bind(this),\r\n onHiding: this._overlayHidingActionHandler.bind(this),\r\n onHidden: this._overlayHiddenActionHandler.bind(this)\r\n };\r\n return overlayOptions\r\n }\r\n _overlayShownActionHandler(arg) {\r\n this._actions.onShown(arg)\r\n }\r\n _overlayHidingActionHandler(arg) {\r\n this._actions.onHiding(arg);\r\n if (!arg.cancel) {\r\n this._hideAllShownSubmenus();\r\n this._setOptionWithoutOptionChange(\"visible\", false)\r\n }\r\n }\r\n _overlayHiddenActionHandler(arg) {\r\n this._actions.onHidden(arg)\r\n }\r\n _closeOnOutsideClickHandler(e) {\r\n var closeOnOutsideClick = this.option(\"closeOnOutsideClick\");\r\n if (isFunction(closeOnOutsideClick)) {\r\n return closeOnOutsideClick(e)\r\n }\r\n if (!closeOnOutsideClick) {\r\n return false\r\n }\r\n if (domAdapter.isDocument(e.target)) {\r\n return true\r\n }\r\n var $activeItemContainer = this._getActiveItemsContainer(e.target);\r\n var $itemContainers = this._getItemsContainers();\r\n var $clickedItem = this._searchActiveItem(e.target);\r\n var $rootItem = this.$element().parents(\".\".concat(DX_MENU_ITEM_CLASS));\r\n var isRootItemClicked = $clickedItem[0] === $rootItem[0] && $clickedItem.length && $rootItem.length;\r\n var isInnerOverlayClicked = this._isIncludeOverlay($activeItemContainer, $itemContainers) && $clickedItem.length;\r\n if (isInnerOverlayClicked || isRootItemClicked) {\r\n if (\"onClick\" === this._getShowSubmenuMode()) {\r\n this._hideAllShownChildSubmenus($clickedItem)\r\n }\r\n return false\r\n }\r\n return true\r\n }\r\n _getActiveItemsContainer(target) {\r\n return $(target).closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS))\r\n }\r\n _getItemsContainers() {\r\n return this._overlay.$content().find(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS))\r\n }\r\n _searchActiveItem(target) {\r\n return $(target).closest(\".\".concat(DX_MENU_ITEM_CLASS)).eq(0)\r\n }\r\n _isIncludeOverlay($activeOverlay, $allOverlays) {\r\n var isSame = false;\r\n each($allOverlays, (index, $overlay) => {\r\n if ($activeOverlay.is($overlay) && !isSame) {\r\n isSame = true\r\n }\r\n });\r\n return isSame\r\n }\r\n _hideAllShownChildSubmenus($clickedItem) {\r\n var $submenuElements = $clickedItem.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var shownSubmenus = extend([], this._shownSubmenus);\r\n if ($submenuElements.length > 0) {\r\n each(shownSubmenus, (index, $submenu) => {\r\n var $context = this._searchActiveItem($submenu.context).parent();\r\n if ($context.parent().is($clickedItem.parent().parent()) && !$context.is($clickedItem.parent())) {\r\n this._hideSubmenu($submenu)\r\n }\r\n })\r\n }\r\n }\r\n _showSubmenu($item) {\r\n var node = this._dataAdapter.getNodeByItem(this._getItemData($item));\r\n this._hideSubmenusOnSameLevel($item);\r\n if (!this._hasSubmenu(node)) {\r\n return\r\n }\r\n var $submenu = $item.children(\".\".concat(DX_SUBMENU_CLASS));\r\n var isSubmenuRendered = $submenu.length;\r\n super._showSubmenu($item);\r\n if (!isSubmenuRendered) {\r\n this._renderSubmenuItems(node, $item)\r\n }\r\n if (!this._isSubmenuVisible($submenu)) {\r\n this._drawSubmenu($item)\r\n }\r\n }\r\n _hideSubmenusOnSameLevel($item) {\r\n var $expandedItems = $item.parent(\".\".concat(DX_MENU_ITEM_WRAPPER_CLASS)).siblings().find(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS));\r\n if ($expandedItems.length) {\r\n $expandedItems.removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n this._hideSubmenu($expandedItems.find(\".\".concat(DX_SUBMENU_CLASS)))\r\n }\r\n }\r\n _hideSubmenuGroup($submenu) {\r\n if (this._isSubmenuVisible($submenu)) {\r\n this._hideSubmenuCore($submenu)\r\n }\r\n }\r\n _isSubmenuVisible($submenu) {\r\n return \"visible\" === $submenu.css(\"visibility\")\r\n }\r\n _drawSubmenu($itemElement) {\r\n var animation = this.option(\"animation\") ? this.option(\"animation\").show : {};\r\n var $submenu = $itemElement.children(\".\".concat(DX_SUBMENU_CLASS));\r\n var submenuPosition = this._getSubmenuPosition($itemElement);\r\n if (this._overlay && this._overlay.option(\"visible\")) {\r\n if (!isDefined(this._shownSubmenus)) {\r\n this._shownSubmenus = []\r\n }\r\n if (inArray($submenu, this._shownSubmenus)) {\r\n this._shownSubmenus.push($submenu)\r\n }\r\n if (animation) {\r\n fx.stop($submenu)\r\n }\r\n animationPosition.setup($submenu, submenuPosition);\r\n if (animation) {\r\n if (isPlainObject(animation.to)) {\r\n animation.to.position = submenuPosition\r\n }\r\n this._animate($submenu, animation)\r\n }\r\n $submenu.css(\"visibility\", \"visible\")\r\n }\r\n }\r\n _animate($container, options) {\r\n fx.animate($container, options)\r\n }\r\n _getSubmenuPosition($rootItem) {\r\n var submenuDirection = this.option(\"submenuDirection\").toLowerCase();\r\n var $rootItemWrapper = $rootItem.parent(\".\".concat(DX_MENU_ITEM_WRAPPER_CLASS));\r\n var position = {\r\n collision: \"flip\",\r\n of: $rootItemWrapper,\r\n offset: {\r\n h: 0,\r\n v: -1\r\n }\r\n };\r\n switch (submenuDirection) {\r\n case \"left\":\r\n position.at = \"left top\";\r\n position.my = \"right top\";\r\n break;\r\n case \"right\":\r\n position.at = \"right top\";\r\n position.my = \"left top\";\r\n break;\r\n default:\r\n if (this.option(\"rtlEnabled\")) {\r\n position.at = \"left top\";\r\n position.my = \"right top\"\r\n } else {\r\n position.at = \"right top\";\r\n position.my = \"left top\"\r\n }\r\n }\r\n return position\r\n }\r\n _updateSubmenuVisibilityOnClick(actionArgs) {\r\n if (!actionArgs.args.length) {\r\n return\r\n }\r\n var itemData = actionArgs.args[0].itemData;\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n if (!node) {\r\n return\r\n }\r\n var $itemElement = $(actionArgs.args[0].itemElement);\r\n var $submenu = $itemElement.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var shouldRenderSubmenu = this._hasSubmenu(node) && !$submenu.length;\r\n if (shouldRenderSubmenu) {\r\n this._renderSubmenuItems(node, $itemElement);\r\n $submenu = $itemElement.find(\".\".concat(DX_SUBMENU_CLASS))\r\n }\r\n if ($itemElement.context === $submenu.context && \"visible\" === $submenu.css(\"visibility\")) {\r\n return\r\n }\r\n var notCloseMenuOnItemClick = itemData && false === itemData.closeMenuOnClick;\r\n if (!itemData || itemData.disabled || notCloseMenuOnItemClick) {\r\n return\r\n }\r\n this._updateSelectedItemOnClick(actionArgs);\r\n if (0 === $submenu.length) {\r\n var $prevSubmenu = $($itemElement.parents(\".\".concat(DX_SUBMENU_CLASS))[0]);\r\n this._hideSubmenu($prevSubmenu);\r\n if (!actionArgs.canceled && this._overlay && this._overlay.option(\"visible\")) {\r\n this.option(\"visible\", false)\r\n }\r\n } else {\r\n if (this._shownSubmenus && this._shownSubmenus.length > 0) {\r\n if (this._shownSubmenus[0].is($submenu)) {\r\n this._hideSubmenu($submenu)\r\n }\r\n }\r\n this._showSubmenu($itemElement)\r\n }\r\n }\r\n _hideSubmenu($curSubmenu) {\r\n var shownSubmenus = extend([], this._shownSubmenus);\r\n each(shownSubmenus, (index, $submenu) => {\r\n if ($curSubmenu.is($submenu) || contains($curSubmenu[0], $submenu[0])) {\r\n $submenu.parent().removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n this._hideSubmenuCore($submenu)\r\n }\r\n })\r\n }\r\n _hideSubmenuCore($submenu) {\r\n var index = inArray($submenu, this._shownSubmenus);\r\n var animation = this.option(\"animation\") ? this.option(\"animation\").hide : null;\r\n if (index >= 0) {\r\n this._shownSubmenus.splice(index, 1)\r\n }\r\n this._stopAnimate($submenu);\r\n animation && this._animate($submenu, animation);\r\n $submenu.css(\"visibility\", \"hidden\")\r\n }\r\n _stopAnimate($container) {\r\n fx.stop($container, true)\r\n }\r\n _hideAllShownSubmenus() {\r\n var shownSubmenus = extend([], this._shownSubmenus);\r\n var $expandedItems = this._overlay.$content().find(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS));\r\n $expandedItems.removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n each(shownSubmenus, (_, $submenu) => {\r\n this._hideSubmenu($submenu)\r\n })\r\n }\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._renderContentImpl()\r\n }\r\n }\r\n _optionChanged(args) {\r\n if (inArray(args.name, ACTIONS) > -1) {\r\n this._initActions();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"visible\":\r\n this._renderVisibility(args.value);\r\n break;\r\n case \"showEvent\":\r\n case \"position\":\r\n case \"submenuDirection\":\r\n this._invalidate();\r\n break;\r\n case \"target\":\r\n args.previousValue && this._detachShowContextMenuEvents(args.previousValue);\r\n this._invalidate();\r\n break;\r\n case \"closeOnOutsideClick\":\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _renderVisibility(showing) {\r\n return showing ? this._show() : this._hide()\r\n }\r\n _toggleVisibility() {}\r\n _show(event) {\r\n var args = {\r\n jQEvent: event\r\n };\r\n var promise = (new Deferred).reject().promise();\r\n this._actions.onShowing(args);\r\n if (args.cancel) {\r\n return promise\r\n }\r\n var position = this._positionContextMenu(event);\r\n if (position) {\r\n var _event$originalEvent;\r\n if (!this._overlay) {\r\n this._renderContextMenuOverlay();\r\n this._overlay.$content().addClass(this._widgetClass());\r\n this._renderFocusState();\r\n this._attachHoverEvents();\r\n this._attachClickEvent();\r\n this._renderItems(this._dataAdapter.getRootNodes())\r\n }\r\n this._setOptionWithoutOptionChange(\"visible\", true);\r\n this._overlay.option(\"position\", position);\r\n promise = this._overlay.show();\r\n event && event.stopPropagation();\r\n this._setAriaAttributes();\r\n if ((null === event || void 0 === event ? void 0 : null === (_event$originalEvent = event.originalEvent) || void 0 === _event$originalEvent ? void 0 : _event$originalEvent.type) === holdEvent.name) {\r\n this.preventShowingDefaultContextMenuAboveOverlay()\r\n }\r\n }\r\n return promise\r\n }\r\n _setAriaAttributes() {\r\n this._overlayContentId = \"dx-\".concat(new Guid);\r\n this.setAria(\"owns\", this._overlayContentId);\r\n this.setAria({\r\n id: this._overlayContentId,\r\n role: \"menu\"\r\n }, this._overlay.$content())\r\n }\r\n _cleanAriaAttributes() {\r\n this._overlay && this.setAria(\"id\", null, this._overlay.$content());\r\n this.setAria(\"owns\", void 0)\r\n }\r\n _getTarget() {\r\n return this.option(\"target\") || this.option(\"position\").of || $(domAdapter.getDocument())\r\n }\r\n _getContextMenuPosition() {\r\n return extend({}, this.option(\"position\"), {\r\n of: this._getTarget()\r\n })\r\n }\r\n _positionContextMenu(jQEvent) {\r\n var position = this._getContextMenuPosition();\r\n var isInitialPosition = this._isInitialOptionValue(\"position\");\r\n var positioningAction = this._createActionByOption(\"onPositioning\", actionArgs);\r\n if (jQEvent && jQEvent.preventDefault && isInitialPosition) {\r\n position.of = jQEvent\r\n }\r\n var actionArgs = {\r\n position: position,\r\n event: jQEvent\r\n };\r\n positioningAction(actionArgs);\r\n if (actionArgs.cancel) {\r\n position = null\r\n } else if (actionArgs.event) {\r\n actionArgs.event.cancel = true;\r\n jQEvent.preventDefault()\r\n }\r\n return position\r\n }\r\n _refresh() {\r\n if (!hasWindow()) {\r\n super._refresh()\r\n } else if (this._overlay) {\r\n var lastPosition = this._overlay.option(\"position\");\r\n super._refresh();\r\n this._overlay && this._overlay.option(\"position\", lastPosition)\r\n } else {\r\n super._refresh()\r\n }\r\n }\r\n _hide() {\r\n var promise;\r\n if (this._overlay) {\r\n promise = this._overlay.hide();\r\n this._setOptionWithoutOptionChange(\"visible\", false)\r\n }\r\n this._cleanAriaAttributes();\r\n this.option(\"focusedElement\", null);\r\n return promise || (new Deferred).reject().promise()\r\n }\r\n toggle(showing) {\r\n var visible = this.option(\"visible\");\r\n showing = void 0 === showing ? !visible : showing;\r\n return this._renderVisibility(showing)\r\n }\r\n show() {\r\n return this.toggle(true)\r\n }\r\n hide() {\r\n return this.toggle(false)\r\n }\r\n}\r\nregisterComponent(\"dxContextMenu\", ContextMenu);\r\nexport default ContextMenu;\r\n","/**\r\n * DevExtreme (esm/ui/context_menu.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 ContextMenu from \"./context_menu/ui.context_menu\";\r\nexport default ContextMenu;\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.context_menu.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport ContextMenu from \"../context_menu\";\r\nvar CONTEXT_MENU = \"dx-context-menu\";\r\nvar viewName = {\r\n columnHeadersView: \"header\",\r\n rowsView: \"content\",\r\n footerView: \"footer\",\r\n headerPanel: \"headerPanel\"\r\n};\r\nvar VIEW_NAMES = [\"columnHeadersView\", \"rowsView\", \"footerView\", \"headerPanel\"];\r\nvar ContextMenuController = modules.ViewController.inherit({\r\n init: function() {\r\n this.createAction(\"onContextMenuPreparing\")\r\n },\r\n getContextMenuItems: function(dxEvent) {\r\n if (!dxEvent) {\r\n return false\r\n }\r\n var that = this;\r\n var $targetElement = $(dxEvent.target);\r\n var $element;\r\n var $targetRowElement;\r\n var $targetCellElement;\r\n var menuItems;\r\n each(VIEW_NAMES, (function() {\r\n var view = that.getView(this);\r\n $element = view && view.element();\r\n if ($element && ($element.is($targetElement) || $element.find($targetElement).length)) {\r\n $targetCellElement = $targetElement.closest(\".dx-row > td, .dx-row > tr\");\r\n $targetRowElement = $targetCellElement.parent();\r\n var rowIndex = view.getRowIndex($targetRowElement);\r\n var columnIndex = $targetCellElement[0] && $targetCellElement[0].cellIndex;\r\n var rowOptions = $targetRowElement.data(\"options\");\r\n var options = {\r\n event: dxEvent,\r\n targetElement: getPublicElement($targetElement),\r\n target: viewName[this],\r\n rowIndex: rowIndex,\r\n row: view._getRows()[rowIndex],\r\n columnIndex: columnIndex,\r\n column: rowOptions && rowOptions.cells[columnIndex].column\r\n };\r\n options.items = view.getContextMenuItems && view.getContextMenuItems(options);\r\n that.executeAction(\"onContextMenuPreparing\", options);\r\n that._contextMenuPrepared(options);\r\n menuItems = options.items;\r\n if (menuItems) {\r\n return false\r\n }\r\n }\r\n }));\r\n return menuItems\r\n },\r\n _contextMenuPrepared: noop\r\n});\r\nvar ContextMenuView = modules.View.inherit({\r\n _renderCore: function() {\r\n var that = this;\r\n var $element = that.element().addClass(CONTEXT_MENU);\r\n this.setAria(\"role\", \"presentation\", $element);\r\n this._createComponent($element, ContextMenu, {\r\n onPositioning: function(actionArgs) {\r\n var event = actionArgs.event;\r\n var contextMenuInstance = actionArgs.component;\r\n var items = that.getController(\"contextMenu\").getContextMenuItems(event);\r\n if (items) {\r\n contextMenuInstance.option(\"items\", items);\r\n event.stopPropagation()\r\n } else {\r\n actionArgs.cancel = true\r\n }\r\n },\r\n onItemClick: function(params) {\r\n params.itemData.onItemClick && params.itemData.onItemClick(params)\r\n },\r\n cssClass: that.getWidgetContainerClass(),\r\n target: that.component.$element()\r\n })\r\n }\r\n});\r\nexport var contextMenuModule = {\r\n defaultOptions: function() {\r\n return {\r\n onContextMenuPreparing: null\r\n }\r\n },\r\n controllers: {\r\n contextMenu: ContextMenuController\r\n },\r\n views: {\r\n contextMenuView: ContextMenuView\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.context_menu.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 treeListCore from \"./ui.data_grid.core\";\r\nimport {\r\n contextMenuModule\r\n} from \"../grid_core/ui.grid_core.context_menu\";\r\ntreeListCore.registerModule(\"contextMenu\", contextMenuModule);\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.error_handling.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nvar ERROR_ROW_CLASS = \"dx-error-row\";\r\nvar ERROR_MESSAGE_CLASS = \"dx-error-message\";\r\nvar ERROR_CLOSEBUTTON_CLASS = \"dx-closebutton\";\r\nvar ACTION_CLASS = \"action\";\r\nvar ErrorHandlingController = modules.ViewController.inherit({\r\n init: function() {\r\n this._columnHeadersView = this.getView(\"columnHeadersView\");\r\n this._rowsView = this.getView(\"rowsView\")\r\n },\r\n _createErrorRow: function(error, $tableElements) {\r\n var that = this;\r\n var $errorRow;\r\n var $closeButton;\r\n var $errorMessage = this._renderErrorMessage(error);\r\n if ($tableElements) {\r\n $errorRow = $(\"
\").addClass(ERROR_ROW_CLASS);\r\n $closeButton = $(\"
\").addClass(ERROR_CLOSEBUTTON_CLASS).addClass(that.addWidgetPrefix(ACTION_CLASS));\r\n eventsEngine.on($closeButton, clickEventName, that.createAction((function(args) {\r\n var e = args.event;\r\n var $errorRow;\r\n var errorRowIndex = $(e.currentTarget).closest(\".\" + ERROR_ROW_CLASS).index();\r\n e.stopPropagation();\r\n each($tableElements, (function(_, tableElement) {\r\n $errorRow = $(tableElement).children(\"tbody\").children(\"tr\").eq(errorRowIndex);\r\n that.removeErrorRow($errorRow)\r\n }));\r\n that.getController(\"resizing\") && that.getController(\"resizing\").fireContentReadyAction()\r\n })));\r\n $(\"
\" + freeSpaceCellsHtml + \"\"\r\n };\r\n for (var i = 0; i < columns.length; i++) {\r\n var classes = this._getCellClasses(columns[i]);\r\n var classString = classes.length ? \" class='\" + classes.join(\" \") + \"'\" : \"\";\r\n freeSpaceCellsHtml += \"\"\r\n }\r\n while (height > PIXELS_LIMIT) {\r\n html += createFreeSpaceRowHtml(PIXELS_LIMIT);\r\n height -= PIXELS_LIMIT\r\n }\r\n html += createFreeSpaceRowHtml(height);\r\n container.addClass(this.addWidgetPrefix(TABLE_CLASS));\r\n container.html(html)\r\n },\r\n _getCellClasses: function(column) {\r\n var classes = [];\r\n var cssClass = column.cssClass;\r\n var isExpandColumn = \"expand\" === column.command;\r\n cssClass && classes.push(cssClass);\r\n isExpandColumn && classes.push(this.addWidgetPrefix(GROUP_SPACE_CLASS));\r\n return classes\r\n },\r\n _findBottomLoadPanel: function($contentElement) {\r\n var $element = $contentElement || this.element();\r\n var $bottomLoadPanel = $element && $element.find(\".\" + this.addWidgetPrefix(BOTTOM_LOAD_PANEL_CLASS));\r\n if ($bottomLoadPanel && $bottomLoadPanel.length) {\r\n return $bottomLoadPanel\r\n }\r\n },\r\n _updateBottomLoading: function() {\r\n var virtualMode = isVirtualMode(this);\r\n var appendMode = isAppendMode(this);\r\n var showBottomLoading = !this._dataController.hasKnownLastPage() && this._dataController.isLoaded() && (virtualMode || appendMode);\r\n var $contentElement = this._findContentElement();\r\n var bottomLoadPanelElement = this._findBottomLoadPanel($contentElement);\r\n if (showBottomLoading) {\r\n if (!bottomLoadPanelElement) {\r\n $(\"
\").addClass(this.addWidgetPrefix(BOTTOM_LOAD_PANEL_CLASS)).append(this._createComponent($(\"
\"), LoadIndicator).$element()).appendTo($contentElement)\r\n }\r\n } else if (bottomLoadPanelElement) {\r\n bottomLoadPanelElement.remove()\r\n }\r\n },\r\n _handleScroll: function(e) {\r\n var that = this;\r\n if (that._hasHeight && that._rowHeight) {\r\n that._dataController.setViewportPosition(e.scrollOffset.top)\r\n }\r\n that.callBase.apply(that, arguments)\r\n },\r\n _needUpdateRowHeight: function(itemsCount) {\r\n var that = this;\r\n return that.callBase.apply(that, arguments) || itemsCount > 0 && that.option(\"scrolling.mode\") === SCROLLING_MODE_INFINITE && that.option(\"scrolling.rowRenderingMode\") !== SCROLLING_MODE_VIRTUAL\r\n },\r\n _updateRowHeight: function() {\r\n this.callBase.apply(this, arguments);\r\n if (this._rowHeight) {\r\n this._updateContentPosition();\r\n var viewportHeight = this._hasHeight ? this.element().outerHeight() : $(getWindow()).outerHeight();\r\n var dataController = this._dataController;\r\n dataController.viewportSize(Math.ceil(viewportHeight / this._rowHeight));\r\n if (this.option(NEW_SCROLLING_MODE) && !isDefined(dataController._loadViewportParams)) {\r\n var viewportSize = dataController.viewportSize();\r\n var viewportIsNotFilled = viewportSize > dataController.items().length && (isAppendMode(this) || dataController.totalItemsCount() > viewportSize);\r\n viewportIsNotFilled && dataController.loadViewport()\r\n }\r\n }\r\n },\r\n updateFreeSpaceRowHeight: function() {\r\n var result = this.callBase.apply(this, arguments);\r\n if (result) {\r\n this._updateContentPosition()\r\n }\r\n return result\r\n },\r\n setLoading: function(isLoading, messageText) {\r\n var dataController = this._dataController;\r\n var hasBottomLoadPanel = dataController.pageIndex() > 0 && dataController.isLoaded() && !!this._findBottomLoadPanel();\r\n if (this.option(NEW_SCROLLING_MODE) && isLoading && dataController.isViewportChanging()) {\r\n return\r\n }\r\n if (hasBottomLoadPanel) {\r\n isLoading = false\r\n }\r\n this.callBase.call(this, isLoading, messageText)\r\n },\r\n _resizeCore: function() {\r\n var that = this;\r\n var $element = that.element();\r\n that.callBase();\r\n if (that.component.$element() && !that._windowScroll && $element.closest(getWindow().document).length) {\r\n that._windowScroll = subscribeToExternalScrollers($element, (function(scrollPos) {\r\n if (!that._hasHeight && that._rowHeight) {\r\n that._dataController.setViewportPosition(scrollPos)\r\n }\r\n }), that.component.$element());\r\n that.on(\"disposing\", (function() {\r\n that._windowScroll.dispose()\r\n }))\r\n }\r\n that.loadIfNeed()\r\n },\r\n loadIfNeed: function() {\r\n var _dataController$loadI;\r\n var dataController = this._dataController;\r\n null === dataController || void 0 === dataController ? void 0 : null === (_dataController$loadI = dataController.loadIfNeed) || void 0 === _dataController$loadI ? void 0 : _dataController$loadI.call(dataController)\r\n },\r\n setColumnWidths: function(widths) {\r\n var scrollable = this.getScrollable();\r\n var $content;\r\n this.callBase.apply(this, arguments);\r\n if (\"virtual\" === this.option(\"scrolling.mode\")) {\r\n $content = scrollable ? $(scrollable.content()) : this.element();\r\n this.callBase(widths, $content.children(\".\" + this.addWidgetPrefix(CONTENT_CLASS)).children(\":not(.\" + this.addWidgetPrefix(TABLE_CONTENT_CLASS) + \")\"))\r\n }\r\n },\r\n dispose: function() {\r\n clearTimeout(this._scrollTimeoutID);\r\n this.callBase()\r\n }\r\n }\r\n}();\r\nexport var virtualScrollingModule = {\r\n defaultOptions: function() {\r\n return {\r\n scrolling: {\r\n timeout: 300,\r\n updateTimeout: 300,\r\n minTimeout: 0,\r\n renderingThreshold: 100,\r\n removeInvisiblePages: true,\r\n rowPageSize: 5,\r\n mode: \"standard\",\r\n preloadEnabled: false,\r\n rowRenderingMode: \"standard\",\r\n loadTwoPagesOnStart: false,\r\n newMode: false,\r\n minGap: 1\r\n }\r\n }\r\n },\r\n extenders: {\r\n dataSourceAdapter: VirtualScrollingDataSourceAdapterExtender,\r\n controllers: {\r\n data: function() {\r\n var members = {\r\n _refreshDataSource: function() {\r\n var baseResult = this.callBase.apply(this, arguments) || (new Deferred).resolve().promise();\r\n baseResult.done(this.initVirtualRows.bind(this));\r\n return baseResult\r\n },\r\n getRowPageSize: function() {\r\n var rowPageSize = this.option(\"scrolling.rowPageSize\");\r\n var pageSize = this.pageSize();\r\n return pageSize && pageSize < rowPageSize ? pageSize : rowPageSize\r\n },\r\n reload: function() {\r\n var rowsScrollController = this._rowsScrollController || this._dataSource;\r\n var itemIndex = rowsScrollController && rowsScrollController.getItemIndexByPosition();\r\n var result = this.callBase.apply(this, arguments);\r\n return result && result.done(() => {\r\n if (isVirtualMode(this) || isVirtualRowRendering(this)) {\r\n var rowIndexOffset = this.getRowIndexOffset();\r\n var rowIndex = Math.floor(itemIndex) - rowIndexOffset;\r\n var component = this.component;\r\n var scrollable = component.getScrollable && component.getScrollable();\r\n var isSortingOperation = this.dataSource().operationTypes().sorting;\r\n if (scrollable && !isSortingOperation) {\r\n var rowElement = component.getRowElement(rowIndex);\r\n var $rowElement = rowElement && rowElement[0] && $(rowElement[0]);\r\n var top = $rowElement && $rowElement.position().top;\r\n var isChromeLatest = browser.chrome && browser.version >= 91;\r\n var allowedTopOffset = browser.mozilla || browser.msie || isChromeLatest ? 1 : 0;\r\n if (top > allowedTopOffset) {\r\n top = Math.round(top + $rowElement.outerHeight() * (itemIndex % 1));\r\n scrollable.scrollTo({\r\n y: top\r\n })\r\n }\r\n }\r\n }\r\n })\r\n },\r\n initVirtualRows: function() {\r\n var virtualRowsRendering = isVirtualRowRendering(this);\r\n if (\"virtual\" !== this.option(\"scrolling.mode\") && true !== virtualRowsRendering || false === virtualRowsRendering || !this.option(\"scrolling.rowPageSize\")) {\r\n this._visibleItems = null;\r\n this._rowsScrollController = null;\r\n return\r\n }\r\n var pageIndex = !isVirtualMode(this) && this.pageIndex() >= this.pageCount() ? this.pageCount() - 1 : this.pageIndex();\r\n this._rowPageIndex = Math.ceil(pageIndex * this.pageSize() / this.getRowPageSize());\r\n this._uncountableItemCount = 0;\r\n this._visibleItems = this.option(NEW_SCROLLING_MODE) ? null : [];\r\n this._rowsScrollController = new VirtualScrollController(this.component, this._getRowsScrollDataOptions(), true);\r\n this._viewportChanging = false;\r\n this._rowsScrollController.positionChanged.add(() => {\r\n var _this$_dataSource;\r\n if (this.option(NEW_SCROLLING_MODE)) {\r\n this._viewportChanging = true;\r\n this.loadViewport();\r\n this._viewportChanging = false;\r\n return\r\n }\r\n null === (_this$_dataSource = this._dataSource) || void 0 === _this$_dataSource ? void 0 : _this$_dataSource.setViewportItemIndex(this._rowsScrollController.getViewportItemIndex())\r\n });\r\n if (this.isLoaded() && !this.option(NEW_SCROLLING_MODE)) {\r\n this._rowsScrollController.load()\r\n }\r\n },\r\n isViewportChanging: function() {\r\n return this._viewportChanging\r\n },\r\n _getRowsScrollDataOptions: function() {\r\n var that = this;\r\n var isItemCountable = function(item) {\r\n return isItemCountableByDataSource(item, that._dataSource)\r\n };\r\n return {\r\n pageSize: function() {\r\n return that.getRowPageSize()\r\n },\r\n totalItemsCount: function() {\r\n if (that.option(NEW_SCROLLING_MODE)) {\r\n return that.totalItemsCount() + that._uncountableItemCount\r\n }\r\n return isVirtualMode(that) ? that.totalItemsCount() : that._items.filter(isItemCountable).length\r\n },\r\n hasKnownLastPage: function() {\r\n return true\r\n },\r\n pageIndex: function(index) {\r\n if (void 0 !== index) {\r\n that._rowPageIndex = index\r\n }\r\n return that._rowPageIndex\r\n },\r\n isLoading: function() {\r\n return that.isLoading()\r\n },\r\n pageCount: function() {\r\n var pageCount = Math.ceil(this.totalItemsCount() / this.pageSize());\r\n return pageCount ? pageCount : 1\r\n },\r\n load: function() {\r\n if (that._rowsScrollController.pageIndex() >= this.pageCount()) {\r\n that._rowPageIndex = this.pageCount() - 1;\r\n that._rowsScrollController.pageIndex(that._rowPageIndex)\r\n }\r\n if (!this.items().length && this.totalItemsCount()) {\r\n return\r\n }\r\n that._rowsScrollController.handleDataChanged(change => {\r\n change = change || {};\r\n change.changeType = change.changeType || \"refresh\";\r\n change.items = change.items || that._visibleItems;\r\n that._visibleItems.forEach((item, index) => {\r\n item.rowIndex = index\r\n });\r\n that._fireChanged(change)\r\n })\r\n },\r\n updateLoading: function() {},\r\n itemsCount: function() {\r\n return this.items().filter(isItemCountable).length\r\n },\r\n correctCount: function(items, count, fromEnd) {\r\n return _correctCount(items, count, fromEnd, (item, isNextAfterLast, fromEnd) => {\r\n if (item.isNewRow) {\r\n return isNextAfterLast && !fromEnd\r\n }\r\n if (isNextAfterLast && fromEnd) {\r\n return !item.isNewRow\r\n }\r\n return isItemCountable(item)\r\n })\r\n },\r\n items: function(countableOnly) {\r\n var dataSource = that.dataSource();\r\n var virtualItemsCount = dataSource && dataSource.virtualItemsCount();\r\n var begin = virtualItemsCount ? virtualItemsCount.begin : 0;\r\n var rowPageSize = that.getRowPageSize();\r\n var skip = that._rowPageIndex * rowPageSize - begin;\r\n var take = rowPageSize;\r\n var result = that._items;\r\n if (skip < 0) {\r\n return []\r\n }\r\n if (skip) {\r\n skip = this.correctCount(result, skip);\r\n result = result.slice(skip)\r\n }\r\n if (take) {\r\n take = this.correctCount(result, take);\r\n result = result.slice(0, take)\r\n }\r\n return countableOnly ? result.filter(isItemCountable) : result\r\n },\r\n viewportItems: function(items) {\r\n if (items && !that.option(NEW_SCROLLING_MODE)) {\r\n that._visibleItems = items\r\n }\r\n return that._visibleItems\r\n },\r\n onChanged: function() {},\r\n changingDuration: function(e) {\r\n var dataSource = that.dataSource();\r\n if (dataSource.isLoading() && !that.option(NEW_SCROLLING_MODE)) {\r\n return LOAD_TIMEOUT\r\n }\r\n return (null === dataSource || void 0 === dataSource ? void 0 : dataSource._renderTime) || 0\r\n }\r\n }\r\n },\r\n _updateItemsCore: function(change) {\r\n var delta = this.getRowIndexDelta();\r\n this.callBase.apply(this, arguments);\r\n if (this.option(NEW_SCROLLING_MODE) && isVirtualRowRendering(this)) {\r\n return\r\n }\r\n var rowsScrollController = this._rowsScrollController;\r\n if (rowsScrollController) {\r\n var visibleItems = this._visibleItems;\r\n var isRefresh = \"refresh\" === change.changeType || change.isLiveUpdate;\r\n if (\"append\" === change.changeType && change.items && !change.items.length) {\r\n return\r\n }\r\n if (isRefresh || \"append\" === change.changeType || \"prepend\" === change.changeType) {\r\n change.cancel = true;\r\n isRefresh && rowsScrollController.reset(true);\r\n rowsScrollController.load()\r\n } else {\r\n if (\"update\" === change.changeType) {\r\n change.rowIndices.forEach((rowIndex, index) => {\r\n var changeType = change.changeTypes[index];\r\n var newItem = change.items[index];\r\n if (\"update\" === changeType) {\r\n visibleItems[rowIndex] = newItem\r\n } else if (\"insert\" === changeType) {\r\n visibleItems.splice(rowIndex, 0, newItem)\r\n } else if (\"remove\" === changeType) {\r\n visibleItems.splice(rowIndex, 1)\r\n }\r\n })\r\n } else {\r\n visibleItems.forEach((item, index) => {\r\n visibleItems[index] = this._items[index + delta] || visibleItems[index]\r\n });\r\n change.items = visibleItems\r\n }\r\n updateItemIndices(visibleItems)\r\n }\r\n }\r\n },\r\n _updateLoadViewportParams: function() {\r\n this._loadViewportParams = this._rowsScrollController.getViewportParams()\r\n },\r\n _afterProcessItems: function(items, change) {\r\n this._uncountableItemCount = 0;\r\n if (isDefined(this._loadViewportParams)) {\r\n this._uncountableItemCount = items.filter(item => !isItemCountableByDataSource(item, this._dataSource)).length;\r\n this._updateLoadViewportParams();\r\n var {\r\n skipForCurrentPage: skipForCurrentPage\r\n } = this.getLoadPageParams();\r\n change.repaintChangesOnly = \"refresh\" === change.changeType;\r\n return items.slice(skipForCurrentPage, skipForCurrentPage + this._loadViewportParams.take)\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _applyChange: function(change) {\r\n var that = this;\r\n var items = change.items;\r\n var changeType = change.changeType;\r\n var removeCount = change.removeCount;\r\n if (removeCount) {\r\n var fromEnd = \"prepend\" === changeType;\r\n removeCount = _correctCount(that._items, removeCount, fromEnd, (function(item, isNextAfterLast) {\r\n return \"data\" === item.rowType && !item.isNewRow || \"group\" === item.rowType && (that._dataSource.isGroupItemCountable(item.data) || isNextAfterLast)\r\n }));\r\n change.removeCount = removeCount\r\n }\r\n switch (changeType) {\r\n case \"prepend\":\r\n that._items.unshift.apply(that._items, items);\r\n if (removeCount) {\r\n that._items.splice(-removeCount)\r\n }\r\n break;\r\n case \"append\":\r\n that._items.push.apply(that._items, items);\r\n if (removeCount) {\r\n that._items.splice(0, removeCount)\r\n }\r\n break;\r\n default:\r\n that.callBase(change)\r\n }\r\n },\r\n items: function(allItems) {\r\n return allItems ? this._items : this._visibleItems || this._items\r\n },\r\n getRowIndexDelta: function() {\r\n var visibleItems = this._visibleItems;\r\n var delta = 0;\r\n if (visibleItems && visibleItems[0]) {\r\n delta = this._items.indexOf(visibleItems[0])\r\n }\r\n return delta < 0 ? 0 : delta\r\n },\r\n getRowIndexOffset: function(byLoadedRows) {\r\n var offset = 0;\r\n var dataSource = this.dataSource();\r\n var rowsScrollController = this._rowsScrollController;\r\n var virtualMode = isVirtualMode(this);\r\n var appendMode = isAppendMode(this);\r\n var newMode = this.option(NEW_SCROLLING_MODE);\r\n if (rowsScrollController && !byLoadedRows) {\r\n if (this.option(NEW_SCROLLING_MODE) && isDefined(this._loadViewportParams)) {\r\n var {\r\n skipForCurrentPage: skipForCurrentPage,\r\n pageIndex: pageIndex\r\n } = this.getLoadPageParams();\r\n offset = pageIndex * this.pageSize() + skipForCurrentPage\r\n } else {\r\n offset = rowsScrollController.beginPageIndex() * rowsScrollController.pageSize()\r\n }\r\n } else if ((virtualMode || appendMode && newMode) && dataSource) {\r\n offset = dataSource.beginPageIndex() * dataSource.pageSize()\r\n }\r\n return offset\r\n },\r\n viewportSize: function() {\r\n var rowsScrollController = this._rowsScrollController;\r\n var dataSource = this._dataSource;\r\n var result = null === rowsScrollController || void 0 === rowsScrollController ? void 0 : rowsScrollController.viewportSize.apply(rowsScrollController, arguments);\r\n if (this.option(NEW_SCROLLING_MODE)) {\r\n return result\r\n }\r\n return null === dataSource || void 0 === dataSource ? void 0 : dataSource.viewportSize.apply(dataSource, arguments)\r\n },\r\n viewportItemSize: function() {\r\n var rowsScrollController = this._rowsScrollController;\r\n var dataSource = this._dataSource;\r\n var result = null === rowsScrollController || void 0 === rowsScrollController ? void 0 : rowsScrollController.viewportItemSize.apply(rowsScrollController, arguments);\r\n if (this.option(NEW_SCROLLING_MODE)) {\r\n return result\r\n }\r\n return null === dataSource || void 0 === dataSource ? void 0 : dataSource.viewportItemSize.apply(dataSource, arguments)\r\n },\r\n setViewportPosition: function() {\r\n var rowsScrollController = this._rowsScrollController;\r\n var dataSource = this._dataSource;\r\n if (rowsScrollController) {\r\n rowsScrollController.setViewportPosition.apply(rowsScrollController, arguments)\r\n } else {\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.setViewportPosition.apply(dataSource, arguments)\r\n }\r\n },\r\n setContentItemSizes: function(sizes) {\r\n var rowsScrollController = this._rowsScrollController;\r\n var dataSource = this._dataSource;\r\n var result = null === rowsScrollController || void 0 === rowsScrollController ? void 0 : rowsScrollController.setContentItemSizes(sizes);\r\n if (this.option(NEW_SCROLLING_MODE)) {\r\n return result\r\n }\r\n return null === dataSource || void 0 === dataSource ? void 0 : dataSource.setContentItemSizes(sizes)\r\n },\r\n getLoadPageParams: function() {\r\n var viewportParams = this._loadViewportParams;\r\n var pageIndex = Math.floor(viewportParams.skip / this.pageSize());\r\n var skipForCurrentPage = viewportParams.skip - pageIndex * this.pageSize();\r\n var loadPageCount = Math.ceil((skipForCurrentPage + viewportParams.take) / this.pageSize());\r\n return {\r\n pageIndex: pageIndex,\r\n loadPageCount: loadPageCount,\r\n skipForCurrentPage: skipForCurrentPage\r\n }\r\n },\r\n loadViewport: function() {\r\n if (isVirtualMode(this) || isAppendMode(this)) {\r\n this._updateLoadViewportParams();\r\n var {\r\n pageIndex: pageIndex,\r\n loadPageCount: loadPageCount\r\n } = this.getLoadPageParams();\r\n var dataSourceAdapter = this._dataSource;\r\n if (pageIndex !== dataSourceAdapter.pageIndex() || loadPageCount !== dataSourceAdapter.loadPageCount()) {\r\n dataSourceAdapter.pageIndex(pageIndex);\r\n dataSourceAdapter.loadPageCount(loadPageCount);\r\n this.load()\r\n } else if (!this._isLoading) {\r\n this.updateItems()\r\n }\r\n }\r\n },\r\n loadIfNeed: function() {\r\n if (this.option(NEW_SCROLLING_MODE)) {\r\n return\r\n }\r\n var rowsScrollController = this._rowsScrollController;\r\n rowsScrollController && rowsScrollController.loadIfNeed();\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.loadIfNeed()\r\n },\r\n getItemSize: function() {\r\n var rowsScrollController = this._rowsScrollController;\r\n if (rowsScrollController) {\r\n return rowsScrollController.getItemSize.apply(rowsScrollController, arguments)\r\n }\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.getItemSize.apply(dataSource, arguments)\r\n },\r\n getItemSizes: function() {\r\n var rowsScrollController = this._rowsScrollController;\r\n if (rowsScrollController) {\r\n return rowsScrollController.getItemSizes.apply(rowsScrollController, arguments)\r\n }\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.getItemSizes.apply(dataSource, arguments)\r\n },\r\n getContentOffset: function() {\r\n var rowsScrollController = this._rowsScrollController;\r\n if (rowsScrollController) {\r\n return rowsScrollController.getContentOffset.apply(rowsScrollController, arguments)\r\n }\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.getContentOffset.apply(dataSource, arguments)\r\n },\r\n refresh: function(options) {\r\n var dataSource = this._dataSource;\r\n if (dataSource && options && options.load && isAppendMode(this)) {\r\n dataSource.resetCurrentTotalCount()\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n dispose: function() {\r\n var rowsScrollController = this._rowsScrollController;\r\n rowsScrollController && rowsScrollController.dispose();\r\n this.callBase.apply(this, arguments)\r\n },\r\n topItemIndex: function() {\r\n var _this$_loadViewportPa;\r\n return null === (_this$_loadViewportPa = this._loadViewportParams) || void 0 === _this$_loadViewportPa ? void 0 : _this$_loadViewportPa.skip\r\n },\r\n bottomItemIndex: function() {\r\n var viewportParams = this._loadViewportParams;\r\n return viewportParams && viewportParams.skip + viewportParams.take\r\n }\r\n };\r\n gridCoreUtils.proxyMethod(members, \"virtualItemsCount\");\r\n gridCoreUtils.proxyMethod(members, \"getVirtualContentSize\");\r\n gridCoreUtils.proxyMethod(members, \"setViewportItemIndex\");\r\n return members\r\n }(),\r\n resizing: {\r\n resize: function() {\r\n var that = this;\r\n var callBase = that.callBase;\r\n var result;\r\n if (isVirtualMode(that) || isVirtualRowRendering(that)) {\r\n clearTimeout(that._resizeTimeout);\r\n var diff = new Date - that._lastTime;\r\n var updateTimeout = that.option(\"scrolling.updateTimeout\");\r\n if (that._lastTime && diff < updateTimeout) {\r\n result = new Deferred;\r\n that._resizeTimeout = setTimeout((function() {\r\n callBase.apply(that).done(result.resolve).fail(result.reject);\r\n that._lastTime = new Date\r\n }), updateTimeout);\r\n that._lastTime = new Date\r\n } else {\r\n result = callBase.apply(that);\r\n if (that._dataController.isLoaded()) {\r\n that._lastTime = new Date\r\n }\r\n }\r\n } else {\r\n result = callBase.apply(that)\r\n }\r\n return result\r\n },\r\n dispose: function() {\r\n this.callBase.apply(this, arguments);\r\n clearTimeout(this._resizeTimeout)\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: VirtualScrollingRowsViewExtender\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.virtual_scrolling.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 gridCore from \"./ui.data_grid.core\";\r\nimport dataSourceAdapter from \"./ui.data_grid.data_source_adapter\";\r\nimport {\r\n virtualScrollingModule\r\n} from \"../grid_core/ui.grid_core.virtual_scrolling\";\r\ngridCore.registerModule(\"virtualScrolling\", virtualScrollingModule);\r\ndataSourceAdapter.extend(virtualScrollingModule.extenders.dataSourceAdapter);\r\n","/**\r\n * DevExtreme (esm/ui/overlay/utils.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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\nimport {\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nvar WINDOW_HEIGHT_PERCENT = .9;\r\nexport var getElementMaxHeightByWindow = ($element, startLocation) => {\r\n var $window = $(getWindow());\r\n var {\r\n top: elementOffset\r\n } = $element.offset();\r\n var actualOffset;\r\n if (isNumeric(startLocation)) {\r\n if (startLocation < elementOffset) {\r\n return elementOffset - startLocation\r\n } else {\r\n actualOffset = $window.innerHeight() - startLocation + $window.scrollTop()\r\n }\r\n } else {\r\n var offsetTop = elementOffset - $window.scrollTop();\r\n var offsetBottom = $window.innerHeight() - offsetTop - $element.outerHeight();\r\n actualOffset = Math.max(offsetTop, offsetBottom)\r\n }\r\n return actualOffset * WINDOW_HEIGHT_PERCENT\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/menu/ui.submenu.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport animationPosition from \"../../animation/position\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport ContextMenu from \"../context_menu\";\r\nvar DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS = \"dx-context-menu-content-delimiter\";\r\nvar DX_SUBMENU_CLASS = \"dx-submenu\";\r\nclass Submenu extends ContextMenu {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n orientation: \"horizontal\",\r\n tabIndex: null,\r\n onHoverStart: noop\r\n })\r\n }\r\n _initDataAdapter() {\r\n this._dataAdapter = this.option(\"_dataAdapter\");\r\n if (!this._dataAdapter) {\r\n super._initDataAdapter()\r\n }\r\n }\r\n _renderContentImpl() {\r\n this._renderContextMenuOverlay();\r\n super._renderContentImpl();\r\n var node = this._dataAdapter.getNodeByKey(this.option(\"_parentKey\"));\r\n node && this._renderItems(this._getChildNodes(node));\r\n this._renderDelimiter()\r\n }\r\n _renderDelimiter() {\r\n this.$contentDelimiter = $(\"
\").appendTo(this._itemContainer()).addClass(DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS)\r\n }\r\n _getOverlayOptions() {\r\n return extend(super._getOverlayOptions(), {\r\n onPositioned: this._overlayPositionedActionHandler.bind(this)\r\n })\r\n }\r\n _overlayPositionedActionHandler(arg) {\r\n this._showDelimiter(arg)\r\n }\r\n _hoverEndHandler(e) {\r\n super._hoverEndHandler(e);\r\n this._toggleFocusClass(false, e.currentTarget)\r\n }\r\n _isMenuHorizontal() {\r\n return \"horizontal\" === this.option(\"orientation\")\r\n }\r\n _hoverStartHandler(e) {\r\n var hoverStartAction = this.option(\"onHoverStart\");\r\n hoverStartAction(e);\r\n super._hoverStartHandler(e);\r\n this._toggleFocusClass(true, e.currentTarget)\r\n }\r\n _drawSubmenu($rootItem) {\r\n this._actions.onShowing({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: this\r\n });\r\n super._drawSubmenu($rootItem);\r\n this._actions.onShown({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: this\r\n })\r\n }\r\n _hideSubmenu($rootItem) {\r\n this._actions.onHiding({\r\n cancel: true,\r\n rootItem: getPublicElement($rootItem),\r\n submenu: this\r\n });\r\n super._hideSubmenu($rootItem);\r\n this._actions.onHidden({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: this\r\n })\r\n }\r\n _showDelimiter(arg) {\r\n if (!this.$contentDelimiter) {\r\n return\r\n }\r\n var $submenu = this._itemContainer().children(\".\".concat(DX_SUBMENU_CLASS)).eq(0);\r\n var $rootItem = this.option(\"position\").of;\r\n var position = {\r\n of: $submenu\r\n };\r\n var containerOffset = arg.position;\r\n var vLocation = containerOffset.v.location;\r\n var hLocation = containerOffset.h.location;\r\n var rootOffset = $rootItem.offset();\r\n var offsetLeft = Math.round(rootOffset.left);\r\n var offsetTop = Math.round(rootOffset.top);\r\n var rootWidth = $rootItem.width();\r\n var rootHeight = $rootItem.height();\r\n var submenuWidth = $submenu.width();\r\n var submenuHeight = $submenu.height();\r\n this.$contentDelimiter.css(\"display\", \"block\");\r\n this.$contentDelimiter.width(this._isMenuHorizontal() ? rootWidth < submenuWidth ? rootWidth - 2 : submenuWidth : 2);\r\n this.$contentDelimiter.height(this._isMenuHorizontal() ? 2 : rootHeight < submenuHeight ? rootHeight - 2 : submenuHeight);\r\n if (this._isMenuHorizontal()) {\r\n if (vLocation > offsetTop) {\r\n if (Math.round(hLocation) === offsetLeft) {\r\n position.offset = \"1 -1\";\r\n position.at = position.my = \"left top\"\r\n } else {\r\n position.offset = \"-1 -1\";\r\n position.at = position.my = \"right top\"\r\n }\r\n } else {\r\n this.$contentDelimiter.height(5);\r\n if (Math.round(hLocation) === offsetLeft) {\r\n position.offset = \"1 4\";\r\n position.at = position.my = \"left bottom\"\r\n } else {\r\n position.offset = \"-1 2\";\r\n position.at = position.my = \"right bottom\"\r\n }\r\n }\r\n } else if (hLocation > offsetLeft) {\r\n if (Math.round(vLocation) === offsetTop) {\r\n position.offset = \"-1 1\";\r\n position.at = position.my = \"left top\"\r\n } else {\r\n position.offset = \"-1 -1\";\r\n position.at = position.my = \"left bottom\"\r\n }\r\n } else if (Math.round(vLocation) === offsetTop) {\r\n position.offset = \"1 1\";\r\n position.at = position.my = \"right top\"\r\n } else {\r\n position.offset = \"1 -1\";\r\n position.at = position.my = \"right bottom\"\r\n }\r\n animationPosition.setup(this.$contentDelimiter, position)\r\n }\r\n _getContextMenuPosition() {\r\n return this.option(\"position\")\r\n }\r\n isOverlayVisible() {\r\n return this._overlay.option(\"visible\")\r\n }\r\n getOverlayContent() {\r\n return this._overlay.$content()\r\n }\r\n}\r\nexport default Submenu;\r\n","/**\r\n * DevExtreme (esm/ui/menu/ui.menu.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isPlainObject,\r\n isObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getElementMaxHeightByWindow\r\n} from \"../overlay/utils\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n end as hoverEventEnd\r\n} from \"../../events/hover\";\r\nimport MenuBase from \"../context_menu/ui.menu_base\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport Submenu from \"./ui.submenu\";\r\nimport Button from \"../button\";\r\nimport TreeView from \"../tree_view\";\r\nvar DX_MENU_CLASS = \"dx-menu\";\r\nvar DX_MENU_VERTICAL_CLASS = DX_MENU_CLASS + \"-vertical\";\r\nvar DX_MENU_HORIZONTAL_CLASS = DX_MENU_CLASS + \"-horizontal\";\r\nvar DX_MENU_ITEM_CLASS = DX_MENU_CLASS + \"-item\";\r\nvar DX_MENU_ITEMS_CONTAINER_CLASS = DX_MENU_CLASS + \"-items-container\";\r\nvar DX_MENU_ITEM_EXPANDED_CLASS = DX_MENU_ITEM_CLASS + \"-expanded\";\r\nvar DX_CONTEXT_MENU_CLASS = \"dx-context-menu\";\r\nvar DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS = DX_CONTEXT_MENU_CLASS + \"-container-border\";\r\nvar DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS = \"dx-context-menu-content-delimiter\";\r\nvar DX_SUBMENU_CLASS = \"dx-submenu\";\r\nvar DX_STATE_DISABLED_CLASS = \"dx-state-disabled\";\r\nvar DX_STATE_HOVER_CLASS = \"dx-state-hover\";\r\nvar DX_STATE_ACTIVE_CLASS = \"dx-state-active\";\r\nvar DX_ADAPTIVE_MODE_CLASS = DX_MENU_CLASS + \"-adaptive-mode\";\r\nvar DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS = DX_MENU_CLASS + \"-hamburger-button\";\r\nvar DX_ADAPTIVE_MODE_OVERLAY_WRAPPER_CLASS = DX_ADAPTIVE_MODE_CLASS + \"-overlay-wrapper\";\r\nvar FOCUS_UP = \"up\";\r\nvar FOCUS_DOWN = \"down\";\r\nvar FOCUS_LEFT = \"left\";\r\nvar FOCUS_RIGHT = \"right\";\r\nvar SHOW_SUBMENU_OPERATION = \"showSubmenu\";\r\nvar NEXTITEM_OPERATION = \"nextItem\";\r\nvar PREVITEM_OPERATION = \"prevItem\";\r\nvar DEFAULT_DELAY = {\r\n show: 50,\r\n hide: 300\r\n};\r\nvar ACTIONS = [\"onSubmenuShowing\", \"onSubmenuShown\", \"onSubmenuHiding\", \"onSubmenuHidden\", \"onItemContextMenu\", \"onItemClick\", \"onSelectionChanged\", \"onItemRendered\"];\r\nclass Menu extends MenuBase {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n orientation: \"horizontal\",\r\n submenuDirection: \"auto\",\r\n showFirstSubmenuMode: {\r\n name: \"onClick\",\r\n delay: {\r\n show: 50,\r\n hide: 300\r\n }\r\n },\r\n hideSubmenuOnMouseLeave: false,\r\n onSubmenuShowing: null,\r\n onSubmenuShown: null,\r\n onSubmenuHiding: null,\r\n onSubmenuHidden: null,\r\n adaptivityEnabled: false\r\n })\r\n }\r\n _setOptionsByReference() {\r\n super._setOptionsByReference();\r\n extend(this._optionsByReference, {\r\n animation: true,\r\n selectedItem: true\r\n })\r\n }\r\n _itemElements() {\r\n var rootMenuElements = super._itemElements();\r\n var submenuElements = this._submenuItemElements();\r\n return rootMenuElements.add(submenuElements)\r\n }\r\n _submenuItemElements() {\r\n var elements = [];\r\n var itemSelector = \".\".concat(DX_MENU_ITEM_CLASS);\r\n var currentSubmenu = this._submenus.length && this._submenus[0];\r\n if (currentSubmenu && currentSubmenu.itemsContainer()) {\r\n elements = currentSubmenu.itemsContainer().find(itemSelector)\r\n }\r\n return elements\r\n }\r\n _focusTarget() {\r\n return this.$element()\r\n }\r\n _isMenuHorizontal() {\r\n return \"horizontal\" === this.option(\"orientation\")\r\n }\r\n _moveFocus(location) {\r\n var $items = this._getAvailableItems();\r\n var isMenuHorizontal = this._isMenuHorizontal();\r\n var $activeItem = this._getActiveItem(true);\r\n var argument;\r\n var operation;\r\n var navigationAction;\r\n var $newTarget;\r\n switch (location) {\r\n case FOCUS_UP:\r\n operation = isMenuHorizontal ? SHOW_SUBMENU_OPERATION : this._getItemsNavigationOperation(PREVITEM_OPERATION);\r\n argument = isMenuHorizontal ? $activeItem : $items;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n case FOCUS_DOWN:\r\n operation = isMenuHorizontal ? SHOW_SUBMENU_OPERATION : this._getItemsNavigationOperation(NEXTITEM_OPERATION);\r\n argument = isMenuHorizontal ? $activeItem : $items;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n case FOCUS_RIGHT:\r\n operation = isMenuHorizontal ? this._getItemsNavigationOperation(NEXTITEM_OPERATION) : SHOW_SUBMENU_OPERATION;\r\n argument = isMenuHorizontal ? $items : $activeItem;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n case FOCUS_LEFT:\r\n operation = isMenuHorizontal ? this._getItemsNavigationOperation(PREVITEM_OPERATION) : SHOW_SUBMENU_OPERATION;\r\n argument = isMenuHorizontal ? $items : $activeItem;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n default:\r\n return super._moveFocus(location)\r\n }\r\n if ($newTarget && 0 !== $newTarget.length) {\r\n this.option(\"focusedElement\", getPublicElement($newTarget))\r\n }\r\n }\r\n _getItemsNavigationOperation(operation) {\r\n var navOperation = operation;\r\n if (this.option(\"rtlEnabled\")) {\r\n navOperation = operation === PREVITEM_OPERATION ? NEXTITEM_OPERATION : PREVITEM_OPERATION\r\n }\r\n return navOperation\r\n }\r\n _getKeyboardNavigationAction(operation, argument) {\r\n var action = noop;\r\n switch (operation) {\r\n case SHOW_SUBMENU_OPERATION:\r\n if (!argument.hasClass(DX_STATE_DISABLED_CLASS)) {\r\n action = this._showSubmenu.bind(this, argument)\r\n }\r\n break;\r\n case NEXTITEM_OPERATION:\r\n action = this._nextItem.bind(this, argument);\r\n break;\r\n case PREVITEM_OPERATION:\r\n action = this._prevItem.bind(this, argument)\r\n }\r\n return action\r\n }\r\n _clean() {\r\n super._clean();\r\n this.option(\"templatesRenderAsynchronously\") && clearTimeout(this._resizeEventTimer)\r\n }\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n if (!this._menuItemsWidth) {\r\n this._updateItemsWidthCache()\r\n }\r\n this._dimensionChanged()\r\n }\r\n }\r\n _isAdaptivityEnabled() {\r\n return this.option(\"adaptivityEnabled\") && \"horizontal\" === this.option(\"orientation\")\r\n }\r\n _updateItemsWidthCache() {\r\n var $menuItems = this.$element().find(\"ul\").first().children(\"li\").children(\".\".concat(DX_MENU_ITEM_CLASS));\r\n this._menuItemsWidth = this._getSummaryItemsWidth($menuItems, true)\r\n }\r\n _dimensionChanged() {\r\n if (!this._isAdaptivityEnabled()) {\r\n return\r\n }\r\n var containerWidth = this.$element().outerWidth();\r\n this._toggleAdaptiveMode(this._menuItemsWidth > containerWidth)\r\n }\r\n _init() {\r\n super._init();\r\n this._submenus = []\r\n }\r\n _initActions() {\r\n this._actions = {};\r\n each(ACTIONS, (index, action) => {\r\n this._actions[action] = this._createActionByOption(action)\r\n })\r\n }\r\n _initMarkup() {\r\n this._visibleSubmenu = null;\r\n this.$element().addClass(DX_MENU_CLASS);\r\n super._initMarkup();\r\n this.setAria(\"role\", \"menubar\")\r\n }\r\n _render() {\r\n super._render();\r\n this._initAdaptivity()\r\n }\r\n _renderHamburgerButton() {\r\n this._hamburger = new Button($(\"
\").addClass(DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS), {\r\n icon: \"menu\",\r\n activeStateEnabled: false,\r\n onClick: this._toggleTreeView.bind(this)\r\n });\r\n return this._hamburger.$element()\r\n }\r\n _toggleTreeView(state) {\r\n if (isPlainObject(state)) {\r\n state = !this._overlay.option(\"visible\")\r\n }\r\n this._overlay.option(\"visible\", state);\r\n this._toggleHamburgerActiveState(state)\r\n }\r\n _toggleHamburgerActiveState(state) {\r\n this._hamburger && this._hamburger.$element().toggleClass(DX_STATE_ACTIVE_CLASS, state)\r\n }\r\n _toggleAdaptiveMode(state) {\r\n var $menuItemsContainer = this.$element().find(\".\".concat(DX_MENU_HORIZONTAL_CLASS));\r\n var $adaptiveElements = this.$element().find(\".\".concat(DX_ADAPTIVE_MODE_CLASS));\r\n if (state) {\r\n this._hideVisibleSubmenu()\r\n } else {\r\n this._treeView && this._treeView.collapseAll();\r\n this._overlay && this._toggleTreeView(state)\r\n }\r\n $menuItemsContainer.toggle(!state);\r\n $adaptiveElements.toggle(state)\r\n }\r\n _removeAdaptivity() {\r\n if (!this._$adaptiveContainer) {\r\n return\r\n }\r\n this._toggleAdaptiveMode(false);\r\n this._$adaptiveContainer.remove();\r\n this._$adaptiveContainer = null;\r\n this._treeView = null;\r\n this._hamburger = null;\r\n this._overlay = null\r\n }\r\n _treeviewItemClickHandler(e) {\r\n this._actions.onItemClick(e);\r\n if (!e.node.children.length) {\r\n this._toggleTreeView(false)\r\n }\r\n }\r\n _getAdaptiveOverlayOptions() {\r\n var rtl = this.option(\"rtlEnabled\");\r\n var position = rtl ? \"right\" : \"left\";\r\n return {\r\n maxHeight: () => getElementMaxHeightByWindow(this.$element()),\r\n deferRendering: false,\r\n shading: false,\r\n animation: false,\r\n closeOnTargetScroll: true,\r\n onHidden: () => {\r\n this._toggleHamburgerActiveState(false)\r\n },\r\n height: \"auto\",\r\n closeOnOutsideClick: e => !$(e.target).closest(\".\".concat(DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS)).length,\r\n position: {\r\n collision: \"flipfit\",\r\n at: \"bottom \" + position,\r\n my: \"top \" + position,\r\n of: this._hamburger.$element()\r\n }\r\n }\r\n }\r\n _getTreeViewOptions() {\r\n var menuOptions = {};\r\n each([\"rtlEnabled\", \"width\", \"accessKey\", \"activeStateEnabled\", \"animation\", \"dataSource\", \"disabled\", \"displayExpr\", \"displayExpr\", \"focusStateEnabled\", \"hint\", \"hoverStateEnabled\", \"itemsExpr\", \"items\", \"itemTemplate\", \"selectedExpr\", \"selectionMode\", \"tabIndex\", \"visible\"], (_, option) => {\r\n menuOptions[option] = this.option(option)\r\n });\r\n each([\"onItemContextMenu\", \"onSelectionChanged\"], (_, actionName) => {\r\n menuOptions[actionName] = e => {\r\n this._actions[actionName](e)\r\n }\r\n });\r\n return extend(menuOptions, {\r\n dataSource: this.getDataSource(),\r\n animationEnabled: !!this.option(\"animation\"),\r\n onItemClick: this._treeviewItemClickHandler.bind(this),\r\n onItemExpanded: e => {\r\n this._overlay.repaint();\r\n this._actions.onSubmenuShown(e)\r\n },\r\n onItemCollapsed: e => {\r\n this._overlay.repaint();\r\n this._actions.onSubmenuHidden(e)\r\n },\r\n selectNodesRecursive: false,\r\n selectByClick: this.option(\"selectByClick\"),\r\n expandEvent: \"click\"\r\n })\r\n }\r\n _initAdaptivity() {\r\n if (!this._isAdaptivityEnabled()) {\r\n return\r\n }\r\n this._$adaptiveContainer = $(\"
\").addClass(DX_ADAPTIVE_MODE_CLASS);\r\n var $hamburger = this._renderHamburgerButton();\r\n this._treeView = this._createComponent($(\"
\"), TreeView, this._getTreeViewOptions());\r\n this._overlay = this._createComponent($(\"
\"), Overlay, this._getAdaptiveOverlayOptions());\r\n this._overlay.$content().append(this._treeView.$element()).addClass(DX_ADAPTIVE_MODE_CLASS).addClass(this.option(\"cssClass\"));\r\n this._overlay.$wrapper().addClass(DX_ADAPTIVE_MODE_OVERLAY_WRAPPER_CLASS);\r\n this._$adaptiveContainer.append($hamburger);\r\n this._$adaptiveContainer.append(this._overlay.$element());\r\n this.$element().append(this._$adaptiveContainer);\r\n this._updateItemsWidthCache();\r\n this._dimensionChanged()\r\n }\r\n _getDelay(delayType) {\r\n var delay = this.option(\"showFirstSubmenuMode\").delay;\r\n if (!isDefined(delay)) {\r\n return DEFAULT_DELAY[delayType]\r\n } else {\r\n return isObject(delay) ? delay[delayType] : delay\r\n }\r\n }\r\n _keyboardHandler(e) {\r\n return super._keyboardHandler(e, !!this._visibleSubmenu)\r\n }\r\n _renderContainer() {\r\n var $wrapper = $(\"
\");\r\n $wrapper.appendTo(this.$element()).addClass(this._isMenuHorizontal() ? DX_MENU_HORIZONTAL_CLASS : DX_MENU_VERTICAL_CLASS);\r\n return super._renderContainer($wrapper)\r\n }\r\n _renderSubmenuItems(node, $itemFrame) {\r\n var submenu = this._createSubmenu(node, $itemFrame);\r\n this._submenus.push(submenu);\r\n this._renderBorderElement($itemFrame);\r\n return submenu\r\n }\r\n _getKeyboardListeners() {\r\n return super._getKeyboardListeners().concat(this._visibleSubmenu)\r\n }\r\n _createSubmenu(node, $rootItem) {\r\n var $submenuContainer = $(\"
\").addClass(DX_CONTEXT_MENU_CLASS).appendTo($rootItem);\r\n var items = this._getChildNodes(node);\r\n var result = this._createComponent($submenuContainer, Submenu, extend(this._getSubmenuOptions(), {\r\n _dataAdapter: this._dataAdapter,\r\n _parentKey: node.internalFields.key,\r\n items: items,\r\n onHoverStart: this._clearTimeouts.bind(this),\r\n position: this.getSubmenuPosition($rootItem)\r\n }));\r\n this._attachSubmenuHandlers($rootItem, result);\r\n return result\r\n }\r\n _getSubmenuOptions() {\r\n var $submenuTarget = $(\"
\");\r\n var isMenuHorizontal = this._isMenuHorizontal();\r\n return {\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n target: $submenuTarget,\r\n orientation: this.option(\"orientation\"),\r\n selectionMode: this.option(\"selectionMode\"),\r\n cssClass: this.option(\"cssClass\"),\r\n selectByClick: this.option(\"selectByClick\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n activeStateEnabled: this.option(\"activeStateEnabled\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n animation: this.option(\"animation\"),\r\n showSubmenuMode: this.option(\"showSubmenuMode\"),\r\n displayExpr: this.option(\"displayExpr\"),\r\n disabledExpr: this.option(\"disabledExpr\"),\r\n selectedExpr: this.option(\"selectedExpr\"),\r\n itemsExpr: this.option(\"itemsExpr\"),\r\n onFocusedItemChanged: e => {\r\n if (!e.component.option(\"visible\")) {\r\n return\r\n }\r\n this.option(\"focusedElement\", e.component.option(\"focusedElement\"))\r\n },\r\n onSelectionChanged: this._nestedItemOnSelectionChangedHandler.bind(this),\r\n onItemClick: this._nestedItemOnItemClickHandler.bind(this),\r\n onItemRendered: this._nestedItemOnItemRenderedHandler.bind(this),\r\n onLeftFirstItem: isMenuHorizontal ? null : this._moveMainMenuFocus.bind(this, PREVITEM_OPERATION),\r\n onLeftLastItem: isMenuHorizontal ? null : this._moveMainMenuFocus.bind(this, NEXTITEM_OPERATION),\r\n onCloseRootSubmenu: this._moveMainMenuFocus.bind(this, isMenuHorizontal ? PREVITEM_OPERATION : null),\r\n onExpandLastSubmenu: isMenuHorizontal ? this._moveMainMenuFocus.bind(this, NEXTITEM_OPERATION) : null\r\n }\r\n }\r\n _getShowFirstSubmenuMode() {\r\n if (!this._isDesktopDevice()) {\r\n return \"onClick\"\r\n }\r\n var optionValue = this.option(\"showFirstSubmenuMode\");\r\n return isObject(optionValue) ? optionValue.name : optionValue\r\n }\r\n _moveMainMenuFocus(direction) {\r\n var $items = this._getAvailableItems();\r\n var itemCount = $items.length;\r\n var $currentItem = $items.filter(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS)).eq(0);\r\n var itemIndex = $items.index($currentItem);\r\n this._hideSubmenu(this._visibleSubmenu);\r\n itemIndex += direction === PREVITEM_OPERATION ? -1 : 1;\r\n if (itemIndex >= itemCount) {\r\n itemIndex = 0\r\n } else if (itemIndex < 0) {\r\n itemIndex = itemCount - 1\r\n }\r\n var $newItem = $items.eq(itemIndex);\r\n this.option(\"focusedElement\", getPublicElement($newItem))\r\n }\r\n _nestedItemOnSelectionChangedHandler(args) {\r\n var selectedItem = args.addedItems.length && args.addedItems[0];\r\n var submenu = Submenu.getInstance(args.element);\r\n var onSelectionChanged = this._actions.onSelectionChanged;\r\n onSelectionChanged(args);\r\n selectedItem && this._clearSelectionInSubmenus(selectedItem[0], submenu);\r\n this._clearRootSelection();\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItem)\r\n }\r\n _clearSelectionInSubmenus(item, targetSubmenu) {\r\n var cleanAllSubmenus = !arguments.length;\r\n each(this._submenus, (index, submenu) => {\r\n var $submenu = submenu._itemContainer();\r\n var isOtherItem = !$submenu.is(targetSubmenu && targetSubmenu._itemContainer());\r\n var $selectedItem = $submenu.find(\".\".concat(this._selectedItemClass()));\r\n if (isOtherItem && $selectedItem.length || cleanAllSubmenus) {\r\n $selectedItem.removeClass(this._selectedItemClass());\r\n var selectedItemData = this._getItemData($selectedItem);\r\n if (selectedItemData) {\r\n selectedItemData.selected = false\r\n }\r\n submenu._clearSelectedItems()\r\n }\r\n })\r\n }\r\n _clearRootSelection() {\r\n var $prevSelectedItem = this.$element().find(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS)).first().children().children().filter(\".\".concat(this._selectedItemClass()));\r\n if ($prevSelectedItem.length) {\r\n var prevSelectedItemData = this._getItemData($prevSelectedItem);\r\n prevSelectedItemData.selected = false;\r\n $prevSelectedItem.removeClass(this._selectedItemClass())\r\n }\r\n }\r\n _nestedItemOnItemClickHandler(e) {\r\n this._actions.onItemClick(e)\r\n }\r\n _nestedItemOnItemRenderedHandler(e) {\r\n this._actions.onItemRendered(e)\r\n }\r\n _attachSubmenuHandlers($rootItem, submenu) {\r\n var $submenuOverlayContent = submenu.getOverlayContent();\r\n var submenus = $submenuOverlayContent.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var submenuMouseLeaveName = addNamespace(hoverEventEnd, this.NAME + \"_submenu\");\r\n submenu.option({\r\n onShowing: this._submenuOnShowingHandler.bind(this, $rootItem, submenu),\r\n onShown: this._submenuOnShownHandler.bind(this, $rootItem, submenu),\r\n onHiding: this._submenuOnHidingHandler.bind(this, $rootItem, submenu),\r\n onHidden: this._submenuOnHiddenHandler.bind(this, $rootItem, submenu)\r\n });\r\n each(submenus, (index, submenu) => {\r\n eventsEngine.off(submenu, submenuMouseLeaveName);\r\n eventsEngine.on(submenu, submenuMouseLeaveName, null, this._submenuMouseLeaveHandler.bind(this, $rootItem))\r\n })\r\n }\r\n _submenuOnShowingHandler($rootItem, submenu) {\r\n var $border = $rootItem.children(\".\".concat(DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS));\r\n this._actions.onSubmenuShowing({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: submenu\r\n });\r\n $border.show();\r\n $rootItem.addClass(DX_MENU_ITEM_EXPANDED_CLASS)\r\n }\r\n _submenuOnShownHandler($rootItem, submenu) {\r\n this._actions.onSubmenuShown({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: submenu\r\n })\r\n }\r\n _submenuOnHidingHandler($rootItem, submenu, eventArgs) {\r\n var $border = $rootItem.children(\".\".concat(DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS));\r\n var args = eventArgs;\r\n args.rootItem = getPublicElement($rootItem);\r\n args.submenu = submenu;\r\n this._actions.onSubmenuHiding(args);\r\n eventArgs = args;\r\n if (!eventArgs.cancel) {\r\n if (this._visibleSubmenu === submenu) {\r\n this._visibleSubmenu = null\r\n }\r\n $border.hide();\r\n $rootItem.removeClass(DX_MENU_ITEM_EXPANDED_CLASS)\r\n }\r\n }\r\n _submenuOnHiddenHandler($rootItem, submenu) {\r\n this._actions.onSubmenuHidden({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: submenu\r\n })\r\n }\r\n _submenuMouseLeaveHandler($rootItem, eventArgs) {\r\n var target = $(eventArgs.relatedTarget).parents(\".\".concat(DX_CONTEXT_MENU_CLASS))[0];\r\n var contextMenu = this._getSubmenuByRootElement($rootItem).getOverlayContent()[0];\r\n if (this.option(\"hideSubmenuOnMouseLeave\") && target !== contextMenu) {\r\n this._clearTimeouts();\r\n setTimeout(this._hideSubmenuAfterTimeout.bind(this), this._getDelay(\"hide\"))\r\n }\r\n }\r\n _hideSubmenuAfterTimeout() {\r\n if (!this._visibleSubmenu) {\r\n return\r\n }\r\n var isRootItemHovered = $(this._visibleSubmenu.$element().context).hasClass(DX_STATE_HOVER_CLASS);\r\n var isSubmenuItemHovered = this._visibleSubmenu.getOverlayContent().find(\".\".concat(DX_STATE_HOVER_CLASS)).length;\r\n var hoveredElementFromSubMenu = this._visibleSubmenu.getOverlayContent().get(0).querySelector(\":hover\");\r\n if (!hoveredElementFromSubMenu && !isSubmenuItemHovered && !isRootItemHovered) {\r\n this._visibleSubmenu.hide()\r\n }\r\n }\r\n _getSubmenuByRootElement($rootItem) {\r\n if (!$rootItem) {\r\n return false\r\n }\r\n var $submenu = $rootItem.children(\".\".concat(DX_CONTEXT_MENU_CLASS));\r\n return $submenu.length && Submenu.getInstance($submenu)\r\n }\r\n getSubmenuPosition($rootItem) {\r\n var isHorizontalMenu = this._isMenuHorizontal();\r\n var submenuDirection = this.option(\"submenuDirection\").toLowerCase();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var submenuPosition = {\r\n collision: \"flip\",\r\n of: $rootItem\r\n };\r\n switch (submenuDirection) {\r\n case \"leftortop\":\r\n submenuPosition.at = \"left top\";\r\n submenuPosition.my = isHorizontalMenu ? \"left bottom\" : \"right top\";\r\n break;\r\n case \"rightorbottom\":\r\n submenuPosition.at = isHorizontalMenu ? \"left bottom\" : \"right top\";\r\n submenuPosition.my = \"left top\";\r\n break;\r\n default:\r\n if (isHorizontalMenu) {\r\n submenuPosition.at = rtlEnabled ? \"right bottom\" : \"left bottom\";\r\n submenuPosition.my = rtlEnabled ? \"right top\" : \"left top\"\r\n } else {\r\n submenuPosition.at = rtlEnabled ? \"left top\" : \"right top\";\r\n submenuPosition.my = rtlEnabled ? \"right top\" : \"left top\"\r\n }\r\n }\r\n return submenuPosition\r\n }\r\n _renderBorderElement($item) {\r\n $(\"
\").appendTo($item).addClass(DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS).hide()\r\n }\r\n _itemPointerDownHandler(e) {\r\n var $target = $(e.target);\r\n var $closestItem = $target.closest(this._itemElements());\r\n if ($closestItem.hasClass(\"dx-menu-item-has-submenu\")) {\r\n this.option(\"focusedElement\", null);\r\n return\r\n }\r\n super._itemPointerDownHandler(e)\r\n }\r\n _hoverStartHandler(e) {\r\n var mouseMoveEventName = addNamespace(pointerEvents.move, this.NAME);\r\n var $item = this._getItemElementByEventArgs(e);\r\n var node = this._dataAdapter.getNodeByItem(this._getItemData($item));\r\n var isSelectionActive = isDefined(e.buttons) && 1 === e.buttons || !isDefined(e.buttons) && 1 === e.which;\r\n if (this._isItemDisabled($item)) {\r\n return\r\n }\r\n eventsEngine.off($item, mouseMoveEventName);\r\n if (!this._hasChildren(node)) {\r\n this._showSubmenuTimer = setTimeout(this._hideSubmenuAfterTimeout.bind(this), this._getDelay(\"hide\"));\r\n return\r\n }\r\n if (\"onHover\" === this._getShowFirstSubmenuMode() && !isSelectionActive) {\r\n var submenu = this._getSubmenuByElement($item);\r\n this._clearTimeouts();\r\n if (!submenu.isOverlayVisible()) {\r\n eventsEngine.on($item, mouseMoveEventName, this._itemMouseMoveHandler.bind(this));\r\n this._showSubmenuTimer = this._getDelay(\"hide\")\r\n }\r\n }\r\n }\r\n _hoverEndHandler(eventArg) {\r\n var $item = this._getItemElementByEventArgs(eventArg);\r\n var relatedTarget = $(eventArg.relatedTarget);\r\n super._hoverEndHandler(eventArg);\r\n this._clearTimeouts();\r\n if (this._isItemDisabled($item)) {\r\n return\r\n }\r\n if (relatedTarget.hasClass(DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS)) {\r\n return\r\n }\r\n if (this.option(\"hideSubmenuOnMouseLeave\") && !relatedTarget.hasClass(DX_MENU_ITEMS_CONTAINER_CLASS)) {\r\n this._hideSubmenuTimer = setTimeout(() => {\r\n this._hideSubmenuAfterTimeout()\r\n }, this._getDelay(\"hide\"))\r\n }\r\n }\r\n _hideVisibleSubmenu() {\r\n if (!this._visibleSubmenu) {\r\n return false\r\n }\r\n this._hideSubmenu(this._visibleSubmenu);\r\n return true\r\n }\r\n _showSubmenu($itemElement) {\r\n var submenu = this._getSubmenuByElement($itemElement);\r\n if (this._visibleSubmenu !== submenu) {\r\n this._hideVisibleSubmenu()\r\n }\r\n if (submenu) {\r\n this._clearTimeouts();\r\n submenu.show();\r\n this.option(\"focusedElement\", submenu.option(\"focusedElement\"))\r\n }\r\n this._visibleSubmenu = submenu;\r\n this._hoveredRootItem = $itemElement\r\n }\r\n _hideSubmenu(submenu) {\r\n submenu && submenu.hide();\r\n if (this._visibleSubmenu === submenu) {\r\n this._visibleSubmenu = null\r\n }\r\n this._hoveredRootItem = null\r\n }\r\n _itemMouseMoveHandler(e) {\r\n if (e.pointers && e.pointers.length) {\r\n return\r\n }\r\n var $item = $(e.currentTarget);\r\n if (!isDefined(this._showSubmenuTimer)) {\r\n return\r\n }\r\n this._clearTimeouts();\r\n this._showSubmenuTimer = setTimeout(() => {\r\n var submenu = this._getSubmenuByElement($item);\r\n if (submenu && !submenu.isOverlayVisible()) {\r\n this._showSubmenu($item)\r\n }\r\n }, this._getDelay(\"show\"))\r\n }\r\n _clearTimeouts() {\r\n clearTimeout(this._hideSubmenuTimer);\r\n clearTimeout(this._showSubmenuTimer)\r\n }\r\n _getSubmenuByElement($itemElement, itemData) {\r\n var submenu = this._getSubmenuByRootElement($itemElement);\r\n if (submenu) {\r\n return submenu\r\n } else {\r\n itemData = itemData || this._getItemData($itemElement);\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n return this._hasChildren(node) && this._renderSubmenuItems(node, $itemElement)\r\n }\r\n }\r\n _updateSubmenuVisibilityOnClick(actionArgs) {\r\n var args = actionArgs.args.length && actionArgs.args[0];\r\n if (!args || this._disabledGetter(args.itemData)) {\r\n return\r\n }\r\n var $itemElement = $(args.itemElement);\r\n var currentSubmenu = this._getSubmenuByElement($itemElement, args.itemData);\r\n this._updateSelectedItemOnClick(actionArgs);\r\n if (this._visibleSubmenu) {\r\n if (this._visibleSubmenu === currentSubmenu) {\r\n if (\"onClick\" === this.option(\"showFirstSubmenuMode\")) {\r\n this._hideSubmenu(this._visibleSubmenu)\r\n }\r\n return\r\n } else {\r\n this._hideSubmenu(this._visibleSubmenu)\r\n }\r\n }\r\n if (!currentSubmenu) {\r\n return\r\n }\r\n if (!currentSubmenu.isOverlayVisible()) {\r\n this._showSubmenu($itemElement);\r\n return\r\n }\r\n }\r\n _optionChanged(args) {\r\n if (ACTIONS.indexOf(args.name) >= 0) {\r\n this._initActions();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"orientation\":\r\n case \"submenuDirection\":\r\n this._invalidate();\r\n break;\r\n case \"showFirstSubmenuMode\":\r\n case \"hideSubmenuOnMouseLeave\":\r\n break;\r\n case \"showSubmenuMode\":\r\n this._changeSubmenusOption(args.name, args.value);\r\n break;\r\n case \"adaptivityEnabled\":\r\n args.value ? this._initAdaptivity() : this._removeAdaptivity();\r\n break;\r\n case \"width\":\r\n if (this._isAdaptivityEnabled()) {\r\n this._treeView.option(args.name, args.value);\r\n this._overlay.option(args.name, args.value)\r\n }\r\n super._optionChanged(args);\r\n this._dimensionChanged();\r\n break;\r\n case \"animation\":\r\n if (this._isAdaptivityEnabled()) {\r\n this._treeView.option(\"animationEnabled\", !!args.value)\r\n }\r\n super._optionChanged(args);\r\n break;\r\n default:\r\n if (this._isAdaptivityEnabled()) {\r\n this._treeView.option(args.name, args.value)\r\n }\r\n super._optionChanged(args)\r\n }\r\n }\r\n _changeSubmenusOption(name, value) {\r\n each(this._submenus, (index, submenu) => {\r\n submenu.option(name, value)\r\n })\r\n }\r\n selectItem(itemElement) {\r\n this._hideSubmenu(this._visibleSubmenu);\r\n super.selectItem(itemElement)\r\n }\r\n unselectItem(itemElement) {\r\n this._hideSubmenu(this._visibleSubmenu);\r\n super.selectItem(itemElement)\r\n }\r\n}\r\nregisterComponent(\"dxMenu\", Menu);\r\nexport default Menu;\r\n","/**\r\n * DevExtreme (esm/ui/menu.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 Menu from \"./menu/ui.menu\";\r\nexport default Menu;\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.filter_row.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport Editor from \"../editor/editor\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport Menu from \"../menu\";\r\nimport {\r\n selectView\r\n} from \"../shared/accessibility\";\r\nvar OPERATION_ICONS = {\r\n \"=\": \"filter-operation-equals\",\r\n \"<>\": \"filter-operation-not-equals\",\r\n \"<\": \"filter-operation-less\",\r\n \"<=\": \"filter-operation-less-equal\",\r\n \">\": \"filter-operation-greater\",\r\n \">=\": \"filter-operation-greater-equal\",\r\n default: \"filter-operation-default\",\r\n notcontains: \"filter-operation-not-contains\",\r\n contains: \"filter-operation-contains\",\r\n startswith: \"filter-operation-starts-with\",\r\n endswith: \"filter-operation-ends-with\",\r\n between: \"filter-operation-between\"\r\n};\r\nvar OPERATION_DESCRIPTORS = {\r\n \"=\": \"equal\",\r\n \"<>\": \"notEqual\",\r\n \"<\": \"lessThan\",\r\n \"<=\": \"lessThanOrEqual\",\r\n \">\": \"greaterThan\",\r\n \">=\": \"greaterThanOrEqual\",\r\n startswith: \"startsWith\",\r\n contains: \"contains\",\r\n notcontains: \"notContains\",\r\n endswith: \"endsWith\",\r\n between: \"between\"\r\n};\r\nvar FILTERING_TIMEOUT = 700;\r\nvar CORRECT_FILTER_RANGE_OVERLAY_WIDTH = 1;\r\nvar FILTER_ROW_CLASS = \"filter-row\";\r\nvar FILTER_RANGE_OVERLAY_CLASS = \"filter-range-overlay\";\r\nvar FILTER_RANGE_START_CLASS = \"filter-range-start\";\r\nvar FILTER_RANGE_END_CLASS = \"filter-range-end\";\r\nvar MENU_CLASS = \"dx-menu\";\r\nvar EDITOR_WITH_MENU_CLASS = \"dx-editor-with-menu\";\r\nvar EDITOR_CONTAINER_CLASS = \"dx-editor-container\";\r\nvar EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nvar FILTER_MENU = \"dx-filter-menu\";\r\nvar APPLY_BUTTON_CLASS = \"dx-apply-button\";\r\nvar HIGHLIGHT_OUTLINE_CLASS = \"dx-highlight-outline\";\r\nvar FOCUSED_CLASS = \"dx-focused\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar FILTER_RANGE_CONTENT_CLASS = \"dx-filter-range-content\";\r\nvar FILTER_MODIFIED_CLASS = \"dx-filter-modified\";\r\nvar EDITORS_INPUT_SELECTOR = \"input:not([type='hidden'])\";\r\nvar BETWEEN_OPERATION_DATA_TYPES = [\"date\", \"datetime\", \"number\"];\r\n\r\nfunction isOnClickApplyFilterMode(that) {\r\n return \"onClick\" === that.option(\"filterRow.applyFilter\")\r\n}\r\nvar ColumnHeadersViewFilterRowExtender = function() {\r\n var getEditorInstance = function($editorContainer) {\r\n var $editor = $editorContainer && $editorContainer.children();\r\n var componentNames = $editor && $editor.data(\"dxComponents\");\r\n var editor = componentNames && componentNames.length && $editor.data(componentNames[0]);\r\n if (editor instanceof Editor) {\r\n return editor\r\n }\r\n };\r\n var getRangeTextByFilterValue = function(that, column) {\r\n var result = \"\";\r\n var rangeEnd = \"\";\r\n var filterValue = getColumnFilterValue(that, column);\r\n var formatOptions = gridCoreUtils.getFormatOptionsByColumn(column, \"filterRow\");\r\n if (Array.isArray(filterValue)) {\r\n result = gridCoreUtils.formatValue(filterValue[0], formatOptions);\r\n rangeEnd = gridCoreUtils.formatValue(filterValue[1], formatOptions);\r\n if (\"\" !== rangeEnd) {\r\n result += \" - \" + rangeEnd\r\n }\r\n } else if (isDefined(filterValue)) {\r\n result = gridCoreUtils.formatValue(filterValue, formatOptions)\r\n }\r\n return result\r\n };\r\n\r\n function getColumnFilterValue(that, column) {\r\n if (column) {\r\n return isOnClickApplyFilterMode(that) && void 0 !== column.bufferedFilterValue ? column.bufferedFilterValue : column.filterValue\r\n }\r\n }\r\n var getColumnSelectedFilterOperation = function(that, column) {\r\n if (column) {\r\n return isOnClickApplyFilterMode(that) && void 0 !== column.bufferedSelectedFilterOperation ? column.bufferedSelectedFilterOperation : column.selectedFilterOperation\r\n }\r\n };\r\n var getFilterValue = function(that, columnIndex, $editorContainer) {\r\n var column = that._columnsController.columnOption(columnIndex);\r\n var filterValue = getColumnFilterValue(that, column);\r\n var isFilterRange = $editorContainer.closest(\".\" + that.addWidgetPrefix(FILTER_RANGE_OVERLAY_CLASS)).length;\r\n var isRangeStart = $editorContainer.hasClass(that.addWidgetPrefix(FILTER_RANGE_START_CLASS));\r\n if (filterValue && Array.isArray(filterValue) && \"between\" === getColumnSelectedFilterOperation(that, column)) {\r\n if (isRangeStart) {\r\n return filterValue[0]\r\n } else {\r\n return filterValue[1]\r\n }\r\n }\r\n return !isFilterRange && function(filterValue, column) {\r\n if (column && BETWEEN_OPERATION_DATA_TYPES.indexOf(column.dataType) >= 0 && Array.isArray(filterValue)) {\r\n return false\r\n }\r\n return void 0 !== filterValue\r\n }(filterValue, column) ? filterValue : null\r\n };\r\n var updateFilterValue = function(that, options) {\r\n var value = \"\" === options.value ? null : options.value;\r\n var $editorContainer = options.container;\r\n var column = that._columnsController.columnOption(options.column.index);\r\n var filterValue = getFilterValue(that, column.index, $editorContainer);\r\n if (!isDefined(filterValue) && !isDefined(value)) {\r\n return\r\n }\r\n that._applyFilterViewController.setHighLight($editorContainer, filterValue !== value);\r\n that._columnsController.columnOption(column.index, isOnClickApplyFilterMode(that) ? \"bufferedFilterValue\" : \"filterValue\", function(that, filterValue, column, $editorContainer) {\r\n if (\"between\" === getColumnSelectedFilterOperation(that, column)) {\r\n var columnFilterValue = getColumnFilterValue(that, column);\r\n if ($editorContainer.hasClass(that.addWidgetPrefix(FILTER_RANGE_START_CLASS))) {\r\n return [filterValue, Array.isArray(columnFilterValue) ? columnFilterValue[1] : void 0]\r\n } else {\r\n return [Array.isArray(columnFilterValue) ? columnFilterValue[0] : columnFilterValue, filterValue]\r\n }\r\n }\r\n return filterValue\r\n }(that, value, column, $editorContainer), options.notFireEvent)\r\n };\r\n return {\r\n _updateEditorValue: function(column, $editorContainer) {\r\n var editor = getEditorInstance($editorContainer);\r\n editor && editor.option(\"value\", getFilterValue(this, column.index, $editorContainer))\r\n },\r\n _columnOptionChanged: function(e) {\r\n var optionNames = e.optionNames;\r\n var $cell;\r\n var $editorContainer;\r\n var $editorRangeElements;\r\n var $menu;\r\n if (gridCoreUtils.checkChanges(optionNames, [\"filterValue\", \"bufferedFilterValue\", \"selectedFilterOperation\", \"bufferedSelectedFilterOperation\"]) && void 0 !== e.columnIndex) {\r\n var visibleIndex = this._columnsController.getVisibleIndex(e.columnIndex);\r\n var column = this._columnsController.columnOption(e.columnIndex);\r\n $cell = this._getCellElement(this.element().find(\".\" + this.addWidgetPrefix(FILTER_ROW_CLASS)).index(), visibleIndex) || $();\r\n $editorContainer = $cell.find(\".\" + EDITOR_CONTAINER_CLASS).first();\r\n if (optionNames.filterValue || optionNames.bufferedFilterValue) {\r\n this._updateEditorValue(column, $editorContainer);\r\n var overlayInstance = $cell.find(\".\" + this.addWidgetPrefix(FILTER_RANGE_OVERLAY_CLASS)).data(\"dxOverlay\");\r\n if (overlayInstance) {\r\n $editorRangeElements = overlayInstance.$content().find(\".\" + EDITOR_CONTAINER_CLASS);\r\n this._updateEditorValue(column, $editorRangeElements.first());\r\n this._updateEditorValue(column, $editorRangeElements.last())\r\n }\r\n if (!overlayInstance || !overlayInstance.option(\"visible\")) {\r\n this._updateFilterRangeContent($cell, getRangeTextByFilterValue(this, column))\r\n }\r\n }\r\n if (optionNames.selectedFilterOperation || optionNames.bufferedSelectedFilterOperation) {\r\n if (visibleIndex >= 0 && column) {\r\n $menu = $cell.find(\".\" + MENU_CLASS);\r\n if ($menu.length) {\r\n this._updateFilterOperationChooser($menu, column, $editorContainer);\r\n if (\"between\" === getColumnSelectedFilterOperation(this, column)) {\r\n this._renderFilterRangeContent($cell, column)\r\n } else if ($editorContainer.find(\".\" + FILTER_RANGE_CONTENT_CLASS).length) {\r\n this._renderEditor($editorContainer, this._getEditorOptions($editorContainer, column));\r\n this._hideFilterRange()\r\n }\r\n }\r\n }\r\n }\r\n return\r\n }\r\n this.callBase(e)\r\n },\r\n _renderCore: function() {\r\n this._filterRangeOverlayInstance = null;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _resizeCore: function() {\r\n this.callBase.apply(this, arguments);\r\n this._filterRangeOverlayInstance && this._filterRangeOverlayInstance.repaint()\r\n },\r\n isFilterRowVisible: function() {\r\n return this._isElementVisible(this.option(\"filterRow\"))\r\n },\r\n isVisible: function() {\r\n return this.callBase() || this.isFilterRowVisible()\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._applyFilterViewController = this.getController(\"applyFilter\")\r\n },\r\n _initFilterRangeOverlay: function($cell, column) {\r\n var that = this;\r\n var sharedData = {};\r\n var $editorContainer = $cell.find(\".dx-editor-container\");\r\n var $overlay = $(\"
\").addClass(that.addWidgetPrefix(FILTER_RANGE_OVERLAY_CLASS)).appendTo($cell);\r\n return that._createComponent($overlay, Overlay, {\r\n height: \"auto\",\r\n shading: false,\r\n showTitle: false,\r\n focusStateEnabled: false,\r\n closeOnTargetScroll: false,\r\n closeOnOutsideClick: true,\r\n animation: false,\r\n position: {\r\n my: \"top\",\r\n at: \"top\",\r\n of: $editorContainer.length && $editorContainer || $cell,\r\n offset: \"0 -1\"\r\n },\r\n contentTemplate: function(contentElement) {\r\n var editorOptions;\r\n var $editor = $(\"
\").addClass(EDITOR_CONTAINER_CLASS + \" \" + that.addWidgetPrefix(FILTER_RANGE_START_CLASS)).appendTo(contentElement);\r\n column = that._columnsController.columnOption(column.index);\r\n editorOptions = that._getEditorOptions($editor, column);\r\n editorOptions.sharedData = sharedData;\r\n that._renderEditor($editor, editorOptions);\r\n eventsEngine.on($editor.find(EDITORS_INPUT_SELECTOR), \"keydown\", (function(e) {\r\n var $prevElement = $cell.find(\"[tabindex]\").not(e.target).first();\r\n if (\"tab\" === normalizeKeyName(e) && e.shiftKey) {\r\n e.preventDefault();\r\n that._hideFilterRange();\r\n if (!$prevElement.length) {\r\n $prevElement = $cell.prev().find(\"[tabindex]\").last()\r\n }\r\n eventsEngine.trigger($prevElement, \"focus\")\r\n }\r\n }));\r\n $editor = $(\"
\").addClass(EDITOR_CONTAINER_CLASS + \" \" + that.addWidgetPrefix(FILTER_RANGE_END_CLASS)).appendTo(contentElement);\r\n editorOptions = that._getEditorOptions($editor, column);\r\n editorOptions.sharedData = sharedData;\r\n that._renderEditor($editor, editorOptions);\r\n eventsEngine.on($editor.find(EDITORS_INPUT_SELECTOR), \"keydown\", (function(e) {\r\n if (\"tab\" === normalizeKeyName(e) && !e.shiftKey) {\r\n e.preventDefault();\r\n that._hideFilterRange();\r\n eventsEngine.trigger($cell.next().find(\"[tabindex]\").first(), \"focus\")\r\n }\r\n }));\r\n return $(contentElement).addClass(that.getWidgetContainerClass())\r\n },\r\n onShown: function(e) {\r\n var $editor = e.component.$content().find(\".\" + EDITOR_CONTAINER_CLASS).first();\r\n eventsEngine.trigger($editor.find(EDITORS_INPUT_SELECTOR), \"focus\")\r\n },\r\n onHidden: function() {\r\n column = that._columnsController.columnOption(column.index);\r\n $cell.find(\".\" + MENU_CLASS).parent().addClass(EDITOR_WITH_MENU_CLASS);\r\n if (\"between\" === getColumnSelectedFilterOperation(that, column)) {\r\n that._updateFilterRangeContent($cell, getRangeTextByFilterValue(that, column));\r\n that.component.updateDimensions()\r\n }\r\n }\r\n })\r\n },\r\n _updateFilterRangeOverlay: function(options) {\r\n var overlayInstance = this._filterRangeOverlayInstance;\r\n overlayInstance && overlayInstance.option(options)\r\n },\r\n _showFilterRange: function($cell, column) {\r\n var $overlay = $cell.children(\".\" + this.addWidgetPrefix(FILTER_RANGE_OVERLAY_CLASS));\r\n var overlayInstance = $overlay.length && $overlay.data(\"dxOverlay\");\r\n if (!overlayInstance && column) {\r\n overlayInstance = this._initFilterRangeOverlay($cell, column)\r\n }\r\n if (!overlayInstance.option(\"visible\")) {\r\n this._filterRangeOverlayInstance && this._filterRangeOverlayInstance.hide();\r\n this._filterRangeOverlayInstance = overlayInstance;\r\n this._updateFilterRangeOverlay({\r\n width: $cell.outerWidth(true) + CORRECT_FILTER_RANGE_OVERLAY_WIDTH\r\n });\r\n this._filterRangeOverlayInstance && this._filterRangeOverlayInstance.show()\r\n }\r\n },\r\n _hideFilterRange: function() {\r\n var overlayInstance = this._filterRangeOverlayInstance;\r\n overlayInstance && overlayInstance.hide()\r\n },\r\n getFilterRangeOverlayInstance: function() {\r\n return this._filterRangeOverlayInstance\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase(row);\r\n if (\"filter\" === row.rowType) {\r\n $row.addClass(this.addWidgetPrefix(FILTER_ROW_CLASS));\r\n if (!this.option(\"useLegacyKeyboardNavigation\")) {\r\n eventsEngine.on($row, \"keydown\", event => selectView(\"filterRow\", this, event))\r\n }\r\n }\r\n return $row\r\n },\r\n _getRows: function() {\r\n var result = this.callBase();\r\n if (this.isFilterRowVisible()) {\r\n result.push({\r\n rowType: \"filter\"\r\n })\r\n }\r\n return result\r\n },\r\n _renderFilterCell: function(cell, options) {\r\n var column = options.column;\r\n var $cell = $(cell);\r\n if (this.component.option(\"showColumnHeaders\")) {\r\n this.setAria(\"describedby\", column.headerId, $cell)\r\n }\r\n this.setAria(\"label\", messageLocalization.format(\"dxDataGrid-ariaFilterCell\"), $cell);\r\n $cell.addClass(EDITOR_CELL_CLASS);\r\n var $container = $(\"
\").appendTo($cell);\r\n var $editorContainer = $(\"
\").addClass(EDITOR_CONTAINER_CLASS).appendTo($container);\r\n if (\"between\" === getColumnSelectedFilterOperation(this, column)) {\r\n this._renderFilterRangeContent($cell, column)\r\n } else {\r\n var editorOptions = this._getEditorOptions($editorContainer, column);\r\n this._renderEditor($editorContainer, editorOptions)\r\n }\r\n var alignment = column.alignment;\r\n if (alignment && \"center\" !== alignment) {\r\n $cell.find(EDITORS_INPUT_SELECTOR).first().css(\"textAlign\", column.alignment)\r\n }\r\n if (column.filterOperations && column.filterOperations.length) {\r\n this._renderFilterOperationChooser($container, column, $editorContainer)\r\n }\r\n },\r\n _renderCellContent: function($cell, options) {\r\n var that = this;\r\n var column = options.column;\r\n if (\"filter\" === options.rowType) {\r\n if (column.command) {\r\n $cell.html(\" \")\r\n } else if (column.allowFiltering) {\r\n that.renderTemplate($cell, that._renderFilterCell.bind(that), options).done(() => {\r\n that._updateCell($cell, options)\r\n });\r\n return\r\n }\r\n }\r\n that.callBase($cell, options)\r\n },\r\n _getEditorOptions: function($editorContainer, column) {\r\n var that = this;\r\n var accessibilityOptions = {\r\n editorOptions: {\r\n inputAttr: that._getFilterInputAccessibilityAttributes(column)\r\n }\r\n };\r\n var result = extend(accessibilityOptions, column, {\r\n value: getFilterValue(that, column.index, $editorContainer),\r\n parentType: \"filterRow\",\r\n showAllText: that.option(\"filterRow.showAllText\"),\r\n updateValueTimeout: \"onClick\" === that.option(\"filterRow.applyFilter\") ? 0 : FILTERING_TIMEOUT,\r\n width: null,\r\n setValue: function(value, notFireEvent) {\r\n updateFilterValue(that, {\r\n column: column,\r\n value: value,\r\n container: $editorContainer,\r\n notFireEvent: notFireEvent\r\n })\r\n }\r\n });\r\n if (\"between\" === getColumnSelectedFilterOperation(that, column)) {\r\n if ($editorContainer.hasClass(that.addWidgetPrefix(FILTER_RANGE_START_CLASS))) {\r\n result.placeholder = that.option(\"filterRow.betweenStartText\")\r\n } else {\r\n result.placeholder = that.option(\"filterRow.betweenEndText\")\r\n }\r\n }\r\n return result\r\n },\r\n _getFilterInputAccessibilityAttributes: function(column) {\r\n var columnAriaLabel = messageLocalization.format(\"dxDataGrid-ariaFilterCell\");\r\n if (this.component.option(\"showColumnHeaders\")) {\r\n return {\r\n \"aria-label\": columnAriaLabel,\r\n \"aria-describedby\": column.headerId\r\n }\r\n }\r\n return {\r\n \"aria-label\": columnAriaLabel\r\n }\r\n },\r\n _renderEditor: function($editorContainer, options) {\r\n $editorContainer.empty();\r\n return this.getController(\"editorFactory\").createEditor($(\"
\").appendTo($editorContainer), options)\r\n },\r\n _renderFilterRangeContent: function($cell, column) {\r\n var that = this;\r\n var $editorContainer = $cell.find(\".\" + EDITOR_CONTAINER_CLASS).first();\r\n $editorContainer.empty();\r\n var $filterRangeContent = $(\"
\").addClass(FILTER_RANGE_CONTENT_CLASS).attr(\"tabindex\", this.option(\"tabIndex\"));\r\n eventsEngine.on($filterRangeContent, \"focusin\", (function() {\r\n that._showFilterRange($cell, column)\r\n }));\r\n $filterRangeContent.appendTo($editorContainer);\r\n that._updateFilterRangeContent($cell, getRangeTextByFilterValue(that, column))\r\n },\r\n _updateFilterRangeContent: function($cell, value) {\r\n var $filterRangeContent = $cell.find(\".\" + FILTER_RANGE_CONTENT_CLASS);\r\n if ($filterRangeContent.length) {\r\n if (\"\" === value) {\r\n $filterRangeContent.html(\" \")\r\n } else {\r\n $filterRangeContent.text(value)\r\n }\r\n }\r\n },\r\n _updateFilterOperationChooser: function($menu, column, $editorContainer) {\r\n var that = this;\r\n var isCellWasFocused;\r\n var restoreFocus = function() {\r\n var menu = Menu.getInstance($menu);\r\n menu && menu.option(\"focusedElement\", null);\r\n isCellWasFocused && that._focusEditor($editorContainer)\r\n };\r\n that._createComponent($menu, Menu, {\r\n integrationOptions: {},\r\n activeStateEnabled: false,\r\n selectionMode: \"single\",\r\n cssClass: that.getWidgetContainerClass() + \" \" + CELL_FOCUS_DISABLED_CLASS + \" \" + FILTER_MENU,\r\n showFirstSubmenuMode: \"onHover\",\r\n hideSubmenuOnMouseLeave: true,\r\n items: [{\r\n disabled: column.filterOperations && column.filterOperations.length ? false : true,\r\n icon: OPERATION_ICONS[getColumnSelectedFilterOperation(that, column) || \"default\"],\r\n selectable: false,\r\n items: that._getFilterOperationMenuItems(column)\r\n }],\r\n onItemClick: function(properties) {\r\n var selectedFilterOperation = properties.itemData.name;\r\n var columnSelectedFilterOperation = getColumnSelectedFilterOperation(that, column);\r\n var notFocusEditor = false;\r\n var isOnClickMode = isOnClickApplyFilterMode(that);\r\n var options = {};\r\n if (properties.itemData.items || selectedFilterOperation && selectedFilterOperation === columnSelectedFilterOperation) {\r\n return\r\n }\r\n if (selectedFilterOperation) {\r\n options[isOnClickMode ? \"bufferedSelectedFilterOperation\" : \"selectedFilterOperation\"] = selectedFilterOperation;\r\n if (\"between\" === selectedFilterOperation || \"between\" === columnSelectedFilterOperation) {\r\n notFocusEditor = \"between\" === selectedFilterOperation;\r\n options[isOnClickMode ? \"bufferedFilterValue\" : \"filterValue\"] = null\r\n }\r\n } else {\r\n options[isOnClickMode ? \"bufferedFilterValue\" : \"filterValue\"] = null;\r\n options[isOnClickMode ? \"bufferedSelectedFilterOperation\" : \"selectedFilterOperation\"] = column.defaultSelectedFilterOperation || null\r\n }\r\n that._columnsController.columnOption(column.index, options);\r\n that._applyFilterViewController.setHighLight($editorContainer, true);\r\n if (!selectedFilterOperation) {\r\n var editor = getEditorInstance($editorContainer);\r\n if (editor && \"dxDateBox\" === editor.NAME && !editor.option(\"isValid\")) {\r\n editor.reset();\r\n editor.option(\"isValid\", true)\r\n }\r\n }\r\n if (!notFocusEditor) {\r\n that._focusEditor($editorContainer)\r\n } else {\r\n that._showFilterRange($editorContainer.closest(\".\" + EDITOR_CELL_CLASS), column)\r\n }\r\n },\r\n onSubmenuShown: function() {\r\n isCellWasFocused = that._isEditorFocused($editorContainer);\r\n that.getController(\"editorFactory\").loseFocus()\r\n },\r\n onSubmenuHiding: function() {\r\n eventsEngine.trigger($menu, \"blur\");\r\n restoreFocus()\r\n },\r\n onContentReady: function(e) {\r\n eventsEngine.on($menu, \"blur\", () => {\r\n var menu = e.component;\r\n menu._hideSubmenu(menu._visibleSubmenu);\r\n restoreFocus()\r\n })\r\n },\r\n rtlEnabled: that.option(\"rtlEnabled\")\r\n })\r\n },\r\n _isEditorFocused: function($container) {\r\n return $container.hasClass(FOCUSED_CLASS) || $container.parents(\".\" + FOCUSED_CLASS).length\r\n },\r\n _focusEditor: function($container) {\r\n this.getController(\"editorFactory\").focus($container);\r\n eventsEngine.trigger($container.find(EDITORS_INPUT_SELECTOR), \"focus\")\r\n },\r\n _renderFilterOperationChooser: function($container, column, $editorContainer) {\r\n var $menu;\r\n if (this.option(\"filterRow.showOperationChooser\")) {\r\n $container.addClass(EDITOR_WITH_MENU_CLASS);\r\n $menu = $(\"
\").prependTo($container);\r\n this._updateFilterOperationChooser($menu, column, $editorContainer)\r\n }\r\n },\r\n _getFilterOperationMenuItems: function(column) {\r\n var that = this;\r\n var result = [{}];\r\n var filterRowOptions = that.option(\"filterRow\");\r\n var operationDescriptions = filterRowOptions && filterRowOptions.operationDescriptions || {};\r\n if (column.filterOperations && column.filterOperations.length) {\r\n var availableFilterOperations = column.filterOperations.filter((function(value) {\r\n return isDefined(OPERATION_DESCRIPTORS[value])\r\n }));\r\n result = map(availableFilterOperations, (function(value) {\r\n var descriptionName = OPERATION_DESCRIPTORS[value];\r\n return {\r\n name: value,\r\n selected: (getColumnSelectedFilterOperation(that, column) || column.defaultFilterOperation) === value,\r\n text: operationDescriptions[descriptionName],\r\n icon: OPERATION_ICONS[value]\r\n }\r\n }));\r\n result.push({\r\n name: null,\r\n text: filterRowOptions && filterRowOptions.resetOperationText,\r\n icon: OPERATION_ICONS.default\r\n })\r\n }\r\n return result\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"filterRow\":\r\n case \"showColumnLines\":\r\n this._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n }\r\n}();\r\nvar DataControllerFilterRowExtender = {\r\n skipCalculateColumnFilters: function() {\r\n return false\r\n },\r\n _calculateAdditionalFilter: function() {\r\n if (this.skipCalculateColumnFilters()) {\r\n return this.callBase()\r\n }\r\n var filters = [this.callBase()];\r\n var columns = this._columnsController.getVisibleColumns(null, true);\r\n each(columns, (function() {\r\n if (this.allowFiltering && this.calculateFilterExpression && isDefined(this.filterValue)) {\r\n var filter = this.createFilterExpression(this.filterValue, this.selectedFilterOperation || this.defaultFilterOperation, \"filterRow\");\r\n filters.push(filter)\r\n }\r\n }));\r\n return gridCoreUtils.combineFilters(filters)\r\n }\r\n};\r\nvar ApplyFilterViewController = modules.ViewController.inherit({\r\n _getHeaderPanel: function() {\r\n if (!this._headerPanel) {\r\n this._headerPanel = this.getView(\"headerPanel\")\r\n }\r\n return this._headerPanel\r\n },\r\n setHighLight: function($element, value) {\r\n if (isOnClickApplyFilterMode(this)) {\r\n $element && $element.toggleClass(HIGHLIGHT_OUTLINE_CLASS, value) && $element.closest(\".\" + EDITOR_CELL_CLASS).toggleClass(FILTER_MODIFIED_CLASS, value);\r\n this._getHeaderPanel().enableApplyButton(value)\r\n }\r\n },\r\n applyFilter: function() {\r\n var columnsController = this.getController(\"columns\");\r\n var columns = columnsController.getColumns();\r\n columnsController.beginUpdate();\r\n for (var i = 0; i < columns.length; i++) {\r\n var column = columns[i];\r\n if (void 0 !== column.bufferedFilterValue) {\r\n columnsController.columnOption(i, \"filterValue\", column.bufferedFilterValue);\r\n column.bufferedFilterValue = void 0\r\n }\r\n if (void 0 !== column.bufferedSelectedFilterOperation) {\r\n columnsController.columnOption(i, \"selectedFilterOperation\", column.bufferedSelectedFilterOperation);\r\n column.bufferedSelectedFilterOperation = void 0\r\n }\r\n }\r\n columnsController.endUpdate();\r\n this.removeHighLights()\r\n },\r\n removeHighLights: function() {\r\n if (isOnClickApplyFilterMode(this)) {\r\n var columnHeadersViewElement = this.getView(\"columnHeadersView\").element();\r\n columnHeadersViewElement.find(\".\" + this.addWidgetPrefix(FILTER_ROW_CLASS) + \" .\" + HIGHLIGHT_OUTLINE_CLASS).removeClass(HIGHLIGHT_OUTLINE_CLASS);\r\n columnHeadersViewElement.find(\".\" + this.addWidgetPrefix(FILTER_ROW_CLASS) + \" .\" + FILTER_MODIFIED_CLASS).removeClass(FILTER_MODIFIED_CLASS);\r\n this._getHeaderPanel().enableApplyButton(false)\r\n }\r\n }\r\n});\r\nexport var filterRowModule = {\r\n defaultOptions: function() {\r\n return {\r\n filterRow: {\r\n visible: false,\r\n showOperationChooser: true,\r\n showAllText: messageLocalization.format(\"dxDataGrid-filterRowShowAllText\"),\r\n resetOperationText: messageLocalization.format(\"dxDataGrid-filterRowResetOperationText\"),\r\n applyFilter: \"auto\",\r\n applyFilterText: messageLocalization.format(\"dxDataGrid-applyFilterText\"),\r\n operationDescriptions: {\r\n equal: messageLocalization.format(\"dxDataGrid-filterRowOperationEquals\"),\r\n notEqual: messageLocalization.format(\"dxDataGrid-filterRowOperationNotEquals\"),\r\n lessThan: messageLocalization.format(\"dxDataGrid-filterRowOperationLess\"),\r\n lessThanOrEqual: messageLocalization.format(\"dxDataGrid-filterRowOperationLessOrEquals\"),\r\n greaterThan: messageLocalization.format(\"dxDataGrid-filterRowOperationGreater\"),\r\n greaterThanOrEqual: messageLocalization.format(\"dxDataGrid-filterRowOperationGreaterOrEquals\"),\r\n startsWith: messageLocalization.format(\"dxDataGrid-filterRowOperationStartsWith\"),\r\n contains: messageLocalization.format(\"dxDataGrid-filterRowOperationContains\"),\r\n notContains: messageLocalization.format(\"dxDataGrid-filterRowOperationNotContains\"),\r\n endsWith: messageLocalization.format(\"dxDataGrid-filterRowOperationEndsWith\"),\r\n between: messageLocalization.format(\"dxDataGrid-filterRowOperationBetween\"),\r\n isBlank: messageLocalization.format(\"dxFilterBuilder-filterOperationIsBlank\"),\r\n isNotBlank: messageLocalization.format(\"dxFilterBuilder-filterOperationIsNotBlank\")\r\n },\r\n betweenStartText: messageLocalization.format(\"dxDataGrid-filterRowOperationBetweenStartText\"),\r\n betweenEndText: messageLocalization.format(\"dxDataGrid-filterRowOperationBetweenEndText\")\r\n }\r\n }\r\n },\r\n controllers: {\r\n applyFilter: ApplyFilterViewController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: DataControllerFilterRowExtender,\r\n columnsResizer: {\r\n _startResizing: function() {\r\n var that = this;\r\n that.callBase.apply(that, arguments);\r\n if (that.isResizing()) {\r\n var overlayInstance = that._columnHeadersView.getFilterRangeOverlayInstance();\r\n if (overlayInstance) {\r\n var cellIndex = overlayInstance.$element().closest(\"td\").index();\r\n if (cellIndex === that._targetPoint.columnIndex || cellIndex === that._targetPoint.columnIndex + 1) {\r\n overlayInstance.$content().hide()\r\n }\r\n }\r\n }\r\n },\r\n _endResizing: function() {\r\n var that = this;\r\n var $cell;\r\n if (that.isResizing()) {\r\n var overlayInstance = that._columnHeadersView.getFilterRangeOverlayInstance();\r\n if (overlayInstance) {\r\n $cell = overlayInstance.$element().closest(\"td\");\r\n that._columnHeadersView._updateFilterRangeOverlay({\r\n width: $cell.outerWidth(true) + CORRECT_FILTER_RANGE_OVERLAY_WIDTH\r\n });\r\n overlayInstance.$content().show()\r\n }\r\n }\r\n that.callBase.apply(that, arguments)\r\n }\r\n }\r\n },\r\n views: {\r\n columnHeadersView: ColumnHeadersViewFilterRowExtender,\r\n headerPanel: {\r\n _getToolbarItems: function() {\r\n var items = this.callBase();\r\n var filterItem = this._prepareFilterItem(items);\r\n return filterItem.concat(items)\r\n },\r\n _prepareFilterItem: function() {\r\n var that = this;\r\n var filterItem = [];\r\n if (that._isShowApplyFilterButton()) {\r\n var hintText = that.option(\"filterRow.applyFilterText\");\r\n var columns = that._columnsController.getColumns();\r\n var disabled = !columns.filter((function(column) {\r\n return void 0 !== column.bufferedFilterValue\r\n })).length;\r\n var toolbarItem = {\r\n widget: \"dxButton\",\r\n options: {\r\n icon: \"apply-filter\",\r\n disabled: disabled,\r\n onClick: function() {\r\n that._applyFilterViewController.applyFilter()\r\n },\r\n hint: hintText,\r\n text: hintText,\r\n onInitialized: function(e) {\r\n $(e.element).addClass(that._getToolbarButtonClass(APPLY_BUTTON_CLASS))\r\n }\r\n },\r\n showText: \"inMenu\",\r\n name: \"applyFilterButton\",\r\n location: \"after\",\r\n locateInMenu: \"auto\",\r\n sortIndex: 10\r\n };\r\n filterItem.push(toolbarItem)\r\n }\r\n return filterItem\r\n },\r\n _isShowApplyFilterButton: function() {\r\n var filterRowOptions = this.option(\"filterRow\");\r\n return filterRowOptions && filterRowOptions.visible && \"onClick\" === filterRowOptions.applyFilter\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._dataController = this.getController(\"data\");\r\n this._applyFilterViewController = this.getController(\"applyFilter\")\r\n },\r\n enableApplyButton: function(value) {\r\n this.setToolbarItemDisabled(\"applyFilterButton\", !value)\r\n },\r\n isVisible: function() {\r\n return this.callBase() || this._isShowApplyFilterButton()\r\n },\r\n optionChanged: function(args) {\r\n if (\"filterRow\" === args.name) {\r\n this._invalidate();\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.filter_row.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 core from \"./ui.data_grid.core\";\r\nimport {\r\n filterRowModule\r\n} from \"../grid_core/ui.grid_core.filter_row\";\r\ncore.registerModule(\"filterRow\", filterRowModule);\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.header_filter_core.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 modules from \"./ui.grid_core.modules\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Popup from \"../popup\";\r\nimport TreeView from \"../tree_view\";\r\nimport List from \"../list\";\r\nvar HEADER_FILTER_CLASS = \"dx-header-filter\";\r\nvar HEADER_FILTER_MENU_CLASS = \"dx-header-filter-menu\";\r\nvar DEFAULT_SEARCH_EXPRESSION = \"text\";\r\n\r\nfunction resetChildrenItemSelection(items) {\r\n items = items || [];\r\n for (var i = 0; i < items.length; i++) {\r\n items[i].selected = false;\r\n resetChildrenItemSelection(items[i].items)\r\n }\r\n}\r\n\r\nfunction updateSelectAllState(e, filterValues) {\r\n if (e.component.option(\"searchValue\")) {\r\n return\r\n }\r\n var selectAllCheckBox = $(e.element).find(\".dx-list-select-all-checkbox\").data(\"dxCheckBox\");\r\n if (selectAllCheckBox && filterValues && filterValues.length) {\r\n selectAllCheckBox.option(\"value\", void 0)\r\n }\r\n}\r\n\r\nfunction isSearchEnabled(that, options) {\r\n var headerFilter = options.headerFilter;\r\n if (headerFilter && isDefined(headerFilter.allowSearch)) {\r\n return headerFilter.allowSearch\r\n }\r\n return that.option(\"headerFilter.allowSearch\")\r\n}\r\nexport function updateHeaderFilterItemSelectionState(item, filterValuesMatch, isExcludeFilter) {\r\n if (filterValuesMatch ^ isExcludeFilter) {\r\n item.selected = true;\r\n if (isExcludeFilter && item.items) {\r\n for (var j = 0; j < item.items.length; j++) {\r\n if (!item.items[j].selected) {\r\n item.selected = void 0;\r\n break\r\n }\r\n }\r\n }\r\n } else if (isExcludeFilter || item.selected) {\r\n item.selected = false;\r\n resetChildrenItemSelection(item.items)\r\n }\r\n}\r\nexport var HeaderFilterView = modules.View.inherit({\r\n getPopupContainer: function() {\r\n return this._popupContainer\r\n },\r\n getListContainer: function() {\r\n return this._listContainer\r\n },\r\n applyHeaderFilter: function(options) {\r\n var list = this.getListContainer();\r\n var searchValue = list.option(\"searchValue\");\r\n var isSelectAll = !searchValue && !options.isFilterBuilder && list.$element().find(\".dx-checkbox\").eq(0).hasClass(\"dx-checkbox-checked\");\r\n var filterValues = [];\r\n if (!isSelectAll) {\r\n if (\"tree\" === options.type) {\r\n if (options.filterType) {\r\n options.filterType = \"include\"\r\n }! function fillSelectedItemKeys(filterValues, items, isExclude) {\r\n each(items, (function(_, item) {\r\n if (void 0 !== item.selected && !!item.selected ^ isExclude) {\r\n var node = list._getNode(item);\r\n var hasChildren = list._hasChildren(node);\r\n var hasChildrenWithSelection = hasChildren && item.items && item.items.some(item => item.selected);\r\n if (!searchValue || !hasChildrenWithSelection) {\r\n filterValues.push(item.value);\r\n return\r\n }\r\n }\r\n if (item.items && item.items.length) {\r\n fillSelectedItemKeys(filterValues, item.items, isExclude)\r\n }\r\n }))\r\n }(filterValues, list.option(\"items\"), false);\r\n options.filterValues = filterValues\r\n }\r\n } else {\r\n if (\"tree\" === options.type) {\r\n options.filterType = \"exclude\"\r\n }\r\n if (Array.isArray(options.filterValues)) {\r\n options.filterValues = []\r\n }\r\n }\r\n if (options.filterValues && !options.filterValues.length) {\r\n options.filterValues = null\r\n }\r\n options.apply();\r\n this.hideHeaderFilterMenu()\r\n },\r\n showHeaderFilterMenu: function($columnElement, options) {\r\n if (options) {\r\n this._initializePopupContainer(options);\r\n var popupContainer = this.getPopupContainer();\r\n this.hideHeaderFilterMenu();\r\n this.updatePopup($columnElement, options);\r\n popupContainer.show()\r\n }\r\n },\r\n hideHeaderFilterMenu: function() {\r\n var headerFilterMenu = this.getPopupContainer();\r\n headerFilterMenu && headerFilterMenu.hide()\r\n },\r\n updatePopup: function($element, options) {\r\n var alignment = \"right\" === options.alignment ? \"left\" : \"right\";\r\n if (this._popupContainer) {\r\n this._cleanPopupContent();\r\n this._popupContainer.option(\"position\", {\r\n my: alignment + \" top\",\r\n at: alignment + \" bottom\",\r\n of: $element,\r\n collision: \"flip fit\"\r\n })\r\n }\r\n },\r\n _getSearchExpr: function(options) {\r\n var lookup = options.lookup;\r\n var useDefaultSearchExpr = options.useDefaultSearchExpr;\r\n var headerFilterDataSource = options.headerFilter && options.headerFilter.dataSource;\r\n if (useDefaultSearchExpr || isDefined(headerFilterDataSource) && !isFunction(headerFilterDataSource)) {\r\n return DEFAULT_SEARCH_EXPRESSION\r\n }\r\n if (lookup) {\r\n return lookup.displayExpr || \"this\"\r\n }\r\n if (options.dataSource) {\r\n var group = options.dataSource.group;\r\n if (Array.isArray(group) && group.length > 0) {\r\n return group[0].selector\r\n } else if (isFunction(group) && !options.remoteFiltering) {\r\n return group\r\n }\r\n }\r\n return options.dataField || options.selector\r\n },\r\n _cleanPopupContent: function() {\r\n this._popupContainer && this._popupContainer.$content().empty()\r\n },\r\n _initializePopupContainer: function(options) {\r\n var that = this;\r\n var $element = that.element();\r\n var headerFilterOptions = that.option(\"headerFilter\");\r\n var width = options.headerFilter && options.headerFilter.width || headerFilterOptions && headerFilterOptions.width;\r\n var height = options.headerFilter && options.headerFilter.height || headerFilterOptions && headerFilterOptions.height;\r\n var dxPopupOptions = {\r\n width: width,\r\n height: height,\r\n visible: false,\r\n shading: false,\r\n showTitle: false,\r\n showCloseButton: false,\r\n closeOnTargetScroll: false,\r\n dragEnabled: false,\r\n closeOnOutsideClick: true,\r\n focusStateEnabled: false,\r\n toolbarItems: [{\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n text: headerFilterOptions.texts.ok,\r\n onClick: function() {\r\n that.applyHeaderFilter(options)\r\n }\r\n }\r\n }, {\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n text: headerFilterOptions.texts.cancel,\r\n onClick: function() {\r\n that.hideHeaderFilterMenu()\r\n }\r\n }\r\n }],\r\n resizeEnabled: true,\r\n onShowing: function(e) {\r\n e.component.$content().parent().addClass(\"dx-dropdowneditor-overlay\");\r\n that._initializeListContainer(options);\r\n options.onShowing && options.onShowing(e)\r\n },\r\n onShown: function() {\r\n that.getListContainer().focus()\r\n },\r\n onHidden: options.onHidden,\r\n onInitialized: function(e) {\r\n var component = e.component;\r\n component.option(\"animation\", component._getDefaultOptions().animation)\r\n }\r\n };\r\n if (!isDefined(that._popupContainer)) {\r\n that._popupContainer = that._createComponent($element, Popup, dxPopupOptions)\r\n } else {\r\n that._popupContainer.option(dxPopupOptions)\r\n }\r\n },\r\n _initializeListContainer: function(options) {\r\n var that = this;\r\n var $content = that._popupContainer.$content();\r\n var widgetOptions = {\r\n searchEnabled: isSearchEnabled(that, options),\r\n searchTimeout: that.option(\"headerFilter.searchTimeout\"),\r\n searchMode: options.headerFilter && options.headerFilter.searchMode || \"\",\r\n dataSource: options.dataSource,\r\n onContentReady: function() {\r\n that.renderCompleted.fire()\r\n },\r\n itemTemplate: function(data, _, element) {\r\n var $element = $(element);\r\n if (options.encodeHtml) {\r\n return $element.text(data.text)\r\n }\r\n return $element.html(data.text)\r\n }\r\n };\r\n\r\n function onOptionChanged(e) {\r\n if (\"searchValue\" === e.fullName && !options.isFilterBuilder && false !== that.option(\"headerFilter.hideSelectAllOnSearch\")) {\r\n if (\"tree\" === options.type) {\r\n e.component.option(\"showCheckBoxesMode\", e.value ? \"normal\" : \"selectAll\")\r\n } else {\r\n e.component.option(\"selectionMode\", e.value ? \"multiple\" : \"all\")\r\n }\r\n }\r\n }\r\n if (\"tree\" === options.type) {\r\n that._listContainer = that._createComponent($(\"
\").appendTo($content), TreeView, extend(widgetOptions, {\r\n showCheckBoxesMode: options.isFilterBuilder ? \"normal\" : \"selectAll\",\r\n onOptionChanged: onOptionChanged,\r\n keyExpr: \"id\"\r\n }))\r\n } else {\r\n that._listContainer = that._createComponent($(\"
\").appendTo($content), List, extend(widgetOptions, {\r\n searchExpr: that._getSearchExpr(options),\r\n pageLoadMode: \"scrollBottom\",\r\n showSelectionControls: true,\r\n selectionMode: options.isFilterBuilder ? \"multiple\" : \"all\",\r\n onOptionChanged: onOptionChanged,\r\n onSelectionChanged: function(e) {\r\n var items = e.component.option(\"items\");\r\n var selectedItems = e.component.option(\"selectedItems\");\r\n if (!e.component._selectedItemsUpdating && !e.component.option(\"searchValue\") && !options.isFilterBuilder) {\r\n var filterValues = options.filterValues || [];\r\n var isExclude = \"exclude\" === options.filterType;\r\n if (0 === selectedItems.length && items.length && (filterValues.length <= 1 || isExclude && filterValues.length === items.length - 1)) {\r\n options.filterType = \"include\";\r\n options.filterValues = []\r\n } else if (selectedItems.length === items.length) {\r\n options.filterType = \"exclude\";\r\n options.filterValues = []\r\n }\r\n }\r\n each(items, (function(index, item) {\r\n var selected = gridCoreUtils.getIndexByKey(item, selectedItems, null) >= 0;\r\n var oldSelected = !!item.selected;\r\n if (oldSelected !== selected) {\r\n item.selected = selected;\r\n options.filterValues = options.filterValues || [];\r\n var filterValueIndex = gridCoreUtils.getIndexByKey(item.value, options.filterValues, null);\r\n if (filterValueIndex >= 0) {\r\n options.filterValues.splice(filterValueIndex, 1)\r\n }\r\n if (selected ^ \"exclude\" === options.filterType) {\r\n options.filterValues.push(item.value)\r\n }\r\n }\r\n }));\r\n updateSelectAllState(e, options.filterValues)\r\n },\r\n onContentReady: function(e) {\r\n var component = e.component;\r\n var items = component.option(\"items\");\r\n var selectedItems = [];\r\n each(items, (function() {\r\n if (this.selected) {\r\n selectedItems.push(this)\r\n }\r\n }));\r\n component._selectedItemsUpdating = true;\r\n component.option(\"selectedItems\", selectedItems);\r\n component._selectedItemsUpdating = false;\r\n updateSelectAllState(e, options.filterValues)\r\n }\r\n }))\r\n }\r\n },\r\n _renderCore: function() {\r\n this.element().addClass(HEADER_FILTER_MENU_CLASS)\r\n }\r\n});\r\nexport var allowHeaderFiltering = function(column) {\r\n return isDefined(column.allowHeaderFiltering) ? column.allowHeaderFiltering : column.allowFiltering\r\n};\r\nexport var headerFilterMixin = {\r\n _applyColumnState: function(options) {\r\n var $headerFilterIndicator;\r\n var rootElement = options.rootElement;\r\n var column = options.column;\r\n if (\"headerFilter\" === options.name) {\r\n rootElement.find(\".\" + HEADER_FILTER_CLASS).remove();\r\n if (allowHeaderFiltering(column)) {\r\n $headerFilterIndicator = this.callBase(options).toggleClass(\"dx-header-filter-empty\", this._isHeaderFilterEmpty(column));\r\n if (!this.option(\"useLegacyKeyboardNavigation\")) {\r\n $headerFilterIndicator.attr(\"tabindex\", this.option(\"tabindex\") || 0)\r\n }\r\n }\r\n return $headerFilterIndicator\r\n }\r\n return this.callBase(options)\r\n },\r\n _isHeaderFilterEmpty: function(column) {\r\n return !column.filterValues || !column.filterValues.length\r\n },\r\n _getIndicatorClassName: function(name) {\r\n if (\"headerFilter\" === name) {\r\n return HEADER_FILTER_CLASS\r\n }\r\n return this.callBase(name)\r\n },\r\n _renderIndicator: function(options) {\r\n var $container = options.container;\r\n var $indicator = options.indicator;\r\n if (\"headerFilter\" === options.name) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if ($container.children().length && (!rtlEnabled && \"right\" === options.columnAlignment || rtlEnabled && \"left\" === options.columnAlignment)) {\r\n $container.prepend($indicator);\r\n return\r\n }\r\n }\r\n this.callBase(options)\r\n },\r\n optionChanged: function(args) {\r\n if (\"headerFilter\" === args.name) {\r\n var requireReady = \"columnHeadersView\" === this.name;\r\n this._invalidate(requireReady, requireReady);\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.header_filter.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 modules from \"./ui.grid_core.modules\";\r\nimport filterUtils from \"../shared/filtering\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n headerFilterMixin,\r\n HeaderFilterView,\r\n updateHeaderFilterItemSelectionState,\r\n allowHeaderFiltering\r\n} from \"./ui.grid_core.header_filter_core\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isObject,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../core/utils/position\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../data/data_source/utils\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport variableWrapper from \"../../core/utils/variable_wrapper\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n restoreFocus\r\n} from \"../shared/accessibility\";\r\nvar DATE_INTERVAL_FORMATS = {\r\n month: function(value) {\r\n return dateLocalization.getMonthNames()[value - 1]\r\n },\r\n quarter: function(value) {\r\n return dateLocalization.format(new Date(2e3, 3 * value - 1), \"quarter\")\r\n }\r\n};\r\nvar HeaderFilterController = modules.ViewController.inherit({\r\n init: function() {\r\n this._columnsController = this.getController(\"columns\");\r\n this._dataController = this.getController(\"data\");\r\n this._headerFilterView = this.getView(\"headerFilterView\")\r\n },\r\n _updateSelectedState: function(items, column) {\r\n var i = items.length;\r\n var isExclude = \"exclude\" === column.filterType;\r\n while (i--) {\r\n var item = items[i];\r\n if (\"items\" in items[i]) {\r\n this._updateSelectedState(items[i].items, column)\r\n }\r\n updateHeaderFilterItemSelectionState(item, gridCoreUtils.getIndexByKey(items[i].value, column.filterValues, null) > -1, isExclude)\r\n }\r\n },\r\n _normalizeGroupItem: function(item, currentLevel, options) {\r\n var value;\r\n var displayValue;\r\n var path = options.path;\r\n var valueSelector = options.valueSelector;\r\n var displaySelector = options.displaySelector;\r\n var column = options.column;\r\n if (valueSelector && displaySelector) {\r\n value = valueSelector(item);\r\n displayValue = displaySelector(item)\r\n } else {\r\n value = item.key;\r\n displayValue = value\r\n }\r\n if (!isObject(item)) {\r\n item = {}\r\n } else {\r\n item = extend({}, item)\r\n }\r\n path.push(value);\r\n if (1 === path.length) {\r\n item.value = path[0]\r\n } else {\r\n item.value = path.join(\"/\")\r\n }\r\n item.text = this.getHeaderItemText(displayValue, column, currentLevel, options.headerFilterOptions);\r\n return item\r\n },\r\n getHeaderItemText: function(displayValue, column, currentLevel, headerFilterOptions) {\r\n var text = gridCoreUtils.formatValue(displayValue, function(value, column, currentLevel) {\r\n var groupInterval = filterUtils.getGroupInterval(column);\r\n var result = gridCoreUtils.getFormatOptionsByColumn(column, \"headerFilter\");\r\n if (groupInterval) {\r\n result.groupInterval = groupInterval[currentLevel];\r\n if (gridCoreUtils.isDateType(column.dataType)) {\r\n result.format = DATE_INTERVAL_FORMATS[groupInterval[currentLevel]]\r\n } else if (\"number\" === column.dataType) {\r\n result.getDisplayFormat = function() {\r\n var formatOptions = {\r\n format: column.format,\r\n target: \"headerFilter\"\r\n };\r\n var firstValueText = gridCoreUtils.formatValue(value, formatOptions);\r\n var secondValue = value + groupInterval[currentLevel];\r\n var secondValueText = gridCoreUtils.formatValue(secondValue, formatOptions);\r\n return firstValueText && secondValueText ? firstValueText + \" - \" + secondValueText : \"\"\r\n }\r\n }\r\n }\r\n return result\r\n }(displayValue, column, currentLevel));\r\n if (!text) {\r\n text = headerFilterOptions.texts.emptyValue\r\n }\r\n return text\r\n },\r\n _processGroupItems: function(groupItems, currentLevel, path, options) {\r\n var displaySelector;\r\n var valueSelector;\r\n var column = options.column;\r\n var lookup = column.lookup;\r\n var level = options.level;\r\n path = path || [];\r\n currentLevel = currentLevel || 0;\r\n if (lookup) {\r\n displaySelector = compileGetter(lookup.displayExpr);\r\n valueSelector = compileGetter(lookup.valueExpr)\r\n }\r\n for (var i = 0; i < groupItems.length; i++) {\r\n groupItems[i] = this._normalizeGroupItem(groupItems[i], currentLevel, {\r\n column: options.column,\r\n headerFilterOptions: options.headerFilterOptions,\r\n displaySelector: displaySelector,\r\n valueSelector: valueSelector,\r\n path: path\r\n });\r\n if (\"items\" in groupItems[i]) {\r\n if (currentLevel === level || !isDefined(groupItems[i].value)) {\r\n delete groupItems[i].items\r\n } else {\r\n this._processGroupItems(groupItems[i].items, currentLevel + 1, path, options)\r\n }\r\n }\r\n path.pop()\r\n }\r\n },\r\n getDataSource: function(column) {\r\n var that = this;\r\n var dataSource = that._dataController.dataSource();\r\n var group = gridCoreUtils.getHeaderFilterGroupParameters(column, dataSource && dataSource.remoteOperations().grouping);\r\n var headerFilterDataSource = column.headerFilter && column.headerFilter.dataSource;\r\n var headerFilterOptions = that.option(\"headerFilter\");\r\n var isLookup = false;\r\n var options = {\r\n component: that.component\r\n };\r\n if (!dataSource) {\r\n return\r\n }\r\n if (isDefined(headerFilterDataSource) && !isFunction(headerFilterDataSource)) {\r\n options.dataSource = normalizeDataSourceOptions(headerFilterDataSource)\r\n } else if (column.lookup) {\r\n isLookup = true;\r\n var lookupDataSourceOptions;\r\n if (column.lookup.items) {\r\n lookupDataSourceOptions = column.lookup.items\r\n } else {\r\n lookupDataSourceOptions = column.lookup.dataSource;\r\n if (isFunction(lookupDataSourceOptions) && !variableWrapper.isWrapped(lookupDataSourceOptions)) {\r\n lookupDataSourceOptions = lookupDataSourceOptions({})\r\n }\r\n }\r\n options.dataSource = normalizeDataSourceOptions(lookupDataSourceOptions)\r\n } else {\r\n var cutoffLevel = Array.isArray(group) ? group.length - 1 : 0;\r\n that._currentColumn = column;\r\n var filter = that._dataController.getCombinedFilter();\r\n that._currentColumn = null;\r\n options.dataSource = {\r\n filter: filter,\r\n group: group,\r\n useDefaultSearch: true,\r\n load: function(options) {\r\n var d = new Deferred;\r\n options.dataField = column.dataField || column.name;\r\n dataSource.load(options).done((function(data) {\r\n that._processGroupItems(data, null, null, {\r\n level: cutoffLevel,\r\n column: column,\r\n headerFilterOptions: headerFilterOptions\r\n });\r\n d.resolve(data)\r\n })).fail(d.reject);\r\n return d\r\n }\r\n }\r\n }\r\n if (isFunction(headerFilterDataSource)) {\r\n headerFilterDataSource.call(column, options)\r\n }\r\n var origPostProcess = options.dataSource.postProcess;\r\n options.dataSource.postProcess = function(data) {\r\n var items = data;\r\n if (isLookup) {\r\n if (0 === this.pageIndex() && !this.searchValue()) {\r\n items = items.slice(0);\r\n items.unshift(null)\r\n }\r\n that._processGroupItems(items, null, null, {\r\n level: 0,\r\n column: column,\r\n headerFilterOptions: headerFilterOptions\r\n })\r\n }\r\n items = origPostProcess && origPostProcess.call(this, items) || items;\r\n that._updateSelectedState(items, column);\r\n return items\r\n };\r\n return options.dataSource\r\n },\r\n getCurrentColumn: function() {\r\n return this._currentColumn\r\n },\r\n showHeaderFilterMenu: function(columnIndex, isGroupPanel) {\r\n var columnsController = this._columnsController;\r\n var column = extend(true, {}, this._columnsController.getColumns()[columnIndex]);\r\n if (column) {\r\n var visibleIndex = columnsController.getVisibleIndex(columnIndex);\r\n var view = isGroupPanel ? this.getView(\"headerPanel\") : this.getView(\"columnHeadersView\");\r\n var $columnElement = $columnElement || view.getColumnElements().eq(isGroupPanel ? column.groupIndex : visibleIndex);\r\n this.showHeaderFilterMenuBase({\r\n columnElement: $columnElement,\r\n column: column,\r\n applyFilter: true,\r\n apply: function() {\r\n columnsController.columnOption(columnIndex, {\r\n filterValues: this.filterValues,\r\n filterType: this.filterType\r\n })\r\n }\r\n })\r\n }\r\n },\r\n showHeaderFilterMenuBase: function(options) {\r\n var that = this;\r\n var column = options.column;\r\n if (column) {\r\n var groupInterval = filterUtils.getGroupInterval(column);\r\n var dataSource = that._dataController.dataSource();\r\n var remoteFiltering = dataSource && dataSource.remoteOperations().filtering;\r\n extend(options, column, {\r\n type: groupInterval && groupInterval.length > 1 ? \"tree\" : \"list\",\r\n remoteFiltering: remoteFiltering,\r\n onShowing: function(e) {\r\n var dxResizableInstance = e.component.$overlayContent().dxResizable(\"instance\");\r\n dxResizableInstance && dxResizableInstance.option(\"onResizeEnd\", (function(e) {\r\n var columnsController = that.getController(\"columns\");\r\n var headerFilterByColumn = columnsController.columnOption(options.dataField, \"headerFilter\");\r\n headerFilterByColumn = headerFilterByColumn || {};\r\n headerFilterByColumn.width = e.width;\r\n headerFilterByColumn.height = e.height;\r\n columnsController.columnOption(options.dataField, \"headerFilter\", headerFilterByColumn, true)\r\n }))\r\n },\r\n onHidden: () => restoreFocus(this)\r\n });\r\n options.dataSource = that.getDataSource(options);\r\n if (options.isFilterBuilder) {\r\n options.dataSource.filter = null;\r\n options.alignment = \"right\"\r\n }\r\n that._headerFilterView.showHeaderFilterMenu(options.columnElement, options)\r\n }\r\n },\r\n hideHeaderFilterMenu: function() {\r\n this._headerFilterView.hideHeaderFilterMenu()\r\n }\r\n});\r\nvar ColumnHeadersViewHeaderFilterExtender = extend({}, headerFilterMixin, {\r\n _renderCellContent: function($cell, options) {\r\n var $headerFilterIndicator;\r\n var column = options.column;\r\n if (!column.command && allowHeaderFiltering(column) && this.option(\"headerFilter.visible\") && \"header\" === options.rowType) {\r\n $headerFilterIndicator = this._applyColumnState({\r\n name: \"headerFilter\",\r\n rootElement: $cell,\r\n column: column,\r\n showColumnLines: this.option(\"showColumnLines\")\r\n });\r\n $headerFilterIndicator && this._subscribeToIndicatorEvent($headerFilterIndicator, column, \"headerFilter\")\r\n }\r\n this.callBase($cell, options)\r\n },\r\n _subscribeToIndicatorEvent: function($indicator, column, indicatorName) {\r\n var that = this;\r\n if (\"headerFilter\" === indicatorName) {\r\n eventsEngine.on($indicator, clickEventName, that.createAction((function(e) {\r\n e.event.stopPropagation();\r\n that.getController(\"headerFilter\").showHeaderFilterMenu(column.index, false)\r\n })))\r\n }\r\n },\r\n _updateIndicator: function($cell, column, indicatorName) {\r\n var $indicator = this.callBase($cell, column, indicatorName);\r\n $indicator && this._subscribeToIndicatorEvent($indicator, column, indicatorName)\r\n },\r\n _updateHeaderFilterIndicators: function() {\r\n if (this.option(\"headerFilter.visible\")) {\r\n this._updateIndicators(\"headerFilter\")\r\n }\r\n },\r\n _needUpdateFilterIndicators: function() {\r\n return true\r\n },\r\n _columnOptionChanged: function(e) {\r\n var optionNames = e.optionNames;\r\n if (gridCoreUtils.checkChanges(optionNames, [\"filterValues\", \"filterType\"])) {\r\n if (this._needUpdateFilterIndicators()) {\r\n this._updateHeaderFilterIndicators()\r\n }\r\n return\r\n }\r\n this.callBase(e)\r\n }\r\n});\r\nvar HeaderPanelHeaderFilterExtender = extend({}, headerFilterMixin, {\r\n _createGroupPanelItem: function($rootElement, groupColumn) {\r\n var that = this;\r\n var $item = that.callBase.apply(that, arguments);\r\n var $headerFilterIndicator;\r\n if (!groupColumn.command && allowHeaderFiltering(groupColumn) && that.option(\"headerFilter.visible\")) {\r\n $headerFilterIndicator = that._applyColumnState({\r\n name: \"headerFilter\",\r\n rootElement: $item,\r\n column: {\r\n alignment: getDefaultAlignment(that.option(\"rtlEnabled\")),\r\n filterValues: groupColumn.filterValues,\r\n allowHeaderFiltering: true\r\n },\r\n showColumnLines: true\r\n });\r\n $headerFilterIndicator && eventsEngine.on($headerFilterIndicator, clickEventName, that.createAction((function(e) {\r\n var event = e.event;\r\n event.stopPropagation();\r\n that.getController(\"headerFilter\").showHeaderFilterMenu(groupColumn.index, true)\r\n })))\r\n }\r\n return $item\r\n }\r\n});\r\nexport function invertFilterExpression(filter) {\r\n return [\"!\", filter]\r\n}\r\nvar DataControllerFilterRowExtender = {\r\n skipCalculateColumnFilters: function() {\r\n return false\r\n },\r\n _calculateAdditionalFilter: function() {\r\n if (this.skipCalculateColumnFilters()) {\r\n return this.callBase()\r\n }\r\n var filters = [this.callBase()];\r\n var columns = this._columnsController.getVisibleColumns(null, true);\r\n var headerFilterController = this.getController(\"headerFilter\");\r\n var currentColumn = headerFilterController.getCurrentColumn();\r\n each(columns, (function(_, column) {\r\n var filter;\r\n if (currentColumn && currentColumn.index === column.index) {\r\n return\r\n }\r\n if (allowHeaderFiltering(column) && column.calculateFilterExpression && Array.isArray(column.filterValues) && column.filterValues.length) {\r\n var filterValues = [];\r\n each(column.filterValues, (function(_, filterValue) {\r\n if (Array.isArray(filterValue)) {\r\n filter = filterValue\r\n } else {\r\n if (column.deserializeValue && !gridCoreUtils.isDateType(column.dataType) && \"number\" !== column.dataType) {\r\n filterValue = column.deserializeValue(filterValue)\r\n }\r\n filter = column.createFilterExpression(filterValue, \"=\", \"headerFilter\")\r\n }\r\n if (filter) {\r\n filter.columnIndex = column.index\r\n }\r\n filterValues.push(filter)\r\n }));\r\n filterValues = gridCoreUtils.combineFilters(filterValues, \"or\");\r\n filters.push(\"exclude\" === column.filterType ? [\"!\", filterValues] : filterValues)\r\n }\r\n }));\r\n return gridCoreUtils.combineFilters(filters)\r\n }\r\n};\r\nexport var headerFilterModule = {\r\n defaultOptions: function() {\r\n return {\r\n headerFilter: {\r\n visible: false,\r\n width: 252,\r\n height: 325,\r\n allowSearch: false,\r\n searchTimeout: 500,\r\n texts: {\r\n emptyValue: messageLocalization.format(\"dxDataGrid-headerFilterEmptyValue\"),\r\n ok: messageLocalization.format(\"dxDataGrid-headerFilterOK\"),\r\n cancel: messageLocalization.format(\"dxDataGrid-headerFilterCancel\")\r\n }\r\n }\r\n }\r\n },\r\n controllers: {\r\n headerFilter: HeaderFilterController\r\n },\r\n views: {\r\n headerFilterView: HeaderFilterView\r\n },\r\n extenders: {\r\n controllers: {\r\n data: DataControllerFilterRowExtender\r\n },\r\n views: {\r\n columnHeadersView: ColumnHeadersViewHeaderFilterExtender,\r\n headerPanel: HeaderPanelHeaderFilterExtender\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.header_filter.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 core from \"./ui.data_grid.core\";\r\nimport {\r\n headerFilterModule\r\n} from \"../grid_core/ui.grid_core.header_filter\";\r\ncore.registerModule(\"headerFilter\", headerFilterModule);\r\n","/**\r\n * DevExtreme (esm/ui/filter_builder/between.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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\nvar FILTER_BUILDER_RANGE_CLASS = \"dx-filterbuilder-range\";\r\nvar FILTER_BUILDER_RANGE_START_CLASS = FILTER_BUILDER_RANGE_CLASS + \"-start\";\r\nvar FILTER_BUILDER_RANGE_END_CLASS = FILTER_BUILDER_RANGE_CLASS + \"-end\";\r\nvar FILTER_BUILDER_RANGE_SEPARATOR_CLASS = FILTER_BUILDER_RANGE_CLASS + \"-separator\";\r\nvar SEPARATOR = \"\\u2013\";\r\n\r\nfunction editorTemplate(conditionInfo, container) {\r\n var $editorStart = $(\"
\").addClass(FILTER_BUILDER_RANGE_START_CLASS);\r\n var $editorEnd = $(\"
\").addClass(FILTER_BUILDER_RANGE_END_CLASS);\r\n var values = conditionInfo.value || [];\r\n var getStartValue = function(values) {\r\n return values && values.length > 0 ? values[0] : null\r\n };\r\n var getEndValue = function(values) {\r\n return values && 2 === values.length ? values[1] : null\r\n };\r\n container.append($editorStart);\r\n container.append($(\"\").addClass(FILTER_BUILDER_RANGE_SEPARATOR_CLASS).text(SEPARATOR));\r\n container.append($editorEnd);\r\n container.addClass(FILTER_BUILDER_RANGE_CLASS);\r\n this._editorFactory.createEditor.call(this, $editorStart, extend({}, conditionInfo.field, conditionInfo, {\r\n value: getStartValue(values),\r\n parentType: \"filterBuilder\",\r\n setValue: function(value) {\r\n values = [value, getEndValue(values)];\r\n conditionInfo.setValue(values)\r\n }\r\n }));\r\n this._editorFactory.createEditor.call(this, $editorEnd, extend({}, conditionInfo.field, conditionInfo, {\r\n value: getEndValue(values),\r\n parentType: \"filterBuilder\",\r\n setValue: function(value) {\r\n values = [getStartValue(values), value];\r\n conditionInfo.setValue(values)\r\n }\r\n }))\r\n}\r\nexport function getConfig(caption, context) {\r\n return {\r\n name: \"between\",\r\n caption: caption,\r\n icon: \"range\",\r\n valueSeparator: SEPARATOR,\r\n dataTypes: [\"number\", \"date\", \"datetime\"],\r\n editorTemplate: editorTemplate.bind(context),\r\n notForLookup: true\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/filter_builder/ui.filter_operations_dictionary.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 OPERATION_ICONS = {\r\n \"=\": \"equal\",\r\n \"<>\": \"notequal\",\r\n \"<\": \"less\",\r\n \"<=\": \"lessorequal\",\r\n \">\": \"greater\",\r\n \">=\": \"greaterorequal\",\r\n notcontains: \"doesnotcontain\",\r\n contains: \"contains\",\r\n startswith: \"startswith\",\r\n endswith: \"endswith\",\r\n isblank: \"isblank\",\r\n isnotblank: \"isnotblank\"\r\n};\r\nvar OPERATION_NAME = {\r\n \"=\": \"equal\",\r\n \"<>\": \"notEqual\",\r\n \"<\": \"lessThan\",\r\n \"<=\": \"lessThanOrEqual\",\r\n \">\": \"greaterThan\",\r\n \">=\": \"greaterThanOrEqual\",\r\n startswith: \"startsWith\",\r\n contains: \"contains\",\r\n notcontains: \"notContains\",\r\n endswith: \"endsWith\",\r\n isblank: \"isBlank\",\r\n isnotblank: \"isNotBlank\",\r\n between: \"between\"\r\n};\r\nexport default {\r\n getIconByFilterOperation: function(filterOperation) {\r\n return OPERATION_ICONS[filterOperation]\r\n },\r\n getNameByFilterOperation: function(filterOperation) {\r\n return OPERATION_NAME[filterOperation]\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/filter_builder/utils.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n errors as dataErrors\r\n} from \"../../data/errors\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport filterUtils from \"../shared/filtering\";\r\nimport formatHelper from \"../../format_helper\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n captionize\r\n} from \"../../core/utils/inflector\";\r\nimport {\r\n getConfig\r\n} from \"./between\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport filterOperationsDictionary from \"./ui.filter_operations_dictionary\";\r\nvar DEFAULT_DATA_TYPE = \"string\";\r\nvar EMPTY_MENU_ICON = \"icon-none\";\r\nvar AND_GROUP_OPERATION = \"and\";\r\nvar EQUAL_OPERATION = \"=\";\r\nvar NOT_EQUAL_OPERATION = \"<>\";\r\nvar DATATYPE_OPERATIONS = {\r\n number: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"isblank\", \"isnotblank\"],\r\n string: [\"contains\", \"notcontains\", \"startswith\", \"endswith\", \"=\", \"<>\", \"isblank\", \"isnotblank\"],\r\n date: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"isblank\", \"isnotblank\"],\r\n datetime: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"isblank\", \"isnotblank\"],\r\n boolean: [\"=\", \"<>\", \"isblank\", \"isnotblank\"],\r\n object: [\"isblank\", \"isnotblank\"]\r\n};\r\nvar DEFAULT_FORMAT = {\r\n date: \"shortDate\",\r\n datetime: \"shortDateShortTime\"\r\n};\r\nvar LOOKUP_OPERATIONS = [\"=\", \"<>\", \"isblank\", \"isnotblank\"];\r\nvar AVAILABLE_FIELD_PROPERTIES = [\"caption\", \"customizeText\", \"dataField\", \"dataType\", \"editorTemplate\", \"falseText\", \"editorOptions\", \"filterOperations\", \"format\", \"lookup\", \"trueText\", \"calculateFilterExpression\", \"name\"];\r\nvar FILTER_BUILDER_CLASS = \"dx-filterbuilder\";\r\nvar FILTER_BUILDER_ITEM_TEXT_CLASS = FILTER_BUILDER_CLASS + \"-text\";\r\nvar FILTER_BUILDER_ITEM_TEXT_PART_CLASS = FILTER_BUILDER_ITEM_TEXT_CLASS + \"-part\";\r\nvar FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS = FILTER_BUILDER_ITEM_TEXT_CLASS + \"-separator\";\r\nvar FILTER_BUILDER_ITEM_TEXT_SEPARATOR_EMPTY_CLASS = FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS + \"-empty\";\r\n\r\nfunction getFormattedValueText(field, value) {\r\n var fieldFormat = field.format || DEFAULT_FORMAT[field.dataType];\r\n return formatHelper.format(value, fieldFormat)\r\n}\r\n\r\nfunction isNegationGroup(group) {\r\n return group && group.length > 1 && \"!\" === group[0] && !isCondition(group)\r\n}\r\nexport function getGroupCriteria(group) {\r\n return isNegationGroup(group) ? group[1] : group\r\n}\r\n\r\nfunction setGroupCriteria(group, criteria) {\r\n if (isNegationGroup(group)) {\r\n group[1] = criteria\r\n } else {\r\n group = criteria\r\n }\r\n return group\r\n}\r\n\r\nfunction convertGroupToNewStructure(group, value) {\r\n if (function(value) {\r\n return -1 !== value.indexOf(\"!\")\r\n }(value)) {\r\n if (!isNegationGroup(group)) {\r\n ! function(group) {\r\n var criteria = group.slice(0);\r\n group.length = 0;\r\n group.push(\"!\", criteria)\r\n }(group)\r\n }\r\n } else if (isNegationGroup(group)) {\r\n ! function(group) {\r\n var criteria = getGroupCriteria(group);\r\n group.length = 0;\r\n [].push.apply(group, criteria)\r\n }(group)\r\n }\r\n}\r\nexport function setGroupValue(group, value) {\r\n convertGroupToNewStructure(group, value);\r\n var criteria = getGroupCriteria(group);\r\n var i;\r\n value = function(value) {\r\n return -1 === value.indexOf(\"!\") ? value : value.substring(1)\r\n }(value);\r\n ! function(criteria, value) {\r\n for (i = 0; i < criteria.length; i++) {\r\n if (!Array.isArray(criteria[i])) {\r\n criteria[i] = value\r\n }\r\n }\r\n }(criteria, value);\r\n return group\r\n}\r\nexport function getGroupMenuItem(group, availableGroups) {\r\n var groupValue = getGroupValue(group);\r\n return availableGroups.filter((function(item) {\r\n return item.value === groupValue\r\n }))[0]\r\n}\r\n\r\nfunction getCriteriaOperation(criteria) {\r\n if (isCondition(criteria)) {\r\n return AND_GROUP_OPERATION\r\n }\r\n var value = \"\";\r\n for (var i = 0; i < criteria.length; i++) {\r\n var item = criteria[i];\r\n if (!Array.isArray(item)) {\r\n if (value && value !== item) {\r\n throw new dataErrors.Error(\"E4019\")\r\n }\r\n if (\"!\" !== item) {\r\n value = item\r\n }\r\n }\r\n }\r\n return value\r\n}\r\nexport function getGroupValue(group) {\r\n var criteria = getGroupCriteria(group);\r\n var value = getCriteriaOperation(criteria);\r\n if (!value) {\r\n value = AND_GROUP_OPERATION\r\n }\r\n if (criteria !== group) {\r\n value = \"!\" + value\r\n }\r\n return value\r\n}\r\n\r\nfunction getDefaultFilterOperations(field) {\r\n return field.lookup && LOOKUP_OPERATIONS || DATATYPE_OPERATIONS[field.dataType || DEFAULT_DATA_TYPE]\r\n}\r\n\r\nfunction containItems(entity) {\r\n return Array.isArray(entity) && entity.length\r\n}\r\nexport function getFilterOperations(field) {\r\n var result = containItems(field.filterOperations) ? field.filterOperations : getDefaultFilterOperations(field);\r\n return extend([], result)\r\n}\r\nexport function getCaptionByOperation(operation, filterOperationDescriptions) {\r\n var operationName = filterOperationsDictionary.getNameByFilterOperation(operation);\r\n return filterOperationDescriptions && filterOperationDescriptions[operationName] ? filterOperationDescriptions[operationName] : operationName\r\n}\r\nexport function getOperationFromAvailable(operation, availableOperations) {\r\n for (var i = 0; i < availableOperations.length; i++) {\r\n if (availableOperations[i].value === operation) {\r\n return availableOperations[i]\r\n }\r\n }\r\n throw new errors.Error(\"E1048\", operation)\r\n}\r\nexport function getCustomOperation(customOperations, name) {\r\n var filteredOperations = customOperations.filter((function(item) {\r\n return item.name === name\r\n }));\r\n return filteredOperations.length ? filteredOperations[0] : null\r\n}\r\nexport function getAvailableOperations(field, filterOperationDescriptions, customOperations) {\r\n var filterOperations = getFilterOperations(field);\r\n var isLookupField = !!field.lookup;\r\n customOperations.forEach((function(customOperation) {\r\n if (!field.filterOperations && -1 === filterOperations.indexOf(customOperation.name)) {\r\n var dataTypes = customOperation && customOperation.dataTypes;\r\n var isOperationForbidden = isLookupField ? !!customOperation.notForLookup : false;\r\n if (!isOperationForbidden && dataTypes && dataTypes.indexOf(field.dataType || DEFAULT_DATA_TYPE) >= 0) {\r\n filterOperations.push(customOperation.name)\r\n }\r\n }\r\n }));\r\n return filterOperations.map((function(operation) {\r\n var customOperation = getCustomOperation(customOperations, operation);\r\n if (customOperation) {\r\n return {\r\n icon: customOperation.icon || EMPTY_MENU_ICON,\r\n text: customOperation.caption || captionize(customOperation.name),\r\n value: customOperation.name,\r\n isCustom: true\r\n }\r\n } else {\r\n return {\r\n icon: filterOperationsDictionary.getIconByFilterOperation(operation) || EMPTY_MENU_ICON,\r\n text: getCaptionByOperation(operation, filterOperationDescriptions),\r\n value: operation\r\n }\r\n }\r\n }))\r\n}\r\nexport function getDefaultOperation(field) {\r\n return field.defaultFilterOperation || getFilterOperations(field)[0]\r\n}\r\nexport function createCondition(field, customOperations) {\r\n var condition = [field.dataField, \"\", \"\"];\r\n var filterOperation = getDefaultOperation(field);\r\n updateConditionByOperation(condition, filterOperation, customOperations);\r\n return condition\r\n}\r\nexport function removeItem(group, item) {\r\n var criteria = getGroupCriteria(group);\r\n var index = criteria.indexOf(item);\r\n criteria.splice(index, 1);\r\n if (1 !== criteria.length) {\r\n criteria.splice(index, 1)\r\n }\r\n return group\r\n}\r\nexport function createEmptyGroup(value) {\r\n return -1 !== value.indexOf(\"not\") ? [\"!\", [value.substring(3).toLowerCase()]] : [value]\r\n}\r\nexport function isEmptyGroup(group) {\r\n var criteria = getGroupCriteria(group);\r\n if (isCondition(criteria)) {\r\n return false\r\n }\r\n var hasConditions = criteria.some((function(item) {\r\n return isCondition(item)\r\n }));\r\n return !hasConditions\r\n}\r\nexport function addItem(item, group) {\r\n var criteria = getGroupCriteria(group);\r\n var groupValue = getGroupValue(criteria);\r\n 1 === criteria.length ? criteria.unshift(item) : criteria.push(item, groupValue);\r\n return group\r\n}\r\nexport function getField(dataField, fields) {\r\n for (var i = 0; i < fields.length; i++) {\r\n if (fields[i].name === dataField) {\r\n return fields[i]\r\n }\r\n if (fields[i].dataField.toLowerCase() === dataField.toLowerCase()) {\r\n return fields[i]\r\n }\r\n }\r\n var extendedFields = getItems(fields, true).filter((function(item) {\r\n return item.dataField.toLowerCase() === dataField.toLowerCase()\r\n }));\r\n if (extendedFields.length > 0) {\r\n return extendedFields[0]\r\n }\r\n throw new errors.Error(\"E1047\", dataField)\r\n}\r\nexport function isGroup(criteria) {\r\n if (!Array.isArray(criteria)) {\r\n return false\r\n }\r\n return criteria.length < 2 || Array.isArray(criteria[0]) || Array.isArray(criteria[1])\r\n}\r\nexport function isCondition(criteria) {\r\n if (!Array.isArray(criteria)) {\r\n return false\r\n }\r\n return criteria.length > 1 && !Array.isArray(criteria[0]) && !Array.isArray(criteria[1])\r\n}\r\n\r\nfunction convertToInnerGroup(group, customOperations) {\r\n var groupOperation = getCriteriaOperation(group).toLowerCase() || AND_GROUP_OPERATION;\r\n var innerGroup = [];\r\n for (var i = 0; i < group.length; i++) {\r\n if (isGroup(group[i])) {\r\n innerGroup.push(convertToInnerStructure(group[i], customOperations));\r\n innerGroup.push(groupOperation)\r\n } else if (isCondition(group[i])) {\r\n innerGroup.push(convertToInnerCondition(group[i], customOperations));\r\n innerGroup.push(groupOperation)\r\n }\r\n }\r\n if (0 === innerGroup.length) {\r\n innerGroup.push(groupOperation)\r\n }\r\n return innerGroup\r\n}\r\n\r\nfunction conditionHasCustomOperation(condition, customOperations) {\r\n var customOperation = getCustomOperation(customOperations, condition[1]);\r\n return customOperation && customOperation.name === condition[1]\r\n}\r\n\r\nfunction convertToInnerCondition(condition, customOperations) {\r\n if (conditionHasCustomOperation(condition, customOperations)) {\r\n return condition\r\n }\r\n if (condition.length < 3) {\r\n condition[2] = condition[1];\r\n condition[1] = EQUAL_OPERATION\r\n }\r\n return condition\r\n}\r\nexport function convertToInnerStructure(value, customOperations) {\r\n if (!value) {\r\n return [AND_GROUP_OPERATION]\r\n }\r\n value = extend(true, [], value);\r\n if (isCondition(value)) {\r\n return [convertToInnerCondition(value, customOperations), AND_GROUP_OPERATION]\r\n }\r\n if (isNegationGroup(value)) {\r\n return [\"!\", isCondition(value[1]) ? [convertToInnerCondition(value[1], customOperations), AND_GROUP_OPERATION] : isNegationGroup(value[1]) ? [convertToInnerStructure(value[1], customOperations), AND_GROUP_OPERATION] : convertToInnerGroup(value[1], customOperations)]\r\n }\r\n return convertToInnerGroup(value, customOperations)\r\n}\r\nexport function getNormalizedFields(fields) {\r\n return fields.reduce((function(result, field) {\r\n if (isDefined(field.dataField)) {\r\n var normalizedField = {};\r\n for (var key in field) {\r\n if (field[key] && AVAILABLE_FIELD_PROPERTIES.indexOf(key) > -1) {\r\n normalizedField[key] = field[key]\r\n }\r\n }\r\n normalizedField.defaultCalculateFilterExpression = filterUtils.defaultCalculateFilterExpression;\r\n if (!isDefined(normalizedField.dataType)) {\r\n normalizedField.dataType = DEFAULT_DATA_TYPE\r\n }\r\n if (!isDefined(normalizedField.trueText)) {\r\n normalizedField.trueText = messageLocalization.format(\"dxDataGrid-trueText\")\r\n }\r\n if (!isDefined(normalizedField.falseText)) {\r\n normalizedField.falseText = messageLocalization.format(\"dxDataGrid-falseText\")\r\n }\r\n result.push(normalizedField)\r\n }\r\n return result\r\n }), [])\r\n}\r\n\r\nfunction getConditionFilterExpression(condition, fields, customOperations, target) {\r\n var field = getField(condition[0], fields);\r\n var filterExpression = convertToInnerCondition(condition, customOperations);\r\n var customOperation = customOperations.length && getCustomOperation(customOperations, filterExpression[1]);\r\n if (customOperation && customOperation.calculateFilterExpression) {\r\n return customOperation.calculateFilterExpression.apply(customOperation, [filterExpression[2], field, fields])\r\n } else if (field.createFilterExpression) {\r\n return field.createFilterExpression.apply(field, [filterExpression[2], filterExpression[1], target])\r\n } else if (field.calculateFilterExpression) {\r\n return field.calculateFilterExpression.apply(field, [filterExpression[2], filterExpression[1], target])\r\n } else {\r\n return field.defaultCalculateFilterExpression.apply(field, [filterExpression[2], filterExpression[1], target])\r\n }\r\n}\r\nexport function getFilterExpression(value, fields, customOperations, target) {\r\n if (!isDefined(value)) {\r\n return null\r\n }\r\n if (isNegationGroup(value)) {\r\n var filterExpression = getFilterExpression(value[1], fields, customOperations, target);\r\n return [\"!\", filterExpression]\r\n }\r\n var criteria = getGroupCriteria(value);\r\n if (isCondition(criteria)) {\r\n return getConditionFilterExpression(criteria, fields, customOperations, target) || null\r\n } else {\r\n var result = [];\r\n var _filterExpression;\r\n var groupValue = getGroupValue(criteria);\r\n for (var i = 0; i < criteria.length; i++) {\r\n if (isGroup(criteria[i])) {\r\n _filterExpression = getFilterExpression(criteria[i], fields, customOperations, target);\r\n if (_filterExpression) {\r\n i && result.push(groupValue);\r\n result.push(_filterExpression)\r\n }\r\n } else if (isCondition(criteria[i])) {\r\n _filterExpression = getConditionFilterExpression(criteria[i], fields, customOperations, target);\r\n if (_filterExpression) {\r\n result.length && result.push(groupValue);\r\n result.push(_filterExpression)\r\n }\r\n }\r\n }\r\n if (1 === result.length) {\r\n result = result[0]\r\n }\r\n return result.length ? result : null\r\n }\r\n}\r\nexport function getNormalizedFilter(group) {\r\n var criteria = getGroupCriteria(group);\r\n var i;\r\n if (0 === criteria.length) {\r\n return null\r\n }\r\n var itemsForRemove = [];\r\n for (i = 0; i < criteria.length; i++) {\r\n if (isGroup(criteria[i])) {\r\n var normalizedGroupValue = getNormalizedFilter(criteria[i]);\r\n if (normalizedGroupValue) {\r\n criteria[i] = normalizedGroupValue\r\n } else {\r\n itemsForRemove.push(criteria[i])\r\n }\r\n } else if (isCondition(criteria[i])) {\r\n if (!isValidCondition(criteria[i])) {\r\n itemsForRemove.push(criteria[i])\r\n }\r\n }\r\n }\r\n for (i = 0; i < itemsForRemove.length; i++) {\r\n removeItem(criteria, itemsForRemove[i])\r\n }\r\n if (1 === criteria.length) {\r\n return null\r\n }\r\n criteria.splice(criteria.length - 1, 1);\r\n if (1 === criteria.length) {\r\n group = setGroupCriteria(group, criteria[0])\r\n }\r\n if (0 === group.length) {\r\n return null\r\n }\r\n return group\r\n}\r\nexport function getCurrentLookupValueText(field, value, handler) {\r\n if (\"\" === value) {\r\n handler(\"\");\r\n return\r\n }\r\n var lookup = field.lookup;\r\n if (lookup.items) {\r\n handler(lookup.calculateCellValue(value) || \"\")\r\n } else {\r\n var lookupDataSource = isFunction(lookup.dataSource) ? lookup.dataSource({}) : lookup.dataSource;\r\n var dataSource = new DataSource(lookupDataSource);\r\n dataSource.loadSingle(lookup.valueExpr, value).done((function(result) {\r\n var valueText = \"\";\r\n if (result) {\r\n valueText = lookup.displayExpr ? compileGetter(lookup.displayExpr)(result) : result\r\n }\r\n if (field.customizeText) {\r\n valueText = field.customizeText({\r\n value: value,\r\n valueText: valueText\r\n })\r\n }\r\n handler(valueText)\r\n })).fail((function() {\r\n handler(\"\")\r\n }))\r\n }\r\n}\r\n\r\nfunction getPrimitiveValueText(field, value, customOperation, target) {\r\n var valueText;\r\n if (true === value) {\r\n valueText = field.trueText || messageLocalization.format(\"dxDataGrid-trueText\")\r\n } else if (false === value) {\r\n valueText = field.falseText || messageLocalization.format(\"dxDataGrid-falseText\")\r\n } else {\r\n valueText = getFormattedValueText(field, value)\r\n }\r\n if (field.customizeText) {\r\n valueText = field.customizeText.call(field, {\r\n value: value,\r\n valueText: valueText,\r\n target: target\r\n })\r\n }\r\n if (customOperation && customOperation.customizeText) {\r\n valueText = customOperation.customizeText.call(customOperation, {\r\n value: value,\r\n valueText: valueText,\r\n field: field,\r\n target: target\r\n })\r\n }\r\n return valueText\r\n}\r\n\r\nfunction getArrayValueText(field, value, customOperation, target) {\r\n return value.map(v => getPrimitiveValueText(field, v, customOperation, target))\r\n}\r\n\r\nfunction checkDefaultValue(value) {\r\n return \"\" === value || null === value\r\n}\r\nexport function getCurrentValueText(field, value, customOperation) {\r\n var target = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : \"filterBuilder\";\r\n if (checkDefaultValue(value)) {\r\n return \"\"\r\n }\r\n if (Array.isArray(value)) {\r\n var result = new Deferred;\r\n when.apply(this, getArrayValueText(field, value, customOperation, target)).done((function() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n var text = args.some(item => !checkDefaultValue(item)) ? args.map(item => !checkDefaultValue(item) ? item : \"?\") : \"\";\r\n result.resolve(text)\r\n }));\r\n return result\r\n } else {\r\n return getPrimitiveValueText(field, value, customOperation, target)\r\n }\r\n}\r\n\r\nfunction itemExists(plainItems, parentId) {\r\n return plainItems.some((function(item) {\r\n return item.dataField === parentId\r\n }))\r\n}\r\n\r\nfunction pushItemAndCheckParent(originalItems, plainItems, item) {\r\n var dataField = item.dataField;\r\n if (hasParent(dataField)) {\r\n item.parentId = getParentIdFromItemDataField(dataField);\r\n if (!itemExists(plainItems, item.parentId) && !itemExists(originalItems, item.parentId)) {\r\n pushItemAndCheckParent(originalItems, plainItems, {\r\n id: item.parentId,\r\n dataType: \"object\",\r\n dataField: item.parentId,\r\n caption: generateCaptionByDataField(item.parentId, true),\r\n filterOperations: [\"isblank\", \"isnotblank\"]\r\n })\r\n }\r\n }\r\n plainItems.push(item)\r\n}\r\n\r\nfunction generateCaptionByDataField(dataField, allowHierarchicalFields) {\r\n var caption = \"\";\r\n if (allowHierarchicalFields) {\r\n dataField = dataField.substring(dataField.lastIndexOf(\".\") + 1)\r\n } else if (hasParent(dataField)) {\r\n dataField.split(\".\").forEach((function(field, index, arr) {\r\n caption += captionize(field);\r\n if (index !== arr.length - 1) {\r\n caption += \".\"\r\n }\r\n }));\r\n return caption\r\n }\r\n return captionize(dataField)\r\n}\r\nexport function getItems(fields, allowHierarchicalFields) {\r\n var items = [];\r\n for (var i = 0; i < fields.length; i++) {\r\n var item = extend(true, {\r\n caption: generateCaptionByDataField(fields[i].dataField, allowHierarchicalFields)\r\n }, fields[i]);\r\n item.id = item.name || item.dataField;\r\n if (allowHierarchicalFields) {\r\n pushItemAndCheckParent(fields, items, item)\r\n } else {\r\n items.push(item)\r\n }\r\n }\r\n return items\r\n}\r\n\r\nfunction hasParent(dataField) {\r\n return -1 !== dataField.lastIndexOf(\".\")\r\n}\r\n\r\nfunction getParentIdFromItemDataField(dataField) {\r\n return dataField.substring(0, dataField.lastIndexOf(\".\"))\r\n}\r\nexport function getCaptionWithParents(item, plainItems) {\r\n if (hasParent(item.dataField)) {\r\n var parentId = getParentIdFromItemDataField(item.dataField);\r\n for (var i = 0; i < plainItems.length; i++) {\r\n if (plainItems[i].dataField === parentId) {\r\n return getCaptionWithParents(plainItems[i], plainItems) + \".\" + item.caption\r\n }\r\n }\r\n }\r\n return item.caption\r\n}\r\nexport function updateConditionByOperation(condition, operation, customOperations) {\r\n var customOperation = getCustomOperation(customOperations, operation);\r\n if (customOperation) {\r\n if (false === customOperation.hasValue) {\r\n condition[1] = operation;\r\n condition.length = 2\r\n } else {\r\n condition[1] = operation;\r\n condition[2] = \"\"\r\n }\r\n return condition\r\n }\r\n if (\"isblank\" === operation) {\r\n condition[1] = EQUAL_OPERATION;\r\n condition[2] = null\r\n } else if (\"isnotblank\" === operation) {\r\n condition[1] = NOT_EQUAL_OPERATION;\r\n condition[2] = null\r\n } else {\r\n customOperation = getCustomOperation(customOperations, condition[1]);\r\n if (customOperation || 2 === condition.length || null === condition[2]) {\r\n condition[2] = \"\"\r\n }\r\n condition[1] = operation\r\n }\r\n return condition\r\n}\r\nexport function getOperationValue(condition) {\r\n var caption;\r\n if (null === condition[2]) {\r\n if (condition[1] === EQUAL_OPERATION) {\r\n caption = \"isblank\"\r\n } else {\r\n caption = \"isnotblank\"\r\n }\r\n } else {\r\n caption = condition[1]\r\n }\r\n return caption\r\n}\r\nexport function isValidCondition(condition) {\r\n return \"\" !== condition[2]\r\n}\r\nexport function getMergedOperations(customOperations, betweenCaption, context) {\r\n var result = extend(true, [], customOperations);\r\n var betweenIndex = -1;\r\n result.some((function(customOperation, index) {\r\n if (\"between\" === customOperation.name) {\r\n betweenIndex = index;\r\n return true\r\n }\r\n }));\r\n if (-1 !== betweenIndex) {\r\n result[betweenIndex] = extend(getConfig(betweenCaption, context), result[betweenIndex])\r\n } else {\r\n result.unshift(getConfig(betweenCaption, context))\r\n }\r\n return result\r\n}\r\n\r\nfunction isMatchedCondition(filter, addedFilterDataField) {\r\n return filter[0] === addedFilterDataField\r\n}\r\nexport function removeFieldConditionsFromFilter(filter, dataField) {\r\n if (!filter || 0 === filter.length) {\r\n return null\r\n }\r\n if (isCondition(filter)) {\r\n var hasMatchedCondition = isMatchedCondition(filter, dataField);\r\n return !hasMatchedCondition ? filter : null\r\n } else {\r\n return syncConditionIntoGroup(filter, [dataField], false)\r\n }\r\n}\r\n\r\nfunction syncConditionIntoGroup(filter, addedFilter, canPush) {\r\n var result = [];\r\n filter.forEach((function(item) {\r\n if (isCondition(item)) {\r\n if (isMatchedCondition(item, addedFilter[0])) {\r\n if (canPush) {\r\n result.push(addedFilter);\r\n canPush = false\r\n } else {\r\n result.splice(result.length - 1, 1)\r\n }\r\n } else {\r\n result.push(item)\r\n }\r\n } else {\r\n (result.length || isGroup(item)) && result.push(item)\r\n }\r\n }));\r\n if (0 === result.length) {\r\n return null\r\n }\r\n if (canPush) {\r\n result.push(AND_GROUP_OPERATION);\r\n result.push(addedFilter)\r\n }\r\n return 1 === result.length ? result[0] : result\r\n}\r\nexport function syncFilters(filter, addedFilter) {\r\n if (null === filter || 0 === filter.length) {\r\n return addedFilter\r\n }\r\n if (isCondition(filter)) {\r\n if (isMatchedCondition(filter, addedFilter[0])) {\r\n return addedFilter\r\n } else {\r\n return [filter, AND_GROUP_OPERATION, addedFilter]\r\n }\r\n }\r\n var groupValue = getGroupValue(filter);\r\n if (groupValue !== AND_GROUP_OPERATION) {\r\n return [addedFilter, \"and\", filter]\r\n }\r\n return syncConditionIntoGroup(filter, addedFilter, true)\r\n}\r\nexport function getMatchedConditions(filter, dataField) {\r\n if (null === filter || 0 === filter.length) {\r\n return []\r\n }\r\n if (isCondition(filter)) {\r\n if (isMatchedCondition(filter, dataField)) {\r\n return [filter]\r\n } else {\r\n return []\r\n }\r\n }\r\n var groupValue = getGroupValue(filter);\r\n if (groupValue !== AND_GROUP_OPERATION) {\r\n return []\r\n }\r\n var result = filter.filter((function(item) {\r\n return isCondition(item) && isMatchedCondition(item, dataField)\r\n }));\r\n return result\r\n}\r\nexport function filterHasField(filter, dataField) {\r\n if (null === filter || 0 === filter.length) {\r\n return false\r\n }\r\n if (isCondition(filter)) {\r\n return filter[0] === dataField\r\n }\r\n return filter.some((function(item) {\r\n return (isCondition(item) || isGroup(item)) && filterHasField(item, dataField)\r\n }))\r\n}\r\nexport var renderValueText = function($container, value, customOperation) {\r\n if (Array.isArray(value)) {\r\n var lastItemIndex = value.length - 1;\r\n $container.empty();\r\n value.forEach((t, i) => {\r\n $(\"\").addClass(FILTER_BUILDER_ITEM_TEXT_PART_CLASS).text(t).appendTo($container);\r\n if (i !== lastItemIndex) {\r\n $(\"\").addClass(FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS).text(customOperation && customOperation.valueSeparator ? customOperation.valueSeparator : \"|\").addClass(FILTER_BUILDER_ITEM_TEXT_SEPARATOR_EMPTY_CLASS).appendTo($container)\r\n }\r\n })\r\n } else if (value) {\r\n $container.text(value)\r\n } else {\r\n $container.text(messageLocalization.format(\"dxFilterBuilder-enterValueText\"))\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.filter_custom_operations.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 messageLocalization from \"../../localization/message\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n isGroup,\r\n isCondition,\r\n getFilterExpression,\r\n renderValueText\r\n} from \"../filter_builder/utils\";\r\nimport errors from \"../widget/ui.errors\";\r\n\r\nfunction baseOperation(grid) {\r\n var getFullText = function(itemText, parentText) {\r\n return parentText ? parentText + \"/\" + itemText : itemText\r\n };\r\n var headerFilterController = grid && grid.getController(\"headerFilter\");\r\n return {\r\n dataTypes: [\"string\", \"date\", \"datetime\", \"number\", \"boolean\", \"object\"],\r\n calculateFilterExpression: function(filterValue, field, fields) {\r\n var result = [];\r\n var lastIndex = filterValue.length - 1;\r\n filterValue && filterValue.forEach((function(value, index) {\r\n if (isCondition(value) || isGroup(value)) {\r\n var filterExpression = getFilterExpression(value, fields, [], \"headerFilter\");\r\n result.push(filterExpression)\r\n } else {\r\n result.push(getFilterExpression([field.dataField, \"=\", value], fields, [], \"headerFilter\"))\r\n }\r\n index !== lastIndex && result.push(\"or\")\r\n }));\r\n if (1 === result.length) {\r\n result = result[0]\r\n }\r\n return result\r\n },\r\n editorTemplate: function(conditionInfo, container) {\r\n var div = $(\"
\").addClass(\"dx-filterbuilder-item-value-text\").appendTo(container);\r\n var column = extend(true, {}, grid.columnOption(conditionInfo.field.dataField));\r\n renderValueText(div, conditionInfo.text && conditionInfo.text.split(\"|\"));\r\n column.filterType = \"include\";\r\n column.filterValues = conditionInfo.value ? conditionInfo.value.slice() : [];\r\n headerFilterController.showHeaderFilterMenuBase({\r\n columnElement: div,\r\n column: column,\r\n apply: function() {\r\n value = this.filterValues, void conditionInfo.setValue(value);\r\n var value;\r\n headerFilterController.hideHeaderFilterMenu();\r\n conditionInfo.closeEditor()\r\n },\r\n onHidden: function() {\r\n conditionInfo.closeEditor()\r\n },\r\n isFilterBuilder: true\r\n });\r\n return container\r\n },\r\n customizeText: function(fieldInfo) {\r\n var value = fieldInfo.value;\r\n var column = grid.columnOption(fieldInfo.field.dataField);\r\n var headerFilter = column && column.headerFilter;\r\n var lookup = column && column.lookup;\r\n if (headerFilter && headerFilter.dataSource || lookup && lookup.dataSource) {\r\n column = extend({}, column, {\r\n filterType: \"include\",\r\n filterValues: [value]\r\n });\r\n var dataSourceOptions = headerFilterController.getDataSource(column);\r\n dataSourceOptions.paginate = false;\r\n var dataSource = new DataSource(dataSourceOptions);\r\n var result = new Deferred;\r\n var key = dataSource.store().key();\r\n if (key) {\r\n dataSource.filter([key, \"=\", fieldInfo.value])\r\n } else if (fieldInfo.field.calculateDisplayValue) {\r\n errors.log(\"W1017\")\r\n }\r\n dataSource.load().done(items => {\r\n result.resolve(function getSelectedItemsTexts(items, parentText) {\r\n var result = [];\r\n items.forEach((function(item) {\r\n if (item.items) {\r\n var selectedItemsTexts = getSelectedItemsTexts(item.items, getFullText(item.text, parentText));\r\n result = result.concat(selectedItemsTexts)\r\n }\r\n item.selected && result.push(getFullText(item.text, parentText))\r\n }));\r\n return result\r\n }(items)[0])\r\n });\r\n return result\r\n } else {\r\n var text = headerFilterController.getHeaderItemText(value, column, 0, grid.option(\"headerFilter\"));\r\n return text\r\n }\r\n }\r\n }\r\n}\r\nexport function anyOf(grid) {\r\n return extend(baseOperation(grid), {\r\n name: \"anyof\",\r\n icon: \"selectall\",\r\n caption: messageLocalization.format(\"dxFilterBuilder-filterOperationAnyOf\")\r\n })\r\n}\r\nexport function noneOf(grid) {\r\n var baseOp = baseOperation(grid);\r\n return extend({}, baseOp, {\r\n calculateFilterExpression: function(filterValue, field, fields) {\r\n var baseFilter = baseOp.calculateFilterExpression(filterValue, field, fields);\r\n if (!baseFilter || 0 === baseFilter.length) {\r\n return null\r\n }\r\n return \"!\" === baseFilter[0] ? baseFilter : [\"!\", baseFilter]\r\n },\r\n name: \"noneof\",\r\n icon: \"unselectall\",\r\n caption: messageLocalization.format(\"dxFilterBuilder-filterOperationNoneOf\")\r\n })\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.filter_sync.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 isDefined\r\n} from \"../../core/utils/type\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport {\r\n getDefaultOperation,\r\n getMatchedConditions,\r\n syncFilters,\r\n removeFieldConditionsFromFilter,\r\n addItem,\r\n getNormalizedFilter,\r\n getFilterExpression,\r\n filterHasField\r\n} from \"../filter_builder/utils\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport filterUtils from \"../shared/filtering\";\r\nimport {\r\n anyOf,\r\n noneOf\r\n} from \"./ui.grid_core.filter_custom_operations\";\r\nvar FILTER_ROW_OPERATIONS = [\"=\", \"<>\", \"<\", \"<=\", \">\", \">=\", \"notcontains\", \"contains\", \"startswith\", \"endswith\", \"between\"];\r\nvar FILTER_TYPES_INCLUDE = \"include\";\r\nvar FILTER_TYPES_EXCLUDE = \"exclude\";\r\n\r\nfunction getColumnIdentifier(column) {\r\n return column.dataField || column.name\r\n}\r\n\r\nfunction checkForErrors(columns) {\r\n columns.forEach(column => {\r\n var identifier = getColumnIdentifier(column);\r\n if (!isDefined(identifier) && column.allowFiltering) {\r\n throw new errors.Error(\"E1049\", column.caption)\r\n }\r\n })\r\n}\r\nvar FilterSyncController = modules.Controller.inherit(function() {\r\n var getEmptyFilterValues = function() {\r\n return {\r\n filterType: FILTER_TYPES_INCLUDE,\r\n filterValues: void 0\r\n }\r\n };\r\n var canSyncHeaderFilterWithFilterRow = function(column) {\r\n return !filterUtils.getGroupInterval(column) && !(column.headerFilter && column.headerFilter.dataSource)\r\n };\r\n var getConditionFromFilterRow = function(column) {\r\n var value = column.filterValue;\r\n if (isDefined(value)) {\r\n var operation = column.selectedFilterOperation || column.defaultFilterOperation || getDefaultOperation(column);\r\n var filter = [getColumnIdentifier(column), operation, column.filterValue];\r\n return filter\r\n } else {\r\n return null\r\n }\r\n };\r\n var getConditionFromHeaderFilter = function(column) {\r\n var selectedOperation;\r\n var value;\r\n var filterValues = column.filterValues;\r\n if (!filterValues) {\r\n return null\r\n }\r\n if (canSyncHeaderFilterWithFilterRow(column) && 1 === column.filterValues.length && !Array.isArray(filterValues[0])) {\r\n column.filterType === FILTER_TYPES_EXCLUDE ? selectedOperation = \"<>\" : selectedOperation = \"=\";\r\n value = filterValues[0]\r\n } else {\r\n column.filterType === FILTER_TYPES_EXCLUDE ? selectedOperation = \"noneof\" : selectedOperation = \"anyof\";\r\n value = filterValues\r\n }\r\n return [getColumnIdentifier(column), selectedOperation, value]\r\n };\r\n var updateHeaderFilterCondition = function(columnsController, column, headerFilterCondition) {\r\n var headerFilter = function(headerFilterCondition, column) {\r\n if (!headerFilterCondition) {\r\n return getEmptyFilterValues()\r\n }\r\n var filterType;\r\n var selectedFilterOperation = headerFilterCondition[1];\r\n var value = headerFilterCondition[2];\r\n var hasArrayValue = Array.isArray(value);\r\n if (!hasArrayValue) {\r\n if (!canSyncHeaderFilterWithFilterRow(column)) {\r\n return getEmptyFilterValues()\r\n }\r\n }\r\n switch (selectedFilterOperation) {\r\n case \"anyof\":\r\n case \"=\":\r\n filterType = FILTER_TYPES_INCLUDE;\r\n break;\r\n case \"noneof\":\r\n case \"<>\":\r\n filterType = FILTER_TYPES_EXCLUDE;\r\n break;\r\n default:\r\n return getEmptyFilterValues()\r\n }\r\n return {\r\n filterType: filterType,\r\n filterValues: hasArrayValue ? value : [value]\r\n }\r\n }(headerFilterCondition, column);\r\n columnsController.columnOption(getColumnIdentifier(column), headerFilter)\r\n };\r\n var updateFilterRowCondition = function(columnsController, column, condition) {\r\n var filterRowOptions;\r\n var selectedFilterOperation = condition && condition[1];\r\n var filterOperations = column.filterOperations || column.defaultFilterOperations;\r\n if ((!filterOperations || filterOperations.indexOf(selectedFilterOperation) >= 0 || selectedFilterOperation === column.defaultFilterOperation) && FILTER_ROW_OPERATIONS.indexOf(selectedFilterOperation) >= 0) {\r\n if (selectedFilterOperation === column.defaultFilterOperation && !isDefined(column.selectedFilterOperation)) {\r\n selectedFilterOperation = column.selectedFilterOperation\r\n }\r\n filterRowOptions = {\r\n filterValue: condition[2],\r\n selectedFilterOperation: selectedFilterOperation\r\n }\r\n } else {\r\n filterRowOptions = {\r\n filterValue: void 0,\r\n selectedFilterOperation: void 0\r\n }\r\n }\r\n columnsController.columnOption(getColumnIdentifier(column), filterRowOptions)\r\n };\r\n return {\r\n syncFilterValue: function() {\r\n var that = this;\r\n var columnsController = that.getController(\"columns\");\r\n var columns = columnsController.getFilteringColumns();\r\n this._skipSyncColumnOptions = true;\r\n columns.forEach((function(column) {\r\n var filterConditions = getMatchedConditions(that.option(\"filterValue\"), getColumnIdentifier(column));\r\n if (1 === filterConditions.length) {\r\n var filterCondition = filterConditions[0];\r\n updateHeaderFilterCondition(columnsController, column, filterCondition);\r\n updateFilterRowCondition(columnsController, column, filterCondition)\r\n } else {\r\n isDefined(column.filterValues) && updateHeaderFilterCondition(columnsController, column);\r\n isDefined(column.filterValue) && updateFilterRowCondition(columnsController, column)\r\n }\r\n }));\r\n this._skipSyncColumnOptions = false\r\n },\r\n _initSync: function() {\r\n var columns = this.getController(\"columns\").getColumns();\r\n var dataController = this.getController(\"data\");\r\n var pageIndex = dataController.pageIndex();\r\n checkForErrors(columns);\r\n if (!this.option(\"filterValue\")) {\r\n var filteringColumns = this.getController(\"columns\").getFilteringColumns();\r\n var filterValue = this.getFilterValueFromColumns(filteringColumns);\r\n this.option(\"filterValue\", filterValue)\r\n }\r\n this.syncFilterValue();\r\n dataController.pageIndex(pageIndex)\r\n },\r\n init: function() {\r\n var dataController = this.getController(\"data\");\r\n if (dataController.isFilterSyncActive()) {\r\n if (this.getController(\"columns\").isAllDataTypesDefined()) {\r\n this._initSync()\r\n } else {\r\n dataController.dataSourceChanged.add(() => this._initSync())\r\n }\r\n }\r\n },\r\n _getSyncFilterRow: function(filterValue, column) {\r\n var filter = getConditionFromFilterRow(column);\r\n if (isDefined(filter)) {\r\n return syncFilters(filterValue, filter)\r\n } else {\r\n return removeFieldConditionsFromFilter(filterValue, getColumnIdentifier(column))\r\n }\r\n },\r\n _getSyncHeaderFilter: function(filterValue, column) {\r\n var filter = getConditionFromHeaderFilter(column);\r\n if (filter) {\r\n return syncFilters(filterValue, filter)\r\n } else {\r\n return removeFieldConditionsFromFilter(filterValue, getColumnIdentifier(column))\r\n }\r\n },\r\n getFilterValueFromColumns: function(columns) {\r\n if (!this.getController(\"data\").isFilterSyncActive()) {\r\n return null\r\n }\r\n var filterValue = [\"and\"];\r\n columns && columns.forEach(column => {\r\n var headerFilter = getConditionFromHeaderFilter(column);\r\n var filterRow = getConditionFromFilterRow(column);\r\n headerFilter && addItem(headerFilter, filterValue);\r\n filterRow && addItem(filterRow, filterValue)\r\n });\r\n return getNormalizedFilter(filterValue)\r\n },\r\n syncFilterRow: function(column, value) {\r\n this.option(\"filterValue\", this._getSyncFilterRow(this.option(\"filterValue\"), column))\r\n },\r\n syncHeaderFilter: function(column) {\r\n this.option(\"filterValue\", this._getSyncHeaderFilter(this.option(\"filterValue\"), column))\r\n },\r\n getCustomFilterOperations: function() {\r\n var filterBuilderCustomOperations = this.option(\"filterBuilder.customOperations\") || [];\r\n return [anyOf(this.component), noneOf(this.component)].concat(filterBuilderCustomOperations)\r\n },\r\n publicMethods: function() {\r\n return [\"getCustomFilterOperations\"]\r\n }\r\n }\r\n}());\r\nvar DataControllerFilterSyncExtender = {\r\n isFilterSyncActive: function() {\r\n var filterSyncEnabledValue = this.option(\"filterSyncEnabled\");\r\n return \"auto\" === filterSyncEnabledValue ? this.option(\"filterPanel.visible\") : filterSyncEnabledValue\r\n },\r\n skipCalculateColumnFilters: function() {\r\n return isDefined(this.option(\"filterValue\")) && this.isFilterSyncActive()\r\n },\r\n _calculateAdditionalFilter: function() {\r\n if (false === this.option(\"filterPanel.filterEnabled\")) {\r\n return this.callBase()\r\n }\r\n var filters = [this.callBase()];\r\n var columns = this.getController(\"columns\").getFilteringColumns();\r\n var filterValue = this.option(\"filterValue\");\r\n if (this.isFilterSyncActive()) {\r\n var currentColumn = this.getController(\"headerFilter\").getCurrentColumn();\r\n if (currentColumn && filterValue) {\r\n filterValue = removeFieldConditionsFromFilter(filterValue, getColumnIdentifier(currentColumn))\r\n }\r\n }\r\n var customOperations = this.getController(\"filterSync\").getCustomFilterOperations();\r\n var calculatedFilterValue = getFilterExpression(filterValue, columns, customOperations, \"filterBuilder\");\r\n if (calculatedFilterValue) {\r\n filters.push(calculatedFilterValue)\r\n }\r\n return gridCoreUtils.combineFilters(filters)\r\n },\r\n _parseColumnPropertyName: function(fullName) {\r\n var matched = fullName.match(/.*\\.(.*)/);\r\n if (matched) {\r\n return matched[1]\r\n } else {\r\n return null\r\n }\r\n },\r\n clearFilter: function(filterName) {\r\n this.component.beginUpdate();\r\n if (arguments.length > 0) {\r\n if (\"filterValue\" === filterName) {\r\n this.option(\"filterValue\", null)\r\n }\r\n this.callBase(filterName)\r\n } else {\r\n this.option(\"filterValue\", null);\r\n this.callBase()\r\n }\r\n this.component.endUpdate()\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"filterValue\":\r\n this._applyFilter();\r\n this.isFilterSyncActive() && this.getController(\"filterSync\").syncFilterValue();\r\n args.handled = true;\r\n break;\r\n case \"filterSyncEnabled\":\r\n args.handled = true;\r\n break;\r\n case \"columns\":\r\n if (this.isFilterSyncActive()) {\r\n var column = this.getController(\"columns\").getColumnByPath(args.fullName);\r\n var filterSyncController = this.getController(\"filterSync\");\r\n if (column && !filterSyncController._skipSyncColumnOptions) {\r\n var propertyName = this._parseColumnPropertyName(args.fullName);\r\n filterSyncController._skipSyncColumnOptions = true;\r\n if (\"filterType\" === propertyName) {\r\n if (FILTER_TYPES_EXCLUDE === args.value || FILTER_TYPES_EXCLUDE === args.previousValue) {\r\n filterSyncController.syncHeaderFilter(column)\r\n }\r\n } else if (\"filterValues\" === propertyName) {\r\n filterSyncController.syncHeaderFilter(column)\r\n } else if ([\"filterValue\", \"selectedFilterOperation\"].indexOf(propertyName) > -1) {\r\n filterSyncController.syncFilterRow(column, column.filterValue)\r\n }\r\n filterSyncController._skipSyncColumnOptions = false\r\n }\r\n }\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n};\r\nvar ColumnHeadersViewFilterSyncExtender = {\r\n _isHeaderFilterEmpty: function(column) {\r\n if (this.getController(\"data\").isFilterSyncActive()) {\r\n return !filterHasField(this.option(\"filterValue\"), getColumnIdentifier(column))\r\n }\r\n return this.callBase(column)\r\n },\r\n _needUpdateFilterIndicators: function() {\r\n return !this.getController(\"data\").isFilterSyncActive()\r\n },\r\n optionChanged: function(args) {\r\n if (\"filterValue\" === args.name) {\r\n this._updateHeaderFilterIndicators()\r\n } else {\r\n this.callBase(args)\r\n }\r\n }\r\n};\r\nexport var filterSyncModule = {\r\n defaultOptions: function() {\r\n return {\r\n filterValue: null,\r\n filterSyncEnabled: \"auto\"\r\n }\r\n },\r\n controllers: {\r\n filterSync: FilterSyncController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: DataControllerFilterSyncExtender\r\n },\r\n views: {\r\n columnHeadersView: ColumnHeadersViewFilterSyncExtender\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.filter_sync.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 core from \"./ui.data_grid.core\";\r\nimport {\r\n filterSyncModule\r\n} from \"../grid_core/ui.grid_core.filter_sync\";\r\ncore.registerModule(\"filterSync\", filterSyncModule);\r\n","/**\r\n * DevExtreme (esm/ui/filter_builder/filter_builder.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 Class from \"../../core/class\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport TreeView from \"../tree_view\";\r\nimport Popup from \"../popup\";\r\nimport {\r\n getElementMaxHeightByWindow\r\n} from \"../overlay/utils\";\r\nimport EditorFactoryMixin from \"../shared/ui.editor_factory_mixin\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n renderValueText,\r\n getFilterExpression as _getFilterExpression,\r\n getNormalizedFilter,\r\n getNormalizedFields,\r\n getMergedOperations,\r\n convertToInnerStructure,\r\n getGroupCriteria,\r\n isGroup,\r\n isCondition,\r\n removeItem,\r\n createEmptyGroup,\r\n addItem,\r\n createCondition,\r\n getGroupMenuItem,\r\n setGroupValue,\r\n getCustomOperation,\r\n getAvailableOperations,\r\n getOperationFromAvailable,\r\n getOperationValue,\r\n updateConditionByOperation,\r\n getItems,\r\n getField,\r\n getCaptionWithParents,\r\n getDefaultOperation,\r\n getGroupValue,\r\n getCurrentLookupValueText,\r\n getCurrentValueText\r\n} from \"./utils\";\r\nvar FILTER_BUILDER_CLASS = \"dx-filterbuilder\";\r\nvar FILTER_BUILDER_GROUP_CLASS = FILTER_BUILDER_CLASS + \"-group\";\r\nvar FILTER_BUILDER_GROUP_ITEM_CLASS = FILTER_BUILDER_GROUP_CLASS + \"-item\";\r\nvar FILTER_BUILDER_GROUP_CONTENT_CLASS = FILTER_BUILDER_GROUP_CLASS + \"-content\";\r\nvar FILTER_BUILDER_GROUP_OPERATIONS_CLASS = FILTER_BUILDER_GROUP_CLASS + \"-operations\";\r\nvar FILTER_BUILDER_GROUP_OPERATION_CLASS = FILTER_BUILDER_GROUP_CLASS + \"-operation\";\r\nvar FILTER_BUILDER_ACTION_CLASS = FILTER_BUILDER_CLASS + \"-action\";\r\nvar FILTER_BUILDER_IMAGE_CLASS = FILTER_BUILDER_ACTION_CLASS + \"-icon\";\r\nvar FILTER_BUILDER_IMAGE_ADD_CLASS = \"dx-icon-plus\";\r\nvar FILTER_BUILDER_IMAGE_REMOVE_CLASS = \"dx-icon-remove\";\r\nvar FILTER_BUILDER_ITEM_TEXT_CLASS = FILTER_BUILDER_CLASS + \"-text\";\r\nvar FILTER_BUILDER_ITEM_FIELD_CLASS = FILTER_BUILDER_CLASS + \"-item-field\";\r\nvar FILTER_BUILDER_ITEM_OPERATION_CLASS = FILTER_BUILDER_CLASS + \"-item-operation\";\r\nvar FILTER_BUILDER_ITEM_VALUE_CLASS = FILTER_BUILDER_CLASS + \"-item-value\";\r\nvar FILTER_BUILDER_ITEM_VALUE_TEXT_CLASS = FILTER_BUILDER_CLASS + \"-item-value-text\";\r\nvar FILTER_BUILDER_OVERLAY_CLASS = FILTER_BUILDER_CLASS + \"-overlay\";\r\nvar FILTER_BUILDER_FILTER_OPERATIONS_CLASS = FILTER_BUILDER_CLASS + \"-operations\";\r\nvar FILTER_BUILDER_FIELDS_CLASS = FILTER_BUILDER_CLASS + \"-fields\";\r\nvar FILTER_BUILDER_ADD_CONDITION_CLASS = FILTER_BUILDER_CLASS + \"-add-condition\";\r\nvar ACTIVE_CLASS = \"dx-state-active\";\r\nvar FILTER_BUILDER_MENU_CUSTOM_OPERATION_CLASS = FILTER_BUILDER_CLASS + \"-menu-custom-operation\";\r\nvar SOURCE = \"filterBuilder\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar TAB_KEY = \"tab\";\r\nvar ENTER_KEY = \"enter\";\r\nvar ESCAPE_KEY = \"escape\";\r\nvar ACTIONS = [{\r\n name: \"onEditorPreparing\",\r\n config: {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n }\r\n}, {\r\n name: \"onEditorPrepared\",\r\n config: {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n }\r\n}, {\r\n name: \"onValueChanged\",\r\n config: {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }\r\n}];\r\nvar OPERATORS = {\r\n and: \"and\",\r\n or: \"or\",\r\n notAnd: \"!and\",\r\n notOr: \"!or\"\r\n};\r\nvar EditorFactory = Class.inherit(EditorFactoryMixin);\r\nvar FilterBuilder = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n onEditorPreparing: null,\r\n onEditorPrepared: null,\r\n onValueChanged: null,\r\n fields: [],\r\n defaultGroupOperation: \"and\",\r\n groupOperations: [\"and\", \"or\", \"notAnd\", \"notOr\"],\r\n maxGroupLevel: void 0,\r\n value: null,\r\n allowHierarchicalFields: false,\r\n groupOperationDescriptions: {\r\n and: messageLocalization.format(\"dxFilterBuilder-and\"),\r\n or: messageLocalization.format(\"dxFilterBuilder-or\"),\r\n notAnd: messageLocalization.format(\"dxFilterBuilder-notAnd\"),\r\n notOr: messageLocalization.format(\"dxFilterBuilder-notOr\")\r\n },\r\n customOperations: [],\r\n closePopupOnTargetScroll: true,\r\n filterOperationDescriptions: {\r\n between: messageLocalization.format(\"dxFilterBuilder-filterOperationBetween\"),\r\n equal: messageLocalization.format(\"dxFilterBuilder-filterOperationEquals\"),\r\n notEqual: messageLocalization.format(\"dxFilterBuilder-filterOperationNotEquals\"),\r\n lessThan: messageLocalization.format(\"dxFilterBuilder-filterOperationLess\"),\r\n lessThanOrEqual: messageLocalization.format(\"dxFilterBuilder-filterOperationLessOrEquals\"),\r\n greaterThan: messageLocalization.format(\"dxFilterBuilder-filterOperationGreater\"),\r\n greaterThanOrEqual: messageLocalization.format(\"dxFilterBuilder-filterOperationGreaterOrEquals\"),\r\n startsWith: messageLocalization.format(\"dxFilterBuilder-filterOperationStartsWith\"),\r\n contains: messageLocalization.format(\"dxFilterBuilder-filterOperationContains\"),\r\n notContains: messageLocalization.format(\"dxFilterBuilder-filterOperationNotContains\"),\r\n endsWith: messageLocalization.format(\"dxFilterBuilder-filterOperationEndsWith\"),\r\n isBlank: messageLocalization.format(\"dxFilterBuilder-filterOperationIsBlank\"),\r\n isNotBlank: messageLocalization.format(\"dxFilterBuilder-filterOperationIsNotBlank\")\r\n }\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"closePopupOnTargetScroll\":\r\n break;\r\n case \"onEditorPreparing\":\r\n case \"onEditorPrepared\":\r\n case \"onValueChanged\":\r\n this._initActions();\r\n break;\r\n case \"customOperations\":\r\n this._initCustomOperations();\r\n this._invalidate();\r\n break;\r\n case \"fields\":\r\n case \"defaultGroupOperation\":\r\n case \"maxGroupLevel\":\r\n case \"groupOperations\":\r\n case \"allowHierarchicalFields\":\r\n case \"groupOperationDescriptions\":\r\n case \"filterOperationDescriptions\":\r\n this._invalidate();\r\n break;\r\n case \"value\":\r\n if (args.value !== args.previousValue) {\r\n var disableInvalidateForValue = this._disableInvalidateForValue;\r\n if (!disableInvalidateForValue) {\r\n this._initModel();\r\n this._invalidate()\r\n }\r\n this._disableInvalidateForValue = false;\r\n this.executeAction(\"onValueChanged\", {\r\n value: args.value,\r\n previousValue: args.previousValue\r\n });\r\n this._disableInvalidateForValue = disableInvalidateForValue\r\n }\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getFilterExpression: function() {\r\n var fields = this._getNormalizedFields();\r\n var value = extend(true, [], this._model);\r\n return _getFilterExpression(getNormalizedFilter(value), fields, this._customOperations, SOURCE)\r\n },\r\n _getNormalizedFields: function() {\r\n return getNormalizedFields(this.option(\"fields\"))\r\n },\r\n _updateFilter: function() {\r\n this._disableInvalidateForValue = true;\r\n var value = extend(true, [], this._model);\r\n var normalizedValue = getNormalizedFilter(value);\r\n var oldValue = getNormalizedFilter(this._getModel(this.option(\"value\")));\r\n if (JSON.stringify(oldValue) !== JSON.stringify(normalizedValue)) {\r\n this.option(\"value\", normalizedValue)\r\n }\r\n this._disableInvalidateForValue = false;\r\n this._fireContentReadyAction()\r\n },\r\n _init: function() {\r\n this._initCustomOperations();\r\n this._initModel();\r\n this._initEditorFactory();\r\n this._initActions();\r\n this.callBase()\r\n },\r\n _initEditorFactory: function() {\r\n this._editorFactory = new EditorFactory\r\n },\r\n _initCustomOperations: function() {\r\n this._customOperations = getMergedOperations(this.option(\"customOperations\"), this.option(\"filterOperationDescriptions.between\"), this)\r\n },\r\n _getModel: function(value) {\r\n return convertToInnerStructure(value, this._customOperations)\r\n },\r\n _initModel: function() {\r\n this._model = this._getModel(this.option(\"value\"))\r\n },\r\n _initActions: function() {\r\n var that = this;\r\n that._actions = {};\r\n ACTIONS.forEach((function(action) {\r\n var actionConfig = extend({}, action.config);\r\n that._actions[action.name] = that._createActionByOption(action.name, actionConfig)\r\n }))\r\n },\r\n executeAction: function(actionName, options) {\r\n var action = this._actions[actionName];\r\n return action && action(options)\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(FILTER_BUILDER_CLASS);\r\n this.callBase();\r\n this._createGroupElementByCriteria(this._model).appendTo(this.$element())\r\n },\r\n _createConditionElement: function(condition, parent) {\r\n return $(\"
\").addClass(FILTER_BUILDER_GROUP_CLASS).append(this._createConditionItem(condition, parent))\r\n },\r\n _createGroupElementByCriteria: function(criteria, parent) {\r\n var groupLevel = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0;\r\n var $group = this._createGroupElement(criteria, parent, groupLevel);\r\n var $groupContent = $group.find(\".\" + FILTER_BUILDER_GROUP_CONTENT_CLASS);\r\n var groupCriteria = getGroupCriteria(criteria);\r\n for (var i = 0; i < groupCriteria.length; i++) {\r\n var innerCriteria = groupCriteria[i];\r\n if (isGroup(innerCriteria)) {\r\n this._createGroupElementByCriteria(innerCriteria, criteria, groupLevel + 1).appendTo($groupContent)\r\n } else if (isCondition(innerCriteria)) {\r\n this._createConditionElement(innerCriteria, criteria).appendTo($groupContent)\r\n }\r\n }\r\n return $group\r\n },\r\n _createGroupElement: function(criteria, parent, groupLevel) {\r\n var $groupItem = $(\"
\").addClass(FILTER_BUILDER_GROUP_ITEM_CLASS);\r\n var $groupContent = $(\"
\").addClass(FILTER_BUILDER_GROUP_CONTENT_CLASS);\r\n var $group = $(\"
\").addClass(FILTER_BUILDER_GROUP_CLASS).append($groupItem).append($groupContent);\r\n if (null != parent) {\r\n this._createRemoveButton(() => {\r\n removeItem(parent, criteria);\r\n $group.remove();\r\n this._updateFilter()\r\n }).appendTo($groupItem)\r\n }\r\n this._createGroupOperationButton(criteria).appendTo($groupItem);\r\n this._createAddButton(() => {\r\n var newGroup = createEmptyGroup(this.option(\"defaultGroupOperation\"));\r\n addItem(newGroup, criteria);\r\n this._createGroupElement(newGroup, criteria, groupLevel + 1).appendTo($groupContent);\r\n this._updateFilter()\r\n }, () => {\r\n var field = this.option(\"fields\")[0];\r\n var newCondition = createCondition(field, this._customOperations);\r\n addItem(newCondition, criteria);\r\n this._createConditionElement(newCondition, criteria).appendTo($groupContent);\r\n this._updateFilter()\r\n }, groupLevel).appendTo($groupItem);\r\n return $group\r\n },\r\n _createButton: function(caption) {\r\n return $(\"
\").text(caption)\r\n },\r\n _createGroupOperationButton: function(criteria) {\r\n var groupOperations = this._getGroupOperations(criteria);\r\n var groupMenuItem = getGroupMenuItem(criteria, groupOperations);\r\n var caption = groupMenuItem.text;\r\n var $operationButton = groupOperations && groupOperations.length < 2 ? this._createButton(caption).addClass(DISABLED_STATE_CLASS) : this._createButtonWithMenu({\r\n caption: caption,\r\n menu: {\r\n items: groupOperations,\r\n displayExpr: \"text\",\r\n keyExpr: \"value\",\r\n onItemClick: e => {\r\n if (groupMenuItem !== e.itemData) {\r\n setGroupValue(criteria, e.itemData.value);\r\n $operationButton.html(e.itemData.text);\r\n groupMenuItem = e.itemData;\r\n this._updateFilter()\r\n }\r\n },\r\n onContentReady: function(e) {\r\n e.component.selectItem(groupMenuItem)\r\n },\r\n cssClass: FILTER_BUILDER_GROUP_OPERATIONS_CLASS\r\n }\r\n });\r\n return $operationButton.addClass(FILTER_BUILDER_ITEM_TEXT_CLASS).addClass(FILTER_BUILDER_GROUP_OPERATION_CLASS).attr(\"tabindex\", 0)\r\n },\r\n _createButtonWithMenu: function(options) {\r\n var that = this;\r\n var removeMenu = function() {\r\n that.$element().find(\".\" + ACTIVE_CLASS).removeClass(ACTIVE_CLASS);\r\n that.$element().find(\".dx-overlay .dx-treeview\").remove();\r\n that.$element().find(\".dx-overlay\").remove()\r\n };\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var position = rtlEnabled ? \"right\" : \"left\";\r\n var $button = this._createButton(options.caption);\r\n extend(options.menu, {\r\n focusStateEnabled: true,\r\n selectionMode: \"single\",\r\n onItemClick: (handler = options.menu.onItemClick, function(e) {\r\n handler(e);\r\n if (\"dxclick\" === e.event.type) {\r\n removeMenu()\r\n }\r\n }),\r\n onHiding: function(e) {\r\n $button.removeClass(ACTIVE_CLASS)\r\n },\r\n position: {\r\n my: position + \" top\",\r\n at: position + \" bottom\",\r\n offset: \"0 1\",\r\n of: $button,\r\n collision: \"flip\"\r\n },\r\n animation: null,\r\n onHidden: function() {\r\n removeMenu()\r\n },\r\n cssClass: FILTER_BUILDER_OVERLAY_CLASS + \" \" + options.menu.cssClass,\r\n rtlEnabled: rtlEnabled\r\n });\r\n var handler;\r\n options.popup = {\r\n onShown: function(info) {\r\n var treeViewElement = $(info.component.content()).find(\".dx-treeview\");\r\n var treeView = treeViewElement.dxTreeView(\"instance\");\r\n eventsEngine.on(treeViewElement, \"keyup keydown\", (function(e) {\r\n var keyName = normalizeKeyName(e);\r\n if (\"keydown\" === e.type && keyName === TAB_KEY || \"keyup\" === e.type && (keyName === ESCAPE_KEY || keyName === ENTER_KEY)) {\r\n info.component.hide();\r\n eventsEngine.trigger(options.menu.position.of, \"focus\")\r\n }\r\n }));\r\n treeView.focus();\r\n treeView.option(\"focusedElement\", null)\r\n }\r\n };\r\n this._subscribeOnClickAndEnterKey($button, (function() {\r\n removeMenu();\r\n that._createPopupWithTreeView(options, that.$element());\r\n $button.addClass(ACTIVE_CLASS)\r\n }));\r\n return $button\r\n },\r\n _hasValueButton: function(condition) {\r\n var customOperation = getCustomOperation(this._customOperations, condition[1]);\r\n return customOperation ? false !== customOperation.hasValue : null !== condition[2]\r\n },\r\n _createOperationButtonWithMenu: function(condition, field) {\r\n var that = this;\r\n var availableOperations = getAvailableOperations(field, this.option(\"filterOperationDescriptions\"), this._customOperations);\r\n var currentOperation = getOperationFromAvailable(getOperationValue(condition), availableOperations);\r\n var $operationButton = this._createButtonWithMenu({\r\n caption: currentOperation.text,\r\n menu: {\r\n items: availableOperations,\r\n displayExpr: \"text\",\r\n onItemRendered: function(e) {\r\n e.itemData.isCustom && $(e.itemElement).addClass(FILTER_BUILDER_MENU_CUSTOM_OPERATION_CLASS)\r\n },\r\n onContentReady: function(e) {\r\n e.component.selectItem(currentOperation)\r\n },\r\n onItemClick: e => {\r\n if (currentOperation !== e.itemData) {\r\n currentOperation = e.itemData;\r\n updateConditionByOperation(condition, currentOperation.value, that._customOperations);\r\n var $valueButton = $operationButton.siblings().filter(\".\" + FILTER_BUILDER_ITEM_VALUE_CLASS);\r\n if (that._hasValueButton(condition)) {\r\n if (0 !== $valueButton.length) {\r\n $valueButton.remove()\r\n }\r\n that._createValueButton(condition, field).appendTo($operationButton.parent())\r\n } else {\r\n $valueButton.remove()\r\n }\r\n $operationButton.html(currentOperation.text);\r\n this._updateFilter()\r\n }\r\n },\r\n cssClass: FILTER_BUILDER_FILTER_OPERATIONS_CLASS\r\n }\r\n }).addClass(FILTER_BUILDER_ITEM_TEXT_CLASS).addClass(FILTER_BUILDER_ITEM_OPERATION_CLASS).attr(\"tabindex\", 0);\r\n return $operationButton\r\n },\r\n _createOperationAndValueButtons: function(condition, field, $item) {\r\n this._createOperationButtonWithMenu(condition, field).appendTo($item);\r\n if (this._hasValueButton(condition)) {\r\n this._createValueButton(condition, field).appendTo($item)\r\n }\r\n },\r\n _createFieldButtonWithMenu: function(fields, condition, field) {\r\n var that = this;\r\n var allowHierarchicalFields = this.option(\"allowHierarchicalFields\");\r\n var items = getItems(fields, allowHierarchicalFields);\r\n var item = getField(field.name || field.dataField, items);\r\n var getFullCaption = function(item, items) {\r\n return allowHierarchicalFields ? getCaptionWithParents(item, items) : item.caption\r\n };\r\n var $fieldButton = this._createButtonWithMenu({\r\n caption: getFullCaption(item, items),\r\n menu: {\r\n items: items,\r\n dataStructure: \"plain\",\r\n keyExpr: \"id\",\r\n parentId: \"parentId\",\r\n displayExpr: \"caption\",\r\n onItemClick: e => {\r\n if (item !== e.itemData) {\r\n item = e.itemData;\r\n condition[0] = item.name || item.dataField;\r\n condition[2] = \"object\" === item.dataType ? null : \"\";\r\n updateConditionByOperation(condition, getDefaultOperation(item), that._customOperations);\r\n $fieldButton.siblings().filter(\".\" + FILTER_BUILDER_ITEM_TEXT_CLASS).remove();\r\n that._createOperationAndValueButtons(condition, item, $fieldButton.parent());\r\n var caption = getFullCaption(item, e.component.option(\"items\"));\r\n $fieldButton.html(caption);\r\n this._updateFilter()\r\n }\r\n },\r\n onContentReady: function(e) {\r\n e.component.selectItem(item)\r\n },\r\n cssClass: FILTER_BUILDER_FIELDS_CLASS\r\n }\r\n }).addClass(FILTER_BUILDER_ITEM_TEXT_CLASS).addClass(FILTER_BUILDER_ITEM_FIELD_CLASS).attr(\"tabindex\", 0);\r\n return $fieldButton\r\n },\r\n _createConditionItem: function(condition, parent) {\r\n var $item = $(\"
\").addClass(FILTER_BUILDER_GROUP_ITEM_CLASS);\r\n var fields = this._getNormalizedFields();\r\n var field = getField(condition[0], fields);\r\n this._createRemoveButton(() => {\r\n removeItem(parent, condition);\r\n var isSingleChild = 1 === $item.parent().children().length;\r\n if (isSingleChild) {\r\n $item.parent().remove()\r\n } else {\r\n $item.remove()\r\n }\r\n this._updateFilter()\r\n }).appendTo($item);\r\n this._createFieldButtonWithMenu(fields, condition, field).appendTo($item);\r\n this._createOperationAndValueButtons(condition, field, $item);\r\n return $item\r\n },\r\n _getGroupOperations: function(criteria) {\r\n var groupOperations = this.option(\"groupOperations\");\r\n var groupOperationDescriptions = this.option(\"groupOperationDescriptions\");\r\n if (!groupOperations || !groupOperations.length) {\r\n groupOperations = [getGroupValue(criteria).replace(\"!\", \"not\")]\r\n }\r\n return groupOperations.map(operation => ({\r\n text: groupOperationDescriptions[operation],\r\n value: OPERATORS[operation]\r\n }))\r\n },\r\n _createRemoveButton: function(handler) {\r\n var $removeButton = $(\"
\").addClass(FILTER_BUILDER_IMAGE_CLASS).addClass(FILTER_BUILDER_IMAGE_REMOVE_CLASS).addClass(FILTER_BUILDER_ACTION_CLASS).attr(\"tabindex\", 0);\r\n this._subscribeOnClickAndEnterKey($removeButton, handler);\r\n return $removeButton\r\n },\r\n _createAddButton: function(addGroupHandler, addConditionHandler, groupLevel) {\r\n var $button;\r\n var maxGroupLevel = this.option(\"maxGroupLevel\");\r\n if (isDefined(maxGroupLevel) && groupLevel >= maxGroupLevel) {\r\n $button = this._createButton();\r\n this._subscribeOnClickAndEnterKey($button, addConditionHandler)\r\n } else {\r\n $button = this._createButtonWithMenu({\r\n menu: {\r\n items: [{\r\n caption: messageLocalization.format(\"dxFilterBuilder-addCondition\"),\r\n click: addConditionHandler\r\n }, {\r\n caption: messageLocalization.format(\"dxFilterBuilder-addGroup\"),\r\n click: addGroupHandler\r\n }],\r\n displayExpr: \"caption\",\r\n onItemClick: function(e) {\r\n e.itemData.click()\r\n },\r\n cssClass: FILTER_BUILDER_ADD_CONDITION_CLASS\r\n }\r\n })\r\n }\r\n return $button.addClass(FILTER_BUILDER_IMAGE_CLASS).addClass(FILTER_BUILDER_IMAGE_ADD_CLASS).addClass(FILTER_BUILDER_ACTION_CLASS).attr(\"tabindex\", 0)\r\n },\r\n _createValueText: function(item, field, $container) {\r\n var that = this;\r\n var $text = $(\"
\").html(\" \").addClass(FILTER_BUILDER_ITEM_VALUE_TEXT_CLASS).attr(\"tabindex\", 0).appendTo($container);\r\n var value = item[2];\r\n var customOperation = getCustomOperation(that._customOperations, item[1]);\r\n if (!customOperation && field.lookup) {\r\n getCurrentLookupValueText(field, value, (function(result) {\r\n renderValueText($text, result)\r\n }))\r\n } else {\r\n when(getCurrentValueText(field, value, customOperation)).done(result => {\r\n renderValueText($text, result, customOperation)\r\n })\r\n }\r\n that._subscribeOnClickAndEnterKey($text, (function(e) {\r\n if (\"keyup\" === e.type) {\r\n e.stopPropagation()\r\n }\r\n that._createValueEditorWithEvents(item, field, $container)\r\n }));\r\n return $text\r\n },\r\n _updateConditionValue: function(item, value, callback) {\r\n var areValuesDifferent = item[2] !== value;\r\n if (areValuesDifferent) {\r\n item[2] = value\r\n }\r\n callback();\r\n this._updateFilter()\r\n },\r\n _addDocumentKeyUp: function($editor, handler) {\r\n var isComposing = false;\r\n var hasCompositionJustEnded = false;\r\n var document = domAdapter.getDocument();\r\n var documentKeyUpHandler = e => {\r\n if (isComposing || hasCompositionJustEnded) {\r\n hasCompositionJustEnded = false;\r\n return\r\n }\r\n handler(e)\r\n };\r\n eventsEngine.on(document, \"keyup\", documentKeyUpHandler);\r\n var input = $editor.find(\"input\");\r\n eventsEngine.on(input, \"compositionstart\", () => {\r\n isComposing = true\r\n });\r\n eventsEngine.on(input, \"compositionend\", () => {\r\n isComposing = false;\r\n hasCompositionJustEnded = true\r\n });\r\n eventsEngine.on(input, \"keydown\", event => {\r\n if (229 !== event.which) {\r\n hasCompositionJustEnded = false\r\n }\r\n });\r\n this._documentKeyUpHandler = documentKeyUpHandler\r\n },\r\n _addDocumentClick: function($editor, closeEditorFunc) {\r\n var document = domAdapter.getDocument();\r\n var documentClickHandler = e => {\r\n if (!this._isFocusOnEditorParts($editor, e.target)) {\r\n eventsEngine.trigger($editor.find(\"input\"), \"change\");\r\n closeEditorFunc()\r\n }\r\n };\r\n eventsEngine.on(document, \"dxpointerdown\", documentClickHandler);\r\n this._documentClickHandler = documentClickHandler\r\n },\r\n _isFocusOnEditorParts: function($editor, target) {\r\n var activeElement = target || domAdapter.getActiveElement();\r\n return $(activeElement).closest($editor.children()).length || $(activeElement).closest(\".dx-dropdowneditor-overlay\").length\r\n },\r\n _removeEvents: function() {\r\n var document = domAdapter.getDocument();\r\n isDefined(this._documentKeyUpHandler) && eventsEngine.off(document, \"keyup\", this._documentKeyUpHandler);\r\n isDefined(this._documentClickHandler) && eventsEngine.off(document, \"dxpointerdown\", this._documentClickHandler)\r\n },\r\n _dispose: function() {\r\n this._removeEvents();\r\n this.callBase()\r\n },\r\n _createValueEditorWithEvents: function(item, field, $container) {\r\n var value = item[2];\r\n var createValueText = () => {\r\n $container.empty();\r\n this._removeEvents();\r\n return this._createValueText(item, field, $container)\r\n };\r\n var closeEditor = () => {\r\n this._updateConditionValue(item, value, (function() {\r\n createValueText()\r\n }))\r\n };\r\n var options = {\r\n value: \"\" === value ? null : value,\r\n filterOperation: getOperationValue(item),\r\n setValue: function(data) {\r\n value = null === data ? \"\" : data\r\n },\r\n closeEditor: closeEditor,\r\n text: $container.text()\r\n };\r\n $container.empty();\r\n var $editor = this._createValueEditor($container, field, options);\r\n eventsEngine.trigger($editor.find(\"input\").not(\":hidden\").eq(0), \"focus\");\r\n this._removeEvents();\r\n this._addDocumentClick($editor, closeEditor);\r\n this._addDocumentKeyUp($editor, e => {\r\n var keyName = normalizeKeyName(e);\r\n if (keyName === TAB_KEY) {\r\n if (this._isFocusOnEditorParts($editor)) {\r\n return\r\n }\r\n this._updateConditionValue(item, value, (function() {\r\n createValueText();\r\n if (e.shiftKey) {\r\n eventsEngine.trigger($container.prev(), \"focus\")\r\n }\r\n }))\r\n }\r\n if (keyName === ESCAPE_KEY) {\r\n eventsEngine.trigger(createValueText(), \"focus\")\r\n }\r\n if (keyName === ENTER_KEY) {\r\n this._updateConditionValue(item, value, (function() {\r\n eventsEngine.trigger(createValueText(), \"focus\")\r\n }))\r\n }\r\n });\r\n this._fireContentReadyAction()\r\n },\r\n _createValueButton: function(item, field) {\r\n var $valueButton = $(\"
\").addClass(FILTER_BUILDER_ITEM_TEXT_CLASS).addClass(FILTER_BUILDER_ITEM_VALUE_CLASS);\r\n this._createValueText(item, field, $valueButton);\r\n return $valueButton\r\n },\r\n _createValueEditor: function($container, field, options) {\r\n var $editor = $(\"
\").attr(\"tabindex\", 0).appendTo($container);\r\n var customOperation = getCustomOperation(this._customOperations, options.filterOperation);\r\n var editorTemplate = customOperation && customOperation.editorTemplate ? customOperation.editorTemplate : field.editorTemplate;\r\n if (editorTemplate) {\r\n var template = this._getTemplate(editorTemplate);\r\n template.render({\r\n model: extend({\r\n field: field\r\n }, options),\r\n container: $editor\r\n })\r\n } else {\r\n this._editorFactory.createEditor.call(this, $editor, extend({}, field, options, {\r\n parentType: SOURCE\r\n }))\r\n }\r\n return $editor\r\n },\r\n _createPopupWithTreeView: function(options, $container) {\r\n var that = this;\r\n var $popup = $(\"
\").addClass(options.menu.cssClass).appendTo($container);\r\n this._createComponent($popup, Popup, {\r\n onHiding: options.menu.onHiding,\r\n onHidden: options.menu.onHidden,\r\n rtlEnabled: options.menu.rtlEnabled,\r\n position: options.menu.position,\r\n animation: options.menu.animation,\r\n contentTemplate: function(contentElement) {\r\n var $menuContainer = $(\"
\").appendTo(contentElement);\r\n that._createComponent($menuContainer, TreeView, options.menu);\r\n this.repaint()\r\n },\r\n maxHeight: function() {\r\n return getElementMaxHeightByWindow(options.menu.position.of)\r\n },\r\n visible: true,\r\n focusStateEnabled: false,\r\n closeOnTargetScroll: this.option(\"closePopupOnTargetScroll\"),\r\n closeOnOutsideClick: true,\r\n onShown: options.popup.onShown,\r\n shading: false,\r\n width: \"auto\",\r\n height: \"auto\",\r\n showTitle: false\r\n })\r\n },\r\n _subscribeOnClickAndEnterKey: function($button, handler) {\r\n eventsEngine.on($button, \"dxclick\", handler);\r\n eventsEngine.on($button, \"keyup\", (function(e) {\r\n if (normalizeKeyName(e) === ENTER_KEY) {\r\n handler(e)\r\n }\r\n }))\r\n }\r\n});\r\nregisterComponent(\"dxFilterBuilder\", FilterBuilder);\r\nexport default FilterBuilder;\r\n","/**\r\n * DevExtreme (esm/ui/filter_builder.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 FilterBuilder from \"./filter_builder/filter_builder\";\r\nexport default FilterBuilder;\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.filter_builder.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 modules from \"./ui.grid_core.modules\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport FilterBuilder from \"./../filter_builder\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport ScrollView from \"./../scroll_view\";\r\nimport Popup from \"./../popup\";\r\nimport {\r\n restoreFocus\r\n} from \"../shared/accessibility\";\r\nvar FilterBuilderView = modules.View.inherit({\r\n _renderCore: function() {\r\n this._updatePopupOptions()\r\n },\r\n _updatePopupOptions: function() {\r\n if (this.option(\"filterBuilderPopup.visible\")) {\r\n this._initPopup()\r\n } else if (this._filterBuilderPopup) {\r\n this._filterBuilderPopup.hide()\r\n }\r\n },\r\n _disposePopup: function() {\r\n if (this._filterBuilderPopup) {\r\n this._filterBuilderPopup.dispose();\r\n this._filterBuilderPopup = void 0\r\n }\r\n if (this._filterBuilder) {\r\n this._filterBuilder.dispose();\r\n this._filterBuilder = void 0\r\n }\r\n },\r\n _initPopup: function() {\r\n var that = this;\r\n that._disposePopup();\r\n that._filterBuilderPopup = that._createComponent(that.element(), Popup, extend({\r\n title: messageLocalization.format(\"dxDataGrid-filterBuilderPopupTitle\"),\r\n contentTemplate: function($contentElement) {\r\n return that._getPopupContentTemplate($contentElement)\r\n },\r\n onOptionChanged: function(args) {\r\n if (\"visible\" === args.name) {\r\n that.option(\"filterBuilderPopup.visible\", args.value)\r\n }\r\n },\r\n toolbarItems: that._getPopupToolbarItems()\r\n }, that.option(\"filterBuilderPopup\"), {\r\n onHidden: function(e) {\r\n restoreFocus(that);\r\n that._disposePopup()\r\n }\r\n }))\r\n },\r\n _getPopupContentTemplate: function(contentElement) {\r\n var $contentElement = $(contentElement);\r\n var $filterBuilderContainer = $(\"
\").appendTo($(contentElement));\r\n this._filterBuilder = this._createComponent($filterBuilderContainer, FilterBuilder, extend({\r\n value: this.option(\"filterValue\"),\r\n fields: this.getController(\"columns\").getFilteringColumns()\r\n }, this.option(\"filterBuilder\"), {\r\n customOperations: this.getController(\"filterSync\").getCustomFilterOperations()\r\n }));\r\n this._createComponent($contentElement, ScrollView, {\r\n direction: \"both\"\r\n })\r\n },\r\n _getPopupToolbarItems: function() {\r\n var that = this;\r\n return [{\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n text: messageLocalization.format(\"OK\"),\r\n onClick: function(e) {\r\n var filter = that._filterBuilder.option(\"value\");\r\n that.option(\"filterValue\", filter);\r\n that._filterBuilderPopup.hide()\r\n }\r\n }\r\n }, {\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n text: messageLocalization.format(\"Cancel\"),\r\n onClick: function(e) {\r\n that._filterBuilderPopup.hide()\r\n }\r\n }\r\n }]\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"filterBuilder\":\r\n case \"filterBuilderPopup\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport var filterBuilderModule = {\r\n defaultOptions: function() {\r\n return {\r\n filterBuilder: {\r\n groupOperationDescriptions: {\r\n and: messageLocalization.format(\"dxFilterBuilder-and\"),\r\n or: messageLocalization.format(\"dxFilterBuilder-or\"),\r\n notAnd: messageLocalization.format(\"dxFilterBuilder-notAnd\"),\r\n notOr: messageLocalization.format(\"dxFilterBuilder-notOr\")\r\n },\r\n filterOperationDescriptions: {\r\n between: messageLocalization.format(\"dxFilterBuilder-filterOperationBetween\"),\r\n equal: messageLocalization.format(\"dxFilterBuilder-filterOperationEquals\"),\r\n notEqual: messageLocalization.format(\"dxFilterBuilder-filterOperationNotEquals\"),\r\n lessThan: messageLocalization.format(\"dxFilterBuilder-filterOperationLess\"),\r\n lessThanOrEqual: messageLocalization.format(\"dxFilterBuilder-filterOperationLessOrEquals\"),\r\n greaterThan: messageLocalization.format(\"dxFilterBuilder-filterOperationGreater\"),\r\n greaterThanOrEqual: messageLocalization.format(\"dxFilterBuilder-filterOperationGreaterOrEquals\"),\r\n startsWith: messageLocalization.format(\"dxFilterBuilder-filterOperationStartsWith\"),\r\n contains: messageLocalization.format(\"dxFilterBuilder-filterOperationContains\"),\r\n notContains: messageLocalization.format(\"dxFilterBuilder-filterOperationNotContains\"),\r\n endsWith: messageLocalization.format(\"dxFilterBuilder-filterOperationEndsWith\"),\r\n isBlank: messageLocalization.format(\"dxFilterBuilder-filterOperationIsBlank\"),\r\n isNotBlank: messageLocalization.format(\"dxFilterBuilder-filterOperationIsNotBlank\")\r\n }\r\n },\r\n filterBuilderPopup: {}\r\n }\r\n },\r\n views: {\r\n filterBuilderView: FilterBuilderView\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.filter_builder.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 core from \"./ui.data_grid.core\";\r\nimport {\r\n filterBuilderModule\r\n} from \"../grid_core/ui.grid_core.filter_builder\";\r\ncore.registerModule(\"filterBuilder\", filterBuilderModule);\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.filter_panel.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 modules from \"./ui.grid_core.modules\";\r\nimport gridUtils from \"./ui.grid_core.utils\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport CheckBox from \"../check_box\";\r\nimport {\r\n getCurrentLookupValueText,\r\n getCustomOperation,\r\n getCurrentValueText,\r\n getField,\r\n getCaptionByOperation,\r\n getGroupValue,\r\n isCondition,\r\n isGroup\r\n} from \"../filter_builder/utils\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n captionize\r\n} from \"../../core/utils/inflector\";\r\nimport {\r\n registerKeyboardAction\r\n} from \"./ui.grid_core.accessibility\";\r\nvar FILTER_PANEL_CLASS = \"filter-panel\";\r\nvar FILTER_PANEL_TEXT_CLASS = FILTER_PANEL_CLASS + \"-text\";\r\nvar FILTER_PANEL_CHECKBOX_CLASS = FILTER_PANEL_CLASS + \"-checkbox\";\r\nvar FILTER_PANEL_CLEAR_FILTER_CLASS = FILTER_PANEL_CLASS + \"-clear-filter\";\r\nvar FILTER_PANEL_LEFT_CONTAINER = FILTER_PANEL_CLASS + \"-left\";\r\nvar FILTER_PANEL_TARGET = \"filterPanel\";\r\nvar FilterPanelView = modules.View.inherit({\r\n isVisible: function() {\r\n return this.option(\"filterPanel.visible\") && this.getController(\"data\").dataSource()\r\n },\r\n init: function() {\r\n this.getController(\"data\").dataSourceChanged.add(() => this.render())\r\n },\r\n _renderCore: function() {\r\n var $element = this.element();\r\n $element.empty().addClass(this.addWidgetPrefix(FILTER_PANEL_CLASS));\r\n var $leftContainer = $(\"
\").addClass(this.addWidgetPrefix(FILTER_PANEL_LEFT_CONTAINER)).appendTo($element);\r\n if (this.option(\"filterValue\") || this._filterValueBuffer) {\r\n $leftContainer.append(this._getCheckElement()).append(this._getFilterElement()).append(this._getTextElement());\r\n $element.append(this._getRemoveButtonElement())\r\n } else {\r\n $leftContainer.append(this._getFilterElement()).append(this._getTextElement())\r\n }\r\n },\r\n _getCheckElement: function() {\r\n var that = this;\r\n var $element = $(\"
\").addClass(this.addWidgetPrefix(FILTER_PANEL_CHECKBOX_CLASS));\r\n that._createComponent($element, CheckBox, {\r\n value: that.option(\"filterPanel.filterEnabled\"),\r\n onValueChanged: function(e) {\r\n that.option(\"filterPanel.filterEnabled\", e.value)\r\n }\r\n });\r\n $element.attr(\"title\", this.option(\"filterPanel.texts.filterEnabledHint\"));\r\n return $element\r\n },\r\n _getFilterElement: function() {\r\n var that = this;\r\n var $element = $(\"
\").addClass(\"dx-icon-filter\");\r\n eventsEngine.on($element, \"click\", () => that._showFilterBuilder());\r\n registerKeyboardAction(\"filterPanel\", that, $element, void 0, () => that._showFilterBuilder());\r\n that._addTabIndexToElement($element);\r\n return $element\r\n },\r\n _getTextElement: function() {\r\n var that = this;\r\n var $textElement = $(\"
\").addClass(that.addWidgetPrefix(FILTER_PANEL_TEXT_CLASS));\r\n var filterText;\r\n var filterValue = that.option(\"filterValue\");\r\n if (filterValue) {\r\n when(that.getFilterText(filterValue, that.getController(\"filterSync\").getCustomFilterOperations())).done((function(filterText) {\r\n var customizeText = that.option(\"filterPanel.customizeText\");\r\n if (customizeText) {\r\n var customText = customizeText({\r\n component: that.component,\r\n filterValue: filterValue,\r\n text: filterText\r\n });\r\n if (\"string\" === typeof customText) {\r\n filterText = customText\r\n }\r\n }\r\n $textElement.text(filterText)\r\n }))\r\n } else {\r\n filterText = that.option(\"filterPanel.texts.createFilter\");\r\n $textElement.text(filterText)\r\n }\r\n eventsEngine.on($textElement, \"click\", () => that._showFilterBuilder());\r\n registerKeyboardAction(\"filterPanel\", that, $textElement, void 0, () => that._showFilterBuilder());\r\n that._addTabIndexToElement($textElement);\r\n return $textElement\r\n },\r\n _showFilterBuilder: function() {\r\n this.option(\"filterBuilderPopup.visible\", true)\r\n },\r\n _getRemoveButtonElement: function() {\r\n var that = this;\r\n var clearFilterValue = () => that.option(\"filterValue\", null);\r\n var $element = $(\"
\").addClass(that.addWidgetPrefix(FILTER_PANEL_CLEAR_FILTER_CLASS)).text(that.option(\"filterPanel.texts.clearFilter\"));\r\n eventsEngine.on($element, \"click\", clearFilterValue);\r\n registerKeyboardAction(\"filterPanel\", this, $element, void 0, clearFilterValue);\r\n that._addTabIndexToElement($element);\r\n return $element\r\n },\r\n _addTabIndexToElement: function($element) {\r\n if (!this.option(\"useLegacyKeyboardNavigation\")) {\r\n var tabindex = this.option(\"tabindex\") || 0;\r\n $element.attr(\"tabindex\", tabindex)\r\n }\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"filterValue\":\r\n this._invalidate();\r\n this.option(\"filterPanel.filterEnabled\", true);\r\n args.handled = true;\r\n break;\r\n case \"filterPanel\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _getConditionText: function(fieldText, operationText, valueText) {\r\n var result = \"[\".concat(fieldText, \"] \").concat(operationText);\r\n if (isDefined(valueText)) {\r\n result += valueText\r\n }\r\n return result\r\n },\r\n _getValueMaskedText: function(value) {\r\n return Array.isArray(value) ? \"('\".concat(value.join(\"', '\"), \"')\") : \" '\".concat(value, \"'\")\r\n },\r\n _getValueText: function(field, customOperation, value) {\r\n var deferred = new Deferred;\r\n var hasCustomOperation = customOperation && customOperation.customizeText;\r\n if (isDefined(value) || hasCustomOperation) {\r\n if (!hasCustomOperation && field.lookup) {\r\n getCurrentLookupValueText(field, value, data => {\r\n deferred.resolve(this._getValueMaskedText(data))\r\n })\r\n } else {\r\n var displayValue = Array.isArray(value) ? value : gridUtils.getDisplayValue(field, value);\r\n when(getCurrentValueText(field, displayValue, customOperation, FILTER_PANEL_TARGET)).done(data => {\r\n deferred.resolve(this._getValueMaskedText(data))\r\n })\r\n }\r\n } else {\r\n deferred.resolve(\"\")\r\n }\r\n return deferred.promise()\r\n },\r\n getConditionText: function(filterValue, options) {\r\n var that = this;\r\n var operation = filterValue[1];\r\n var deferred = new Deferred;\r\n var customOperation = getCustomOperation(options.customOperations, operation);\r\n var operationText;\r\n var field = getField(filterValue[0], options.columns);\r\n var fieldText = field.caption || \"\";\r\n var value = filterValue[2];\r\n if (customOperation) {\r\n operationText = customOperation.caption || captionize(customOperation.name)\r\n } else if (null === value) {\r\n operationText = getCaptionByOperation(\"=\" === operation ? \"isblank\" : \"isnotblank\", options.filterOperationDescriptions)\r\n } else {\r\n operationText = getCaptionByOperation(operation, options.filterOperationDescriptions)\r\n }\r\n this._getValueText(field, customOperation, value).done(valueText => {\r\n deferred.resolve(that._getConditionText(fieldText, operationText, valueText))\r\n });\r\n return deferred\r\n },\r\n getGroupText: function(filterValue, options, isInnerGroup) {\r\n var that = this;\r\n var result = new Deferred;\r\n var textParts = [];\r\n var groupValue = getGroupValue(filterValue);\r\n filterValue.forEach(item => {\r\n if (isCondition(item)) {\r\n textParts.push(that.getConditionText(item, options))\r\n } else if (isGroup(item)) {\r\n textParts.push(that.getGroupText(item, options, true))\r\n }\r\n });\r\n when.apply(this, textParts).done((function() {\r\n var text;\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 (\"!\" === groupValue[0]) {\r\n var groupText = options.groupOperationDescriptions[\"not\" + groupValue.substring(1, 2).toUpperCase() + groupValue.substring(2)].split(\" \");\r\n text = \"\".concat(groupText[0], \" \").concat(args[0])\r\n } else {\r\n text = args.join(\" \".concat(options.groupOperationDescriptions[groupValue], \" \"))\r\n }\r\n if (isInnerGroup) {\r\n text = \"(\".concat(text, \")\")\r\n }\r\n result.resolve(text)\r\n }));\r\n return result\r\n },\r\n getFilterText: function(filterValue, customOperations) {\r\n var options = {\r\n customOperations: customOperations,\r\n columns: this.getController(\"columns\").getFilteringColumns(),\r\n filterOperationDescriptions: this.option(\"filterBuilder.filterOperationDescriptions\"),\r\n groupOperationDescriptions: this.option(\"filterBuilder.groupOperationDescriptions\")\r\n };\r\n return isCondition(filterValue) ? this.getConditionText(filterValue, options) : this.getGroupText(filterValue, options)\r\n }\r\n});\r\nexport var filterPanelModule = {\r\n defaultOptions: function() {\r\n return {\r\n filterPanel: {\r\n visible: false,\r\n filterEnabled: true,\r\n texts: {\r\n createFilter: messageLocalization.format(\"dxDataGrid-filterPanelCreateFilter\"),\r\n clearFilter: messageLocalization.format(\"dxDataGrid-filterPanelClearFilter\"),\r\n filterEnabledHint: messageLocalization.format(\"dxDataGrid-filterPanelFilterEnabledHint\")\r\n }\r\n }\r\n }\r\n },\r\n views: {\r\n filterPanelView: FilterPanelView\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"filterPanel\":\r\n this._applyFilter();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.filter_panel.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 core from \"./ui.data_grid.core\";\r\nimport {\r\n filterPanelModule\r\n} from \"../grid_core/ui.grid_core.filter_panel\";\r\ncore.registerModule(\"filterPanel\", filterPanelModule);\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.search.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport dataQuery from \"../../data/query\";\r\nvar SEARCH_PANEL_CLASS = \"search-panel\";\r\nvar SEARCH_TEXT_CLASS = \"search-text\";\r\nvar HEADER_PANEL_CLASS = \"header-panel\";\r\nvar FILTERING_TIMEOUT = 700;\r\n\r\nfunction allowSearch(column) {\r\n return isDefined(column.allowSearch) ? column.allowSearch : column.allowFiltering\r\n}\r\n\r\nfunction parseValue(column, text) {\r\n var lookup = column.lookup;\r\n if (!column.parseValue) {\r\n return text\r\n }\r\n if (lookup) {\r\n return column.parseValue.call(lookup, text)\r\n }\r\n return column.parseValue(text)\r\n}\r\nexport var searchModule = {\r\n defaultOptions: function() {\r\n return {\r\n searchPanel: {\r\n visible: false,\r\n width: 160,\r\n placeholder: messageLocalization.format(\"dxDataGrid-searchPanelPlaceholder\"),\r\n highlightSearchText: true,\r\n highlightCaseSensitive: false,\r\n text: \"\",\r\n searchVisibleColumnsOnly: false\r\n }\r\n }\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n publicMethods: function() {\r\n return this.callBase().concat([\"searchByText\"])\r\n },\r\n _calculateAdditionalFilter: function() {\r\n var filter = this.callBase();\r\n var searchFilter = function(that, text) {\r\n var i;\r\n var column;\r\n var columns = that._columnsController.getColumns();\r\n var searchVisibleColumnsOnly = that.option(\"searchPanel.searchVisibleColumnsOnly\");\r\n var lookup;\r\n var filters = [];\r\n if (!text) {\r\n return null\r\n }\r\n\r\n function onQueryDone(items) {\r\n var valueGetter = compileGetter(lookup.valueExpr);\r\n for (var _i = 0; _i < items.length; _i++) {\r\n var value = valueGetter(items[_i]);\r\n filters.push(column.createFilterExpression(value, null, \"search\"))\r\n }\r\n }\r\n for (i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n if (searchVisibleColumnsOnly && !column.visible) {\r\n continue\r\n }\r\n if (allowSearch(column) && column.calculateFilterExpression) {\r\n lookup = column.lookup;\r\n var filterValue = parseValue(column, text);\r\n if (lookup && lookup.items) {\r\n dataQuery(lookup.items).filter(column.createFilterExpression.call({\r\n dataField: lookup.displayExpr,\r\n dataType: lookup.dataType,\r\n calculateFilterExpression: column.calculateFilterExpression\r\n }, filterValue, null, \"search\")).enumerate().done(onQueryDone)\r\n } else if (void 0 !== filterValue) {\r\n filters.push(column.createFilterExpression(filterValue, null, \"search\"))\r\n }\r\n }\r\n }\r\n return gridCoreUtils.combineFilters(filters, \"or\")\r\n }(this, this.option(\"searchPanel.text\"));\r\n return gridCoreUtils.combineFilters([filter, searchFilter])\r\n },\r\n searchByText: function(text) {\r\n this.option(\"searchPanel.text\", text)\r\n },\r\n optionChanged: function(args) {\r\n switch (args.fullName) {\r\n case \"searchPanel.text\":\r\n case \"searchPanel\":\r\n this._applyFilter();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n }\r\n },\r\n views: {\r\n headerPanel: function() {\r\n var getSearchPanelOptions = function(that) {\r\n return that.option(\"searchPanel\")\r\n };\r\n return {\r\n _getToolbarItems: function() {\r\n var items = this.callBase();\r\n return this._prepareSearchItem(items)\r\n },\r\n _prepareSearchItem: function(items) {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n var searchPanelOptions = getSearchPanelOptions(that);\r\n if (searchPanelOptions && searchPanelOptions.visible) {\r\n var toolbarItem = {\r\n template: function(data, index, container) {\r\n var $search = $(\"
\").addClass(that.addWidgetPrefix(SEARCH_PANEL_CLASS)).appendTo(container);\r\n that.getController(\"editorFactory\").createEditor($search, {\r\n width: searchPanelOptions.width,\r\n placeholder: searchPanelOptions.placeholder,\r\n parentType: \"searchPanel\",\r\n value: that.option(\"searchPanel.text\"),\r\n updateValueTimeout: FILTERING_TIMEOUT,\r\n setValue: function(value) {\r\n dataController.searchByText(value)\r\n },\r\n editorOptions: {\r\n inputAttr: {\r\n \"aria-label\": messageLocalization.format(\"\".concat(that.component.NAME, \"-ariaSearchInGrid\"))\r\n }\r\n }\r\n });\r\n that.resize()\r\n },\r\n name: \"searchPanel\",\r\n location: \"after\",\r\n locateInMenu: \"never\",\r\n sortIndex: 40\r\n };\r\n items.push(toolbarItem)\r\n }\r\n return items\r\n },\r\n getSearchTextEditor: function() {\r\n var that = this;\r\n var $element = that.element();\r\n var $searchPanel = $element.find(\".\" + that.addWidgetPrefix(SEARCH_PANEL_CLASS)).filter((function() {\r\n return $(this).closest(\".\" + that.addWidgetPrefix(HEADER_PANEL_CLASS)).is($element)\r\n }));\r\n if ($searchPanel.length) {\r\n return $searchPanel.dxTextBox(\"instance\")\r\n }\r\n return null\r\n },\r\n isVisible: function() {\r\n var searchPanelOptions = getSearchPanelOptions(this);\r\n return this.callBase() || searchPanelOptions && searchPanelOptions.visible\r\n },\r\n optionChanged: function(args) {\r\n if (\"searchPanel\" === args.name) {\r\n if (\"searchPanel.text\" === args.fullName) {\r\n var editor = this.getSearchTextEditor();\r\n if (editor) {\r\n editor.option(\"value\", args.value)\r\n }\r\n } else {\r\n this._invalidate()\r\n }\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n }\r\n }\r\n }(),\r\n rowsView: {\r\n init: function() {\r\n this.callBase.apply(this, arguments);\r\n this._searchParams = []\r\n },\r\n _getFormattedSearchText: function(column, searchText) {\r\n var value = parseValue(column, searchText);\r\n var formatOptions = gridCoreUtils.getFormatOptionsByColumn(column, \"search\");\r\n return gridCoreUtils.formatValue(value, formatOptions)\r\n },\r\n _getStringNormalizer: function() {\r\n var isCaseSensitive = this.option(\"searchPanel.highlightCaseSensitive\");\r\n return function(str) {\r\n return isCaseSensitive ? str : str.toLowerCase()\r\n }\r\n },\r\n _findHighlightingTextNodes: function(column, cellElement, searchText) {\r\n var _$items;\r\n var $parent = cellElement.parent();\r\n var $items;\r\n var stringNormalizer = this._getStringNormalizer();\r\n var normalizedSearchText = stringNormalizer(searchText);\r\n if (!$parent.length) {\r\n $parent = $(\"
\").append(cellElement)\r\n } else if (column) {\r\n if (column.groupIndex >= 0 && !column.showWhenGrouped) {\r\n $items = cellElement\r\n } else {\r\n var columnIndex = this._columnsController.getVisibleIndex(column.index);\r\n $items = $parent.children(\"td\").eq(columnIndex).find(\"*\")\r\n }\r\n }\r\n $items = null !== (_$items = $items) && void 0 !== _$items && _$items.length ? $items : $parent.find(\"*\");\r\n $items = $items.filter((function(_, element) {\r\n var $contents = $(element).contents();\r\n for (var i = 0; i < $contents.length; i++) {\r\n var node = $contents.get(i);\r\n if (3 === node.nodeType) {\r\n return stringNormalizer(node.textContent || node.nodeValue).indexOf(normalizedSearchText) > -1\r\n }\r\n return false\r\n }\r\n }));\r\n return $items\r\n },\r\n _highlightSearchTextCore: function($textNode, searchText) {\r\n var $searchTextSpan = $(\"\").addClass(this.addWidgetPrefix(SEARCH_TEXT_CLASS));\r\n var text = $textNode.text();\r\n var firstContentElement = $textNode[0];\r\n var stringNormalizer = this._getStringNormalizer();\r\n var index = stringNormalizer(text).indexOf(stringNormalizer(searchText));\r\n if (index >= 0) {\r\n if (firstContentElement.textContent) {\r\n firstContentElement.textContent = text.substr(0, index)\r\n } else {\r\n firstContentElement.nodeValue = text.substr(0, index)\r\n }\r\n $textNode.after($searchTextSpan.text(text.substr(index, searchText.length)));\r\n $textNode = $(domAdapter.createTextNode(text.substr(index + searchText.length))).insertAfter($searchTextSpan);\r\n return this._highlightSearchTextCore($textNode, searchText)\r\n }\r\n },\r\n _highlightSearchText: function(cellElement, isEquals, column) {\r\n var that = this;\r\n var stringNormalizer = this._getStringNormalizer();\r\n var searchText = that.option(\"searchPanel.text\");\r\n if (isEquals && column) {\r\n searchText = searchText && that._getFormattedSearchText(column, searchText)\r\n }\r\n if (searchText && that.option(\"searchPanel.highlightSearchText\")) {\r\n var textNodes = that._findHighlightingTextNodes(column, cellElement, searchText);\r\n each(textNodes, (function(_, element) {\r\n each($(element).contents(), (function(_, textNode) {\r\n if (isEquals) {\r\n if (stringNormalizer($(textNode).text()) === stringNormalizer(searchText)) {\r\n $(this).replaceWith($(\"\").addClass(that.addWidgetPrefix(SEARCH_TEXT_CLASS)).text($(textNode).text()))\r\n }\r\n } else {\r\n that._highlightSearchTextCore($(textNode), searchText)\r\n }\r\n }))\r\n }))\r\n }\r\n },\r\n _renderCore: function() {\r\n this.callBase.apply(this, arguments);\r\n if (this.option(\"rowTemplate\")) {\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n clearTimeout(this._highlightTimer);\r\n this._highlightTimer = setTimeout(function() {\r\n this._highlightSearchText(this.getTableElement())\r\n }.bind(this))\r\n } else {\r\n this._highlightSearchText(this.getTableElement())\r\n }\r\n }\r\n },\r\n _updateCell: function($cell, parameters) {\r\n var column = parameters.column;\r\n var dataType = column.lookup && column.lookup.dataType || column.dataType;\r\n var isEquals = \"string\" !== dataType;\r\n if (allowSearch(column) && !parameters.isOnForm) {\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n if (!this._searchParams.length) {\r\n clearTimeout(this._highlightTimer);\r\n this._highlightTimer = setTimeout(function() {\r\n this._searchParams.forEach(function(params) {\r\n this._highlightSearchText.apply(this, params)\r\n }.bind(this));\r\n this._searchParams = []\r\n }.bind(this))\r\n }\r\n this._searchParams.push([$cell, isEquals, column])\r\n } else {\r\n this._highlightSearchText($cell, isEquals, column)\r\n }\r\n }\r\n this.callBase($cell, parameters)\r\n },\r\n dispose: function() {\r\n clearTimeout(this._highlightTimer);\r\n this.callBase()\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.search.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n searchModule\r\n} from \"../grid_core/ui.grid_core.search\";\r\ngridCore.registerModule(\"search\", searchModule);\r\n","var isArray = Array.isArray;\nfunction isStringOrNumber(o) {\n var type = typeof o;\n return type === 'string' || type === 'number';\n}\nfunction isNullOrUndef(o) {\n return o === void 0 || o === null;\n}\nfunction isInvalid(o) {\n return o === null || o === false || o === true || o === void 0;\n}\nfunction isFunction(o) {\n return typeof o === 'function';\n}\nfunction isString(o) {\n return typeof o === 'string';\n}\nfunction isNumber(o) {\n return typeof o === 'number';\n}\nfunction isNull(o) {\n return o === null;\n}\nfunction isUndefined(o) {\n return o === void 0;\n}\nfunction combineFrom(first, second) {\n var out = {};\n if (first) {\n for (var key in first) {\n out[key] = first[key];\n }\n }\n if (second) {\n for (var key$1 in second) {\n out[key$1] = second[key$1];\n }\n }\n return out;\n}\n\n/**\n * Links given data to event as first parameter\n * @param {*} data data to be linked, it will be available in function as first parameter\n * @param {Function} event Function to be called when event occurs\n * @returns {{data: *, event: Function}}\n */\nfunction linkEvent(data, event) {\n if (isFunction(event)) {\n return { data: data, event: event };\n }\n return null; // Return null when event is invalid, to avoid creating unnecessary event handlers\n}\n// object.event should always be function, otherwise its badly created object.\nfunction isLinkEventObject(o) {\n return !isNull(o) && typeof o === 'object';\n}\n\n// We need EMPTY_OBJ defined in one place.\n// Its used for comparison so we cant inline it into shared\nvar EMPTY_OBJ = {};\nvar Fragment = '$F';\nfunction normalizeEventName(name) {\n return name.substr(2).toLowerCase();\n}\nfunction appendChild(parentDOM, dom) {\n parentDOM.appendChild(dom);\n}\nfunction insertOrAppend(parentDOM, newNode, nextNode) {\n if (isNull(nextNode)) {\n appendChild(parentDOM, newNode);\n }\n else {\n parentDOM.insertBefore(newNode, nextNode);\n }\n}\nfunction documentCreateElement(tag, isSVG) {\n if (isSVG) {\n return document.createElementNS('http://www.w3.org/2000/svg', tag);\n }\n return document.createElement(tag);\n}\nfunction replaceChild(parentDOM, newDom, lastDom) {\n parentDOM.replaceChild(newDom, lastDom);\n}\nfunction removeChild(parentDOM, childNode) {\n parentDOM.removeChild(childNode);\n}\nfunction callAll(arrayFn) {\n for (var i = 0; i < arrayFn.length; i++) {\n arrayFn[i]();\n }\n}\nfunction findChildVNode(vNode, startEdge, flags) {\n var children = vNode.children;\n if (flags & 4 /* ComponentClass */) {\n return children.$LI;\n }\n if (flags & 8192 /* Fragment */) {\n return vNode.childFlags === 2 /* HasVNodeChildren */ ? children : children[startEdge ? 0 : children.length - 1];\n }\n return children;\n}\nfunction findDOMfromVNode(vNode, startEdge) {\n var flags;\n while (vNode) {\n flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n return vNode.dom;\n }\n vNode = findChildVNode(vNode, startEdge, flags);\n }\n return null;\n}\nfunction removeVNodeDOM(vNode, parentDOM) {\n do {\n var flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n removeChild(parentDOM, vNode.dom);\n return;\n }\n var children = vNode.children;\n if (flags & 4 /* ComponentClass */) {\n vNode = children.$LI;\n }\n if (flags & 8 /* ComponentFunction */) {\n vNode = children;\n }\n if (flags & 8192 /* Fragment */) {\n if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n vNode = children;\n }\n else {\n for (var i = 0, len = children.length; i < len; ++i) {\n removeVNodeDOM(children[i], parentDOM);\n }\n return;\n }\n }\n } while (vNode);\n}\nfunction moveVNodeDOM(vNode, parentDOM, nextNode) {\n do {\n var flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n insertOrAppend(parentDOM, vNode.dom, nextNode);\n return;\n }\n var children = vNode.children;\n if (flags & 4 /* ComponentClass */) {\n vNode = children.$LI;\n }\n if (flags & 8 /* ComponentFunction */) {\n vNode = children;\n }\n if (flags & 8192 /* Fragment */) {\n if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n vNode = children;\n }\n else {\n for (var i = 0, len = children.length; i < len; ++i) {\n moveVNodeDOM(children[i], parentDOM, nextNode);\n }\n return;\n }\n }\n } while (vNode);\n}\nfunction createDerivedState(instance, nextProps, state) {\n if (instance.constructor.getDerivedStateFromProps) {\n return combineFrom(state, instance.constructor.getDerivedStateFromProps(nextProps, state));\n }\n return state;\n}\nvar renderCheck = {\n v: false\n};\nvar options = {\n componentComparator: null,\n createVNode: null,\n renderComplete: null\n};\nfunction setTextContent(dom, children) {\n dom.textContent = children;\n}\n// Calling this function assumes, nextValue is linkEvent\nfunction isLastValueSameLinkEvent(lastValue, nextValue) {\n return (isLinkEventObject(lastValue) &&\n lastValue.event === nextValue.event &&\n lastValue.data === nextValue.data);\n}\nfunction mergeUnsetProperties(to, from) {\n for (var propName in from) {\n if (isUndefined(to[propName])) {\n to[propName] = from[propName];\n }\n }\n return to;\n}\nfunction safeCall1(method, arg1) {\n return !!isFunction(method) && (method(arg1), true);\n}\n\nvar keyPrefix = '$';\nfunction V(childFlags, children, className, flags, key, props, ref, type) {\n this.childFlags = childFlags;\n this.children = children;\n this.className = className;\n this.dom = null;\n this.flags = flags;\n this.key = key === void 0 ? null : key;\n this.props = props === void 0 ? null : props;\n this.ref = ref === void 0 ? null : ref;\n this.type = type;\n}\nfunction createVNode(flags, type, className, children, childFlags, props, key, ref) {\n var childFlag = childFlags === void 0 ? 1 /* HasInvalidChildren */ : childFlags;\n var vNode = new V(childFlag, children, className, flags, key, props, ref, type);\n if (options.createVNode) {\n options.createVNode(vNode);\n }\n if (childFlag === 0 /* UnknownChildren */) {\n normalizeChildren(vNode, vNode.children);\n }\n return vNode;\n}\nfunction mergeDefaultHooks(flags, type, ref) {\n if (flags & 4 /* ComponentClass */) {\n return ref;\n }\n var defaultHooks = (flags & 32768 /* ForwardRef */ ? type.render : type).defaultHooks;\n if (isNullOrUndef(defaultHooks)) {\n return ref;\n }\n if (isNullOrUndef(ref)) {\n return defaultHooks;\n }\n return mergeUnsetProperties(ref, defaultHooks);\n}\nfunction mergeDefaultProps(flags, type, props) {\n // set default props\n var defaultProps = (flags & 32768 /* ForwardRef */ ? type.render : type).defaultProps;\n if (isNullOrUndef(defaultProps)) {\n return props;\n }\n if (isNullOrUndef(props)) {\n return combineFrom(defaultProps, null);\n }\n return mergeUnsetProperties(props, defaultProps);\n}\nfunction resolveComponentFlags(flags, type) {\n if (flags & 12 /* ComponentKnown */) {\n return flags;\n }\n if (type.prototype && type.prototype.render) {\n return 4 /* ComponentClass */;\n }\n if (type.render) {\n return 32776 /* ForwardRefComponent */;\n }\n return 8 /* ComponentFunction */;\n}\nfunction createComponentVNode(flags, type, props, key, ref) {\n flags = resolveComponentFlags(flags, type);\n var vNode = new V(1 /* HasInvalidChildren */, null, null, flags, key, mergeDefaultProps(flags, type, props), mergeDefaultHooks(flags, type, ref), type);\n if (options.createVNode) {\n options.createVNode(vNode);\n }\n return vNode;\n}\nfunction createTextVNode(text, key) {\n return new V(1 /* HasInvalidChildren */, isNullOrUndef(text) || text === true || text === false ? '' : text, null, 16 /* Text */, key, null, null, null);\n}\nfunction createFragment(children, childFlags, key) {\n var fragment = createVNode(8192 /* Fragment */, 8192 /* Fragment */, null, children, childFlags, null, key, null);\n switch (fragment.childFlags) {\n case 1 /* HasInvalidChildren */:\n fragment.children = createVoidVNode();\n fragment.childFlags = 2 /* HasVNodeChildren */;\n break;\n case 16 /* HasTextChildren */:\n fragment.children = [createTextVNode(children)];\n fragment.childFlags = 4 /* HasNonKeyedChildren */;\n break;\n }\n return fragment;\n}\nfunction normalizeProps(vNode) {\n var props = vNode.props;\n if (props) {\n var flags = vNode.flags;\n if (flags & 481 /* Element */) {\n if (props.children !== void 0 && isNullOrUndef(vNode.children)) {\n normalizeChildren(vNode, props.children);\n }\n if (props.className !== void 0) {\n if (isNullOrUndef(vNode.className)) {\n vNode.className = props.className || null;\n }\n props.className = undefined;\n }\n }\n if (props.key !== void 0) {\n vNode.key = props.key;\n props.key = undefined;\n }\n if (props.ref !== void 0) {\n if (flags & 8 /* ComponentFunction */) {\n vNode.ref = combineFrom(vNode.ref, props.ref);\n }\n else {\n vNode.ref = props.ref;\n }\n props.ref = undefined;\n }\n }\n return vNode;\n}\n/*\n * Fragment is different than normal vNode,\n * because when it needs to be cloned we need to clone its children too\n * But not normalize, because otherwise those possibly get KEY and re-mount\n */\nfunction cloneFragment(vNodeToClone) {\n var oldChildren = vNodeToClone.children;\n var childFlags = vNodeToClone.childFlags;\n return createFragment(childFlags === 2 /* HasVNodeChildren */ ? directClone(oldChildren) : oldChildren.map(directClone), childFlags, vNodeToClone.key);\n}\nfunction directClone(vNodeToClone) {\n var flags = vNodeToClone.flags & -16385 /* ClearInUse */;\n var props = vNodeToClone.props;\n if (flags & 14 /* Component */) {\n if (!isNull(props)) {\n var propsToClone = props;\n props = {};\n for (var key in propsToClone) {\n props[key] = propsToClone[key];\n }\n }\n }\n if ((flags & 8192 /* Fragment */) === 0) {\n return new V(vNodeToClone.childFlags, vNodeToClone.children, vNodeToClone.className, flags, vNodeToClone.key, props, vNodeToClone.ref, vNodeToClone.type);\n }\n return cloneFragment(vNodeToClone);\n}\nfunction createVoidVNode() {\n return createTextVNode('', null);\n}\nfunction createPortal(children, container) {\n var normalizedRoot = normalizeRoot(children);\n return createVNode(1024 /* Portal */, 1024 /* Portal */, null, normalizedRoot, 0 /* UnknownChildren */, null, normalizedRoot.key, container);\n}\nfunction _normalizeVNodes(nodes, result, index, currentKey) {\n for (var len = nodes.length; index < len; index++) {\n var n = nodes[index];\n if (!isInvalid(n)) {\n var newKey = currentKey + keyPrefix + index;\n if (isArray(n)) {\n _normalizeVNodes(n, result, 0, newKey);\n }\n else {\n if (isStringOrNumber(n)) {\n n = createTextVNode(n, newKey);\n }\n else {\n var oldKey = n.key;\n var isPrefixedKey = isString(oldKey) && oldKey[0] === keyPrefix;\n if (n.flags & 81920 /* InUseOrNormalized */ || isPrefixedKey) {\n n = directClone(n);\n }\n n.flags |= 65536 /* Normalized */;\n if (!isPrefixedKey) {\n if (isNull(oldKey)) {\n n.key = newKey;\n }\n else {\n n.key = currentKey + oldKey;\n }\n }\n else if (oldKey.substring(0, currentKey.length) !== currentKey) {\n n.key = currentKey + oldKey;\n }\n }\n result.push(n);\n }\n }\n }\n}\nfunction getFlagsForElementVnode(type) {\n switch (type) {\n case 'svg':\n return 32 /* SvgElement */;\n case 'input':\n return 64 /* InputElement */;\n case 'select':\n return 256 /* SelectElement */;\n case 'textarea':\n return 128 /* TextareaElement */;\n case Fragment:\n return 8192 /* Fragment */;\n default:\n return 1 /* HtmlElement */;\n }\n}\nfunction normalizeChildren(vNode, children) {\n var newChildren;\n var newChildFlags = 1 /* HasInvalidChildren */;\n // Don't change children to match strict equal (===) true in patching\n if (isInvalid(children)) {\n newChildren = children;\n }\n else if (isStringOrNumber(children)) {\n newChildFlags = 16 /* HasTextChildren */;\n newChildren = children;\n }\n else if (isArray(children)) {\n var len = children.length;\n for (var i = 0; i < len; ++i) {\n var n = children[i];\n if (isInvalid(n) || isArray(n)) {\n newChildren = newChildren || children.slice(0, i);\n _normalizeVNodes(children, newChildren, i, '');\n break;\n }\n else if (isStringOrNumber(n)) {\n newChildren = newChildren || children.slice(0, i);\n newChildren.push(createTextVNode(n, keyPrefix + i));\n }\n else {\n var key = n.key;\n var needsCloning = (n.flags & 81920 /* InUseOrNormalized */) > 0;\n var isNullKey = isNull(key);\n var isPrefixed = isString(key) && key[0] === keyPrefix;\n if (needsCloning || isNullKey || isPrefixed) {\n newChildren = newChildren || children.slice(0, i);\n if (needsCloning || isPrefixed) {\n n = directClone(n);\n }\n if (isNullKey || isPrefixed) {\n n.key = keyPrefix + i;\n }\n newChildren.push(n);\n }\n else if (newChildren) {\n newChildren.push(n);\n }\n n.flags |= 65536 /* Normalized */;\n }\n }\n newChildren = newChildren || children;\n if (newChildren.length === 0) {\n newChildFlags = 1 /* HasInvalidChildren */;\n }\n else {\n newChildFlags = 8 /* HasKeyedChildren */;\n }\n }\n else {\n newChildren = children;\n newChildren.flags |= 65536 /* Normalized */;\n if (children.flags & 81920 /* InUseOrNormalized */) {\n newChildren = directClone(children);\n }\n newChildFlags = 2 /* HasVNodeChildren */;\n }\n vNode.children = newChildren;\n vNode.childFlags = newChildFlags;\n return vNode;\n}\nfunction normalizeRoot(input) {\n if (isInvalid(input) || isStringOrNumber(input)) {\n return createTextVNode(input, null);\n }\n if (isArray(input)) {\n return createFragment(input, 0 /* UnknownChildren */, null);\n }\n return input.flags & 16384 /* InUse */ ? directClone(input) : input;\n}\n\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\nvar xmlNS = 'http://www.w3.org/XML/1998/namespace';\nvar namespaces = {\n 'xlink:actuate': xlinkNS,\n 'xlink:arcrole': xlinkNS,\n 'xlink:href': xlinkNS,\n 'xlink:role': xlinkNS,\n 'xlink:show': xlinkNS,\n 'xlink:title': xlinkNS,\n 'xlink:type': xlinkNS,\n 'xml:base': xmlNS,\n 'xml:lang': xmlNS,\n 'xml:space': xmlNS\n};\n\nfunction getDelegatedEventObject(v) {\n return {\n onClick: v,\n onDblClick: v,\n onFocusIn: v,\n onFocusOut: v,\n onKeyDown: v,\n onKeyPress: v,\n onKeyUp: v,\n onMouseDown: v,\n onMouseMove: v,\n onMouseUp: v,\n onTouchEnd: v,\n onTouchMove: v,\n onTouchStart: v\n };\n}\nvar attachedEventCounts = getDelegatedEventObject(0);\nvar attachedEvents = getDelegatedEventObject(null);\nvar syntheticEvents = getDelegatedEventObject(true);\nfunction updateOrAddSyntheticEvent(name, dom) {\n var eventsObject = dom.$EV;\n if (!eventsObject) {\n eventsObject = dom.$EV = getDelegatedEventObject(null);\n }\n if (!eventsObject[name]) {\n if (++attachedEventCounts[name] === 1) {\n attachedEvents[name] = attachEventToDocument(name);\n }\n }\n return eventsObject;\n}\nfunction unmountSyntheticEvent(name, dom) {\n var eventsObject = dom.$EV;\n if (eventsObject && eventsObject[name]) {\n if (--attachedEventCounts[name] === 0) {\n document.removeEventListener(normalizeEventName(name), attachedEvents[name]);\n attachedEvents[name] = null;\n }\n eventsObject[name] = null;\n }\n}\nfunction handleSyntheticEvent(name, lastEvent, nextEvent, dom) {\n if (isFunction(nextEvent)) {\n updateOrAddSyntheticEvent(name, dom)[name] = nextEvent;\n }\n else if (isLinkEventObject(nextEvent)) {\n if (isLastValueSameLinkEvent(lastEvent, nextEvent)) {\n return;\n }\n updateOrAddSyntheticEvent(name, dom)[name] = nextEvent;\n }\n else {\n unmountSyntheticEvent(name, dom);\n }\n}\n// When browsers fully support event.composedPath we could loop it through instead of using parentNode property\nfunction getTargetNode(event) {\n return isFunction(event.composedPath) ? event.composedPath()[0] : event.target;\n}\nfunction dispatchEvents(event, isClick, name, eventData) {\n var dom = getTargetNode(event);\n do {\n // Html Nodes can be nested fe: span inside button in that scenario browser does not handle disabled attribute on parent,\n // because the event listener is on document.body\n // Don't process clicks on disabled elements\n if (isClick && dom.disabled) {\n return;\n }\n var eventsObject = dom.$EV;\n if (eventsObject) {\n var currentEvent = eventsObject[name];\n if (currentEvent) {\n // linkEvent object\n eventData.dom = dom;\n currentEvent.event ? currentEvent.event(currentEvent.data, event) : currentEvent(event);\n if (event.cancelBubble) {\n return;\n }\n }\n }\n dom = dom.parentNode;\n } while (!isNull(dom));\n}\nfunction stopPropagation() {\n this.cancelBubble = true;\n if (!this.immediatePropagationStopped) {\n this.stopImmediatePropagation();\n }\n}\nfunction isDefaultPrevented() {\n return this.defaultPrevented;\n}\nfunction isPropagationStopped() {\n return this.cancelBubble;\n}\nfunction extendEventProperties(event) {\n // Event data needs to be object to save reference to currentTarget getter\n var eventData = {\n dom: document\n };\n event.isDefaultPrevented = isDefaultPrevented;\n event.isPropagationStopped = isPropagationStopped;\n event.stopPropagation = stopPropagation;\n Object.defineProperty(event, 'currentTarget', {\n configurable: true,\n get: function get() {\n return eventData.dom;\n }\n });\n return eventData;\n}\nfunction rootClickEvent(name) {\n return function (event) {\n if (event.button !== 0) {\n // Firefox incorrectly triggers click event for mid/right mouse buttons.\n // This bug has been active for 17 years.\n // https://bugzilla.mozilla.org/show_bug.cgi?id=184051\n event.stopPropagation();\n return;\n }\n dispatchEvents(event, true, name, extendEventProperties(event));\n };\n}\nfunction rootEvent(name) {\n return function (event) {\n dispatchEvents(event, false, name, extendEventProperties(event));\n };\n}\nfunction attachEventToDocument(name) {\n var attachedEvent = name === 'onClick' || name === 'onDblClick' ? rootClickEvent(name) : rootEvent(name);\n document.addEventListener(normalizeEventName(name), attachedEvent);\n return attachedEvent;\n}\n\nfunction isSameInnerHTML(dom, innerHTML) {\n var tempdom = document.createElement('i');\n tempdom.innerHTML = innerHTML;\n return tempdom.innerHTML === dom.innerHTML;\n}\n\nfunction triggerEventListener(props, methodName, e) {\n if (props[methodName]) {\n var listener = props[methodName];\n if (listener.event) {\n listener.event(listener.data, e);\n }\n else {\n listener(e);\n }\n }\n else {\n var nativeListenerName = methodName.toLowerCase();\n if (props[nativeListenerName]) {\n props[nativeListenerName](e);\n }\n }\n}\nfunction createWrappedFunction(methodName, applyValue) {\n var fnMethod = function (e) {\n var vNode = this.$V;\n // If vNode is gone by the time event fires, no-op\n if (!vNode) {\n return;\n }\n var props = vNode.props || EMPTY_OBJ;\n var dom = vNode.dom;\n if (isString(methodName)) {\n triggerEventListener(props, methodName, e);\n }\n else {\n for (var i = 0; i < methodName.length; ++i) {\n triggerEventListener(props, methodName[i], e);\n }\n }\n if (isFunction(applyValue)) {\n var newVNode = this.$V;\n var newProps = newVNode.props || EMPTY_OBJ;\n applyValue(newProps, dom, false, newVNode);\n }\n };\n Object.defineProperty(fnMethod, 'wrapped', {\n configurable: false,\n enumerable: false,\n value: true,\n writable: false\n });\n return fnMethod;\n}\n\nfunction attachEvent(dom, eventName, handler) {\n var previousKey = \"$\" + eventName;\n var previousArgs = dom[previousKey];\n if (previousArgs) {\n if (previousArgs[1].wrapped) {\n return;\n }\n dom.removeEventListener(previousArgs[0], previousArgs[1]);\n dom[previousKey] = null;\n }\n if (isFunction(handler)) {\n dom.addEventListener(eventName, handler);\n dom[previousKey] = [eventName, handler];\n }\n}\n\nfunction isCheckedType(type) {\n return type === 'checkbox' || type === 'radio';\n}\nvar onTextInputChange = createWrappedFunction('onInput', applyValueInput);\nvar wrappedOnChange = createWrappedFunction(['onClick', 'onChange'], applyValueInput);\n/* tslint:disable-next-line:no-empty */\nfunction emptywrapper(event) {\n event.stopPropagation();\n}\nemptywrapper.wrapped = true;\nfunction inputEvents(dom, nextPropsOrEmpty) {\n if (isCheckedType(nextPropsOrEmpty.type)) {\n attachEvent(dom, 'change', wrappedOnChange);\n attachEvent(dom, 'click', emptywrapper);\n }\n else {\n attachEvent(dom, 'input', onTextInputChange);\n }\n}\nfunction applyValueInput(nextPropsOrEmpty, dom) {\n var type = nextPropsOrEmpty.type;\n var value = nextPropsOrEmpty.value;\n var checked = nextPropsOrEmpty.checked;\n var multiple = nextPropsOrEmpty.multiple;\n var defaultValue = nextPropsOrEmpty.defaultValue;\n var hasValue = !isNullOrUndef(value);\n if (type && type !== dom.type) {\n dom.setAttribute('type', type);\n }\n if (!isNullOrUndef(multiple) && multiple !== dom.multiple) {\n dom.multiple = multiple;\n }\n if (!isNullOrUndef(defaultValue) && !hasValue) {\n dom.defaultValue = defaultValue + '';\n }\n if (isCheckedType(type)) {\n if (hasValue) {\n dom.value = value;\n }\n if (!isNullOrUndef(checked)) {\n dom.checked = checked;\n }\n }\n else {\n if (hasValue && dom.value !== value) {\n dom.defaultValue = value;\n dom.value = value;\n }\n else if (!isNullOrUndef(checked)) {\n dom.checked = checked;\n }\n }\n}\n\nfunction updateChildOptions(vNode, value) {\n if (vNode.type === 'option') {\n updateChildOption(vNode, value);\n }\n else {\n var children = vNode.children;\n var flags = vNode.flags;\n if (flags & 4 /* ComponentClass */) {\n updateChildOptions(children.$LI, value);\n }\n else if (flags & 8 /* ComponentFunction */) {\n updateChildOptions(children, value);\n }\n else if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n updateChildOptions(children, value);\n }\n else if (vNode.childFlags & 12 /* MultipleChildren */) {\n for (var i = 0, len = children.length; i < len; ++i) {\n updateChildOptions(children[i], value);\n }\n }\n }\n}\nfunction updateChildOption(vNode, value) {\n var props = vNode.props || EMPTY_OBJ;\n var dom = vNode.dom;\n // we do this as multiple may have changed\n dom.value = props.value;\n if (props.value === value || (isArray(value) && value.indexOf(props.value) !== -1)) {\n dom.selected = true;\n }\n else if (!isNullOrUndef(value) || !isNullOrUndef(props.selected)) {\n dom.selected = props.selected || false;\n }\n}\nvar onSelectChange = createWrappedFunction('onChange', applyValueSelect);\nfunction selectEvents(dom) {\n attachEvent(dom, 'change', onSelectChange);\n}\nfunction applyValueSelect(nextPropsOrEmpty, dom, mounting, vNode) {\n var multiplePropInBoolean = Boolean(nextPropsOrEmpty.multiple);\n if (!isNullOrUndef(nextPropsOrEmpty.multiple) && multiplePropInBoolean !== dom.multiple) {\n dom.multiple = multiplePropInBoolean;\n }\n var index = nextPropsOrEmpty.selectedIndex;\n if (index === -1) {\n dom.selectedIndex = -1;\n }\n var childFlags = vNode.childFlags;\n if (childFlags !== 1 /* HasInvalidChildren */) {\n var value = nextPropsOrEmpty.value;\n if (isNumber(index) && index > -1 && dom.options[index]) {\n value = dom.options[index].value;\n }\n if (mounting && isNullOrUndef(value)) {\n value = nextPropsOrEmpty.defaultValue;\n }\n updateChildOptions(vNode, value);\n }\n}\n\nvar onTextareaInputChange = createWrappedFunction('onInput', applyValueTextArea);\nvar wrappedOnChange$1 = createWrappedFunction('onChange');\nfunction textAreaEvents(dom, nextPropsOrEmpty) {\n attachEvent(dom, 'input', onTextareaInputChange);\n if (nextPropsOrEmpty.onChange) {\n attachEvent(dom, 'change', wrappedOnChange$1);\n }\n}\nfunction applyValueTextArea(nextPropsOrEmpty, dom, mounting) {\n var value = nextPropsOrEmpty.value;\n var domValue = dom.value;\n if (isNullOrUndef(value)) {\n if (mounting) {\n var defaultValue = nextPropsOrEmpty.defaultValue;\n if (!isNullOrUndef(defaultValue) && defaultValue !== domValue) {\n dom.defaultValue = defaultValue;\n dom.value = defaultValue;\n }\n }\n }\n else if (domValue !== value) {\n /* There is value so keep it controlled */\n dom.defaultValue = value;\n dom.value = value;\n }\n}\n\nfunction processElement(flags, vNode, dom, nextPropsOrEmpty, mounting, isControlled) {\n if (flags & 64 /* InputElement */) {\n applyValueInput(nextPropsOrEmpty, dom);\n }\n else if (flags & 256 /* SelectElement */) {\n applyValueSelect(nextPropsOrEmpty, dom, mounting, vNode);\n }\n else if (flags & 128 /* TextareaElement */) {\n applyValueTextArea(nextPropsOrEmpty, dom, mounting);\n }\n if (isControlled) {\n dom.$V = vNode;\n }\n}\nfunction addFormElementEventHandlers(flags, dom, nextPropsOrEmpty) {\n if (flags & 64 /* InputElement */) {\n inputEvents(dom, nextPropsOrEmpty);\n }\n else if (flags & 256 /* SelectElement */) {\n selectEvents(dom);\n }\n else if (flags & 128 /* TextareaElement */) {\n textAreaEvents(dom, nextPropsOrEmpty);\n }\n}\nfunction isControlledFormElement(nextPropsOrEmpty) {\n return nextPropsOrEmpty.type && isCheckedType(nextPropsOrEmpty.type) ? !isNullOrUndef(nextPropsOrEmpty.checked) : !isNullOrUndef(nextPropsOrEmpty.value);\n}\n\nfunction createRef() {\n return {\n current: null\n };\n}\nfunction forwardRef(render) {\n // @ts-ignore\n return {\n render: render\n };\n}\nfunction unmountRef(ref) {\n if (ref) {\n if (!safeCall1(ref, null) && ref.current) {\n ref.current = null;\n }\n }\n}\nfunction mountRef(ref, value, lifecycle) {\n if (ref && (isFunction(ref) || ref.current !== void 0)) {\n lifecycle.push(function () {\n if (!safeCall1(ref, value) && ref.current !== void 0) {\n ref.current = value;\n }\n });\n }\n}\n\nfunction remove(vNode, parentDOM) {\n unmount(vNode);\n removeVNodeDOM(vNode, parentDOM);\n}\nfunction unmount(vNode) {\n var flags = vNode.flags;\n var children = vNode.children;\n var ref;\n if (flags & 481 /* Element */) {\n ref = vNode.ref;\n var props = vNode.props;\n unmountRef(ref);\n var childFlags = vNode.childFlags;\n if (!isNull(props)) {\n var keys = Object.keys(props);\n for (var i = 0, len = keys.length; i < len; i++) {\n var key = keys[i];\n if (syntheticEvents[key]) {\n unmountSyntheticEvent(key, vNode.dom);\n }\n }\n }\n if (childFlags & 12 /* MultipleChildren */) {\n unmountAllChildren(children);\n }\n else if (childFlags === 2 /* HasVNodeChildren */) {\n unmount(children);\n }\n }\n else if (children) {\n if (flags & 4 /* ComponentClass */) {\n if (isFunction(children.componentWillUnmount)) {\n children.componentWillUnmount();\n }\n unmountRef(vNode.ref);\n children.$UN = true;\n unmount(children.$LI);\n }\n else if (flags & 8 /* ComponentFunction */) {\n ref = vNode.ref;\n if (!isNullOrUndef(ref) && isFunction(ref.onComponentWillUnmount)) {\n ref.onComponentWillUnmount(findDOMfromVNode(vNode, true), vNode.props || EMPTY_OBJ);\n }\n unmount(children);\n }\n else if (flags & 1024 /* Portal */) {\n remove(children, vNode.ref);\n }\n else if (flags & 8192 /* Fragment */) {\n if (vNode.childFlags & 12 /* MultipleChildren */) {\n unmountAllChildren(children);\n }\n }\n }\n}\nfunction unmountAllChildren(children) {\n for (var i = 0, len = children.length; i < len; ++i) {\n unmount(children[i]);\n }\n}\nfunction clearDOM(dom) {\n // Optimization for clearing dom\n dom.textContent = '';\n}\nfunction removeAllChildren(dom, vNode, children) {\n unmountAllChildren(children);\n if (vNode.flags & 8192 /* Fragment */) {\n removeVNodeDOM(vNode, dom);\n }\n else {\n clearDOM(dom);\n }\n}\n\nfunction wrapLinkEvent(nextValue) {\n // This variable makes sure there is no \"this\" context in callback\n var ev = nextValue.event;\n return function (e) {\n ev(nextValue.data, e);\n };\n}\nfunction patchEvent(name, lastValue, nextValue, dom) {\n if (isLinkEventObject(nextValue)) {\n if (isLastValueSameLinkEvent(lastValue, nextValue)) {\n return;\n }\n nextValue = wrapLinkEvent(nextValue);\n }\n attachEvent(dom, normalizeEventName(name), nextValue);\n}\n// We are assuming here that we come from patchProp routine\n// -nextAttrValue cannot be null or undefined\nfunction patchStyle(lastAttrValue, nextAttrValue, dom) {\n if (isNullOrUndef(nextAttrValue)) {\n dom.removeAttribute('style');\n return;\n }\n var domStyle = dom.style;\n var style;\n var value;\n if (isString(nextAttrValue)) {\n domStyle.cssText = nextAttrValue;\n return;\n }\n if (!isNullOrUndef(lastAttrValue) && !isString(lastAttrValue)) {\n for (style in nextAttrValue) {\n // do not add a hasOwnProperty check here, it affects performance\n value = nextAttrValue[style];\n if (value !== lastAttrValue[style]) {\n domStyle.setProperty(style, value);\n }\n }\n for (style in lastAttrValue) {\n if (isNullOrUndef(nextAttrValue[style])) {\n domStyle.removeProperty(style);\n }\n }\n }\n else {\n for (style in nextAttrValue) {\n value = nextAttrValue[style];\n domStyle.setProperty(style, value);\n }\n }\n}\nfunction patchDangerInnerHTML(lastValue, nextValue, lastVNode, dom) {\n var lastHtml = (lastValue && lastValue.__html) || '';\n var nextHtml = (nextValue && nextValue.__html) || '';\n if (lastHtml !== nextHtml) {\n if (!isNullOrUndef(nextHtml) && !isSameInnerHTML(dom, nextHtml)) {\n if (!isNull(lastVNode)) {\n if (lastVNode.childFlags & 12 /* MultipleChildren */) {\n unmountAllChildren(lastVNode.children);\n }\n else if (lastVNode.childFlags === 2 /* HasVNodeChildren */) {\n unmount(lastVNode.children);\n }\n lastVNode.children = null;\n lastVNode.childFlags = 1 /* HasInvalidChildren */;\n }\n dom.innerHTML = nextHtml;\n }\n }\n}\nfunction patchProp(prop, lastValue, nextValue, dom, isSVG, hasControlledValue, lastVNode) {\n switch (prop) {\n case 'children':\n case 'childrenType':\n case 'className':\n case 'defaultValue':\n case 'key':\n case 'multiple':\n case 'ref':\n case 'selectedIndex':\n break;\n case 'autoFocus':\n dom.autofocus = !!nextValue;\n break;\n case 'allowfullscreen':\n case 'autoplay':\n case 'capture':\n case 'checked':\n case 'controls':\n case 'default':\n case 'disabled':\n case 'hidden':\n case 'indeterminate':\n case 'loop':\n case 'muted':\n case 'novalidate':\n case 'open':\n case 'readOnly':\n case 'required':\n case 'reversed':\n case 'scoped':\n case 'seamless':\n case 'selected':\n dom[prop] = !!nextValue;\n break;\n case 'defaultChecked':\n case 'value':\n case 'volume':\n if (hasControlledValue && prop === 'value') {\n break;\n }\n var value = isNullOrUndef(nextValue) ? '' : nextValue;\n if (dom[prop] !== value) {\n dom[prop] = value;\n }\n break;\n case 'style':\n patchStyle(lastValue, nextValue, dom);\n break;\n case 'dangerouslySetInnerHTML':\n patchDangerInnerHTML(lastValue, nextValue, lastVNode, dom);\n break;\n default:\n if (syntheticEvents[prop]) {\n handleSyntheticEvent(prop, lastValue, nextValue, dom);\n }\n else if (prop.charCodeAt(0) === 111 && prop.charCodeAt(1) === 110) {\n patchEvent(prop, lastValue, nextValue, dom);\n }\n else if (isNullOrUndef(nextValue)) {\n dom.removeAttribute(prop);\n }\n else if (isSVG && namespaces[prop]) {\n // We optimize for isSVG being false\n // If we end up in this path we can read property again\n dom.setAttributeNS(namespaces[prop], prop, nextValue);\n }\n else {\n dom.setAttribute(prop, nextValue);\n }\n break;\n }\n}\nfunction mountProps(vNode, flags, props, dom, isSVG) {\n var hasControlledValue = false;\n var isFormElement = (flags & 448 /* FormElement */) > 0;\n if (isFormElement) {\n hasControlledValue = isControlledFormElement(props);\n if (hasControlledValue) {\n addFormElementEventHandlers(flags, dom, props);\n }\n }\n for (var prop in props) {\n // do not add a hasOwnProperty check here, it affects performance\n patchProp(prop, null, props[prop], dom, isSVG, hasControlledValue, null);\n }\n if (isFormElement) {\n processElement(flags, vNode, dom, props, true, hasControlledValue);\n }\n}\n\nfunction renderNewInput(instance, props, context) {\n var nextInput = normalizeRoot(instance.render(props, instance.state, context));\n var childContext = context;\n if (isFunction(instance.getChildContext)) {\n childContext = combineFrom(context, instance.getChildContext());\n }\n instance.$CX = childContext;\n return nextInput;\n}\nfunction createClassComponentInstance(vNode, Component, props, context, isSVG, lifecycle) {\n var instance = new Component(props, context);\n var usesNewAPI = (instance.$N = Boolean(Component.getDerivedStateFromProps || instance.getSnapshotBeforeUpdate));\n instance.$SVG = isSVG;\n instance.$L = lifecycle;\n vNode.children = instance;\n instance.$BS = false;\n instance.context = context;\n if (instance.props === EMPTY_OBJ) {\n instance.props = props;\n }\n if (!usesNewAPI) {\n if (isFunction(instance.componentWillMount)) {\n instance.$BR = true;\n instance.componentWillMount();\n var pending = instance.$PS;\n if (!isNull(pending)) {\n var state = instance.state;\n if (isNull(state)) {\n instance.state = pending;\n }\n else {\n for (var key in pending) {\n state[key] = pending[key];\n }\n }\n instance.$PS = null;\n }\n instance.$BR = false;\n }\n }\n else {\n instance.state = createDerivedState(instance, props, instance.state);\n }\n instance.$LI = renderNewInput(instance, props, context);\n return instance;\n}\nfunction renderFunctionalComponent(vNode, context) {\n var props = vNode.props || EMPTY_OBJ;\n return vNode.flags & 32768 /* ForwardRef */ ? vNode.type.render(props, vNode.ref, context) : vNode.type(props, context);\n}\n\nfunction mount(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var flags = (vNode.flags |= 16384 /* InUse */);\n if (flags & 481 /* Element */) {\n mountElement(vNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (flags & 4 /* ComponentClass */) {\n mountClassComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (flags & 8 /* ComponentFunction */) {\n mountFunctionalComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle);\n mountFunctionalComponentCallbacks(vNode, lifecycle);\n }\n else if (flags & 512 /* Void */ || flags & 16 /* Text */) {\n mountText(vNode, parentDOM, nextNode);\n }\n else if (flags & 8192 /* Fragment */) {\n mountFragment(vNode, context, parentDOM, isSVG, nextNode, lifecycle);\n }\n else if (flags & 1024 /* Portal */) {\n mountPortal(vNode, context, parentDOM, nextNode, lifecycle);\n }\n else ;\n}\nfunction mountPortal(vNode, context, parentDOM, nextNode, lifecycle) {\n mount(vNode.children, vNode.ref, context, false, null, lifecycle);\n var placeHolderVNode = createVoidVNode();\n mountText(placeHolderVNode, parentDOM, nextNode);\n vNode.dom = placeHolderVNode.dom;\n}\nfunction mountFragment(vNode, context, parentDOM, isSVG, nextNode, lifecycle) {\n var children = vNode.children;\n var childFlags = vNode.childFlags;\n // When fragment is optimized for multiple children, check if there is no children and change flag to invalid\n // This is the only normalization always done, to keep optimization flags API same for fragments and regular elements\n if (childFlags & 12 /* MultipleChildren */ && children.length === 0) {\n childFlags = vNode.childFlags = 2 /* HasVNodeChildren */;\n children = vNode.children = createVoidVNode();\n }\n if (childFlags === 2 /* HasVNodeChildren */) {\n mount(children, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else {\n mountArrayChildren(children, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n}\nfunction mountText(vNode, parentDOM, nextNode) {\n var dom = (vNode.dom = document.createTextNode(vNode.children));\n if (!isNull(parentDOM)) {\n insertOrAppend(parentDOM, dom, nextNode);\n }\n}\nfunction mountElement(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var flags = vNode.flags;\n var props = vNode.props;\n var className = vNode.className;\n var childFlags = vNode.childFlags;\n var dom = (vNode.dom = documentCreateElement(vNode.type, (isSVG = isSVG || (flags & 32 /* SvgElement */) > 0)));\n var children = vNode.children;\n if (!isNullOrUndef(className) && className !== '') {\n if (isSVG) {\n dom.setAttribute('class', className);\n }\n else {\n dom.className = className;\n }\n }\n if (childFlags === 16 /* HasTextChildren */) {\n setTextContent(dom, children);\n }\n else if (childFlags !== 1 /* HasInvalidChildren */) {\n var childrenIsSVG = isSVG && vNode.type !== 'foreignObject';\n if (childFlags === 2 /* HasVNodeChildren */) {\n if (children.flags & 16384 /* InUse */) {\n vNode.children = children = directClone(children);\n }\n mount(children, dom, context, childrenIsSVG, null, lifecycle);\n }\n else if (childFlags === 8 /* HasKeyedChildren */ || childFlags === 4 /* HasNonKeyedChildren */) {\n mountArrayChildren(children, dom, context, childrenIsSVG, null, lifecycle);\n }\n }\n if (!isNull(parentDOM)) {\n insertOrAppend(parentDOM, dom, nextNode);\n }\n if (!isNull(props)) {\n mountProps(vNode, flags, props, dom, isSVG);\n }\n mountRef(vNode.ref, dom, lifecycle);\n}\nfunction mountArrayChildren(children, dom, context, isSVG, nextNode, lifecycle) {\n for (var i = 0; i < children.length; ++i) {\n var child = children[i];\n if (child.flags & 16384 /* InUse */) {\n children[i] = child = directClone(child);\n }\n mount(child, dom, context, isSVG, nextNode, lifecycle);\n }\n}\nfunction mountClassComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var instance = createClassComponentInstance(vNode, vNode.type, vNode.props || EMPTY_OBJ, context, isSVG, lifecycle);\n mount(instance.$LI, parentDOM, instance.$CX, isSVG, nextNode, lifecycle);\n mountClassComponentCallbacks(vNode.ref, instance, lifecycle);\n}\nfunction mountFunctionalComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n mount((vNode.children = normalizeRoot(renderFunctionalComponent(vNode, context))), parentDOM, context, isSVG, nextNode, lifecycle);\n}\nfunction createClassMountCallback(instance) {\n return function () {\n instance.componentDidMount();\n };\n}\nfunction mountClassComponentCallbacks(ref, instance, lifecycle) {\n mountRef(ref, instance, lifecycle);\n if (isFunction(instance.componentDidMount)) {\n lifecycle.push(createClassMountCallback(instance));\n }\n}\nfunction createOnMountCallback(ref, vNode) {\n return function () {\n ref.onComponentDidMount(findDOMfromVNode(vNode, true), vNode.props || EMPTY_OBJ);\n };\n}\nfunction mountFunctionalComponentCallbacks(vNode, lifecycle) {\n var ref = vNode.ref;\n if (!isNullOrUndef(ref)) {\n safeCall1(ref.onComponentWillMount, vNode.props || EMPTY_OBJ);\n if (isFunction(ref.onComponentDidMount)) {\n lifecycle.push(createOnMountCallback(ref, vNode));\n }\n }\n}\n\nfunction replaceWithNewNode(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle) {\n unmount(lastVNode);\n if ((nextVNode.flags & lastVNode.flags & 2033 /* DOMRef */) !== 0) {\n mount(nextVNode, null, context, isSVG, null, lifecycle);\n // Single DOM operation, when we have dom references available\n replaceChild(parentDOM, nextVNode.dom, lastVNode.dom);\n }\n else {\n mount(nextVNode, parentDOM, context, isSVG, findDOMfromVNode(lastVNode, true), lifecycle);\n removeVNodeDOM(lastVNode, parentDOM);\n }\n}\nfunction patch(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var nextFlags = (nextVNode.flags |= 16384 /* InUse */);\n if (lastVNode.flags !== nextFlags || lastVNode.type !== nextVNode.type || lastVNode.key !== nextVNode.key || nextFlags & 2048 /* ReCreate */) {\n if (lastVNode.flags & 16384 /* InUse */) {\n replaceWithNewNode(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle);\n }\n else {\n // Last vNode is not in use, it has crashed at application level. Just mount nextVNode and ignore last one\n mount(nextVNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n }\n else if (nextFlags & 481 /* Element */) {\n patchElement(lastVNode, nextVNode, context, isSVG, nextFlags, lifecycle);\n }\n else if (nextFlags & 4 /* ComponentClass */) {\n patchClassComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (nextFlags & 8 /* ComponentFunction */) {\n patchFunctionalComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (nextFlags & 16 /* Text */) {\n patchText(lastVNode, nextVNode);\n }\n else if (nextFlags & 512 /* Void */) {\n nextVNode.dom = lastVNode.dom;\n }\n else if (nextFlags & 8192 /* Fragment */) {\n patchFragment(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle);\n }\n else {\n patchPortal(lastVNode, nextVNode, context, lifecycle);\n }\n}\nfunction patchSingleTextChild(lastChildren, nextChildren, parentDOM) {\n if (lastChildren !== nextChildren) {\n if (lastChildren !== '') {\n parentDOM.firstChild.nodeValue = nextChildren;\n }\n else {\n setTextContent(parentDOM, nextChildren);\n }\n }\n}\nfunction patchContentEditableChildren(dom, nextChildren) {\n if (dom.textContent !== nextChildren) {\n dom.textContent = nextChildren;\n }\n}\nfunction patchFragment(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle) {\n var lastChildren = lastVNode.children;\n var nextChildren = nextVNode.children;\n var lastChildFlags = lastVNode.childFlags;\n var nextChildFlags = nextVNode.childFlags;\n var nextNode = null;\n // When fragment is optimized for multiple children, check if there is no children and change flag to invalid\n // This is the only normalization always done, to keep optimization flags API same for fragments and regular elements\n if (nextChildFlags & 12 /* MultipleChildren */ && nextChildren.length === 0) {\n nextChildFlags = nextVNode.childFlags = 2 /* HasVNodeChildren */;\n nextChildren = nextVNode.children = createVoidVNode();\n }\n var nextIsSingle = (nextChildFlags & 2 /* HasVNodeChildren */) !== 0;\n if (lastChildFlags & 12 /* MultipleChildren */) {\n var lastLen = lastChildren.length;\n // We need to know Fragment's edge node when\n if (\n // It uses keyed algorithm\n (lastChildFlags & 8 /* HasKeyedChildren */ && nextChildFlags & 8 /* HasKeyedChildren */) ||\n // It transforms from many to single\n nextIsSingle ||\n // It will append more nodes\n (!nextIsSingle && nextChildren.length > lastLen)) {\n // When fragment has multiple children there is always at least one vNode\n nextNode = findDOMfromVNode(lastChildren[lastLen - 1], false).nextSibling;\n }\n }\n patchChildren(lastChildFlags, nextChildFlags, lastChildren, nextChildren, parentDOM, context, isSVG, nextNode, lastVNode, lifecycle);\n}\nfunction patchPortal(lastVNode, nextVNode, context, lifecycle) {\n var lastContainer = lastVNode.ref;\n var nextContainer = nextVNode.ref;\n var nextChildren = nextVNode.children;\n patchChildren(lastVNode.childFlags, nextVNode.childFlags, lastVNode.children, nextChildren, lastContainer, context, false, null, lastVNode, lifecycle);\n nextVNode.dom = lastVNode.dom;\n if (lastContainer !== nextContainer && !isInvalid(nextChildren)) {\n var node = nextChildren.dom;\n removeChild(lastContainer, node);\n appendChild(nextContainer, node);\n }\n}\nfunction patchElement(lastVNode, nextVNode, context, isSVG, nextFlags, lifecycle) {\n var dom = (nextVNode.dom = lastVNode.dom);\n var lastProps = lastVNode.props;\n var nextProps = nextVNode.props;\n var isFormElement = false;\n var hasControlledValue = false;\n var nextPropsOrEmpty;\n isSVG = isSVG || (nextFlags & 32 /* SvgElement */) > 0;\n // inlined patchProps -- starts --\n if (lastProps !== nextProps) {\n var lastPropsOrEmpty = lastProps || EMPTY_OBJ;\n nextPropsOrEmpty = nextProps || EMPTY_OBJ;\n if (nextPropsOrEmpty !== EMPTY_OBJ) {\n isFormElement = (nextFlags & 448 /* FormElement */) > 0;\n if (isFormElement) {\n hasControlledValue = isControlledFormElement(nextPropsOrEmpty);\n }\n for (var prop in nextPropsOrEmpty) {\n var lastValue = lastPropsOrEmpty[prop];\n var nextValue = nextPropsOrEmpty[prop];\n if (lastValue !== nextValue) {\n patchProp(prop, lastValue, nextValue, dom, isSVG, hasControlledValue, lastVNode);\n }\n }\n }\n if (lastPropsOrEmpty !== EMPTY_OBJ) {\n for (var prop$1 in lastPropsOrEmpty) {\n if (isNullOrUndef(nextPropsOrEmpty[prop$1]) && !isNullOrUndef(lastPropsOrEmpty[prop$1])) {\n patchProp(prop$1, lastPropsOrEmpty[prop$1], null, dom, isSVG, hasControlledValue, lastVNode);\n }\n }\n }\n }\n var nextChildren = nextVNode.children;\n var nextClassName = nextVNode.className;\n // inlined patchProps -- ends --\n if (lastVNode.className !== nextClassName) {\n if (isNullOrUndef(nextClassName)) {\n dom.removeAttribute('class');\n }\n else if (isSVG) {\n dom.setAttribute('class', nextClassName);\n }\n else {\n dom.className = nextClassName;\n }\n }\n if (nextFlags & 4096 /* ContentEditable */) {\n patchContentEditableChildren(dom, nextChildren);\n }\n else {\n patchChildren(lastVNode.childFlags, nextVNode.childFlags, lastVNode.children, nextChildren, dom, context, isSVG && nextVNode.type !== 'foreignObject', null, lastVNode, lifecycle);\n }\n if (isFormElement) {\n processElement(nextFlags, nextVNode, dom, nextPropsOrEmpty, false, hasControlledValue);\n }\n var nextRef = nextVNode.ref;\n var lastRef = lastVNode.ref;\n if (lastRef !== nextRef) {\n unmountRef(lastRef);\n mountRef(nextRef, dom, lifecycle);\n }\n}\nfunction replaceOneVNodeWithMultipleVNodes(lastChildren, nextChildren, parentDOM, context, isSVG, lifecycle) {\n unmount(lastChildren);\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, findDOMfromVNode(lastChildren, true), lifecycle);\n removeVNodeDOM(lastChildren, parentDOM);\n}\nfunction patchChildren(lastChildFlags, nextChildFlags, lastChildren, nextChildren, parentDOM, context, isSVG, nextNode, parentVNode, lifecycle) {\n switch (lastChildFlags) {\n case 2 /* HasVNodeChildren */:\n switch (nextChildFlags) {\n case 2 /* HasVNodeChildren */:\n patch(lastChildren, nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n remove(lastChildren, parentDOM);\n break;\n case 16 /* HasTextChildren */:\n unmount(lastChildren);\n setTextContent(parentDOM, nextChildren);\n break;\n default:\n replaceOneVNodeWithMultipleVNodes(lastChildren, nextChildren, parentDOM, context, isSVG, lifecycle);\n break;\n }\n break;\n case 1 /* HasInvalidChildren */:\n switch (nextChildFlags) {\n case 2 /* HasVNodeChildren */:\n mount(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n break;\n case 16 /* HasTextChildren */:\n setTextContent(parentDOM, nextChildren);\n break;\n default:\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n }\n break;\n case 16 /* HasTextChildren */:\n switch (nextChildFlags) {\n case 16 /* HasTextChildren */:\n patchSingleTextChild(lastChildren, nextChildren, parentDOM);\n break;\n case 2 /* HasVNodeChildren */:\n clearDOM(parentDOM);\n mount(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n clearDOM(parentDOM);\n break;\n default:\n clearDOM(parentDOM);\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n }\n break;\n default:\n switch (nextChildFlags) {\n case 16 /* HasTextChildren */:\n unmountAllChildren(lastChildren);\n setTextContent(parentDOM, nextChildren);\n break;\n case 2 /* HasVNodeChildren */:\n removeAllChildren(parentDOM, parentVNode, lastChildren);\n mount(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n removeAllChildren(parentDOM, parentVNode, lastChildren);\n break;\n default:\n var lastLength = lastChildren.length | 0;\n var nextLength = nextChildren.length | 0;\n // Fast path's for both algorithms\n if (lastLength === 0) {\n if (nextLength > 0) {\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n }\n else if (nextLength === 0) {\n removeAllChildren(parentDOM, parentVNode, lastChildren);\n }\n else if (nextChildFlags === 8 /* HasKeyedChildren */ && lastChildFlags === 8 /* HasKeyedChildren */) {\n patchKeyedChildren(lastChildren, nextChildren, parentDOM, context, isSVG, lastLength, nextLength, nextNode, parentVNode, lifecycle);\n }\n else {\n patchNonKeyedChildren(lastChildren, nextChildren, parentDOM, context, isSVG, lastLength, nextLength, nextNode, lifecycle);\n }\n break;\n }\n break;\n }\n}\nfunction createDidUpdate(instance, lastProps, lastState, snapshot, lifecycle) {\n lifecycle.push(function () {\n instance.componentDidUpdate(lastProps, lastState, snapshot);\n });\n}\nfunction updateClassComponent(instance, nextState, nextProps, parentDOM, context, isSVG, force, nextNode, lifecycle) {\n var lastState = instance.state;\n var lastProps = instance.props;\n var usesNewAPI = Boolean(instance.$N);\n var hasSCU = isFunction(instance.shouldComponentUpdate);\n if (usesNewAPI) {\n nextState = createDerivedState(instance, nextProps, nextState !== lastState ? combineFrom(lastState, nextState) : nextState);\n }\n if (force || !hasSCU || (hasSCU && instance.shouldComponentUpdate(nextProps, nextState, context))) {\n if (!usesNewAPI && isFunction(instance.componentWillUpdate)) {\n instance.componentWillUpdate(nextProps, nextState, context);\n }\n instance.props = nextProps;\n instance.state = nextState;\n instance.context = context;\n var snapshot = null;\n var nextInput = renderNewInput(instance, nextProps, context);\n if (usesNewAPI && isFunction(instance.getSnapshotBeforeUpdate)) {\n snapshot = instance.getSnapshotBeforeUpdate(lastProps, lastState);\n }\n patch(instance.$LI, nextInput, parentDOM, instance.$CX, isSVG, nextNode, lifecycle);\n // Dont update Last input, until patch has been succesfully executed\n instance.$LI = nextInput;\n if (isFunction(instance.componentDidUpdate)) {\n createDidUpdate(instance, lastProps, lastState, snapshot, lifecycle);\n }\n }\n else {\n instance.props = nextProps;\n instance.state = nextState;\n instance.context = context;\n }\n}\nfunction patchClassComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var instance = (nextVNode.children = lastVNode.children);\n // If Component has crashed, ignore it to stay functional\n if (isNull(instance)) {\n return;\n }\n instance.$L = lifecycle;\n var nextProps = nextVNode.props || EMPTY_OBJ;\n var nextRef = nextVNode.ref;\n var lastRef = lastVNode.ref;\n var nextState = instance.state;\n if (!instance.$N) {\n if (isFunction(instance.componentWillReceiveProps)) {\n instance.$BR = true;\n instance.componentWillReceiveProps(nextProps, context);\n // If instance component was removed during its own update do nothing.\n if (instance.$UN) {\n return;\n }\n instance.$BR = false;\n }\n if (!isNull(instance.$PS)) {\n nextState = combineFrom(nextState, instance.$PS);\n instance.$PS = null;\n }\n }\n updateClassComponent(instance, nextState, nextProps, parentDOM, context, isSVG, false, nextNode, lifecycle);\n if (lastRef !== nextRef) {\n unmountRef(lastRef);\n mountRef(nextRef, instance, lifecycle);\n }\n}\nfunction patchFunctionalComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var shouldUpdate = true;\n var nextProps = nextVNode.props || EMPTY_OBJ;\n var nextRef = nextVNode.ref;\n var lastProps = lastVNode.props;\n var nextHooksDefined = !isNullOrUndef(nextRef);\n var lastInput = lastVNode.children;\n if (nextHooksDefined && isFunction(nextRef.onComponentShouldUpdate)) {\n shouldUpdate = nextRef.onComponentShouldUpdate(lastProps, nextProps);\n }\n if (shouldUpdate !== false) {\n if (nextHooksDefined && isFunction(nextRef.onComponentWillUpdate)) {\n nextRef.onComponentWillUpdate(lastProps, nextProps);\n }\n var nextInput = normalizeRoot(renderFunctionalComponent(nextVNode, context));\n patch(lastInput, nextInput, parentDOM, context, isSVG, nextNode, lifecycle);\n nextVNode.children = nextInput;\n if (nextHooksDefined && isFunction(nextRef.onComponentDidUpdate)) {\n nextRef.onComponentDidUpdate(lastProps, nextProps);\n }\n }\n else {\n nextVNode.children = lastInput;\n }\n}\nfunction patchText(lastVNode, nextVNode) {\n var nextText = nextVNode.children;\n var dom = (nextVNode.dom = lastVNode.dom);\n if (nextText !== lastVNode.children) {\n dom.nodeValue = nextText;\n }\n}\nfunction patchNonKeyedChildren(lastChildren, nextChildren, dom, context, isSVG, lastChildrenLength, nextChildrenLength, nextNode, lifecycle) {\n var commonLength = lastChildrenLength > nextChildrenLength ? nextChildrenLength : lastChildrenLength;\n var i = 0;\n var nextChild;\n var lastChild;\n for (; i < commonLength; ++i) {\n nextChild = nextChildren[i];\n lastChild = lastChildren[i];\n if (nextChild.flags & 16384 /* InUse */) {\n nextChild = nextChildren[i] = directClone(nextChild);\n }\n patch(lastChild, nextChild, dom, context, isSVG, nextNode, lifecycle);\n lastChildren[i] = nextChild;\n }\n if (lastChildrenLength < nextChildrenLength) {\n for (i = commonLength; i < nextChildrenLength; ++i) {\n nextChild = nextChildren[i];\n if (nextChild.flags & 16384 /* InUse */) {\n nextChild = nextChildren[i] = directClone(nextChild);\n }\n mount(nextChild, dom, context, isSVG, nextNode, lifecycle);\n }\n }\n else if (lastChildrenLength > nextChildrenLength) {\n for (i = commonLength; i < lastChildrenLength; ++i) {\n remove(lastChildren[i], dom);\n }\n }\n}\nfunction patchKeyedChildren(a, b, dom, context, isSVG, aLength, bLength, outerEdge, parentVNode, lifecycle) {\n var aEnd = aLength - 1;\n var bEnd = bLength - 1;\n var j = 0;\n var aNode = a[j];\n var bNode = b[j];\n var nextPos;\n var nextNode;\n // Step 1\n // tslint:disable-next-line\n outer: {\n // Sync nodes with the same key at the beginning.\n while (aNode.key === bNode.key) {\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n a[j] = bNode;\n ++j;\n if (j > aEnd || j > bEnd) {\n break outer;\n }\n aNode = a[j];\n bNode = b[j];\n }\n aNode = a[aEnd];\n bNode = b[bEnd];\n // Sync nodes with the same key at the end.\n while (aNode.key === bNode.key) {\n if (bNode.flags & 16384 /* InUse */) {\n b[bEnd] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n a[aEnd] = bNode;\n aEnd--;\n bEnd--;\n if (j > aEnd || j > bEnd) {\n break outer;\n }\n aNode = a[aEnd];\n bNode = b[bEnd];\n }\n }\n if (j > aEnd) {\n if (j <= bEnd) {\n nextPos = bEnd + 1;\n nextNode = nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge;\n while (j <= bEnd) {\n bNode = b[j];\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n ++j;\n mount(bNode, dom, context, isSVG, nextNode, lifecycle);\n }\n }\n }\n else if (j > bEnd) {\n while (j <= aEnd) {\n remove(a[j++], dom);\n }\n }\n else {\n patchKeyedChildrenComplex(a, b, context, aLength, bLength, aEnd, bEnd, j, dom, isSVG, outerEdge, parentVNode, lifecycle);\n }\n}\nfunction patchKeyedChildrenComplex(a, b, context, aLength, bLength, aEnd, bEnd, j, dom, isSVG, outerEdge, parentVNode, lifecycle) {\n var aNode;\n var bNode;\n var nextPos;\n var i = 0;\n var aStart = j;\n var bStart = j;\n var aLeft = aEnd - j + 1;\n var bLeft = bEnd - j + 1;\n var sources = new Int32Array(bLeft + 1);\n // Keep track if its possible to remove whole DOM using textContent = '';\n var canRemoveWholeContent = aLeft === aLength;\n var moved = false;\n var pos = 0;\n var patched = 0;\n // When sizes are small, just loop them through\n if (bLength < 4 || (aLeft | bLeft) < 32) {\n for (i = aStart; i <= aEnd; ++i) {\n aNode = a[i];\n if (patched < bLeft) {\n for (j = bStart; j <= bEnd; j++) {\n bNode = b[j];\n if (aNode.key === bNode.key) {\n sources[j - bStart] = i + 1;\n if (canRemoveWholeContent) {\n canRemoveWholeContent = false;\n while (aStart < i) {\n remove(a[aStart++], dom);\n }\n }\n if (pos > j) {\n moved = true;\n }\n else {\n pos = j;\n }\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n ++patched;\n break;\n }\n }\n if (!canRemoveWholeContent && j > bEnd) {\n remove(aNode, dom);\n }\n }\n else if (!canRemoveWholeContent) {\n remove(aNode, dom);\n }\n }\n }\n else {\n var keyIndex = {};\n // Map keys by their index\n for (i = bStart; i <= bEnd; ++i) {\n keyIndex[b[i].key] = i;\n }\n // Try to patch same keys\n for (i = aStart; i <= aEnd; ++i) {\n aNode = a[i];\n if (patched < bLeft) {\n j = keyIndex[aNode.key];\n if (j !== void 0) {\n if (canRemoveWholeContent) {\n canRemoveWholeContent = false;\n while (i > aStart) {\n remove(a[aStart++], dom);\n }\n }\n sources[j - bStart] = i + 1;\n if (pos > j) {\n moved = true;\n }\n else {\n pos = j;\n }\n bNode = b[j];\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n ++patched;\n }\n else if (!canRemoveWholeContent) {\n remove(aNode, dom);\n }\n }\n else if (!canRemoveWholeContent) {\n remove(aNode, dom);\n }\n }\n }\n // fast-path: if nothing patched remove all old and add all new\n if (canRemoveWholeContent) {\n removeAllChildren(dom, parentVNode, a);\n mountArrayChildren(b, dom, context, isSVG, outerEdge, lifecycle);\n }\n else if (moved) {\n var seq = lis_algorithm(sources);\n j = seq.length - 1;\n for (i = bLeft - 1; i >= 0; i--) {\n if (sources[i] === 0) {\n pos = i + bStart;\n bNode = b[pos];\n if (bNode.flags & 16384 /* InUse */) {\n b[pos] = bNode = directClone(bNode);\n }\n nextPos = pos + 1;\n mount(bNode, dom, context, isSVG, nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge, lifecycle);\n }\n else if (j < 0 || i !== seq[j]) {\n pos = i + bStart;\n bNode = b[pos];\n nextPos = pos + 1;\n moveVNodeDOM(bNode, dom, nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge);\n }\n else {\n j--;\n }\n }\n }\n else if (patched !== bLeft) {\n // when patched count doesn't match b length we need to insert those new ones\n // loop backwards so we can use insertBefore\n for (i = bLeft - 1; i >= 0; i--) {\n if (sources[i] === 0) {\n pos = i + bStart;\n bNode = b[pos];\n if (bNode.flags & 16384 /* InUse */) {\n b[pos] = bNode = directClone(bNode);\n }\n nextPos = pos + 1;\n mount(bNode, dom, context, isSVG, nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge, lifecycle);\n }\n }\n }\n}\nvar result;\nvar p;\nvar maxLen = 0;\n// https://en.wikipedia.org/wiki/Longest_increasing_subsequence\nfunction lis_algorithm(arr) {\n var arrI = 0;\n var i = 0;\n var j = 0;\n var k = 0;\n var u = 0;\n var v = 0;\n var c = 0;\n var len = arr.length;\n if (len > maxLen) {\n maxLen = len;\n result = new Int32Array(len);\n p = new Int32Array(len);\n }\n for (; i < len; ++i) {\n arrI = arr[i];\n if (arrI !== 0) {\n j = result[k];\n if (arr[j] < arrI) {\n p[i] = j;\n result[++k] = i;\n continue;\n }\n u = 0;\n v = k;\n while (u < v) {\n c = (u + v) >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n }\n else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = k + 1;\n var seq = new Int32Array(u);\n v = result[u - 1];\n while (u-- > 0) {\n seq[u] = v;\n v = p[v];\n result[u] = 0;\n }\n return seq;\n}\n\nvar hasDocumentAvailable = typeof document !== 'undefined';\nif (hasDocumentAvailable) {\n /*\n * Defining $EV and $V properties on Node.prototype\n * fixes v8 \"wrong map\" de-optimization\n */\n if (window.Node) {\n Node.prototype.$EV = null;\n Node.prototype.$V = null;\n }\n}\nfunction __render(input, parentDOM, callback, context) {\n var lifecycle = [];\n var rootInput = parentDOM.$V;\n renderCheck.v = true;\n if (isNullOrUndef(rootInput)) {\n if (!isNullOrUndef(input)) {\n if (input.flags & 16384 /* InUse */) {\n input = directClone(input);\n }\n mount(input, parentDOM, context, false, null, lifecycle);\n parentDOM.$V = input;\n rootInput = input;\n }\n }\n else {\n if (isNullOrUndef(input)) {\n remove(rootInput, parentDOM);\n parentDOM.$V = null;\n }\n else {\n if (input.flags & 16384 /* InUse */) {\n input = directClone(input);\n }\n patch(rootInput, input, parentDOM, context, false, null, lifecycle);\n rootInput = parentDOM.$V = input;\n }\n }\n callAll(lifecycle);\n renderCheck.v = false;\n if (isFunction(callback)) {\n callback();\n }\n if (isFunction(options.renderComplete)) {\n options.renderComplete(rootInput, parentDOM);\n }\n}\nfunction render(input, parentDOM, callback, context) {\n if ( callback === void 0 ) callback = null;\n if ( context === void 0 ) context = EMPTY_OBJ;\n\n __render(input, parentDOM, callback, context);\n}\nfunction createRenderer(parentDOM) {\n return function renderer(lastInput, nextInput, callback, context) {\n if (!parentDOM) {\n parentDOM = lastInput;\n }\n render(nextInput, parentDOM, callback, context);\n };\n}\n\nvar QUEUE = [];\nvar nextTick = typeof Promise !== 'undefined'\n ? Promise.resolve().then.bind(Promise.resolve())\n : function (a) {\n window.setTimeout(a, 0);\n };\nvar microTaskPending = false;\nfunction queueStateChanges(component, newState, callback, force) {\n var pending = component.$PS;\n if (isFunction(newState)) {\n newState = newState(pending ? combineFrom(component.state, pending) : component.state, component.props, component.context);\n }\n if (isNullOrUndef(pending)) {\n component.$PS = newState;\n }\n else {\n for (var stateKey in newState) {\n pending[stateKey] = newState[stateKey];\n }\n }\n if (!component.$BR) {\n if (!renderCheck.v) {\n if (QUEUE.length === 0) {\n applyState(component, force);\n if (isFunction(callback)) {\n callback.call(component);\n }\n return;\n }\n }\n if (QUEUE.indexOf(component) === -1) {\n QUEUE.push(component);\n }\n if (force) {\n component.$F = true;\n }\n if (!microTaskPending) {\n microTaskPending = true;\n nextTick(rerender);\n }\n if (isFunction(callback)) {\n var QU = component.$QU;\n if (!QU) {\n QU = component.$QU = [];\n }\n QU.push(callback);\n }\n }\n else if (isFunction(callback)) {\n component.$L.push(callback.bind(component));\n }\n}\nfunction callSetStateCallbacks(component) {\n var queue = component.$QU;\n for (var i = 0; i < queue.length; ++i) {\n queue[i].call(component);\n }\n component.$QU = null;\n}\nfunction rerender() {\n var component;\n microTaskPending = false;\n while ((component = QUEUE.shift())) {\n if (!component.$UN) {\n var force = component.$F;\n component.$F = false;\n applyState(component, force);\n if (component.$QU) {\n callSetStateCallbacks(component);\n }\n }\n }\n}\nfunction applyState(component, force) {\n if (force || !component.$BR) {\n var pendingState = component.$PS;\n component.$PS = null;\n var lifecycle = [];\n renderCheck.v = true;\n updateClassComponent(component, combineFrom(component.state, pendingState), component.props, findDOMfromVNode(component.$LI, true).parentNode, component.context, component.$SVG, force, null, lifecycle);\n callAll(lifecycle);\n renderCheck.v = false;\n }\n else {\n component.state = component.$PS;\n component.$PS = null;\n }\n}\nvar Component = function Component(props, context) {\n // Public\n this.state = null;\n // Internal properties\n this.$BR = false; // BLOCK RENDER\n this.$BS = true; // BLOCK STATE\n this.$PS = null; // PENDING STATE (PARTIAL or FULL)\n this.$LI = null; // LAST INPUT\n this.$UN = false; // UNMOUNTED\n this.$CX = null; // CHILDCONTEXT\n this.$QU = null; // QUEUE\n this.$N = false; // Uses new lifecycle API Flag\n this.$L = null; // Current lifecycle of this component\n this.$SVG = false; // Flag to keep track if component is inside SVG tree\n this.$F = false; // Force update flag\n this.props = props || EMPTY_OBJ;\n this.context = context || EMPTY_OBJ; // context should not be mutable\n};\nComponent.prototype.forceUpdate = function forceUpdate (callback) {\n if (this.$UN) {\n return;\n }\n // Do not allow double render during force update\n queueStateChanges(this, {}, callback, true);\n};\nComponent.prototype.setState = function setState (newState, callback) {\n if (this.$UN) {\n return;\n }\n if (!this.$BS) {\n queueStateChanges(this, newState, callback, false);\n }\n};\nComponent.prototype.render = function render (_nextProps, _nextState, _nextContext) {\n return null;\n};\n\nvar version = \"7.4.11\";\n\nexport { Component, EMPTY_OBJ, Fragment, createClassComponentInstance as _CI, normalizeRoot as _HI, mount as _M, mountClassComponentCallbacks as _MCCC, mountElement as _ME, mountFunctionalComponentCallbacks as _MFCC, mountProps as _MP, mountRef as _MR, renderFunctionalComponent as _RFC, __render, createComponentVNode, createFragment, createPortal, createRef, createRenderer, createTextVNode, createVNode, directClone, findDOMfromVNode, forwardRef, getFlagsForElementVnode, linkEvent, normalizeProps, options, render, rerender, version };\n","import { getFlagsForElementVnode, createComponentVNode, createFragment, createVNode } from 'inferno';\n\nfunction isNullOrUndef(o) {\n return o === void 0 || o === null;\n}\nfunction isString(o) {\n return typeof o === 'string';\n}\nfunction isUndefined(o) {\n return o === void 0;\n}\n\nvar componentHooks = {\n onComponentDidMount: 1,\n onComponentDidUpdate: 1,\n onComponentShouldUpdate: 1,\n onComponentWillMount: 1,\n onComponentWillUnmount: 1,\n onComponentWillUpdate: 1\n};\nfunction createElement(type, props, _children) {\n var arguments$1 = arguments;\n var children;\n var ref = null;\n var key = null;\n var className = null;\n var flags = 0;\n var newProps;\n var childLen = arguments.length - 2;\n if (childLen === 1) {\n children = _children;\n }\n else if (childLen > 1) {\n children = [];\n while (childLen-- > 0) {\n children[childLen] = arguments$1[childLen + 2];\n }\n }\n if (isString(type)) {\n flags = getFlagsForElementVnode(type);\n if (!isNullOrUndef(props)) {\n newProps = {};\n for (var prop in props) {\n if (prop === 'className' || prop === 'class') {\n className = props[prop];\n }\n else if (prop === 'key') {\n key = props.key;\n }\n else if (prop === 'children' && isUndefined(children)) {\n children = props.children; // always favour children args over props\n }\n else if (prop === 'ref') {\n ref = props.ref;\n }\n else {\n if (prop === 'contenteditable') {\n flags |= 4096 /* ContentEditable */;\n }\n newProps[prop] = props[prop];\n }\n }\n }\n }\n else {\n flags = 2 /* ComponentUnknown */;\n if (!isUndefined(children)) {\n if (!props) {\n props = {};\n }\n props.children = children;\n }\n if (!isNullOrUndef(props)) {\n newProps = {};\n for (var prop$1 in props) {\n if (prop$1 === 'key') {\n key = props.key;\n }\n else if (prop$1 === 'ref') {\n ref = props.ref;\n }\n else if (componentHooks[prop$1] === 1) {\n if (!ref) {\n ref = {};\n }\n ref[prop$1] = props[prop$1];\n }\n else {\n newProps[prop$1] = props[prop$1];\n }\n }\n }\n return createComponentVNode(flags, type, newProps, key, ref);\n }\n if (flags & 8192 /* Fragment */) {\n return createFragment(childLen === 1 ? [children] : children, 0 /* UnknownChildren */, key);\n }\n return createVNode(flags, type, className, children, 0 /* UnknownChildren */, newProps, key, ref);\n}\n\nexport { createElement };\n","import { render, EMPTY_OBJ, _CI, _MCCC, _HI, _RFC, _MFCC, _ME, _MP, _MR, _M } from 'inferno';\n\nvar ERROR_MSG = 'a runtime error occured! Use Inferno in development environment to find the error.';\nfunction isNullOrUndef(o) {\n return o === void 0 || o === null;\n}\nfunction isInvalid(o) {\n return o === null || o === false || o === true || o === void 0;\n}\nfunction isFunction(o) {\n return typeof o === 'function';\n}\nfunction isNull(o) {\n return o === null;\n}\nfunction throwError(message) {\n if (!message) {\n message = ERROR_MSG;\n }\n throw new Error((\"Inferno Error: \" + message));\n}\n\nfunction isSameInnerHTML(dom, innerHTML) {\n var tempdom = document.createElement('i');\n tempdom.innerHTML = innerHTML;\n return tempdom.innerHTML === dom.innerHTML;\n}\nfunction findLastDOMFromVNode(vNode) {\n var flags;\n var children;\n while (vNode) {\n flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n return vNode.dom;\n }\n children = vNode.children;\n if (flags & 8192 /* Fragment */) {\n vNode = vNode.childFlags === 2 /* HasVNodeChildren */ ? children : children[children.length - 1];\n }\n else if (flags & 4 /* ComponentClass */) {\n vNode = children.$LI;\n }\n else {\n vNode = children;\n }\n }\n return null;\n}\nfunction isSamePropsInnerHTML(dom, props) {\n return Boolean(props && props.dangerouslySetInnerHTML && props.dangerouslySetInnerHTML.__html && isSameInnerHTML(dom, props.dangerouslySetInnerHTML.__html));\n}\nfunction hydrateComponent(vNode, parentDOM, dom, context, isSVG, isClass, lifecycle) {\n var type = vNode.type;\n var ref = vNode.ref;\n var props = vNode.props || EMPTY_OBJ;\n var currentNode;\n if (isClass) {\n var instance = _CI(vNode, type, props, context, isSVG, lifecycle);\n var input = instance.$LI;\n currentNode = hydrateVNode(input, parentDOM, dom, instance.$CX, isSVG, lifecycle);\n _MCCC(ref, instance, lifecycle);\n }\n else {\n var input$1 = _HI(_RFC(vNode, context));\n currentNode = hydrateVNode(input$1, parentDOM, dom, context, isSVG, lifecycle);\n vNode.children = input$1;\n _MFCC(vNode, lifecycle);\n }\n return currentNode;\n}\nfunction hydrateChildren(parentVNode, parentNode, currentNode, context, isSVG, lifecycle) {\n var childFlags = parentVNode.childFlags;\n var children = parentVNode.children;\n var props = parentVNode.props;\n var flags = parentVNode.flags;\n if (childFlags !== 1 /* HasInvalidChildren */) {\n if (childFlags === 2 /* HasVNodeChildren */) {\n if (isNull(currentNode)) {\n _M(children, parentNode, context, isSVG, null, lifecycle);\n }\n else {\n currentNode = hydrateVNode(children, parentNode, currentNode, context, isSVG, lifecycle);\n currentNode = currentNode ? currentNode.nextSibling : null;\n }\n }\n else if (childFlags === 16 /* HasTextChildren */) {\n if (isNull(currentNode)) {\n parentNode.appendChild(document.createTextNode(children));\n }\n else if (parentNode.childNodes.length !== 1 || currentNode.nodeType !== 3) {\n parentNode.textContent = children;\n }\n else {\n if (currentNode.nodeValue !== children) {\n currentNode.nodeValue = children;\n }\n }\n currentNode = null;\n }\n else if (childFlags & 12 /* MultipleChildren */) {\n var prevVNodeIsTextNode = false;\n for (var i = 0, len = children.length; i < len; ++i) {\n var child = children[i];\n if (isNull(currentNode) || (prevVNodeIsTextNode && (child.flags & 16 /* Text */) > 0)) {\n _M(child, parentNode, context, isSVG, currentNode, lifecycle);\n }\n else {\n currentNode = hydrateVNode(child, parentNode, currentNode, context, isSVG, lifecycle);\n currentNode = currentNode ? currentNode.nextSibling : null;\n }\n prevVNodeIsTextNode = (child.flags & 16 /* Text */) > 0;\n }\n }\n // clear any other DOM nodes, there should be only a single entry for the root\n if ((flags & 8192 /* Fragment */) === 0) {\n var nextSibling = null;\n while (currentNode) {\n nextSibling = currentNode.nextSibling;\n parentNode.removeChild(currentNode);\n currentNode = nextSibling;\n }\n }\n }\n else if (!isNull(parentNode.firstChild) && !isSamePropsInnerHTML(parentNode, props)) {\n parentNode.textContent = ''; // dom has content, but VNode has no children remove everything from DOM\n if (flags & 448 /* FormElement */) {\n // If element is form element, we need to clear defaultValue also\n parentNode.defaultValue = '';\n }\n }\n}\nfunction hydrateElement(vNode, parentDOM, dom, context, isSVG, lifecycle) {\n var props = vNode.props;\n var className = vNode.className;\n var flags = vNode.flags;\n var ref = vNode.ref;\n isSVG = isSVG || (flags & 32 /* SvgElement */) > 0;\n if (dom.nodeType !== 1 || dom.tagName.toLowerCase() !== vNode.type) {\n _ME(vNode, null, context, isSVG, null, lifecycle);\n parentDOM.replaceChild(vNode.dom, dom);\n }\n else {\n vNode.dom = dom;\n hydrateChildren(vNode, dom, dom.firstChild, context, isSVG, lifecycle);\n if (!isNull(props)) {\n _MP(vNode, flags, props, dom, isSVG);\n }\n if (isNullOrUndef(className)) {\n if (dom.className !== '') {\n dom.removeAttribute('class');\n }\n }\n else if (isSVG) {\n dom.setAttribute('class', className);\n }\n else {\n dom.className = className;\n }\n _MR(ref, dom, lifecycle);\n }\n return vNode.dom;\n}\nfunction hydrateText(vNode, parentDOM, dom) {\n if (dom.nodeType !== 3) {\n parentDOM.replaceChild((vNode.dom = document.createTextNode(vNode.children)), dom);\n }\n else {\n var text = vNode.children;\n if (dom.nodeValue !== text) {\n dom.nodeValue = text;\n }\n vNode.dom = dom;\n }\n return vNode.dom;\n}\nfunction hydrateFragment(vNode, parentDOM, dom, context, isSVG, lifecycle) {\n var children = vNode.children;\n if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n hydrateText(children, parentDOM, dom);\n return children.dom;\n }\n hydrateChildren(vNode, parentDOM, dom, context, isSVG, lifecycle);\n return findLastDOMFromVNode(children[children.length - 1]);\n}\nfunction hydrateVNode(vNode, parentDOM, currentDom, context, isSVG, lifecycle) {\n var flags = (vNode.flags |= 16384 /* InUse */);\n if (flags & 14 /* Component */) {\n return hydrateComponent(vNode, parentDOM, currentDom, context, isSVG, (flags & 4 /* ComponentClass */) > 0, lifecycle);\n }\n if (flags & 481 /* Element */) {\n return hydrateElement(vNode, parentDOM, currentDom, context, isSVG, lifecycle);\n }\n if (flags & 16 /* Text */) {\n return hydrateText(vNode, parentDOM, currentDom);\n }\n if (flags & 512 /* Void */) {\n return (vNode.dom = currentDom);\n }\n if (flags & 8192 /* Fragment */) {\n return hydrateFragment(vNode, parentDOM, currentDom, context, isSVG, lifecycle);\n }\n throwError();\n return null;\n}\nfunction hydrate(input, parentDOM, callback) {\n var dom = parentDOM.firstChild;\n if (isNull(dom)) {\n render(input, parentDOM, callback);\n }\n else {\n var lifecycle = [];\n if (!isInvalid(input)) {\n dom = hydrateVNode(input, parentDOM, dom, {}, false, lifecycle);\n }\n // clear any other DOM nodes, there should be only a single entry for the root\n while (dom && (dom = dom.nextSibling)) {\n parentDOM.removeChild(dom);\n }\n if (lifecycle.length > 0) {\n var listener;\n while ((listener = lifecycle.shift()) !== undefined) {\n listener();\n }\n }\n }\n parentDOM.$V = input;\n if (isFunction(callback)) {\n callback();\n }\n}\n\nexport { hydrate };\n","export const InfernoEffectHost = {\n lockCount: 0,\n lock() {\n this.lockCount++;\n },\n callbacks: [],\n callEffects() {\n this.lockCount--;\n if (this.lockCount < 0) {\n throw 'Unexpected Effect Call';\n }\n if (this.lockCount === 0) {\n const effects = this.callbacks;\n this.callbacks = [];\n effects.forEach((callback) => callback());\n }\n },\n};\n","import { Component, findDOMfromVNode } from 'inferno';\nimport { InfernoEffectHost } from './effect_host';\nconst areObjectsEqual = (firstObject, secondObject) => {\n const bothAreObjects = firstObject instanceof Object && secondObject instanceof Object;\n if (!bothAreObjects) {\n return firstObject === secondObject;\n }\n const firstObjectKeys = Object.keys(firstObject);\n const secondObjectKeys = Object.keys(secondObject);\n if (firstObjectKeys.length !== secondObjectKeys.length) {\n return false;\n }\n const hasDifferentElement = firstObjectKeys.some((key) => firstObject[key] !== secondObject[key]);\n return !hasDifferentElement;\n};\nexport class BaseInfernoComponent extends Component {\n constructor() {\n super(...arguments);\n this._pendingContext = this.context;\n }\n componentWillReceiveProps(_, context) {\n this._pendingContext = context !== null && context !== void 0 ? context : {};\n }\n shouldComponentUpdate(nextProps, nextState) {\n return (!areObjectsEqual(this.props, nextProps)\n || !areObjectsEqual(this.state, nextState)\n || !areObjectsEqual(this.context, this._pendingContext));\n }\n}\nexport class InfernoComponent extends BaseInfernoComponent {\n constructor() {\n super(...arguments);\n this._effects = [];\n }\n createEffects() {\n return [];\n }\n updateEffects() { }\n componentWillMount() {\n InfernoEffectHost.lock();\n }\n componentWillUpdate() {\n InfernoEffectHost.lock();\n }\n componentDidMount() {\n InfernoEffectHost.callbacks.push(() => { this._effects = this.createEffects(); });\n InfernoEffectHost.callEffects();\n }\n componentDidUpdate() {\n InfernoEffectHost.callbacks.push(() => this.updateEffects());\n InfernoEffectHost.callEffects();\n }\n destroyEffects() {\n this._effects.forEach((e) => e.dispose());\n }\n componentWillUnmount() {\n this.destroyEffects();\n }\n}\nexport class InfernoWrapperComponent extends InfernoComponent {\n constructor() {\n super(...arguments);\n this.vDomElement = null;\n this.vDomPreviousClasses = [];\n this.vDomRemovedClasses = [];\n this.vDomAddedClasses = [];\n }\n vDomUpdateClasses() {\n var _a;\n const currentClasses = ((_a = this.vDomElement) === null || _a === void 0 ? void 0 : _a.className.length) ? this.vDomElement.className.split(' ')\n : [];\n const addedClasses = currentClasses.filter((className) => this.vDomPreviousClasses.indexOf(className) < 0);\n const removedClasses = this.vDomPreviousClasses.filter((className) => currentClasses.indexOf(className) < 0);\n addedClasses.forEach((value) => {\n const indexInRemoved = this.vDomRemovedClasses.indexOf(value);\n if (indexInRemoved > -1) {\n this.vDomRemovedClasses.splice(indexInRemoved, 1);\n }\n else {\n this.vDomAddedClasses.push(value);\n }\n });\n removedClasses.forEach((value) => {\n const indexInAdded = this.vDomAddedClasses.indexOf(value);\n if (indexInAdded > -1) {\n this.vDomAddedClasses.splice(indexInAdded, 1);\n }\n else {\n this.vDomRemovedClasses.push(value);\n }\n });\n }\n componentDidMount() {\n var _a;\n super.componentDidMount();\n this.vDomElement = findDOMfromVNode(this.$LI, true);\n this.vDomPreviousClasses = ((_a = this.vDomElement) === null || _a === void 0 ? void 0 : _a.className.length) ? this.vDomElement.className.split(' ')\n : [];\n }\n componentDidUpdate() {\n var _a;\n super.componentDidUpdate();\n const element = this.vDomElement;\n if (element !== null) {\n this.vDomAddedClasses.forEach((className) => element.classList.add(className));\n this.vDomRemovedClasses.forEach((className) => element.classList.remove(className));\n this.vDomPreviousClasses = ((_a = this.vDomElement) === null || _a === void 0 ? void 0 : _a.className.length) ? this.vDomElement.className.split(' ')\n : [];\n }\n }\n shouldComponentUpdate(nextProps, nextState) {\n const shouldUpdate = super.shouldComponentUpdate(nextProps, nextState);\n if (shouldUpdate) {\n this.vDomUpdateClasses();\n }\n return shouldUpdate;\n }\n}\n","export class InfernoEffect {\n constructor(effect, dependency) {\n this.effect = effect;\n this.dependency = dependency;\n this.destroy = effect();\n }\n update(dependency) {\n if (!dependency || dependency.some((d, i) => this.dependency[i] !== d)) {\n this.dispose();\n this.destroy = this.effect();\n }\n if (dependency) {\n this.dependency = dependency;\n }\n }\n dispose() {\n if (this.destroy) {\n this.destroy();\n }\n }\n}\n","import { createPortal } from 'inferno';\nexport const Portal = ({ container, children }) => {\n if (container) {\n return createPortal(children, container);\n }\n return null;\n};\n","const NUMBER_STYLES = [\n 'animation-iteration-count',\n 'border-image-outset',\n 'border-image-slice',\n 'border-image-width',\n 'box-flex',\n 'box-flex-group',\n 'box-ordinal-group',\n 'column-count',\n 'fill-opacity',\n 'flex',\n 'flex-grow',\n 'flex-negative',\n 'flex-order',\n 'flex-positive',\n 'flex-shrink',\n 'flood-opacity',\n 'font-weight',\n 'grid-column',\n 'grid-row',\n 'line-clamp',\n 'line-height',\n 'opacity',\n 'order',\n 'orphans',\n 'stop-opacity',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-miterlimit',\n 'stroke-opacity',\n 'stroke-width',\n 'tab-size',\n 'widows',\n 'z-index',\n 'zoom',\n];\nconst uppercasePattern = /[A-Z]/g;\nconst kebabCase = (str) => str.replace(uppercasePattern, '-$&').toLowerCase();\nconst isNumeric = (value) => {\n if (typeof value === 'number')\n return true;\n return !isNaN(Number(value));\n};\nconst getNumberStyleValue = (style, value) => (NUMBER_STYLES.indexOf(style) > -1 ? value : `${value}px`);\nexport const normalizeStyles = (styles) => {\n if (!(styles instanceof Object))\n return undefined;\n return Object.keys(styles).reduce((result, key) => {\n const value = styles[key];\n const kebabString = kebabCase(key);\n result[kebabString] = isNumeric(value)\n ? getNumberStyleValue(kebabString, value)\n : value;\n return result;\n }, {});\n};\n","/**\r\n * DevExtreme (esm/core/polyfills/number.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 number = hasWindow() ? getWindow().Number : Number;\r\nnumber.isFinite = number.isFinite || function(value) {\r\n return \"number\" === typeof value && isFinite(value)\r\n};\r\nexport default number;\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/template_wrapper.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 InfernoComponent,\r\n InfernoEffect\r\n} from \"@devextreme/vdom\";\r\nimport {\r\n findDOMfromVNode\r\n} from \"inferno\";\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n removeDifferentElements\r\n} from \"./utils\";\r\nimport Number from \"../../core/polyfills/number\";\r\nexport class TemplateWrapper extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.renderTemplate = this.renderTemplate.bind(this)\r\n }\r\n renderTemplate() {\r\n var node = findDOMfromVNode(this.$LI, true);\r\n if (node) {\r\n var {\r\n parentNode: parentNode\r\n } = node;\r\n if (parentNode) {\r\n var _this$props$model;\r\n parentNode.removeChild(node);\r\n var $parent = $(parentNode);\r\n var $children = $parent.contents();\r\n var {\r\n data: data,\r\n index: index\r\n } = null !== (_this$props$model = this.props.model) && void 0 !== _this$props$model ? _this$props$model : {\r\n data: {}\r\n };\r\n Object.keys(data).forEach(name => {\r\n if (data[name] && domAdapter.isNode(data[name])) {\r\n data[name] = getPublicElement($(data[name]))\r\n }\r\n });\r\n this.props.template.render(_extends({\r\n container: getPublicElement($parent),\r\n transclude: this.props.transclude\r\n }, !this.props.transclude ? {\r\n model: data\r\n } : {}, !this.props.transclude && Number.isFinite(index) ? {\r\n index: index\r\n } : {}));\r\n return () => {\r\n removeDifferentElements($children, $parent.contents());\r\n parentNode.appendChild(node)\r\n }\r\n }\r\n }\r\n return\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.renderTemplate, [this.props.template, this.props.model])]\r\n }\r\n updateEffects() {\r\n this._effects[0].update([this.props.template, this.props.model])\r\n }\r\n componentWillUnmount() {}\r\n render() {\r\n return null\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/utils.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nexport var addAttributes = ($element, attributes) => {\r\n each(attributes, (_, _ref) => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n if (\"class\" === name) {\r\n $element.addClass(value)\r\n } else {\r\n $element.attr(name, value)\r\n }\r\n })\r\n};\r\nexport function getAriaName(name) {\r\n return \"role\" === name || \"id\" === name ? name : \"aria-\".concat(name)\r\n}\r\nexport var removeDifferentElements = ($children, $newChildren) => {\r\n each($newChildren, (__, element) => {\r\n var hasComponent = false;\r\n each($children, (_, oldElement) => {\r\n if (element === oldElement) {\r\n hasComponent = true\r\n }\r\n });\r\n if (!hasComponent && element.parentNode) {\r\n element.parentNode.removeChild(element)\r\n }\r\n })\r\n};\r\nexport function updatePropsImmutable(props, option, name, fullName) {\r\n var currentPropsValue = option[name];\r\n var result = props;\r\n if (name !== fullName) {\r\n if (Array.isArray(currentPropsValue)) {\r\n var newArray = [...currentPropsValue];\r\n result[name] = newArray;\r\n var matchIndex = /\\[\\s*(\\d+)\\s*\\]/g.exec(fullName);\r\n if (matchIndex) {\r\n var index = parseInt(matchIndex[1], 10);\r\n if (isPlainObject(newArray[index])) {\r\n newArray[index] = _extends({}, currentPropsValue[index])\r\n }\r\n }\r\n return\r\n }\r\n }\r\n if (isPlainObject(currentPropsValue)) {\r\n result[name] = _extends({}, currentPropsValue)\r\n } else {\r\n result[name] = currentPropsValue\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/component.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 render,\r\n createRef\r\n} from \"inferno\";\r\nimport {\r\n createElement\r\n} from \"inferno-create-element\";\r\nimport {\r\n hydrate\r\n} from \"inferno-hydrate\";\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n isDefined,\r\n isRenderer\r\n} from \"../../core/utils/type\";\r\nimport {\r\n InfernoEffectHost\r\n} from \"@devextreme/vdom\";\r\nimport {\r\n TemplateWrapper\r\n} from \"./template_wrapper\";\r\nimport {\r\n updatePropsImmutable\r\n} from \"./utils\";\r\nvar setDefaultOptionValue = (options, defaultValueGetter) => name => {\r\n if (options.hasOwnProperty(name) && void 0 === options[name]) {\r\n options[name] = defaultValueGetter(name)\r\n }\r\n};\r\nexport default class ComponentWrapper extends DOMComponent {\r\n constructor() {\r\n super(...arguments);\r\n this._disposeMethodCalled = false\r\n }\r\n get _propsInfo() {\r\n return {\r\n allowNull: [],\r\n twoWay: [],\r\n elements: [],\r\n templates: [],\r\n props: []\r\n }\r\n }\r\n get viewRef() {\r\n var _this$_viewRef;\r\n return null === (_this$_viewRef = this._viewRef) || void 0 === _this$_viewRef ? void 0 : _this$_viewRef.current\r\n }\r\n _getDefaultOptions() {\r\n return extend(true, super._getDefaultOptions(), this._viewComponent.defaultProps, this._propsInfo.twoWay.reduce((options, _ref) => {\r\n var [name, defaultValue, eventName] = _ref;\r\n return _extends({}, options, {\r\n [name]: defaultValue,\r\n [eventName]: value => this.option(name, value)\r\n })\r\n }, {}), this._propsInfo.templates.reduce((options, name) => _extends({}, options, {\r\n [name]: null\r\n }), {}))\r\n }\r\n _initMarkup() {\r\n var props = this.getProps();\r\n this._renderWrapper(props)\r\n }\r\n _renderWrapper(props) {\r\n var containerNode = this.$element()[0];\r\n var parentNode = containerNode.parentNode;\r\n if (!this._isNodeReplaced) {\r\n var nextNode = null === containerNode || void 0 === containerNode ? void 0 : containerNode.nextSibling;\r\n var rootNode = domAdapter.createElement(\"div\");\r\n rootNode.appendChild(containerNode);\r\n var mountNode = this._documentFragment.appendChild(rootNode);\r\n InfernoEffectHost.lock();\r\n hydrate(createElement(this._viewComponent, props), mountNode);\r\n containerNode.$V = mountNode.$V;\r\n if (parentNode) {\r\n parentNode.insertBefore(containerNode, nextNode)\r\n }\r\n InfernoEffectHost.callEffects();\r\n this._isNodeReplaced = true\r\n } else {\r\n render(createElement(this._viewComponent, props), containerNode)\r\n }\r\n }\r\n _render() {}\r\n dispose() {\r\n this._disposeMethodCalled = true;\r\n super.dispose()\r\n }\r\n _dispose() {\r\n var containerNode = this.$element()[0];\r\n var parentNode = containerNode.parentNode;\r\n parentNode.$V = containerNode.$V;\r\n containerNode.$V = null;\r\n render(this._disposeMethodCalled ? createElement(containerNode.tagName, this.elementAttr) : null, parentNode);\r\n delete parentNode.$V;\r\n super._dispose()\r\n }\r\n get elementAttr() {\r\n var _this$_storedClasses;\r\n if (!this._elementAttr) {\r\n var {\r\n attributes: attributes\r\n } = this.$element()[0];\r\n this._elementAttr = _extends({}, Object.keys(attributes).reduce((a, key) => {\r\n if (attributes[key].specified) {\r\n a[attributes[key].name] = attributes[key].value\r\n }\r\n return a\r\n }, {}))\r\n }\r\n var elemStyle = this.$element()[0].style;\r\n var style = {};\r\n for (var i = 0; i < elemStyle.length; i++) {\r\n style[elemStyle[i]] = elemStyle.getPropertyValue(elemStyle[i])\r\n }\r\n this._elementAttr.style = style;\r\n var cssClass = this.$element()[0].getAttribute(\"class\") || \"\";\r\n this._storedClasses = null !== (_this$_storedClasses = this._storedClasses) && void 0 !== _this$_storedClasses ? _this$_storedClasses : cssClass.split(\" \").filter(name => 0 === name.indexOf(\"dx-\")).join(\" \");\r\n this._elementAttr.class = cssClass.split(\" \").filter(name => 0 !== name.indexOf(\"dx-\")).concat(this._storedClasses).join(\" \").trim();\r\n return this._elementAttr\r\n }\r\n _patchOptionValues(options) {\r\n var {\r\n allowNull: allowNull,\r\n elements: elements,\r\n props: props,\r\n twoWay: twoWay\r\n } = this._propsInfo;\r\n var defaultProps = this._viewComponent.defaultProps;\r\n var widgetProps = props.reduce((acc, propName) => {\r\n if (options.hasOwnProperty(propName)) {\r\n acc[propName] = options[propName]\r\n }\r\n return acc\r\n }, {\r\n ref: options.ref,\r\n children: options.children\r\n });\r\n allowNull.forEach(setDefaultOptionValue(widgetProps, () => null));\r\n Object.keys(defaultProps).forEach(setDefaultOptionValue(widgetProps, name => defaultProps[name]));\r\n twoWay.forEach(_ref2 => {\r\n var [name, defaultValue] = _ref2;\r\n return setDefaultOptionValue(widgetProps, () => defaultValue)(name)\r\n });\r\n elements.forEach(name => {\r\n if (name in widgetProps) {\r\n var value = widgetProps[name];\r\n if (isRenderer(value)) {\r\n widgetProps[name] = this._patchElementParam(value)\r\n }\r\n }\r\n });\r\n return widgetProps\r\n }\r\n getProps() {\r\n var {\r\n elementAttr: elementAttr\r\n } = this.option();\r\n var options = this._patchOptionValues(_extends({}, this._props, {\r\n ref: this._viewRef,\r\n children: this._extractDefaultSlot()\r\n }));\r\n this._propsInfo.templates.forEach(template => {\r\n options[template] = this._componentTemplates[template]\r\n });\r\n return _extends({}, options, this.elementAttr, elementAttr, {\r\n className: [...(this.elementAttr.class || \"\").split(\" \"), ...(elementAttr.class || \"\").split(\" \")].filter((c, i, a) => c && a.indexOf(c) === i).join(\" \").trim(),\r\n class: \"\"\r\n }, this._actionsMap)\r\n }\r\n _getActionConfigs() {\r\n return {}\r\n }\r\n _init() {\r\n super._init();\r\n this._props = _extends({}, this.option());\r\n this._documentFragment = domAdapter.createDocumentFragment();\r\n this._actionsMap = {};\r\n this._componentTemplates = {};\r\n this._propsInfo.templates.forEach(template => {\r\n this._componentTemplates[template] = this._createTemplateComponent(this._props[template])\r\n });\r\n Object.keys(this._getActionConfigs()).forEach(name => this._addAction(name));\r\n this._viewRef = createRef();\r\n this._supportedKeys = () => ({})\r\n }\r\n _addAction(event, action) {\r\n if (!action) {\r\n var actionByOption = this._createActionByOption(event, this._getActionConfigs()[event]);\r\n action = function(actArgs) {\r\n Object.keys(actArgs).forEach(name => {\r\n if (isDefined(actArgs[name]) && domAdapter.isNode(actArgs[name])) {\r\n actArgs[name] = getPublicElement($(actArgs[name]))\r\n }\r\n });\r\n return actionByOption(actArgs)\r\n }\r\n }\r\n this._actionsMap[event] = action\r\n }\r\n _optionChanged(option) {\r\n var {\r\n fullName: fullName,\r\n name: name,\r\n value: value\r\n } = option;\r\n updatePropsImmutable(this._props, this.option(), name, fullName);\r\n if (this._propsInfo.templates.indexOf(name) > -1) {\r\n this._componentTemplates[name] = this._createTemplateComponent(value)\r\n }\r\n if (name && this._getActionConfigs()[name]) {\r\n this._addAction(name)\r\n }\r\n super._optionChanged(option);\r\n this._invalidate()\r\n }\r\n _extractDefaultSlot() {\r\n if (this.option(\"_hasAnonymousTemplateContent\")) {\r\n return createElement(TemplateWrapper, {\r\n template: this._getTemplate(this._templateManager.anonymousTemplateName),\r\n transclude: true\r\n })\r\n }\r\n return null\r\n }\r\n _createTemplateComponent(templateOption) {\r\n if (!templateOption) {\r\n return\r\n }\r\n var template = this._getTemplate(templateOption);\r\n return model => createElement(TemplateWrapper, {\r\n template: template,\r\n model: model\r\n })\r\n }\r\n _wrapKeyDownHandler(handler) {\r\n return options => {\r\n var {\r\n keyName: keyName,\r\n originalEvent: originalEvent,\r\n which: which\r\n } = options;\r\n var keys = this._supportedKeys();\r\n var func = keys[keyName] || keys[which];\r\n if (void 0 !== func) {\r\n var _handler = func.bind(this);\r\n var result = _handler(originalEvent, options);\r\n if (!result) {\r\n originalEvent.cancel = true;\r\n return originalEvent\r\n }\r\n }\r\n return null === handler || void 0 === handler ? void 0 : handler(originalEvent, options)\r\n }\r\n }\r\n _toPublicElement(element) {\r\n return getPublicElement($(element))\r\n }\r\n _patchElementParam(value) {\r\n var _result, _result2;\r\n var result;\r\n try {\r\n result = $(value)\r\n } catch (error) {\r\n return value\r\n }\r\n result = null === (_result = result) || void 0 === _result ? void 0 : _result.get(0);\r\n return null !== (_result2 = result) && void 0 !== _result2 && _result2.nodeType ? result : value\r\n }\r\n repaint() {\r\n this._isNodeReplaced = false;\r\n this._refresh()\r\n }\r\n registerKeyHandler(key, handler) {\r\n var currentKeys = this._supportedKeys();\r\n this._supportedKeys = () => _extends({}, currentKeys, {\r\n [key]: handler\r\n })\r\n }\r\n setAria(name, value) {\r\n throw new Error('\"setAria\" method is deprecated, use \"aria\" property instead')\r\n }\r\n}\r\nComponentWrapper.IS_RENOVATED_WIDGET = false;\r\nComponentWrapper.IS_RENOVATED_WIDGET = true;\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/grid_pager.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 Component from \"./component\";\r\nexport class GridPagerWrapper extends Component {\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"pageIndex\":\r\n var pageIndexChanged = this.option(\"pageIndexChanged\");\r\n if (pageIndexChanged) {\r\n pageIndexChanged(args.value)\r\n }\r\n break;\r\n case \"pageSize\":\r\n var pageSizeChanged = this.option(\"pageSizeChanged\");\r\n if (pageSizeChanged) {\r\n pageSizeChanged(args.value)\r\n }\r\n }\r\n super._optionChanged(args)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/utils/get_element_width.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 getElementComputedStyle from \"../../../utils/get_computed_style\";\r\nimport {\r\n toNumber\r\n} from \"../../../utils/type_conversion\";\r\nexport function getElementStyle(name, element) {\r\n var computedStyle = getElementComputedStyle(element) || {};\r\n return toNumber(computedStyle[name])\r\n}\r\nexport function getElementWidth(element) {\r\n return getElementStyle(\"width\", element)\r\n}\r\nexport function getElementMinWidth(element) {\r\n return getElementStyle(\"minWidth\", element)\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/utils/get_computed_style.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 function getElementComputedStyle(el) {\r\n var _window$getComputedSt, _window;\r\n return el ? null === (_window$getComputedSt = (_window = window).getComputedStyle) || void 0 === _window$getComputedSt ? void 0 : _window$getComputedSt.call(_window, el) : null\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/utils/type_conversion.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 toNumber(attribute) {\r\n return attribute ? Number(attribute.replace(\"px\", \"\")) : 0\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/resizable_container.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"contentTemplate\", \"pagerProps\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/vdom\";\r\nimport resizeCallbacks from \"../../../core/utils/resize_callbacks\";\r\nimport {\r\n getElementWidth,\r\n getElementStyle\r\n} from \"./utils/get_element_width\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n infoTextRef: infoTextRef,\r\n infoTextVisible: infoTextVisible,\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n pageSizesRef: pageSizesRef,\r\n pagesRef: pagesRef,\r\n parentRef: parentRef,\r\n props: {\r\n contentTemplate: Content,\r\n pagerProps: pagerProps\r\n },\r\n restAttributes: restAttributes\r\n } = _ref;\r\n return Content(_extends({\r\n rootElementRef: parentRef,\r\n pageSizesRef: pageSizesRef,\r\n infoTextRef: infoTextRef,\r\n pagesRef: pagesRef,\r\n infoTextVisible: infoTextVisible,\r\n isLargeDisplayMode: isLargeDisplayMode\r\n }, _extends({}, pagerProps, restAttributes)))\r\n};\r\nexport function calculateAdaptivityProps(_ref2) {\r\n var {\r\n info: infoWidth,\r\n pageSizes: pageSizesWidth,\r\n pages: pagesWidth,\r\n parent: parentWidth\r\n } = _ref2;\r\n var minimalWidth = pageSizesWidth + pagesWidth + infoWidth;\r\n var infoTextVisible = parentWidth - minimalWidth > 0;\r\n var isLargeDisplayMode = parentWidth - (pageSizesWidth + pagesWidth) > 0;\r\n return {\r\n infoTextVisible: infoTextVisible,\r\n isLargeDisplayMode: isLargeDisplayMode\r\n }\r\n}\r\n\r\nfunction getElementsWidth(_ref3) {\r\n var {\r\n info: info,\r\n pageSizes: pageSizes,\r\n pages: pages,\r\n parent: parent\r\n } = _ref3;\r\n var parentWidth = getElementWidth(parent);\r\n var pageSizesWidth = getElementWidth(pageSizes);\r\n var infoWidth = getElementWidth(info);\r\n var pagesHtmlWidth = getElementWidth(pages);\r\n return {\r\n parent: parentWidth,\r\n pageSizes: pageSizesWidth,\r\n info: infoWidth + getElementStyle(\"marginLeft\", info) + getElementStyle(\"marginRight\", info),\r\n pages: pagesHtmlWidth\r\n }\r\n}\r\nexport var ResizableContainerProps = {};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class ResizableContainer extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this._currentState = null;\r\n this.parentRef = infernoCreateRef();\r\n this.pageSizesRef = infernoCreateRef();\r\n this.infoTextRef = infernoCreateRef();\r\n this.pagesRef = infernoCreateRef();\r\n this.state = {\r\n infoTextVisible: true,\r\n isLargeDisplayMode: true\r\n };\r\n this.subscribeToResize = this.subscribeToResize.bind(this);\r\n this.effectUpdateChildProps = this.effectUpdateChildProps.bind(this);\r\n this.updateAdaptivityProps = this.updateAdaptivityProps.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.subscribeToResize, [this.infoTextVisible, this.isLargeDisplayMode]), new InfernoEffect(this.effectUpdateChildProps, [this.infoTextVisible, this.isLargeDisplayMode, this.props.pagerProps, this.props.contentTemplate])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$, _this$_effects$2;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.infoTextVisible, this.isLargeDisplayMode]);\r\n null === (_this$_effects$2 = this._effects[1]) || void 0 === _this$_effects$2 ? void 0 : _this$_effects$2.update([this.infoTextVisible, this.isLargeDisplayMode, this.props.pagerProps, this.props.contentTemplate])\r\n }\r\n get infoTextVisible() {\r\n var state = this._currentState || this.state;\r\n return state.infoTextVisible\r\n }\r\n set_infoTextVisible(value) {\r\n this.setState(state => {\r\n this._currentState = state;\r\n var newValue = value();\r\n this._currentState = null;\r\n return {\r\n infoTextVisible: newValue\r\n }\r\n })\r\n }\r\n get isLargeDisplayMode() {\r\n var state = this._currentState || this.state;\r\n return state.isLargeDisplayMode\r\n }\r\n set_isLargeDisplayMode(value) {\r\n this.setState(state => {\r\n this._currentState = state;\r\n var newValue = value();\r\n this._currentState = null;\r\n return {\r\n isLargeDisplayMode: newValue\r\n }\r\n })\r\n }\r\n subscribeToResize() {\r\n var callback = () => {\r\n this.updateAdaptivityProps()\r\n };\r\n resizeCallbacks.add(callback);\r\n return () => {\r\n resizeCallbacks.remove(callback)\r\n }\r\n }\r\n effectUpdateChildProps() {\r\n var parentWidth = this.parentRef.current ? getElementWidth(this.parentRef.current) : 0;\r\n if (parentWidth > 0) {\r\n this.updateAdaptivityProps()\r\n }\r\n }\r\n updateAdaptivityProps() {\r\n var currentElementsWidth = getElementsWidth({\r\n parent: this.parentRef.current,\r\n pageSizes: this.pageSizesRef.current,\r\n info: this.infoTextRef.current,\r\n pages: this.pagesRef.current\r\n });\r\n if (isDefined(this.actualAdaptivityProps) && (this.actualAdaptivityProps.infoTextVisible !== this.infoTextVisible || this.actualAdaptivityProps.isLargeDisplayMode !== this.isLargeDisplayMode)) {\r\n return\r\n }\r\n var isEmpty = !isDefined(this.elementsWidth);\r\n if (isEmpty) {\r\n this.elementsWidth = {}\r\n }\r\n if (isEmpty || this.isLargeDisplayMode) {\r\n this.elementsWidth.pageSizes = currentElementsWidth.pageSizes;\r\n this.elementsWidth.pages = currentElementsWidth.pages\r\n }\r\n if (isEmpty || this.infoTextVisible) {\r\n this.elementsWidth.info = currentElementsWidth.info\r\n }\r\n this.actualAdaptivityProps = calculateAdaptivityProps(_extends({\r\n parent: currentElementsWidth.parent\r\n }, this.elementsWidth));\r\n this.set_infoTextVisible(() => this.actualAdaptivityProps.infoTextVisible);\r\n this.set_isLargeDisplayMode(() => this.actualAdaptivityProps.isLargeDisplayMode)\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n contentTemplate: getTemplate(props.contentTemplate)\r\n }),\r\n infoTextVisible: this.infoTextVisible,\r\n isLargeDisplayMode: this.isLargeDisplayMode,\r\n parentRef: this.parentRef,\r\n pageSizesRef: this.pageSizesRef,\r\n infoTextRef: this.infoTextRef,\r\n pagesRef: this.pagesRef,\r\n updateAdaptivityProps: this.updateAdaptivityProps,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nResizableContainer.defaultProps = _extends({}, ResizableContainerProps);\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/common/pager_props.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 PagerProps = {\r\n gridCompatibility: true,\r\n showInfo: false,\r\n displayMode: \"adaptive\",\r\n maxPagesCount: 10,\r\n pageCount: 10,\r\n visible: true,\r\n hasKnownLastPage: true,\r\n pagesNavigatorVisible: \"auto\",\r\n showPageSizes: true,\r\n pageSizes: [5, 10],\r\n showNavigationButtons: false,\r\n totalCount: 0,\r\n defaultPageIndex: 1,\r\n defaultPageSize: 5\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/info.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 = [\"defaultPageIndex\", \"infoText\", \"pageCount\", \"pageIndex\", \"pageIndexChange\", \"rootElementRef\", \"totalCount\"];\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/vdom\";\r\nimport {\r\n format\r\n} from \"../../../core/utils/string\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport {\r\n PagerProps\r\n} from \"./common/pager_props\";\r\nexport var PAGER_INFO_CLASS = \"dx-info\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n rootElementRef: rootElementRef\r\n },\r\n text: text\r\n } = _ref;\r\n return createVNode(1, \"div\", PAGER_INFO_CLASS, text, 0, null, null, rootElementRef)\r\n};\r\nexport var InfoTextProps = {};\r\nvar InfoTextPropsType = {\r\n pageCount: PagerProps.pageCount,\r\n totalCount: PagerProps.totalCount,\r\n defaultPageIndex: PagerProps.pageIndex,\r\n pageIndexChange: () => {}\r\n};\r\nexport class InfoText extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this._currentState = null;\r\n this.state = {\r\n pageIndex: void 0 !== this.props.pageIndex ? this.props.pageIndex : this.props.defaultPageIndex\r\n }\r\n }\r\n get __state_pageIndex() {\r\n var state = this._currentState || this.state;\r\n return void 0 !== this.props.pageIndex ? this.props.pageIndex : state.pageIndex\r\n }\r\n set_pageIndex(value) {\r\n this.setState(state => {\r\n this._currentState = state;\r\n var newValue = value();\r\n this.props.pageIndexChange(newValue);\r\n this._currentState = null;\r\n return {\r\n pageIndex: newValue\r\n }\r\n })\r\n }\r\n get infoText() {\r\n return this.props.infoText || messageLocalization.getFormatter(\"dxPager-infoText\")()\r\n }\r\n get text() {\r\n var {\r\n pageCount: pageCount,\r\n totalCount: totalCount\r\n } = this.props;\r\n return format(this.infoText, (this.__state_pageIndex + 1).toString(), pageCount.toString(), totalCount.toString())\r\n }\r\n get restAttributes() {\r\n var _this$props$pageIndex = _extends({}, this.props, {\r\n pageIndex: this.__state_pageIndex\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$pageIndex, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n pageIndex: this.__state_pageIndex\r\n }),\r\n infoText: this.infoText,\r\n text: this.text,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nInfoText.defaultProps = _extends({}, InfoTextPropsType);\r\n","/**\r\n * DevExtreme (esm/renovation/utils/subscribe_to_event.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 * as clickEvent from \"../../events/click\";\r\nexport function subscribeToEvent(eventName) {\r\n return (element, handler) => {\r\n if (handler && element) {\r\n eventsEngine.on(element, eventName, handler);\r\n return () => eventsEngine.off(element, eventName, handler)\r\n }\r\n return\r\n }\r\n}\r\nexport var subscribeToClickEvent = subscribeToEvent(clickEvent.name);\r\nexport var subscribeToScrollEvent = subscribeToEvent(\"scroll\");\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/common/light_button.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 = [\"children\", \"className\", \"label\", \"onClick\"];\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/vdom\";\r\nimport {\r\n subscribeToClickEvent\r\n} from \"../../../utils/subscribe_to_event\";\r\nimport {\r\n KeyboardActionContext\r\n} from \"./keyboard_action_context\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n children: children,\r\n className: className,\r\n label: label\r\n },\r\n widgetRef: widgetRef\r\n } = _ref;\r\n return createVNode(1, \"div\", className, children, 0, {\r\n tabIndex: 0,\r\n role: \"button\",\r\n \"aria-label\": label\r\n }, null, widgetRef)\r\n};\r\nexport var LightButtonProps = {\r\n className: \"\",\r\n label: \"\"\r\n};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class LightButton extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.widgetRef = infernoCreateRef();\r\n this.keyboardEffect = this.keyboardEffect.bind(this);\r\n this.subscribeToClick = this.subscribeToClick.bind(this)\r\n }\r\n get keyboardContext() {\r\n if (\"KeyboardActionContext\" in this.context) {\r\n return this.context.KeyboardActionContext\r\n }\r\n return KeyboardActionContext\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.keyboardEffect, [this.keyboardContext, this.props.onClick]), new InfernoEffect(this.subscribeToClick, [this.props.onClick])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$, _this$_effects$2;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.keyboardContext, this.props.onClick]);\r\n null === (_this$_effects$2 = this._effects[1]) || void 0 === _this$_effects$2 ? void 0 : _this$_effects$2.update([this.props.onClick])\r\n }\r\n keyboardEffect() {\r\n return this.keyboardContext.registerKeyboardAction(this.widgetRef.current, this.props.onClick)\r\n }\r\n subscribeToClick() {\r\n return subscribeToClickEvent(this.widgetRef.current, this.props.onClick)\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n widgetRef: this.widgetRef,\r\n keyboardContext: this.keyboardContext,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nLightButton.defaultProps = _extends({}, LightButtonProps);\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/common/consts.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 PAGER_CLASS = \"dx-pager\";\r\nexport var LIGHT_MODE_CLASS = \"dx-light-mode\";\r\nexport var PAGER_PAGES_CLASS = \"dx-pages\";\r\nexport var PAGER_PAGE_INDEXES_CLASS = \"dx-page-indexes\";\r\nexport var PAGER_PAGE_CLASS = \"dx-page\";\r\nexport var PAGER_SELECTION_CLASS = \"dx-selection\";\r\nexport var PAGER_PAGE_SIZE_CLASS = \"dx-page-size\";\r\nexport var PAGER_PAGE_SIZES_CLASS = \"dx-page-sizes\";\r\nexport var PAGER_SELECTED_PAGE_SIZE_CLASS = \"\".concat(PAGER_PAGE_SIZE_CLASS, \" \").concat(PAGER_SELECTION_CLASS);\r\n","/**\r\n * DevExtreme (esm/renovation/utils/combine_classes.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 combineClasses(classesMap) {\r\n return Object.keys(classesMap).filter(p => classesMap[p]).join(\" \")\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/pages/page.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 = [\"className\", \"index\", \"onClick\", \"selected\"];\r\nimport {\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/vdom\";\r\nimport {\r\n LightButton\r\n} from \"../common/light_button\";\r\nimport {\r\n PAGER_PAGE_CLASS,\r\n PAGER_SELECTION_CLASS\r\n} from \"../common/consts\";\r\nimport {\r\n combineClasses\r\n} from \"../../../utils/combine_classes\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n className: className,\r\n label: label,\r\n props: {\r\n onClick: onClick\r\n },\r\n value: value\r\n } = _ref;\r\n return createComponentVNode(2, LightButton, {\r\n className: className,\r\n label: label,\r\n onClick: onClick,\r\n children: value\r\n })\r\n};\r\nexport var PageProps = {\r\n index: 0,\r\n selected: false,\r\n className: PAGER_PAGE_CLASS\r\n};\r\nexport class Page extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get label() {\r\n return \"Page \".concat(this.value)\r\n }\r\n get value() {\r\n return this.props.index + 1\r\n }\r\n get className() {\r\n var {\r\n selected: selected\r\n } = this.props;\r\n return combineClasses({\r\n [\"\".concat(this.props.className)]: !!this.props.className,\r\n [PAGER_SELECTION_CLASS]: !!selected\r\n })\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n label: this.label,\r\n value: this.value,\r\n className: this.className,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPage.defaultProps = _extends({}, PageProps);\r\n","/**\r\n * DevExtreme (esm/renovation/common/config_context.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 createContext\r\n} from \"@devextreme/vdom\";\r\nexport var ConfigContext = createContext(void 0);\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/pages/large.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 = [\"pageIndexes\"],\r\n _excluded2 = [\"defaultPageIndex\", \"maxPagesCount\", \"pageCount\", \"pageIndex\", \"pageIndexChange\"];\r\nimport {\r\n createVNode,\r\n createFragment,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/vdom\";\r\nimport {\r\n Page\r\n} from \"./page\";\r\nimport {\r\n PagerProps\r\n} from \"../common/pager_props\";\r\nimport {\r\n ConfigContext\r\n} from \"../../../common/config_context\";\r\nvar PAGER_PAGE_SEPARATOR_CLASS = \"dx-separator\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n pages: pages\r\n } = _ref;\r\n var PagesMarkup = pages.map(_ref2 => {\r\n var {\r\n key: key,\r\n pageProps: pageProps\r\n } = _ref2;\r\n return pageProps ? createComponentVNode(2, Page, {\r\n index: pageProps.index,\r\n selected: pageProps.selected,\r\n onClick: pageProps.onClick\r\n }, key) : createVNode(1, \"div\", PAGER_PAGE_SEPARATOR_CLASS, \". . .\", 16, null, key)\r\n });\r\n return createFragment(PagesMarkup, 0)\r\n};\r\nvar PAGES_LIMITER = 4;\r\n\r\nfunction getDelimiterType(startIndex, slidingWindowSize, pageCount) {\r\n if (1 === startIndex) {\r\n return \"high\"\r\n }\r\n if (startIndex + slidingWindowSize === pageCount - 1) {\r\n return \"low\"\r\n }\r\n return \"both\"\r\n}\r\n\r\nfunction createPageIndexesBySlidingWindowIndexes(slidingWindowIndexes, pageCount, delimiter) {\r\n var pageIndexes = [];\r\n var indexesForReuse = [];\r\n switch (delimiter) {\r\n case \"none\":\r\n pageIndexes = [...slidingWindowIndexes];\r\n break;\r\n case \"both\":\r\n pageIndexes = [0, \"low\", ...slidingWindowIndexes, \"high\", pageCount - 1];\r\n indexesForReuse = slidingWindowIndexes.slice(1, -1);\r\n break;\r\n case \"high\":\r\n pageIndexes = [0, ...slidingWindowIndexes, \"high\", pageCount - 1];\r\n indexesForReuse = slidingWindowIndexes.slice(0, -1);\r\n break;\r\n case \"low\":\r\n pageIndexes = [0, \"low\", ...slidingWindowIndexes, pageCount - 1];\r\n indexesForReuse = slidingWindowIndexes.slice(1)\r\n }\r\n return {\r\n slidingWindowIndexes: slidingWindowIndexes,\r\n indexesForReuse: indexesForReuse,\r\n pageIndexes: pageIndexes\r\n }\r\n}\r\n\r\nfunction createPageIndexes(startIndex, slidingWindowSize, pageCount, delimiter) {\r\n var slidingWindowIndexes = [];\r\n for (var i = 0; i < slidingWindowSize; i += 1) {\r\n slidingWindowIndexes.push(i + startIndex)\r\n }\r\n return createPageIndexesBySlidingWindowIndexes(slidingWindowIndexes, pageCount, delimiter)\r\n}\r\nvar PagesLargePropsType = {\r\n maxPagesCount: PagerProps.maxPagesCount,\r\n pageCount: PagerProps.pageCount,\r\n defaultPageIndex: PagerProps.pageIndex\r\n};\r\nexport class PagesLarge extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this._currentState = null;\r\n this.state = {\r\n pageIndex: void 0 !== this.props.pageIndex ? this.props.pageIndex : this.props.defaultPageIndex\r\n };\r\n this.canReuseSlidingWindow = this.canReuseSlidingWindow.bind(this);\r\n this.generatePageIndexes = this.generatePageIndexes.bind(this);\r\n this.isSlidingWindowMode = this.isSlidingWindowMode.bind(this);\r\n this.onPageClick = this.onPageClick.bind(this)\r\n }\r\n get config() {\r\n if (\"ConfigContext\" in this.context) {\r\n return this.context.ConfigContext\r\n }\r\n return ConfigContext\r\n }\r\n get __state_pageIndex() {\r\n var state = this._currentState || this.state;\r\n return void 0 !== this.props.pageIndex ? this.props.pageIndex : state.pageIndex\r\n }\r\n set_pageIndex(value) {\r\n this.setState(state => {\r\n var _this$props$pageIndex, _this$props;\r\n this._currentState = state;\r\n var newValue = value();\r\n null === (_this$props$pageIndex = (_this$props = this.props).pageIndexChange) || void 0 === _this$props$pageIndex ? void 0 : _this$props$pageIndex.call(_this$props, newValue);\r\n this._currentState = null;\r\n return {\r\n pageIndex: newValue\r\n }\r\n })\r\n }\r\n get slidingWindowState() {\r\n var slidingWindowState = this.slidingWindowStateHolder;\r\n if (!slidingWindowState) {\r\n return {\r\n indexesForReuse: [],\r\n slidingWindowIndexes: []\r\n }\r\n }\r\n return slidingWindowState\r\n }\r\n canReuseSlidingWindow(currentPageCount, pageIndex) {\r\n var {\r\n indexesForReuse: indexesForReuse\r\n } = this.slidingWindowState;\r\n var currentPageNotExistInIndexes = -1 === indexesForReuse.indexOf(currentPageCount);\r\n var pageIndexExistInIndexes = -1 !== indexesForReuse.indexOf(pageIndex);\r\n return currentPageNotExistInIndexes && pageIndexExistInIndexes\r\n }\r\n generatePageIndexes() {\r\n var {\r\n pageCount: pageCount\r\n } = this.props;\r\n var startIndex = 0;\r\n var {\r\n slidingWindowIndexes: slidingWindowIndexes\r\n } = this.slidingWindowState;\r\n if (this.__state_pageIndex === slidingWindowIndexes[0]) {\r\n startIndex = this.__state_pageIndex - 1\r\n } else if (this.__state_pageIndex === slidingWindowIndexes[slidingWindowIndexes.length - 1]) {\r\n startIndex = this.__state_pageIndex + 2 - PAGES_LIMITER\r\n } else if (this.__state_pageIndex < PAGES_LIMITER) {\r\n startIndex = 1\r\n } else if (this.__state_pageIndex >= pageCount - PAGES_LIMITER) {\r\n startIndex = pageCount - PAGES_LIMITER - 1\r\n } else {\r\n startIndex = this.__state_pageIndex - 1\r\n }\r\n var slidingWindowSize = PAGES_LIMITER;\r\n var delimiter = getDelimiterType(startIndex, slidingWindowSize, pageCount);\r\n var _createPageIndexes = createPageIndexes(startIndex, slidingWindowSize, pageCount, delimiter),\r\n {\r\n pageIndexes: pageIndexes\r\n } = _createPageIndexes,\r\n slidingWindowState = _objectWithoutPropertiesLoose(_createPageIndexes, _excluded);\r\n this.slidingWindowStateHolder = slidingWindowState;\r\n return pageIndexes\r\n }\r\n isSlidingWindowMode() {\r\n var {\r\n maxPagesCount: maxPagesCount,\r\n pageCount: pageCount\r\n } = this.props;\r\n return pageCount <= PAGES_LIMITER || pageCount <= maxPagesCount\r\n }\r\n onPageClick(pageIndex) {\r\n var _this$props$pageIndex2, _this$props2;\r\n null === (_this$props$pageIndex2 = (_this$props2 = this.props).pageIndexChange) || void 0 === _this$props$pageIndex2 ? void 0 : _this$props$pageIndex2.call(_this$props2, pageIndex)\r\n }\r\n get pageIndexes() {\r\n var {\r\n pageCount: pageCount\r\n } = this.props;\r\n if (this.isSlidingWindowMode()) {\r\n return createPageIndexes(0, pageCount, pageCount, \"none\").pageIndexes\r\n }\r\n if (this.canReuseSlidingWindow(pageCount, this.__state_pageIndex)) {\r\n var {\r\n slidingWindowIndexes: slidingWindowIndexes\r\n } = this.slidingWindowState;\r\n var delimiter = getDelimiterType(slidingWindowIndexes[0], PAGES_LIMITER, pageCount);\r\n return createPageIndexesBySlidingWindowIndexes(slidingWindowIndexes, pageCount, delimiter).pageIndexes\r\n }\r\n return this.generatePageIndexes()\r\n }\r\n get pages() {\r\n var _this$config;\r\n var createPage = index => {\r\n var pagerProps = \"low\" === index || \"high\" === index ? null : {\r\n index: index,\r\n onClick: () => this.onPageClick(index),\r\n selected: this.__state_pageIndex === index\r\n };\r\n return {\r\n key: index.toString(),\r\n pageProps: pagerProps\r\n }\r\n };\r\n var rtlPageIndexes = null !== (_this$config = this.config) && void 0 !== _this$config && _this$config.rtlEnabled ? [...this.pageIndexes].reverse() : this.pageIndexes;\r\n return rtlPageIndexes.map(index => createPage(index))\r\n }\r\n get restAttributes() {\r\n var _this$props$pageIndex3 = _extends({}, this.props, {\r\n pageIndex: this.__state_pageIndex\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$pageIndex3, _excluded2);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n pageIndex: this.__state_pageIndex\r\n }),\r\n config: this.config,\r\n pageIndexes: this.pageIndexes,\r\n pages: this.pages,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPagesLarge.defaultProps = _extends({}, PagesLargePropsType);\r\n","/**\r\n * DevExtreme (esm/renovation/common/config_provider.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"children\", \"rtlEnabled\"];\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/vdom\";\r\nexport var viewFunction = viewModel => viewModel.props.children;\r\nexport var ConfigProviderProps = {};\r\nexport class ConfigProvider extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n getChildContext() {\r\n return _extends({}, this.context, {\r\n ConfigContext: this.config\r\n })\r\n }\r\n get config() {\r\n return {\r\n rtlEnabled: this.props.rtlEnabled\r\n }\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n config: this.config,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nConfigProvider.defaultProps = _extends({}, ConfigProviderProps);\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/widget.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"_feedbackHideTimeout\", \"_feedbackShowTimeout\", \"accessKey\", \"activeStateEnabled\", \"activeStateUnit\", \"aria\", \"children\", \"className\", \"classes\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"name\", \"onActive\", \"onClick\", \"onContentReady\", \"onDimensionChanged\", \"onFocusIn\", \"onFocusOut\", \"onHoverEnd\", \"onHoverStart\", \"onInactive\", \"onKeyDown\", \"onKeyboardHandled\", \"onVisibilityChange\", \"rootElementRef\", \"rtlEnabled\", \"tabIndex\", \"visible\", \"width\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoWrapperComponent,\r\n normalizeStyles\r\n} from \"@devextreme/vdom\";\r\nimport \"../../../events/click\";\r\nimport \"../../../events/hover\";\r\nimport {\r\n active,\r\n dxClick,\r\n focus,\r\n hover,\r\n keyboard,\r\n resize,\r\n visibility\r\n} from \"../../../events/short\";\r\nimport {\r\n combineClasses\r\n} from \"../../utils/combine_classes\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n focusable\r\n} from \"../../../ui/widget/selectors\";\r\nimport {\r\n normalizeStyleProp\r\n} from \"../../../core/utils/style\";\r\nimport {\r\n BaseWidgetProps\r\n} from \"./base_props\";\r\nimport {\r\n ConfigContext\r\n} from \"../../common/config_context\";\r\nimport {\r\n ConfigProvider\r\n} from \"../../common/config_provider\";\r\nimport {\r\n resolveRtlEnabled,\r\n resolveRtlEnabledDefinition\r\n} from \"../../utils/resolve_rtl\";\r\nimport resizeCallbacks from \"../../../core/utils/resize_callbacks\";\r\nvar getAria = args => Object.keys(args).reduce((r, key) => {\r\n if (args[key]) {\r\n return _extends({}, r, {\r\n [\"role\" === key || \"id\" === key ? key : \"aria-\".concat(key)]: String(args[key])\r\n })\r\n }\r\n return r\r\n}, {});\r\nvar getCssClasses = model => {\r\n var isFocusable = !!model.focusStateEnabled && !model.disabled;\r\n var isHoverable = !!model.hoverStateEnabled && !model.disabled;\r\n var canBeActive = !!model.activeStateEnabled && !model.disabled;\r\n var classesMap = {\r\n \"dx-widget\": true,\r\n [String(model.classes)]: !!model.classes,\r\n [String(model.className)]: !!model.className,\r\n \"dx-state-disabled\": !!model.disabled,\r\n \"dx-state-invisible\": !model.visible,\r\n \"dx-state-focused\": !!model.focused && isFocusable,\r\n \"dx-state-active\": !!model.active && canBeActive,\r\n \"dx-state-hover\": !!model.hovered && isHoverable && !model.active,\r\n \"dx-rtl\": !!model.rtlEnabled,\r\n \"dx-visibility-change-handler\": !!model.onVisibilityChange\r\n };\r\n return combineClasses(classesMap)\r\n};\r\nexport var viewFunction = viewModel => {\r\n var widget = normalizeProps(createVNode(1, \"div\", viewModel.cssClasses, viewModel.props.children, 0, _extends({}, viewModel.attributes, {\r\n tabIndex: viewModel.tabIndex,\r\n title: viewModel.props.hint,\r\n hidden: !viewModel.props.visible,\r\n style: normalizeStyles(viewModel.styles)\r\n }), null, viewModel.widgetRef));\r\n return viewModel.shouldRenderConfigProvider ? createComponentVNode(2, ConfigProvider, {\r\n rtlEnabled: viewModel.rtlEnabled,\r\n children: widget\r\n }) : widget\r\n};\r\nexport var WidgetProps = _extends({}, BaseWidgetProps, {\r\n _feedbackHideTimeout: 400,\r\n _feedbackShowTimeout: 30,\r\n aria: {},\r\n classes: \"\",\r\n className: \"\",\r\n name: \"\"\r\n});\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class Widget extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this._currentState = null;\r\n this.widgetRef = infernoCreateRef();\r\n this.state = {\r\n active: false,\r\n focused: false,\r\n hovered: false\r\n };\r\n this.setRootElementRef = this.setRootElementRef.bind(this);\r\n this.activeEffect = this.activeEffect.bind(this);\r\n this.clickEffect = this.clickEffect.bind(this);\r\n this.focus = this.focus.bind(this);\r\n this.focusEffect = this.focusEffect.bind(this);\r\n this.hoverEffect = this.hoverEffect.bind(this);\r\n this.keyboardEffect = this.keyboardEffect.bind(this);\r\n this.resizeEffect = this.resizeEffect.bind(this);\r\n this.windowResizeEffect = this.windowResizeEffect.bind(this);\r\n this.visibilityEffect = this.visibilityEffect.bind(this)\r\n }\r\n get config() {\r\n if (\"ConfigContext\" in this.context) {\r\n return this.context.ConfigContext\r\n }\r\n return ConfigContext\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.setRootElementRef, []), new InfernoEffect(this.activeEffect, [this.props._feedbackHideTimeout, this.props._feedbackShowTimeout, this.props.activeStateEnabled, this.props.activeStateUnit, this.props.disabled, this.props.onActive, this.props.onInactive]), new InfernoEffect(this.clickEffect, [this.props.disabled, this.props.name, this.props.onClick]), new InfernoEffect(this.focusEffect, [this.props.disabled, this.props.focusStateEnabled, this.props.name, this.props.onFocusIn, this.props.onFocusOut]), new InfernoEffect(this.hoverEffect, [this.props.activeStateUnit, this.props.disabled, this.props.hoverStateEnabled, this.props.onHoverEnd, this.props.onHoverStart, this.active]), new InfernoEffect(this.keyboardEffect, [this.props.onKeyDown]), new InfernoEffect(this.resizeEffect, [this.props.name, this.props.onDimensionChanged]), new InfernoEffect(this.windowResizeEffect, [this.props.onDimensionChanged]), new InfernoEffect(this.visibilityEffect, [this.props.name, this.props.onVisibilityChange])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$, _this$_effects$2, _this$_effects$3, _this$_effects$4, _this$_effects$5, _this$_effects$6, _this$_effects$7, _this$_effects$8;\r\n null === (_this$_effects$ = this._effects[1]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props._feedbackHideTimeout, this.props._feedbackShowTimeout, this.props.activeStateEnabled, this.props.activeStateUnit, this.props.disabled, this.props.onActive, this.props.onInactive]);\r\n null === (_this$_effects$2 = this._effects[2]) || void 0 === _this$_effects$2 ? void 0 : _this$_effects$2.update([this.props.disabled, this.props.name, this.props.onClick]);\r\n null === (_this$_effects$3 = this._effects[3]) || void 0 === _this$_effects$3 ? void 0 : _this$_effects$3.update([this.props.disabled, this.props.focusStateEnabled, this.props.name, this.props.onFocusIn, this.props.onFocusOut]);\r\n null === (_this$_effects$4 = this._effects[4]) || void 0 === _this$_effects$4 ? void 0 : _this$_effects$4.update([this.props.activeStateUnit, this.props.disabled, this.props.hoverStateEnabled, this.props.onHoverEnd, this.props.onHoverStart, this.active]);\r\n null === (_this$_effects$5 = this._effects[5]) || void 0 === _this$_effects$5 ? void 0 : _this$_effects$5.update([this.props.onKeyDown]);\r\n null === (_this$_effects$6 = this._effects[6]) || void 0 === _this$_effects$6 ? void 0 : _this$_effects$6.update([this.props.name, this.props.onDimensionChanged]);\r\n null === (_this$_effects$7 = this._effects[7]) || void 0 === _this$_effects$7 ? void 0 : _this$_effects$7.update([this.props.onDimensionChanged]);\r\n null === (_this$_effects$8 = this._effects[8]) || void 0 === _this$_effects$8 ? void 0 : _this$_effects$8.update([this.props.name, this.props.onVisibilityChange])\r\n }\r\n get active() {\r\n var state = this._currentState || this.state;\r\n return state.active\r\n }\r\n set_active(value) {\r\n this.setState(state => {\r\n this._currentState = state;\r\n var newValue = value();\r\n this._currentState = null;\r\n return {\r\n active: newValue\r\n }\r\n })\r\n }\r\n get focused() {\r\n var state = this._currentState || this.state;\r\n return state.focused\r\n }\r\n set_focused(value) {\r\n this.setState(state => {\r\n this._currentState = state;\r\n var newValue = value();\r\n this._currentState = null;\r\n return {\r\n focused: newValue\r\n }\r\n })\r\n }\r\n get hovered() {\r\n var state = this._currentState || this.state;\r\n return state.hovered\r\n }\r\n set_hovered(value) {\r\n this.setState(state => {\r\n this._currentState = state;\r\n var newValue = value();\r\n this._currentState = null;\r\n return {\r\n hovered: newValue\r\n }\r\n })\r\n }\r\n setRootElementRef() {\r\n var {\r\n rootElementRef: rootElementRef\r\n } = this.props;\r\n if (rootElementRef) {\r\n rootElementRef.current = this.widgetRef.current\r\n }\r\n }\r\n activeEffect() {\r\n var {\r\n _feedbackHideTimeout: _feedbackHideTimeout,\r\n _feedbackShowTimeout: _feedbackShowTimeout,\r\n activeStateEnabled: activeStateEnabled,\r\n activeStateUnit: activeStateUnit,\r\n disabled: disabled,\r\n onActive: onActive,\r\n onInactive: onInactive\r\n } = this.props;\r\n var selector = activeStateUnit;\r\n if (activeStateEnabled && !disabled) {\r\n active.on(this.widgetRef.current, _ref => {\r\n var {\r\n event: event\r\n } = _ref;\r\n this.set_active(() => true);\r\n null === onActive || void 0 === onActive ? void 0 : onActive(event)\r\n }, _ref2 => {\r\n var {\r\n event: event\r\n } = _ref2;\r\n this.set_active(() => false);\r\n null === onInactive || void 0 === onInactive ? void 0 : onInactive(event)\r\n }, {\r\n hideTimeout: _feedbackHideTimeout,\r\n namespace: \"UIFeedback\",\r\n selector: selector,\r\n showTimeout: _feedbackShowTimeout\r\n });\r\n return () => active.off(this.widgetRef.current, {\r\n selector: selector,\r\n namespace: \"UIFeedback\"\r\n })\r\n }\r\n return\r\n }\r\n clickEffect() {\r\n var {\r\n disabled: disabled,\r\n name: name,\r\n onClick: onClick\r\n } = this.props;\r\n var namespace = name;\r\n if (onClick && !disabled) {\r\n dxClick.on(this.widgetRef.current, onClick, {\r\n namespace: namespace\r\n });\r\n return () => dxClick.off(this.widgetRef.current, {\r\n namespace: namespace\r\n })\r\n }\r\n return\r\n }\r\n focusEffect() {\r\n var {\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n name: name,\r\n onFocusIn: onFocusIn,\r\n onFocusOut: onFocusOut\r\n } = this.props;\r\n var namespace = \"\".concat(name, \"Focus\");\r\n var isFocusable = focusStateEnabled && !disabled;\r\n if (isFocusable) {\r\n focus.on(this.widgetRef.current, e => {\r\n if (!e.isDefaultPrevented()) {\r\n this.set_focused(() => true);\r\n null === onFocusIn || void 0 === onFocusIn ? void 0 : onFocusIn(e)\r\n }\r\n }, e => {\r\n if (!e.isDefaultPrevented()) {\r\n this.set_focused(() => false);\r\n null === onFocusOut || void 0 === onFocusOut ? void 0 : onFocusOut(e)\r\n }\r\n }, {\r\n isFocusable: focusable,\r\n namespace: namespace\r\n });\r\n return () => focus.off(this.widgetRef.current, {\r\n namespace: namespace\r\n })\r\n }\r\n return\r\n }\r\n hoverEffect() {\r\n var {\r\n activeStateUnit: activeStateUnit,\r\n disabled: disabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n onHoverEnd: onHoverEnd,\r\n onHoverStart: onHoverStart\r\n } = this.props;\r\n var selector = activeStateUnit;\r\n var isHoverable = hoverStateEnabled && !disabled;\r\n if (isHoverable) {\r\n hover.on(this.widgetRef.current, _ref3 => {\r\n var {\r\n event: event\r\n } = _ref3;\r\n !this.active && this.set_hovered(() => true);\r\n null === onHoverStart || void 0 === onHoverStart ? void 0 : onHoverStart(event)\r\n }, _ref4 => {\r\n var {\r\n event: event\r\n } = _ref4;\r\n this.set_hovered(() => false);\r\n null === onHoverEnd || void 0 === onHoverEnd ? void 0 : onHoverEnd(event)\r\n }, {\r\n selector: selector,\r\n namespace: \"UIFeedback\"\r\n });\r\n return () => hover.off(this.widgetRef.current, {\r\n selector: selector,\r\n namespace: \"UIFeedback\"\r\n })\r\n }\r\n return\r\n }\r\n keyboardEffect() {\r\n var {\r\n onKeyDown: onKeyDown\r\n } = this.props;\r\n if (onKeyDown) {\r\n var id = keyboard.on(this.widgetRef.current, this.widgetRef.current, e => onKeyDown(e));\r\n return () => keyboard.off(id)\r\n }\r\n return\r\n }\r\n resizeEffect() {\r\n var namespace = \"\".concat(this.props.name, \"VisibilityChange\");\r\n var {\r\n onDimensionChanged: onDimensionChanged\r\n } = this.props;\r\n if (onDimensionChanged) {\r\n resize.on(this.widgetRef.current, onDimensionChanged, {\r\n namespace: namespace\r\n });\r\n return () => resize.off(this.widgetRef.current, {\r\n namespace: namespace\r\n })\r\n }\r\n return\r\n }\r\n windowResizeEffect() {\r\n var {\r\n onDimensionChanged: onDimensionChanged\r\n } = this.props;\r\n if (onDimensionChanged) {\r\n resizeCallbacks.add(onDimensionChanged);\r\n return () => {\r\n resizeCallbacks.remove(onDimensionChanged)\r\n }\r\n }\r\n return\r\n }\r\n visibilityEffect() {\r\n var {\r\n name: name,\r\n onVisibilityChange: onVisibilityChange\r\n } = this.props;\r\n var namespace = \"\".concat(name, \"VisibilityChange\");\r\n if (onVisibilityChange) {\r\n visibility.on(this.widgetRef.current, () => onVisibilityChange(true), () => onVisibilityChange(false), {\r\n namespace: namespace\r\n });\r\n return () => visibility.off(this.widgetRef.current, {\r\n namespace: namespace\r\n })\r\n }\r\n return\r\n }\r\n get shouldRenderConfigProvider() {\r\n var {\r\n rtlEnabled: rtlEnabled\r\n } = this.props;\r\n return resolveRtlEnabledDefinition(rtlEnabled, this.config)\r\n }\r\n get rtlEnabled() {\r\n var {\r\n rtlEnabled: rtlEnabled\r\n } = this.props;\r\n return resolveRtlEnabled(rtlEnabled, this.config)\r\n }\r\n get attributes() {\r\n var {\r\n aria: aria,\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n visible: visible\r\n } = this.props;\r\n var accessKey = focusStateEnabled && !disabled && this.props.accessKey;\r\n return _extends({}, extend({}, this.restAttributes, accessKey && {\r\n accessKey: accessKey\r\n }), getAria(_extends({}, aria, {\r\n disabled: disabled,\r\n hidden: !visible\r\n })))\r\n }\r\n get styles() {\r\n var {\r\n height: height,\r\n width: width\r\n } = this.props;\r\n var style = this.restAttributes.style || {};\r\n var computedWidth = normalizeStyleProp(\"width\", \"function\" === typeof width ? width() : width);\r\n var computedHeight = normalizeStyleProp(\"height\", \"function\" === typeof height ? height() : height);\r\n return _extends({}, style, {\r\n height: null !== computedHeight && void 0 !== computedHeight ? computedHeight : style.height,\r\n width: null !== computedWidth && void 0 !== computedWidth ? computedWidth : style.width\r\n })\r\n }\r\n get cssClasses() {\r\n var {\r\n activeStateEnabled: activeStateEnabled,\r\n className: className,\r\n classes: classes,\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n onVisibilityChange: onVisibilityChange,\r\n visible: visible\r\n } = this.props;\r\n return getCssClasses({\r\n active: this.active,\r\n focused: this.focused,\r\n hovered: this.hovered,\r\n className: className,\r\n classes: classes,\r\n disabled: disabled,\r\n activeStateEnabled: activeStateEnabled,\r\n focusStateEnabled: focusStateEnabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n onVisibilityChange: onVisibilityChange,\r\n rtlEnabled: this.rtlEnabled,\r\n visible: visible\r\n })\r\n }\r\n get tabIndex() {\r\n var {\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n tabIndex: tabIndex\r\n } = this.props;\r\n var isFocusable = focusStateEnabled && !disabled;\r\n return isFocusable ? tabIndex : void 0\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n focus() {\r\n focus.trigger(this.widgetRef.current)\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n active: this.active,\r\n focused: this.focused,\r\n hovered: this.hovered,\r\n widgetRef: this.widgetRef,\r\n config: this.config,\r\n shouldRenderConfigProvider: this.shouldRenderConfigProvider,\r\n rtlEnabled: this.rtlEnabled,\r\n attributes: this.attributes,\r\n styles: this.styles,\r\n cssClasses: this.cssClasses,\r\n tabIndex: this.tabIndex,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nWidget.defaultProps = _extends({}, WidgetProps);\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/base_props.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 BaseWidgetProps = {\r\n activeStateEnabled: false,\r\n disabled: false,\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n tabIndex: 0,\r\n visible: true\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/utils/resolve_rtl.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 isDefined\r\n} from \"../../core/utils/type\";\r\nimport globalConfig from \"../../core/config\";\r\nexport function resolveRtlEnabled(rtlProp, config) {\r\n if (void 0 !== rtlProp) {\r\n return rtlProp\r\n }\r\n if (void 0 !== (null === config || void 0 === config ? void 0 : config.rtlEnabled)) {\r\n return config.rtlEnabled\r\n }\r\n return globalConfig().rtlEnabled\r\n}\r\nexport function resolveRtlEnabledDefinition(rtlProp, config) {\r\n var isPropDefined = isDefined(rtlProp);\r\n var onlyGlobalDefined = isDefined(globalConfig().rtlEnabled) && !isPropDefined && !isDefined(null === config || void 0 === config ? void 0 : config.rtlEnabled);\r\n return isPropDefined && rtlProp !== (null === config || void 0 === config ? void 0 : config.rtlEnabled) || onlyGlobalDefined\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/dom_component_wrapper.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"itemTemplate\", \"valueChange\"],\r\n _excluded2 = [\"componentProps\", \"componentType\", \"rootElementRef\"];\r\nimport {\r\n createVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/vdom\";\r\nimport {\r\n ConfigContext\r\n} from \"../../common/config_context\";\r\nimport {\r\n renderTemplate\r\n} from \"../../utils/render_template\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n componentProps: {\r\n className: className\r\n }\r\n },\r\n restAttributes: restAttributes,\r\n widgetRef: widgetRef\r\n } = _ref;\r\n return normalizeProps(createVNode(1, \"div\", className, null, 1, _extends({}, restAttributes), null, widgetRef))\r\n};\r\nexport var DomComponentWrapperProps = {};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class DomComponentWrapper extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.widgetRef = infernoCreateRef();\r\n this.getInstance = this.getInstance.bind(this);\r\n this.setupWidget = this.setupWidget.bind(this);\r\n this.setRootElementRef = this.setRootElementRef.bind(this);\r\n this.updateWidget = this.updateWidget.bind(this)\r\n }\r\n get config() {\r\n if (\"ConfigContext\" in this.context) {\r\n return this.context.ConfigContext\r\n }\r\n return ConfigContext\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.setupWidget, []), new InfernoEffect(this.setRootElementRef, []), new InfernoEffect(this.updateWidget, [this.props.componentProps, this.config])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[2]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props.componentProps, this.config])\r\n }\r\n setupWidget() {\r\n var componentInstance = new this.props.componentType(this.widgetRef.current, this.properties);\r\n this.instance = componentInstance;\r\n return () => {\r\n componentInstance.dispose();\r\n this.instance = null\r\n }\r\n }\r\n setRootElementRef() {\r\n var {\r\n rootElementRef: rootElementRef\r\n } = this.props;\r\n if (rootElementRef) {\r\n rootElementRef.current = this.widgetRef.current\r\n }\r\n }\r\n updateWidget() {\r\n var _this$getInstance;\r\n null === (_this$getInstance = this.getInstance()) || void 0 === _this$getInstance ? void 0 : _this$getInstance.option(this.properties)\r\n }\r\n get properties() {\r\n var _this$config;\r\n var _this$props$component = this.props.componentProps,\r\n {\r\n itemTemplate: itemTemplate,\r\n valueChange: valueChange\r\n } = _this$props$component,\r\n restProps = _objectWithoutPropertiesLoose(_this$props$component, _excluded);\r\n var properties = _extends({\r\n rtlEnabled: (null === (_this$config = this.config) || void 0 === _this$config ? void 0 : _this$config.rtlEnabled) || false\r\n }, restProps);\r\n if (valueChange) {\r\n properties.onValueChanged = _ref2 => {\r\n var {\r\n value: value\r\n } = _ref2;\r\n return valueChange(value)\r\n }\r\n }\r\n if (itemTemplate) {\r\n properties.itemTemplate = (item, index, container) => {\r\n renderTemplate(itemTemplate, {\r\n item: item,\r\n index: index,\r\n container: container\r\n }, container)\r\n }\r\n }\r\n return properties\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded2);\r\n return restProps\r\n }\r\n getInstance() {\r\n return this.instance\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n widgetRef: this.widgetRef,\r\n config: this.config,\r\n properties: this.properties,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nDomComponentWrapper.defaultProps = _extends({}, DomComponentWrapperProps);\r\n","/**\r\n * DevExtreme (esm/renovation/utils/render_template.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 render\r\n} from \"inferno\";\r\nimport {\r\n createElement\r\n} from \"inferno-create-element\";\r\nexport function renderTemplate(template, props, container) {\r\n setTimeout(() => {\r\n render(createElement(template, props), null === container || void 0 === container ? void 0 : container.get(0))\r\n }, 0)\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/number_box.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 = [\"rootElementRef\"],\r\n _excluded2 = [\"_feedbackHideTimeout\", \"_feedbackShowTimeout\", \"accessKey\", \"activeStateEnabled\", \"activeStateUnit\", \"aria\", \"children\", \"className\", \"classes\", \"defaultValue\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"invalidValueMessage\", \"max\", \"min\", \"mode\", \"name\", \"onActive\", \"onClick\", \"onContentReady\", \"onDimensionChanged\", \"onFocusIn\", \"onFocusOut\", \"onHoverEnd\", \"onHoverStart\", \"onInactive\", \"onKeyDown\", \"onKeyboardHandled\", \"onVisibilityChange\", \"rootElementRef\", \"rtlEnabled\", \"showSpinButtons\", \"step\", \"tabIndex\", \"useLargeSpinButtons\", \"value\", \"valueChange\", \"visible\", \"width\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/vdom\";\r\nimport LegacyNumberBox from \"../../ui/number_box\";\r\nimport {\r\n WidgetProps\r\n} from \"./common/widget\";\r\nimport {\r\n DomComponentWrapper\r\n} from \"./common/dom_component_wrapper\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n rootElementRef: rootElementRef\r\n },\r\n restAttributes: restAttributes\r\n } = _ref, componentProps = _objectWithoutPropertiesLoose(_ref.props, _excluded);\r\n return normalizeProps(createComponentVNode(2, DomComponentWrapper, _extends({\r\n rootElementRef: rootElementRef,\r\n componentType: LegacyNumberBox,\r\n componentProps: componentProps\r\n }, restAttributes)))\r\n};\r\nexport var NumberBoxProps = _extends({}, WidgetProps, {\r\n focusStateEnabled: true,\r\n hoverStateEnabled: true,\r\n defaultValue: 0\r\n});\r\nexport class NumberBox extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this._currentState = null;\r\n this.state = {\r\n value: void 0 !== this.props.value ? this.props.value : this.props.defaultValue\r\n }\r\n }\r\n get __state_value() {\r\n var state = this._currentState || this.state;\r\n return void 0 !== this.props.value ? this.props.value : state.value\r\n }\r\n set_value(value) {\r\n this.setState(state => {\r\n var _this$props$valueChan, _this$props;\r\n this._currentState = state;\r\n var newValue = value();\r\n null === (_this$props$valueChan = (_this$props = this.props).valueChange) || void 0 === _this$props$valueChan ? void 0 : _this$props$valueChan.call(_this$props, newValue);\r\n this._currentState = null;\r\n return {\r\n value: newValue\r\n }\r\n })\r\n }\r\n get restAttributes() {\r\n var _this$props$value = _extends({}, this.props, {\r\n value: this.__state_value\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$value, _excluded2);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n value: this.__state_value\r\n }),\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nNumberBox.defaultProps = _extends({}, NumberBoxProps);\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/utils/calculate_values_fitted_width.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 oneDigitWidth = 10;\r\nexport function calculateValuesFittedWidth(minWidth, values) {\r\n return minWidth + oneDigitWidth * Math.max(...values).toString().length\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/pages/small.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 = [\"defaultPageIndex\", \"pageCount\", \"pageIndex\", \"pageIndexChange\", \"pagesCountText\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/vdom\";\r\nimport {\r\n Page\r\n} from \"./page\";\r\nimport {\r\n PAGER_INFO_CLASS\r\n} from \"../info\";\r\nimport {\r\n NumberBox\r\n} from \"../../number_box\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport {\r\n calculateValuesFittedWidth\r\n} from \"../utils/calculate_values_fitted_width\";\r\nimport {\r\n getElementMinWidth\r\n} from \"../utils/get_element_width\";\r\nimport {\r\n PagerProps\r\n} from \"../common/pager_props\";\r\nvar PAGER_INFO_TEXT_CLASS = \"\".concat(PAGER_INFO_CLASS, \" dx-info-text\");\r\nvar PAGER_PAGE_INDEX_CLASS = \"dx-page-index\";\r\nvar LIGHT_PAGES_CLASS = \"dx-light-pages\";\r\nvar PAGER_PAGES_COUNT_CLASS = \"dx-pages-count\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n pageIndexRef: pageIndexRef,\r\n pagesCountText: pagesCountText,\r\n props: {\r\n pageCount: pageCount\r\n },\r\n selectLastPageIndex: selectLastPageIndex,\r\n value: value,\r\n valueChange: valueChange,\r\n width: width\r\n } = _ref;\r\n return createVNode(1, \"div\", LIGHT_PAGES_CLASS, [createComponentVNode(2, NumberBox, {\r\n rootElementRef: pageIndexRef,\r\n className: PAGER_PAGE_INDEX_CLASS,\r\n min: 1,\r\n max: pageCount,\r\n width: width,\r\n value: value,\r\n valueChange: valueChange\r\n }), createVNode(1, \"span\", PAGER_INFO_TEXT_CLASS, pagesCountText, 0), createComponentVNode(2, Page, {\r\n className: PAGER_PAGES_COUNT_CLASS,\r\n selected: false,\r\n index: pageCount - 1,\r\n onClick: selectLastPageIndex\r\n })], 4)\r\n};\r\nvar PagerSmallProps = {\r\n pageCount: PagerProps.pageCount,\r\n defaultPageIndex: PagerProps.pageIndex\r\n};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class PagesSmall extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this._currentState = null;\r\n this.pageIndexRef = infernoCreateRef();\r\n this.state = {\r\n minWidth: 10,\r\n pageIndex: void 0 !== this.props.pageIndex ? this.props.pageIndex : this.props.defaultPageIndex\r\n };\r\n this.updateWidth = this.updateWidth.bind(this);\r\n this.selectLastPageIndex = this.selectLastPageIndex.bind(this);\r\n this.valueChange = this.valueChange.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.updateWidth, [this.minWidth])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.minWidth])\r\n }\r\n get minWidth() {\r\n var state = this._currentState || this.state;\r\n return state.minWidth\r\n }\r\n set_minWidth(value) {\r\n this.setState(state => {\r\n this._currentState = state;\r\n var newValue = value();\r\n this._currentState = null;\r\n return {\r\n minWidth: newValue\r\n }\r\n })\r\n }\r\n get __state_pageIndex() {\r\n var state = this._currentState || this.state;\r\n return void 0 !== this.props.pageIndex ? this.props.pageIndex : state.pageIndex\r\n }\r\n set_pageIndex(value) {\r\n this.setState(state => {\r\n var _this$props$pageIndex, _this$props;\r\n this._currentState = state;\r\n var newValue = value();\r\n null === (_this$props$pageIndex = (_this$props = this.props).pageIndexChange) || void 0 === _this$props$pageIndex ? void 0 : _this$props$pageIndex.call(_this$props, newValue);\r\n this._currentState = null;\r\n return {\r\n pageIndex: newValue\r\n }\r\n })\r\n }\r\n updateWidth() {\r\n this.set_minWidth(() => this.pageIndexRef.current && getElementMinWidth(this.pageIndexRef.current) || this.minWidth)\r\n }\r\n get value() {\r\n return this.__state_pageIndex + 1\r\n }\r\n get width() {\r\n var pageCount = this.props.pageCount;\r\n return calculateValuesFittedWidth(this.minWidth, [pageCount])\r\n }\r\n get pagesCountText() {\r\n return this.props.pagesCountText || messageLocalization.getFormatter(\"dxPager-pagesCountText\")()\r\n }\r\n selectLastPageIndex() {\r\n var _this$props$pageIndex2, _this$props2;\r\n var {\r\n pageCount: pageCount\r\n } = this.props;\r\n null === (_this$props$pageIndex2 = (_this$props2 = this.props).pageIndexChange) || void 0 === _this$props$pageIndex2 ? void 0 : _this$props$pageIndex2.call(_this$props2, pageCount - 1)\r\n }\r\n valueChange(value) {\r\n this.set_pageIndex(() => value - 1)\r\n }\r\n get restAttributes() {\r\n var _this$props$pageIndex3 = _extends({}, this.props, {\r\n pageIndex: this.__state_pageIndex\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$pageIndex3, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n pageIndex: this.__state_pageIndex\r\n }),\r\n pageIndexRef: this.pageIndexRef,\r\n value: this.value,\r\n width: this.width,\r\n pagesCountText: this.pagesCountText,\r\n selectLastPageIndex: this.selectLastPageIndex,\r\n valueChange: this.valueChange,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPagesSmall.defaultProps = _extends({}, PagerSmallProps);\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/pages/page_index_selector.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 = [\"defaultPageIndex\", \"hasKnownLastPage\", \"isLargeDisplayMode\", \"maxPagesCount\", \"pageCount\", \"pageIndex\", \"pageIndexChange\", \"pagesCountText\", \"showNavigationButtons\", \"totalCount\"];\r\nimport {\r\n createFragment,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/vdom\";\r\nimport {\r\n LightButton\r\n} from \"../common/light_button\";\r\nimport {\r\n PagesLarge\r\n} from \"./large\";\r\nimport {\r\n PagesSmall\r\n} from \"./small\";\r\nimport {\r\n PagerProps\r\n} from \"../common/pager_props\";\r\nimport {\r\n ConfigContext\r\n} from \"../../../common/config_context\";\r\nvar PAGER_NAVIGATE_BUTTON = \"dx-navigate-button\";\r\nvar PAGER_PREV_BUTTON_CLASS = \"dx-prev-button\";\r\nvar PAGER_NEXT_BUTTON_CLASS = \"dx-next-button\";\r\nexport var PAGER_BUTTON_DISABLE_CLASS = \"dx-button-disable\";\r\nvar nextButtonClassName = \"\".concat(PAGER_NAVIGATE_BUTTON, \" \").concat(PAGER_NEXT_BUTTON_CLASS);\r\nvar prevButtonClassName = \"\".concat(PAGER_NAVIGATE_BUTTON, \" \").concat(PAGER_PREV_BUTTON_CLASS);\r\nvar nextButtonDisabledClassName = \"\".concat(PAGER_BUTTON_DISABLE_CLASS, \" \").concat(PAGER_NAVIGATE_BUTTON, \" \").concat(PAGER_NEXT_BUTTON_CLASS);\r\nvar prevButtonDisabledClassName = \"\".concat(PAGER_BUTTON_DISABLE_CLASS, \" \").concat(PAGER_NAVIGATE_BUTTON, \" \").concat(PAGER_PREV_BUTTON_CLASS);\r\nexport var viewFunction = _ref => {\r\n var {\r\n navigateToNextPage: navigateToNextPage,\r\n navigateToPrevPage: navigateToPrevPage,\r\n nextClassName: nextClassName,\r\n pageIndexChange: pageIndexChange,\r\n prevClassName: prevClassName,\r\n props: {\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n maxPagesCount: maxPagesCount,\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n pagesCountText: pagesCountText\r\n },\r\n renderNextButton: renderNextButton,\r\n renderPrevButton: renderPrevButton\r\n } = _ref;\r\n return createFragment([renderPrevButton && createComponentVNode(2, LightButton, {\r\n className: prevClassName,\r\n label: \"Previous page\",\r\n onClick: navigateToPrevPage\r\n }), isLargeDisplayMode && createComponentVNode(2, PagesLarge, {\r\n maxPagesCount: maxPagesCount,\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n pageIndexChange: pageIndexChange\r\n }), !isLargeDisplayMode && createComponentVNode(2, PagesSmall, {\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n pageIndexChange: pageIndexChange,\r\n pagesCountText: pagesCountText\r\n }), renderNextButton && createComponentVNode(2, LightButton, {\r\n className: nextClassName,\r\n label: \"Next page\",\r\n onClick: navigateToNextPage\r\n })], 0)\r\n};\r\n\r\nfunction getIncrement(direction) {\r\n return \"next\" === direction ? 1 : -1\r\n}\r\nexport var PageIndexSelectorProps = {\r\n isLargeDisplayMode: true\r\n};\r\nvar PageIndexSelectorPropsType = {\r\n maxPagesCount: PagerProps.maxPagesCount,\r\n pageCount: PagerProps.pageCount,\r\n hasKnownLastPage: PagerProps.hasKnownLastPage,\r\n showNavigationButtons: PagerProps.showNavigationButtons,\r\n totalCount: PagerProps.totalCount,\r\n isLargeDisplayMode: PageIndexSelectorProps.isLargeDisplayMode,\r\n defaultPageIndex: PagerProps.pageIndex\r\n};\r\nexport class PageIndexSelector extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this._currentState = null;\r\n this.state = {\r\n pageIndex: void 0 !== this.props.pageIndex ? this.props.pageIndex : this.props.defaultPageIndex\r\n };\r\n this.getNextDirection = this.getNextDirection.bind(this);\r\n this.getPrevDirection = this.getPrevDirection.bind(this);\r\n this.canNavigateToPage = this.canNavigateToPage.bind(this);\r\n this.getNextPageIndex = this.getNextPageIndex.bind(this);\r\n this.canNavigateTo = this.canNavigateTo.bind(this);\r\n this.navigateToPage = this.navigateToPage.bind(this);\r\n this.pageIndexChange = this.pageIndexChange.bind(this);\r\n this.navigateToNextPage = this.navigateToNextPage.bind(this);\r\n this.navigateToPrevPage = this.navigateToPrevPage.bind(this)\r\n }\r\n get config() {\r\n if (\"ConfigContext\" in this.context) {\r\n return this.context.ConfigContext\r\n }\r\n return ConfigContext\r\n }\r\n get __state_pageIndex() {\r\n var state = this._currentState || this.state;\r\n return void 0 !== this.props.pageIndex ? this.props.pageIndex : state.pageIndex\r\n }\r\n set_pageIndex(value) {\r\n this.setState(state => {\r\n var _this$props$pageIndex, _this$props;\r\n this._currentState = state;\r\n var newValue = value();\r\n null === (_this$props$pageIndex = (_this$props = this.props).pageIndexChange) || void 0 === _this$props$pageIndex ? void 0 : _this$props$pageIndex.call(_this$props, newValue);\r\n this._currentState = null;\r\n return {\r\n pageIndex: newValue\r\n }\r\n })\r\n }\r\n getNextDirection() {\r\n var _this$config;\r\n return !(null !== (_this$config = this.config) && void 0 !== _this$config && _this$config.rtlEnabled) ? \"next\" : \"prev\"\r\n }\r\n getPrevDirection() {\r\n var _this$config2;\r\n return !(null !== (_this$config2 = this.config) && void 0 !== _this$config2 && _this$config2.rtlEnabled) ? \"prev\" : \"next\"\r\n }\r\n canNavigateToPage(pageIndex) {\r\n if (!this.props.hasKnownLastPage) {\r\n return pageIndex >= 0\r\n }\r\n return pageIndex >= 0 && pageIndex <= this.props.pageCount - 1\r\n }\r\n getNextPageIndex(direction) {\r\n return this.__state_pageIndex + getIncrement(direction)\r\n }\r\n canNavigateTo(direction) {\r\n return this.canNavigateToPage(this.getNextPageIndex(direction))\r\n }\r\n navigateToPage(direction) {\r\n this.pageIndexChange(this.getNextPageIndex(direction))\r\n }\r\n get renderPrevButton() {\r\n var {\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n showNavigationButtons: showNavigationButtons\r\n } = this.props;\r\n return !isLargeDisplayMode || showNavigationButtons\r\n }\r\n get renderNextButton() {\r\n return this.renderPrevButton || !this.props.hasKnownLastPage\r\n }\r\n get nextClassName() {\r\n var direction = this.getNextDirection();\r\n var canNavigate = this.canNavigateTo(direction);\r\n return canNavigate ? nextButtonClassName : nextButtonDisabledClassName\r\n }\r\n get prevClassName() {\r\n var direction = this.getPrevDirection();\r\n var canNavigate = this.canNavigateTo(direction);\r\n return canNavigate ? prevButtonClassName : prevButtonDisabledClassName\r\n }\r\n pageIndexChange(pageIndex) {\r\n if (this.canNavigateToPage(pageIndex)) {\r\n this.set_pageIndex(() => pageIndex)\r\n }\r\n }\r\n navigateToNextPage() {\r\n this.navigateToPage(this.getNextDirection())\r\n }\r\n navigateToPrevPage() {\r\n this.navigateToPage(this.getPrevDirection())\r\n }\r\n get restAttributes() {\r\n var _this$props$pageIndex2 = _extends({}, this.props, {\r\n pageIndex: this.__state_pageIndex\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$pageIndex2, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n pageIndex: this.__state_pageIndex\r\n }),\r\n config: this.config,\r\n renderPrevButton: this.renderPrevButton,\r\n renderNextButton: this.renderNextButton,\r\n nextClassName: this.nextClassName,\r\n prevClassName: this.prevClassName,\r\n pageIndexChange: this.pageIndexChange,\r\n navigateToNextPage: this.navigateToNextPage,\r\n navigateToPrevPage: this.navigateToPrevPage,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPageIndexSelector.defaultProps = _extends({}, PageIndexSelectorPropsType);\r\n","/**\r\n * DevExtreme (esm/renovation/ui/select_box.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 = [\"rootElementRef\"],\r\n _excluded2 = [\"_feedbackHideTimeout\", \"_feedbackShowTimeout\", \"accessKey\", \"activeStateEnabled\", \"activeStateUnit\", \"aria\", \"children\", \"className\", \"classes\", \"dataSource\", \"defaultValue\", \"disabled\", \"displayExpr\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"name\", \"onActive\", \"onClick\", \"onContentReady\", \"onDimensionChanged\", \"onFocusIn\", \"onFocusOut\", \"onHoverEnd\", \"onHoverStart\", \"onInactive\", \"onKeyDown\", \"onKeyboardHandled\", \"onVisibilityChange\", \"rootElementRef\", \"rtlEnabled\", \"tabIndex\", \"value\", \"valueChange\", \"valueExpr\", \"visible\", \"width\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/vdom\";\r\nimport {\r\n WidgetProps\r\n} from \"./common/widget\";\r\nimport LegacySelectBox from \"../../ui/select_box\";\r\nimport {\r\n DomComponentWrapper\r\n} from \"./common/dom_component_wrapper\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n rootElementRef: rootElementRef\r\n },\r\n restAttributes: restAttributes\r\n } = _ref, componentProps = _objectWithoutPropertiesLoose(_ref.props, _excluded);\r\n return normalizeProps(createComponentVNode(2, DomComponentWrapper, _extends({\r\n rootElementRef: rootElementRef,\r\n componentType: LegacySelectBox,\r\n componentProps: componentProps\r\n }, restAttributes)))\r\n};\r\nexport var SelectBoxProps = _extends({}, WidgetProps, {\r\n focusStateEnabled: true,\r\n hoverStateEnabled: true,\r\n defaultValue: null\r\n});\r\nexport class SelectBox extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this._currentState = null;\r\n this.state = {\r\n value: void 0 !== this.props.value ? this.props.value : this.props.defaultValue\r\n }\r\n }\r\n get __state_value() {\r\n var state = this._currentState || this.state;\r\n return void 0 !== this.props.value ? this.props.value : state.value\r\n }\r\n set_value(value) {\r\n this.setState(state => {\r\n var _this$props$valueChan, _this$props;\r\n this._currentState = state;\r\n var newValue = value();\r\n null === (_this$props$valueChan = (_this$props = this.props).valueChange) || void 0 === _this$props$valueChan ? void 0 : _this$props$valueChan.call(_this$props, newValue);\r\n this._currentState = null;\r\n return {\r\n value: newValue\r\n }\r\n })\r\n }\r\n get restAttributes() {\r\n var _this$props$value = _extends({}, this.props, {\r\n value: this.__state_value\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$value, _excluded2);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n value: this.__state_value\r\n }),\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nSelectBox.defaultProps = _extends({}, SelectBoxProps);\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/page_size/small.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 = [\"defaultPageSize\", \"pageSize\", \"pageSizeChange\", \"pageSizes\", \"parentRef\"];\r\nimport {\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/vdom\";\r\nimport {\r\n SelectBox\r\n} from \"../../select_box\";\r\nimport {\r\n calculateValuesFittedWidth\r\n} from \"../utils/calculate_values_fitted_width\";\r\nimport {\r\n getElementMinWidth\r\n} from \"../utils/get_element_width\";\r\nimport {\r\n PagerProps\r\n} from \"../common/pager_props\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n pageSize: pageSize,\r\n pageSizeChange: pageSizeChange,\r\n pageSizes: pageSizes\r\n },\r\n width: width\r\n } = _ref;\r\n return createComponentVNode(2, SelectBox, {\r\n displayExpr: \"text\",\r\n valueExpr: \"value\",\r\n dataSource: pageSizes,\r\n value: pageSize,\r\n valueChange: pageSizeChange,\r\n width: width\r\n })\r\n};\r\nexport var PageSizeSmallProps = {};\r\nvar PageSizeSmallPropsType = {\r\n defaultPageSize: PagerProps.pageSize\r\n};\r\nexport class PageSizeSmall extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this._currentState = null;\r\n this.state = {\r\n minWidth: 10,\r\n pageSize: void 0 !== this.props.pageSize ? this.props.pageSize : this.props.defaultPageSize\r\n };\r\n this.updateWidth = this.updateWidth.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.updateWidth, [this.minWidth, this.__state_pageSize, this.props.pageSizeChange, this.props.pageSizes, this.props.defaultPageSize])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.minWidth, this.__state_pageSize, this.props.pageSizeChange, this.props.pageSizes, this.props.defaultPageSize])\r\n }\r\n get minWidth() {\r\n var state = this._currentState || this.state;\r\n return state.minWidth\r\n }\r\n set_minWidth(value) {\r\n this.setState(state => {\r\n this._currentState = state;\r\n var newValue = value();\r\n this._currentState = null;\r\n return {\r\n minWidth: newValue\r\n }\r\n })\r\n }\r\n get __state_pageSize() {\r\n var state = this._currentState || this.state;\r\n return void 0 !== this.props.pageSize ? this.props.pageSize : state.pageSize\r\n }\r\n set_pageSize(value) {\r\n this.setState(state => {\r\n var _this$props$pageSizeC, _this$props;\r\n this._currentState = state;\r\n var newValue = value();\r\n null === (_this$props$pageSizeC = (_this$props = this.props).pageSizeChange) || void 0 === _this$props$pageSizeC ? void 0 : _this$props$pageSizeC.call(_this$props, newValue);\r\n this._currentState = null;\r\n return {\r\n pageSize: newValue\r\n }\r\n })\r\n }\r\n updateWidth() {\r\n this.set_minWidth(() => getElementMinWidth(this.props.parentRef.current) || this.minWidth)\r\n }\r\n get width() {\r\n return calculateValuesFittedWidth(this.minWidth, this.props.pageSizes.map(p => p.value))\r\n }\r\n get restAttributes() {\r\n var _this$props$pageSize = _extends({}, this.props, {\r\n pageSize: this.__state_pageSize\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$pageSize, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n pageSize: this.__state_pageSize\r\n }),\r\n width: this.width,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPageSizeSmall.defaultProps = _extends({}, PageSizeSmallPropsType);\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/page_size/large.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 = [\"defaultPageSize\", \"pageSize\", \"pageSizeChange\", \"pageSizes\"];\r\nimport {\r\n createFragment,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/vdom\";\r\nimport {\r\n LightButton\r\n} from \"../common/light_button\";\r\nimport {\r\n PagerProps\r\n} from \"../common/pager_props\";\r\nimport {\r\n PAGER_SELECTED_PAGE_SIZE_CLASS,\r\n PAGER_PAGE_SIZE_CLASS\r\n} from \"../common/consts\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n pageSizesText: pageSizesText\r\n } = _ref;\r\n return createFragment(pageSizesText.map(_ref2 => {\r\n var {\r\n className: className,\r\n click: click,\r\n label: label,\r\n text: text\r\n } = _ref2;\r\n return createComponentVNode(2, LightButton, {\r\n className: className,\r\n label: label,\r\n onClick: click,\r\n children: text\r\n }, text)\r\n }), 0)\r\n};\r\nexport var PageSizeLargeProps = {};\r\nvar PageSizeLargePropsType = {\r\n defaultPageSize: PagerProps.pageSize\r\n};\r\nexport class PageSizeLarge extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this._currentState = null;\r\n this.state = {\r\n pageSize: void 0 !== this.props.pageSize ? this.props.pageSize : this.props.defaultPageSize\r\n };\r\n this.onPageSizeChange = this.onPageSizeChange.bind(this)\r\n }\r\n get __state_pageSize() {\r\n var state = this._currentState || this.state;\r\n return void 0 !== this.props.pageSize ? this.props.pageSize : state.pageSize\r\n }\r\n set_pageSize(value) {\r\n this.setState(state => {\r\n var _this$props$pageSizeC, _this$props;\r\n this._currentState = state;\r\n var newValue = value();\r\n null === (_this$props$pageSizeC = (_this$props = this.props).pageSizeChange) || void 0 === _this$props$pageSizeC ? void 0 : _this$props$pageSizeC.call(_this$props, newValue);\r\n this._currentState = null;\r\n return {\r\n pageSize: newValue\r\n }\r\n })\r\n }\r\n get pageSizesText() {\r\n var {\r\n pageSizes: pageSizes\r\n } = this.props;\r\n return pageSizes.map(_ref3 => {\r\n var {\r\n text: text,\r\n value: processedPageSize\r\n } = _ref3;\r\n var selected = processedPageSize === this.__state_pageSize;\r\n var className = selected ? PAGER_SELECTED_PAGE_SIZE_CLASS : PAGER_PAGE_SIZE_CLASS;\r\n return {\r\n className: className,\r\n click: this.onPageSizeChange(processedPageSize),\r\n label: \"Display \".concat(processedPageSize, \" items on page\"),\r\n text: text\r\n }\r\n })\r\n }\r\n onPageSizeChange(processedPageSize) {\r\n return () => {\r\n this.set_pageSize(() => processedPageSize)\r\n }\r\n }\r\n get restAttributes() {\r\n var _this$props$pageSize = _extends({}, this.props, {\r\n pageSize: this.__state_pageSize\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$pageSize, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n pageSize: this.__state_pageSize\r\n }),\r\n pageSizesText: this.pageSizesText,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPageSizeLarge.defaultProps = _extends({}, PageSizeLargePropsType);\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/page_size/selector.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 = [\"defaultPageSize\", \"isLargeDisplayMode\", \"pageSize\", \"pageSizeChange\", \"pageSizes\", \"rootElementRef\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/vdom\";\r\nimport {\r\n PageSizeSmall\r\n} from \"./small\";\r\nimport {\r\n PageSizeLarge\r\n} from \"./large\";\r\nimport {\r\n PagerProps\r\n} from \"../common/pager_props\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport {\r\n PAGER_PAGE_SIZES_CLASS\r\n} from \"../common/consts\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n htmlRef: htmlRef,\r\n normalizedPageSizes: normalizedPageSizes,\r\n props: {\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n pageSize: pageSize,\r\n pageSizeChange: pageSizeChange\r\n }\r\n } = _ref;\r\n return createVNode(1, \"div\", PAGER_PAGE_SIZES_CLASS, [isLargeDisplayMode && createComponentVNode(2, PageSizeLarge, {\r\n pageSizes: normalizedPageSizes,\r\n pageSize: pageSize,\r\n pageSizeChange: pageSizeChange\r\n }), !isLargeDisplayMode && createComponentVNode(2, PageSizeSmall, {\r\n parentRef: htmlRef,\r\n pageSizes: normalizedPageSizes,\r\n pageSize: pageSize,\r\n pageSizeChange: pageSizeChange\r\n })], 0, null, null, htmlRef)\r\n};\r\n\r\nfunction getAllText() {\r\n return messageLocalization.getFormatter(\"dxPager-pageSizesAllText\")()\r\n}\r\nvar PageSizeSelectorProps = {\r\n isLargeDisplayMode: true\r\n};\r\nvar PageSizeSelectorPropsType = {\r\n pageSizes: PagerProps.pageSizes,\r\n isLargeDisplayMode: PageSizeSelectorProps.isLargeDisplayMode,\r\n defaultPageSize: PagerProps.pageSize\r\n};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class PageSizeSelector extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this._currentState = null;\r\n this.htmlRef = infernoCreateRef();\r\n this.state = {\r\n pageSize: void 0 !== this.props.pageSize ? this.props.pageSize : this.props.defaultPageSize\r\n };\r\n this.setRootElementRef = this.setRootElementRef.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.setRootElementRef, [])]\r\n }\r\n updateEffects() {}\r\n get __state_pageSize() {\r\n var state = this._currentState || this.state;\r\n return void 0 !== this.props.pageSize ? this.props.pageSize : state.pageSize\r\n }\r\n set_pageSize(value) {\r\n this.setState(state => {\r\n var _this$props$pageSizeC, _this$props;\r\n this._currentState = state;\r\n var newValue = value();\r\n null === (_this$props$pageSizeC = (_this$props = this.props).pageSizeChange) || void 0 === _this$props$pageSizeC ? void 0 : _this$props$pageSizeC.call(_this$props, newValue);\r\n this._currentState = null;\r\n return {\r\n pageSize: newValue\r\n }\r\n })\r\n }\r\n setRootElementRef() {\r\n var {\r\n rootElementRef: rootElementRef\r\n } = this.props;\r\n if (rootElementRef) {\r\n rootElementRef.current = this.htmlRef.current\r\n }\r\n }\r\n get normalizedPageSizes() {\r\n var {\r\n pageSizes: pageSizes\r\n } = this.props;\r\n return pageSizes.map(p => \"all\" === p || 0 === p ? {\r\n text: getAllText(),\r\n value: 0\r\n } : {\r\n text: String(p),\r\n value: p\r\n })\r\n }\r\n get restAttributes() {\r\n var _this$props$pageSize = _extends({}, this.props, {\r\n pageSize: this.__state_pageSize\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$pageSize, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n pageSize: this.__state_pageSize\r\n }),\r\n htmlRef: this.htmlRef,\r\n normalizedPageSizes: this.normalizedPageSizes,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPageSizeSelector.defaultProps = _extends({}, PageSizeSelectorPropsType);\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/content.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"className\", \"defaultPageIndex\", \"defaultPageSize\", \"displayMode\", \"gridCompatibility\", \"hasKnownLastPage\", \"infoText\", \"infoTextRef\", \"infoTextVisible\", \"isLargeDisplayMode\", \"lightModeEnabled\", \"maxPagesCount\", \"onKeyDown\", \"pageCount\", \"pageIndex\", \"pageIndexChange\", \"pageSize\", \"pageSizeChange\", \"pageSizes\", \"pageSizesRef\", \"pagesCountText\", \"pagesNavigatorVisible\", \"pagesRef\", \"rootElementRef\", \"rtlEnabled\", \"showInfo\", \"showNavigationButtons\", \"showPageSizes\", \"totalCount\", \"visible\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent,\r\n normalizeStyles\r\n} from \"@devextreme/vdom\";\r\nimport {\r\n InfoText\r\n} from \"./info\";\r\nimport {\r\n PageIndexSelector\r\n} from \"./pages/page_index_selector\";\r\nimport {\r\n PageSizeSelector\r\n} from \"./page_size/selector\";\r\nimport {\r\n PAGER_PAGES_CLASS,\r\n PAGER_PAGE_INDEXES_CLASS,\r\n LIGHT_MODE_CLASS,\r\n PAGER_CLASS\r\n} from \"./common/consts\";\r\nimport {\r\n PagerProps\r\n} from \"./common/pager_props\";\r\nimport {\r\n combineClasses\r\n} from \"../../utils/combine_classes\";\r\nimport {\r\n Widget\r\n} from \"../common/widget\";\r\nimport {\r\n registerKeyboardAction as _registerKeyboardAction\r\n} from \"../../../ui/shared/accessibility\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n classes: classes,\r\n infoVisible: infoVisible,\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n pageIndexSelectorVisible: pageIndexSelectorVisible,\r\n pagesContainerVisibility: pagesContainerVisibility,\r\n pagesContainerVisible: pagesContainerVisible,\r\n props: {\r\n hasKnownLastPage: hasKnownLastPage,\r\n infoText: infoText,\r\n infoTextRef: infoTextRef,\r\n maxPagesCount: maxPagesCount,\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n pageIndexChange: pageIndexChange,\r\n pageSize: pageSize,\r\n pageSizeChange: pageSizeChange,\r\n pageSizes: pageSizes,\r\n pageSizesRef: pageSizesRef,\r\n pagesCountText: pagesCountText,\r\n pagesRef: pagesRef,\r\n rtlEnabled: rtlEnabled,\r\n showNavigationButtons: showNavigationButtons,\r\n showPageSizes: showPageSizes,\r\n totalCount: totalCount,\r\n visible: visible\r\n },\r\n restAttributes: restAttributes,\r\n widgetRootElementRef: widgetRootElementRef\r\n } = _ref;\r\n return normalizeProps(createComponentVNode(2, Widget, _extends({\r\n rootElementRef: widgetRootElementRef,\r\n rtlEnabled: rtlEnabled,\r\n classes: classes,\r\n visible: visible\r\n }, restAttributes, {\r\n children: [showPageSizes && createComponentVNode(2, PageSizeSelector, {\r\n rootElementRef: pageSizesRef,\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n pageSize: pageSize,\r\n pageSizeChange: pageSizeChange,\r\n pageSizes: pageSizes\r\n }), pagesContainerVisible && createVNode(1, \"div\", PAGER_PAGES_CLASS, [infoVisible && createComponentVNode(2, InfoText, {\r\n rootElementRef: infoTextRef,\r\n infoText: infoText,\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n totalCount: totalCount\r\n }), pageIndexSelectorVisible && createVNode(1, \"div\", PAGER_PAGE_INDEXES_CLASS, createComponentVNode(2, PageIndexSelector, {\r\n hasKnownLastPage: hasKnownLastPage,\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n maxPagesCount: maxPagesCount,\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n pageIndexChange: pageIndexChange,\r\n pagesCountText: pagesCountText,\r\n showNavigationButtons: showNavigationButtons,\r\n totalCount: totalCount\r\n }), 2, null, null, pagesRef)], 0, {\r\n style: normalizeStyles({\r\n visibility: pagesContainerVisibility\r\n })\r\n })]\r\n })))\r\n};\r\nexport var PagerContentProps = _extends({}, PagerProps, {\r\n infoTextVisible: true,\r\n isLargeDisplayMode: true\r\n});\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class PagerContent extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this._currentState = null;\r\n this.widgetRootElementRef = infernoCreateRef();\r\n this.state = {\r\n pageIndex: void 0 !== this.props.pageIndex ? this.props.pageIndex : this.props.defaultPageIndex,\r\n pageSize: void 0 !== this.props.pageSize ? this.props.pageSize : this.props.defaultPageSize\r\n };\r\n this.createFakeInstance = this.createFakeInstance.bind(this);\r\n this.setRootElementRef = this.setRootElementRef.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.setRootElementRef, [])]\r\n }\r\n updateEffects() {}\r\n get __state_pageIndex() {\r\n var state = this._currentState || this.state;\r\n return void 0 !== this.props.pageIndex ? this.props.pageIndex : state.pageIndex\r\n }\r\n set_pageIndex(value) {\r\n this.setState(state => {\r\n var _this$props$pageIndex, _this$props;\r\n this._currentState = state;\r\n var newValue = value();\r\n null === (_this$props$pageIndex = (_this$props = this.props).pageIndexChange) || void 0 === _this$props$pageIndex ? void 0 : _this$props$pageIndex.call(_this$props, newValue);\r\n this._currentState = null;\r\n return {\r\n pageIndex: newValue\r\n }\r\n })\r\n }\r\n get __state_pageSize() {\r\n var state = this._currentState || this.state;\r\n return void 0 !== this.props.pageSize ? this.props.pageSize : state.pageSize\r\n }\r\n set_pageSize(value) {\r\n this.setState(state => {\r\n var _this$props$pageSizeC, _this$props2;\r\n this._currentState = state;\r\n var newValue = value();\r\n null === (_this$props$pageSizeC = (_this$props2 = this.props).pageSizeChange) || void 0 === _this$props$pageSizeC ? void 0 : _this$props$pageSizeC.call(_this$props2, newValue);\r\n this._currentState = null;\r\n return {\r\n pageSize: newValue\r\n }\r\n })\r\n }\r\n getChildContext() {\r\n return _extends({}, this.context, {\r\n KeyboardActionContext: this.keyboardAction\r\n })\r\n }\r\n setRootElementRef() {\r\n var {\r\n rootElementRef: rootElementRef\r\n } = this.props;\r\n if (rootElementRef) {\r\n rootElementRef.current = this.widgetRootElementRef.current\r\n }\r\n }\r\n createFakeInstance() {\r\n return {\r\n option: () => false,\r\n element: () => this.widgetRootElementRef.current,\r\n _createActionByOption: () => e => {\r\n var _this$props$onKeyDown, _this$props3;\r\n null === (_this$props$onKeyDown = (_this$props3 = this.props).onKeyDown) || void 0 === _this$props$onKeyDown ? void 0 : _this$props$onKeyDown.call(_this$props3, e)\r\n }\r\n }\r\n }\r\n get keyboardAction() {\r\n return {\r\n registerKeyboardAction: (element, action) => {\r\n var fakePagerInstance = this.createFakeInstance();\r\n return _registerKeyboardAction(\"pager\", fakePagerInstance, element, void 0, action)\r\n }\r\n }\r\n }\r\n get infoVisible() {\r\n var {\r\n infoTextVisible: infoTextVisible,\r\n showInfo: showInfo\r\n } = this.props;\r\n return showInfo && infoTextVisible && this.isLargeDisplayMode\r\n }\r\n get pageIndexSelectorVisible() {\r\n return 0 !== this.__state_pageSize\r\n }\r\n get normalizedDisplayMode() {\r\n var {\r\n displayMode: displayMode,\r\n lightModeEnabled: lightModeEnabled\r\n } = this.props;\r\n if (\"adaptive\" === displayMode && void 0 !== lightModeEnabled) {\r\n return lightModeEnabled ? \"compact\" : \"full\"\r\n }\r\n return displayMode\r\n }\r\n get pagesContainerVisible() {\r\n return !!this.props.pagesNavigatorVisible && this.props.pageCount > 0\r\n }\r\n get pagesContainerVisibility() {\r\n if (\"auto\" === this.props.pagesNavigatorVisible && 1 === this.props.pageCount && this.props.hasKnownLastPage) {\r\n return \"hidden\"\r\n }\r\n return\r\n }\r\n get isLargeDisplayMode() {\r\n var displayMode = this.normalizedDisplayMode;\r\n var result = false;\r\n if (\"adaptive\" === displayMode) {\r\n result = this.props.isLargeDisplayMode\r\n } else {\r\n result = \"full\" === displayMode\r\n }\r\n return result\r\n }\r\n get classes() {\r\n var classesMap = {\r\n [\"\".concat(this.props.className)]: !!this.props.className,\r\n [PAGER_CLASS]: true,\r\n [LIGHT_MODE_CLASS]: !this.isLargeDisplayMode\r\n };\r\n return combineClasses(classesMap)\r\n }\r\n get restAttributes() {\r\n var _this$props$pageIndex2 = _extends({}, this.props, {\r\n pageIndex: this.__state_pageIndex,\r\n pageSize: this.__state_pageSize\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$pageIndex2, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n pageIndex: this.__state_pageIndex,\r\n pageSize: this.__state_pageSize\r\n }),\r\n widgetRootElementRef: this.widgetRootElementRef,\r\n keyboardAction: this.keyboardAction,\r\n infoVisible: this.infoVisible,\r\n pageIndexSelectorVisible: this.pageIndexSelectorVisible,\r\n pagesContainerVisible: this.pagesContainerVisible,\r\n pagesContainerVisibility: this.pagesContainerVisibility,\r\n isLargeDisplayMode: this.isLargeDisplayMode,\r\n classes: this.classes,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPagerContent.defaultProps = _extends({}, PagerContentProps);\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/pager.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"className\", \"defaultPageIndex\", \"defaultPageSize\", \"displayMode\", \"gridCompatibility\", \"hasKnownLastPage\", \"infoText\", \"lightModeEnabled\", \"maxPagesCount\", \"onKeyDown\", \"pageCount\", \"pageIndex\", \"pageIndexChange\", \"pageSize\", \"pageSizeChange\", \"pageSizes\", \"pagesCountText\", \"pagesNavigatorVisible\", \"rtlEnabled\", \"showInfo\", \"showNavigationButtons\", \"showPageSizes\", \"totalCount\", \"visible\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoWrapperComponent\r\n} from \"@devextreme/vdom\";\r\nimport {\r\n ResizableContainer\r\n} from \"./resizable_container\";\r\nimport {\r\n PagerProps\r\n} from \"./common/pager_props\";\r\nimport {\r\n PagerContent\r\n} from \"./content\";\r\nimport {\r\n combineClasses\r\n} from \"../../utils/combine_classes\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n pagerProps: pagerProps,\r\n restAttributes: restAttributes\r\n } = _ref;\r\n return normalizeProps(createComponentVNode(2, ResizableContainer, _extends({\r\n contentTemplate: PagerContent,\r\n pagerProps: pagerProps\r\n }, restAttributes)))\r\n};\r\nexport class Pager extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this._currentState = null;\r\n this.state = {\r\n pageIndex: void 0 !== this.props.pageIndex ? this.props.pageIndex : this.props.defaultPageIndex,\r\n pageSize: void 0 !== this.props.pageSize ? this.props.pageSize : this.props.defaultPageSize\r\n };\r\n this.pageIndexChange = this.pageIndexChange.bind(this);\r\n this.pageSizeChange = this.pageSizeChange.bind(this)\r\n }\r\n get __state_pageIndex() {\r\n var state = this._currentState || this.state;\r\n return void 0 !== this.props.pageIndex ? this.props.pageIndex : state.pageIndex\r\n }\r\n set_pageIndex(value) {\r\n this.setState(state => {\r\n var _this$props$pageIndex, _this$props;\r\n this._currentState = state;\r\n var newValue = value();\r\n null === (_this$props$pageIndex = (_this$props = this.props).pageIndexChange) || void 0 === _this$props$pageIndex ? void 0 : _this$props$pageIndex.call(_this$props, newValue);\r\n this._currentState = null;\r\n return {\r\n pageIndex: newValue\r\n }\r\n })\r\n }\r\n get __state_pageSize() {\r\n var state = this._currentState || this.state;\r\n return void 0 !== this.props.pageSize ? this.props.pageSize : state.pageSize\r\n }\r\n set_pageSize(value) {\r\n this.setState(state => {\r\n var _this$props$pageSizeC, _this$props2;\r\n this._currentState = state;\r\n var newValue = value();\r\n null === (_this$props$pageSizeC = (_this$props2 = this.props).pageSizeChange) || void 0 === _this$props$pageSizeC ? void 0 : _this$props$pageSizeC.call(_this$props2, newValue);\r\n this._currentState = null;\r\n return {\r\n pageSize: newValue\r\n }\r\n })\r\n }\r\n pageIndexChange(newPageIndex) {\r\n if (this.props.gridCompatibility) {\r\n this.set_pageIndex(() => newPageIndex + 1)\r\n } else {\r\n this.set_pageIndex(() => newPageIndex)\r\n }\r\n }\r\n get pageIndex() {\r\n if (this.props.gridCompatibility) {\r\n return this.__state_pageIndex - 1\r\n }\r\n return this.__state_pageIndex\r\n }\r\n pageSizeChange(newPageSize) {\r\n this.set_pageSize(() => newPageSize)\r\n }\r\n get className() {\r\n if (this.props.gridCompatibility) {\r\n return combineClasses({\r\n \"dx-datagrid-pager\": true,\r\n [\"\".concat(this.props.className)]: !!this.props.className\r\n })\r\n }\r\n return this.props.className\r\n }\r\n get pagerProps() {\r\n return _extends({}, _extends({}, this.props, {\r\n pageIndex: this.__state_pageIndex,\r\n pageSize: this.__state_pageSize\r\n }), {\r\n className: this.className,\r\n pageIndex: this.pageIndex,\r\n pageIndexChange: pageIndex => this.pageIndexChange(pageIndex),\r\n pageSizeChange: pageSize => this.pageSizeChange(pageSize)\r\n })\r\n }\r\n get restAttributes() {\r\n var _this$props$pageIndex2 = _extends({}, this.props, {\r\n pageIndex: this.__state_pageIndex,\r\n pageSize: this.__state_pageSize\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$pageIndex2, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n pageIndex: this.__state_pageIndex,\r\n pageSize: this.__state_pageSize\r\n }),\r\n pageIndexChange: this.pageIndexChange,\r\n pageIndex: this.pageIndex,\r\n pageSizeChange: this.pageSizeChange,\r\n className: this.className,\r\n pagerProps: this.pagerProps,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPager.defaultProps = _extends({}, PagerProps);\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/pager.j.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 {\r\n GridPagerWrapper\r\n} from \"../../component_wrapper/grid_pager\";\r\nimport {\r\n Pager as PagerComponent\r\n} from \"./pager\";\r\nexport default class Pager extends GridPagerWrapper {\r\n getProps() {\r\n var props = super.getProps();\r\n props.onKeyDown = this._wrapKeyDownHandler(props.onKeyDown);\r\n return props\r\n }\r\n get _propsInfo() {\r\n return {\r\n twoWay: [\r\n [\"pageIndex\", 1, \"pageIndexChange\"],\r\n [\"pageSize\", 5, \"pageSizeChange\"]\r\n ],\r\n allowNull: [],\r\n elements: [],\r\n templates: [],\r\n props: [\"gridCompatibility\", \"className\", \"showInfo\", \"infoText\", \"lightModeEnabled\", \"displayMode\", \"maxPagesCount\", \"pageCount\", \"pagesCountText\", \"visible\", \"hasKnownLastPage\", \"pagesNavigatorVisible\", \"pageIndexChange\", \"pageSizeChange\", \"showPageSizes\", \"pageSizes\", \"rtlEnabled\", \"showNavigationButtons\", \"totalCount\", \"onKeyDown\", \"defaultPageIndex\", \"defaultPageSize\", \"pageIndex\", \"pageSize\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return PagerComponent\r\n }\r\n}\r\nregisterComponent(\"dxPager\", Pager);\r\n","/**\r\n * DevExtreme (esm/ui/pager.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 Widget from \"../renovation/ui/pager/pager.j\";\r\nexport default Widget;\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.pager.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 modules from \"./ui.grid_core.modules\";\r\nimport Pager from \"../pager\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar PAGER_CLASS = \"pager\";\r\nvar MAX_PAGES_COUNT = 10;\r\nvar getPageIndex = function(dataController) {\r\n return 1 + (parseInt(dataController.pageIndex()) || 0)\r\n};\r\nvar PagerView = modules.View.inherit({\r\n init: function() {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n that._isVisible = false;\r\n dataController.changed.add((function(e) {\r\n if (e && e.repaintChangesOnly) {\r\n var pager = that._getPager();\r\n if (pager) {\r\n pager.option({\r\n pageIndex: getPageIndex(dataController),\r\n pageSize: dataController.pageSize(),\r\n pageCount: dataController.pageCount(),\r\n totalCount: dataController.totalCount(),\r\n hasKnownLastPage: dataController.hasKnownLastPage()\r\n })\r\n } else {\r\n that.render()\r\n }\r\n } else if (!e || \"update\" !== e.changeType && \"updateSelection\" !== e.changeType) {\r\n that.render()\r\n }\r\n }))\r\n },\r\n _getPager: function() {\r\n var $element = this.element();\r\n return $element && $element.data(\"dxPager\")\r\n },\r\n _renderCore: function() {\r\n var $element = this.element().addClass(this.addWidgetPrefix(PAGER_CLASS));\r\n var pagerOptions = this.option(\"pager\") || {};\r\n var dataController = this.getController(\"data\");\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var options = {\r\n maxPagesCount: MAX_PAGES_COUNT,\r\n pageIndex: getPageIndex(dataController),\r\n pageCount: dataController.pageCount(),\r\n pageSize: dataController.pageSize(),\r\n showPageSizes: pagerOptions.showPageSizeSelector,\r\n showInfo: pagerOptions.showInfo,\r\n displayMode: pagerOptions.displayMode,\r\n pagesNavigatorVisible: pagerOptions.visible,\r\n showNavigationButtons: pagerOptions.showNavigationButtons,\r\n pageSizes: this.getPageSizes(),\r\n totalCount: dataController.totalCount(),\r\n hasKnownLastPage: dataController.hasKnownLastPage(),\r\n pageIndexChanged: function(pageIndex) {\r\n if (dataController.pageIndex() !== pageIndex - 1) {\r\n setTimeout((function() {\r\n dataController.pageIndex(pageIndex - 1)\r\n }))\r\n }\r\n },\r\n pageSizeChanged: function(pageSize) {\r\n setTimeout((function() {\r\n dataController.pageSize(pageSize)\r\n }))\r\n },\r\n onKeyDown: e => keyboardController && keyboardController.executeAction(\"onKeyDown\", e),\r\n useLegacyKeyboardNavigation: this.option(\"useLegacyKeyboardNavigation\"),\r\n useKeyboard: this.option(\"keyboardNavigation.enabled\")\r\n };\r\n if (isDefined(pagerOptions.infoText)) {\r\n options.infoText = pagerOptions.infoText\r\n }\r\n if (hasWindow()) {\r\n this._createComponent($element, Pager, options)\r\n } else {\r\n $element.addClass(\"dx-pager\").html('
')\r\n }\r\n },\r\n getPageSizes: function() {\r\n var dataController = this.getController(\"data\");\r\n var pagerOptions = this.option(\"pager\");\r\n var allowedPageSizes = pagerOptions && pagerOptions.allowedPageSizes;\r\n var pageSize = dataController.pageSize();\r\n if (!isDefined(this._pageSizes) || -1 === inArray(pageSize, this._pageSizes)) {\r\n this._pageSizes = [];\r\n if (pagerOptions) {\r\n if (Array.isArray(allowedPageSizes)) {\r\n this._pageSizes = allowedPageSizes\r\n } else if (allowedPageSizes && pageSize > 1) {\r\n this._pageSizes = [Math.floor(pageSize / 2), pageSize, 2 * pageSize]\r\n }\r\n }\r\n }\r\n return this._pageSizes\r\n },\r\n isVisible: function() {\r\n var dataController = this.getController(\"data\");\r\n var pagerOptions = this.option(\"pager\");\r\n var pagerVisible = pagerOptions && pagerOptions.visible;\r\n var scrolling = this.option(\"scrolling\");\r\n if (this._isVisible) {\r\n return true\r\n }\r\n if (\"auto\" === pagerVisible) {\r\n if (scrolling && (\"virtual\" === scrolling.mode || \"infinite\" === scrolling.mode)) {\r\n pagerVisible = false\r\n } else {\r\n pagerVisible = dataController.pageCount() > 1 || dataController.isLoaded() && !dataController.hasKnownLastPage()\r\n }\r\n }\r\n this._isVisible = pagerVisible;\r\n return pagerVisible\r\n },\r\n getHeight: function() {\r\n return this.getElementHeight()\r\n },\r\n optionChanged: function(args) {\r\n var name = args.name;\r\n var isPager = \"pager\" === name;\r\n var isPaging = \"paging\" === name;\r\n var isDataSource = \"dataSource\" === name;\r\n var isScrolling = \"scrolling\" === name;\r\n var dataController = this.getController(\"data\");\r\n if (isPager || isPaging || isScrolling || isDataSource) {\r\n args.handled = true;\r\n if (dataController.skipProcessingPagingChange(args.fullName)) {\r\n return\r\n }\r\n if (isPager || isPaging) {\r\n this._pageSizes = null\r\n }\r\n if (isPager || isPaging || isScrolling) {\r\n this._isVisible = false\r\n }\r\n if (!isDataSource) {\r\n this._invalidate();\r\n if (hasWindow() && isPager && this.component) {\r\n this.component.resize()\r\n }\r\n }\r\n }\r\n }\r\n});\r\nexport var pagerModule = {\r\n defaultOptions: function() {\r\n return {\r\n pager: {\r\n visible: \"auto\",\r\n showPageSizeSelector: false,\r\n allowedPageSizes: \"auto\"\r\n }\r\n }\r\n },\r\n views: {\r\n pagerView: PagerView\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.pager.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n pagerModule\r\n} from \"../grid_core/ui.grid_core.pager\";\r\ngridCore.registerModule(\"pager\", pagerModule);\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.columns_resizing_reordering.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n isDefined,\r\n isString,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n addNamespace,\r\n eventData as getEventData,\r\n isTouchEvent\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n start as dragEventStart,\r\n move as dragEventMove,\r\n end as dragEventEnd\r\n} from \"../../events/drag\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport fx from \"../../animation/fx\";\r\nimport swatchContainer from \"../widget/swatch_container\";\r\nvar COLUMNS_SEPARATOR_CLASS = \"columns-separator\";\r\nvar COLUMNS_SEPARATOR_TRANSPARENT = \"columns-separator-transparent\";\r\nvar DRAGGING_HEADER_CLASS = \"drag-header\";\r\nvar CELL_CONTENT_CLASS = \"text-content\";\r\nvar HEADERS_DRAG_ACTION_CLASS = \"drag-action\";\r\nvar TRACKER_CLASS = \"tracker\";\r\nvar HEADERS_DROP_HIGHLIGHT_CLASS = \"drop-highlight\";\r\nvar BLOCK_SEPARATOR_CLASS = \"dx-block-separator\";\r\nvar HEADER_ROW_CLASS = \"dx-header-row\";\r\nvar WIDGET_CLASS = \"dx-widget\";\r\nvar DRAGGING_COMMAND_CELL_CLASS = \"dx-drag-command-cell\";\r\nvar MODULE_NAMESPACE = \"dxDataGridResizingReordering\";\r\nvar COLUMNS_SEPARATOR_TOUCH_TRACKER_WIDTH = 10;\r\nvar DRAGGING_DELTA = 5;\r\nvar COLUMN_OPACITY = .5;\r\nvar allowResizing = function(that) {\r\n return that.option(\"allowColumnResizing\") || that.getController(\"columns\").isColumnOptionUsed(\"allowResizing\")\r\n};\r\nvar allowReordering = function(that) {\r\n return that.option(\"allowColumnReordering\") || that.getController(\"columns\").isColumnOptionUsed(\"allowReordering\")\r\n};\r\nvar TrackerView = modules.View.inherit({\r\n _renderCore: function() {\r\n this.callBase();\r\n this.element().addClass(this.addWidgetPrefix(TRACKER_CLASS));\r\n this.hide()\r\n },\r\n _unsubscribeFromCallback: function() {\r\n if (this._positionChanged) {\r\n this._tablePositionController.positionChanged.remove(this._positionChanged)\r\n }\r\n },\r\n _subscribeToCallback: function() {\r\n var that = this;\r\n that._positionChanged = function(position) {\r\n var $element = that.element();\r\n if ($element && $element.hasClass(that.addWidgetPrefix(TRACKER_CLASS))) {\r\n $element.css({\r\n top: position.top\r\n });\r\n $element.height(position.height)\r\n }\r\n };\r\n this._tablePositionController.positionChanged.add(that._positionChanged)\r\n },\r\n optionChanged: function(args) {\r\n if (\"allowColumnResizing\" === args.name) {\r\n this._unsubscribeFromCallback();\r\n if (args.value) {\r\n this._subscribeToCallback();\r\n this._invalidate()\r\n }\r\n }\r\n this.callBase(args)\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._tablePositionController = this.getController(\"tablePosition\");\r\n this._subscribeToCallback()\r\n },\r\n isVisible: function() {\r\n return allowResizing(this)\r\n },\r\n show: function() {\r\n this.element().show()\r\n },\r\n hide: function() {\r\n this.element() && this.element().hide()\r\n },\r\n setHeight: function(value) {\r\n this.element().height(value)\r\n },\r\n dispose: function() {\r\n this._unsubscribeFromCallback();\r\n this.callBase()\r\n }\r\n});\r\nvar SeparatorView = modules.View.inherit({\r\n _renderSeparator: function() {},\r\n _renderCore: function(options) {\r\n this.callBase(options);\r\n this._isShown = true;\r\n this._renderSeparator();\r\n this.hide()\r\n },\r\n show: function() {\r\n this._isShown = true\r\n },\r\n hide: function() {\r\n this._isShown = false\r\n },\r\n height: function(value) {\r\n var $element = this.element();\r\n if ($element) {\r\n if (isDefined(value)) {\r\n $element.height(value)\r\n } else {\r\n return $element.height()\r\n }\r\n }\r\n },\r\n width: function(value) {\r\n var $element = this.element();\r\n if ($element) {\r\n if (isDefined(value)) {\r\n $element.width(value)\r\n } else {\r\n return $element.width()\r\n }\r\n }\r\n }\r\n});\r\nvar ColumnsSeparatorView = SeparatorView.inherit({\r\n _renderSeparator: function() {\r\n this.callBase();\r\n var $element = this.element();\r\n $element.addClass(this.addWidgetPrefix(COLUMNS_SEPARATOR_CLASS))\r\n },\r\n _subscribeToCallback: function() {\r\n var that = this;\r\n var $element;\r\n that._positionChanged = function(position) {\r\n $element = that.element();\r\n if ($element) {\r\n $element.css({\r\n top: position.top\r\n });\r\n $element.height(position.height)\r\n }\r\n };\r\n that._tablePositionController.positionChanged.add(that._positionChanged)\r\n },\r\n _unsubscribeFromCallback: function() {\r\n this._positionChanged && this._tablePositionController.positionChanged.remove(this._positionChanged)\r\n },\r\n _init: function() {\r\n this._isTransparent = allowResizing(this);\r\n if (this.isVisible()) {\r\n this._subscribeToCallback()\r\n }\r\n },\r\n isVisible: function() {\r\n return this.option(\"showColumnHeaders\") && (allowReordering(this) || allowResizing(this))\r\n },\r\n optionChanged: function(args) {\r\n if (\"allowColumnResizing\" === args.name) {\r\n if (args.value) {\r\n this._init();\r\n this._invalidate();\r\n this.hide(true)\r\n } else {\r\n this._unsubscribeFromCallback();\r\n this._isTransparent = allowResizing(this);\r\n this.hide(true)\r\n }\r\n }\r\n this.callBase(args)\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._tablePositionController = this.getController(\"tablePosition\");\r\n this._init()\r\n },\r\n show: function() {\r\n var $element = this.element();\r\n if ($element && !this._isShown) {\r\n if (this._isTransparent) {\r\n $element.removeClass(this.addWidgetPrefix(COLUMNS_SEPARATOR_TRANSPARENT))\r\n } else {\r\n $element.show()\r\n }\r\n }\r\n this.callBase()\r\n },\r\n hide: function(force) {\r\n var $element = this.element();\r\n var columnsSeparatorTransparent = this.addWidgetPrefix(COLUMNS_SEPARATOR_TRANSPARENT);\r\n if ($element && (this._isShown || force)) {\r\n if (this._isTransparent) {\r\n $element.addClass(columnsSeparatorTransparent);\r\n $element.css(\"left\", \"\");\r\n $element.show()\r\n } else {\r\n if ($element.hasClass(columnsSeparatorTransparent)) {\r\n $element.removeClass(columnsSeparatorTransparent)\r\n }\r\n $element.hide()\r\n }\r\n }\r\n this.callBase()\r\n },\r\n moveByX: function(outerX) {\r\n var $element = this.element();\r\n if ($element) {\r\n $element.css(\"left\", outerX - this._parentElement().offset().left)\r\n }\r\n },\r\n changeCursor: function(cursorName) {\r\n cursorName = isDefined(cursorName) ? cursorName : \"\";\r\n var $element = this.element();\r\n if ($element) {\r\n $element.css(\"cursor\", cursorName)\r\n }\r\n },\r\n dispose: function() {\r\n this._unsubscribeFromCallback();\r\n this.callBase()\r\n }\r\n});\r\nvar BlockSeparatorView = SeparatorView.inherit({\r\n init: function() {\r\n var that = this;\r\n this.callBase();\r\n this.getController(\"data\").loadingChanged.add((function(isLoading) {\r\n if (!isLoading) {\r\n that.hide()\r\n }\r\n }))\r\n },\r\n _renderSeparator: function() {\r\n this.callBase();\r\n this.element().addClass(BLOCK_SEPARATOR_CLASS).html(\" \")\r\n },\r\n hide: function() {\r\n var $parent = this._parentElement();\r\n var $element = this.element();\r\n if ($element && this._isShown) {\r\n $element.css(\"display\", \"none\")\r\n }\r\n if ($parent && !$parent.children(\".\" + BLOCK_SEPARATOR_CLASS).length) {\r\n $parent.prepend(this.element())\r\n }\r\n this.callBase()\r\n },\r\n isVisible: function() {\r\n var groupPanelOptions = this.option(\"groupPanel\");\r\n var columnChooserOptions = this.option(\"columnChooser\");\r\n return groupPanelOptions && groupPanelOptions.visible || columnChooserOptions && columnChooserOptions.enabled\r\n },\r\n show: function(targetLocation) {\r\n var $element = this.element();\r\n var startAnimate = function(toOptions) {\r\n fx.stop($element, true);\r\n fx.animate($element, {\r\n type: \"slide\",\r\n from: {\r\n width: 0,\r\n display: toOptions.display\r\n },\r\n to: toOptions,\r\n duration: 300,\r\n easing: \"swing\"\r\n })\r\n };\r\n if ($element && !this._isShown) {\r\n switch (targetLocation) {\r\n case \"group\":\r\n startAnimate({\r\n width: \"50px\",\r\n display: \"inline-block\"\r\n });\r\n break;\r\n case \"columnChooser\":\r\n startAnimate({\r\n width: \"100%\",\r\n display: \"block\"\r\n });\r\n break;\r\n default:\r\n $element.css(\"display\", \"\")\r\n }\r\n }\r\n this.callBase()\r\n }\r\n});\r\nvar DraggingHeaderView = modules.View.inherit({\r\n _isDragging: false,\r\n isDragging: function() {\r\n return this._isDragging\r\n },\r\n _getDraggingPanelByPos: function(pos) {\r\n var result;\r\n each(this._dragOptions.draggingPanels, (function(index, draggingPanel) {\r\n if (draggingPanel) {\r\n var boundingRect = draggingPanel.getBoundingRect();\r\n if (boundingRect && (void 0 === boundingRect.bottom || pos.y < boundingRect.bottom) && (void 0 === boundingRect.top || pos.y > boundingRect.top) && (void 0 === boundingRect.left || pos.x > boundingRect.left) && (void 0 === boundingRect.right || pos.x < boundingRect.right)) {\r\n result = draggingPanel;\r\n return false\r\n }\r\n }\r\n }));\r\n return result\r\n },\r\n _renderCore: function() {\r\n this.element().addClass(this.addWidgetPrefix(DRAGGING_HEADER_CLASS) + \" \" + this.addWidgetPrefix(CELL_CONTENT_CLASS) + \" \" + WIDGET_CLASS).hide()\r\n },\r\n _resetTargetColumnOptions: function() {\r\n var params = this._dropOptions;\r\n params.targetColumnIndex = -1;\r\n delete params.targetColumnElement;\r\n delete params.isLast;\r\n delete params.posX;\r\n delete params.posY\r\n },\r\n _getVisibleIndexObject: function(rowIndex, visibleIndex) {\r\n if (isDefined(rowIndex)) {\r\n return {\r\n columnIndex: visibleIndex,\r\n rowIndex: rowIndex\r\n }\r\n }\r\n return visibleIndex\r\n },\r\n dispose: function() {\r\n var element = this.element();\r\n this._dragOptions = null;\r\n element && element.parent().find(\".\" + this.addWidgetPrefix(DRAGGING_HEADER_CLASS)).remove()\r\n },\r\n isVisible: function() {\r\n var columnsController = this.getController(\"columns\");\r\n var commonColumnSettings = columnsController.getCommonSettings();\r\n return this.option(\"showColumnHeaders\") && (allowReordering(this) || commonColumnSettings.allowGrouping || commonColumnSettings.allowHiding)\r\n },\r\n init: function() {\r\n var that = this;\r\n this.callBase();\r\n this._controller = this.getController(\"draggingHeader\");\r\n this._columnsResizerViewController = this.getController(\"columnsResizer\");\r\n this.getController(\"data\").loadingChanged.add((function(isLoading) {\r\n var element = that.element();\r\n if (!isLoading && element) {\r\n element.hide()\r\n }\r\n }))\r\n },\r\n dragHeader: function(options) {\r\n var columnElement = options.columnElement;\r\n var isCommandColumn = !!options.sourceColumn.type;\r\n this._isDragging = true;\r\n this._dragOptions = options;\r\n this._dropOptions = {\r\n sourceIndex: options.index,\r\n sourceColumnIndex: this._getVisibleIndexObject(options.rowIndex, options.columnIndex),\r\n sourceColumnElement: options.columnElement,\r\n sourceLocation: options.sourceLocation\r\n };\r\n var document = domAdapter.getDocument();\r\n this._onSelectStart = document.onselectstart;\r\n document.onselectstart = function() {\r\n return false\r\n };\r\n this._controller.drag(this._dropOptions);\r\n this.element().css({\r\n textAlign: columnElement && columnElement.css(\"textAlign\"),\r\n height: columnElement && (isCommandColumn && columnElement.get(0).clientHeight || columnElement.height()),\r\n width: columnElement && (isCommandColumn && columnElement.get(0).clientWidth || columnElement.width()),\r\n whiteSpace: columnElement && columnElement.css(\"whiteSpace\")\r\n }).addClass(this.addWidgetPrefix(HEADERS_DRAG_ACTION_CLASS)).toggleClass(DRAGGING_COMMAND_CELL_CLASS, isCommandColumn).text(isCommandColumn ? \"\" : options.sourceColumn.caption);\r\n this.element().appendTo(swatchContainer.getSwatchContainer(columnElement))\r\n },\r\n moveHeader: function(args) {\r\n var e = args.event;\r\n var that = e.data.that;\r\n var eventData = getEventData(e);\r\n var isResizing = that._columnsResizerViewController ? that._columnsResizerViewController.isResizing() : false;\r\n var dragOptions = that._dragOptions;\r\n if (that._isDragging && !isResizing) {\r\n var $element = that.element();\r\n var moveDeltaX = Math.abs(eventData.x - dragOptions.columnElement.offset().left - dragOptions.deltaX);\r\n var moveDeltaY = Math.abs(eventData.y - dragOptions.columnElement.offset().top - dragOptions.deltaY);\r\n if ($element.is(\":visible\") || moveDeltaX > DRAGGING_DELTA || moveDeltaY > DRAGGING_DELTA) {\r\n $element.show();\r\n var newLeft = eventData.x - dragOptions.deltaX;\r\n var newTop = eventData.y - dragOptions.deltaY;\r\n $element.css({\r\n left: newLeft,\r\n top: newTop\r\n });\r\n that.dockHeader(eventData)\r\n }\r\n e.preventDefault()\r\n }\r\n },\r\n dockHeader: function(eventData) {\r\n var targetDraggingPanel = this._getDraggingPanelByPos(eventData);\r\n var controller = this._controller;\r\n var params = this._dropOptions;\r\n var dragOptions = this._dragOptions;\r\n if (targetDraggingPanel) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isVerticalOrientation = \"columnChooser\" === targetDraggingPanel.getName();\r\n var axisName = isVerticalOrientation ? \"y\" : \"x\";\r\n var targetLocation = targetDraggingPanel.getName();\r\n var rowIndex = \"headers\" === targetLocation ? dragOptions.rowIndex : void 0;\r\n var sourceColumn = dragOptions.sourceColumn;\r\n var columnElements = targetDraggingPanel.getColumnElements(rowIndex, null === sourceColumn || void 0 === sourceColumn ? void 0 : sourceColumn.ownerBand) || [];\r\n var pointsByTarget = dragOptions.pointsByTarget = dragOptions.pointsByTarget || {};\r\n var pointsByColumns = \"columnChooser\" === targetLocation ? [] : pointsByTarget[targetLocation] || controller._generatePointsByColumns(extend({}, dragOptions, {\r\n targetDraggingPanel: targetDraggingPanel,\r\n columns: targetDraggingPanel.getColumns(rowIndex),\r\n columnElements: columnElements,\r\n isVerticalOrientation: isVerticalOrientation,\r\n startColumnIndex: \"headers\" === targetLocation && $(columnElements[0]).index()\r\n }));\r\n pointsByTarget[targetLocation] = pointsByColumns;\r\n params.targetLocation = targetLocation;\r\n if (pointsByColumns.length > 0) {\r\n for (var i = 0; i < pointsByColumns.length; i++) {\r\n var centerPosition = pointsByColumns[i + 1] && (pointsByColumns[i][axisName] + pointsByColumns[i + 1][axisName]) / 2;\r\n if (void 0 === centerPosition || (rtlEnabled && \"x\" === axisName ? eventData[axisName] > centerPosition : eventData[axisName] < centerPosition)) {\r\n params.targetColumnIndex = this._getVisibleIndexObject(rowIndex, pointsByColumns[i].columnIndex);\r\n if (columnElements[i]) {\r\n params.targetColumnElement = columnElements.eq(i);\r\n params.isLast = false\r\n } else {\r\n params.targetColumnElement = columnElements.last();\r\n params.isLast = true\r\n }\r\n params.posX = pointsByColumns[i].x;\r\n params.posY = pointsByColumns[i].y;\r\n controller.dock(params);\r\n break\r\n }\r\n }\r\n } else {\r\n this._resetTargetColumnOptions();\r\n controller.dock(params)\r\n }\r\n }\r\n },\r\n dropHeader: function(args) {\r\n var e = args.event;\r\n var that = e.data.that;\r\n var controller = that._controller;\r\n that.element().hide();\r\n if (controller && that._isDragging) {\r\n controller.drop(that._dropOptions)\r\n }\r\n that.element().appendTo(that._parentElement());\r\n that._dragOptions = null;\r\n that._dropOptions = null;\r\n that._isDragging = false;\r\n domAdapter.getDocument().onselectstart = that._onSelectStart || null\r\n }\r\n});\r\nvar isNextColumnResizingMode = function(that) {\r\n return \"widget\" !== that.option(\"columnResizingMode\")\r\n};\r\nvar ColumnsResizerViewController = modules.ViewController.inherit({\r\n _isHeadersRowArea: function(posY) {\r\n if (this._columnHeadersView) {\r\n var element = this._columnHeadersView.element();\r\n if (element) {\r\n var offsetTop = element.offset().top;\r\n var headersRowHeight = this._columnHeadersView.getHeadersRowHeight();\r\n return posY >= offsetTop && posY <= offsetTop + headersRowHeight\r\n }\r\n }\r\n return false\r\n },\r\n _isRtlParentStyle: function() {\r\n var _this$_$parentContain;\r\n return this.option(\"rtlEnabled\") && \"rtl\" === (null === (_this$_$parentContain = this._$parentContainer) || void 0 === _this$_$parentContain ? void 0 : _this$_$parentContain.parent().css(\"direction\"))\r\n },\r\n _pointCreated: function(point, cellsLength, columns) {\r\n var isNextColumnMode = isNextColumnResizingMode(this);\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isRtlParentStyle = this._isRtlParentStyle();\r\n var firstPointColumnIndex = !isNextColumnMode && rtlEnabled && !isRtlParentStyle ? 0 : 1;\r\n if (point.index >= firstPointColumnIndex && point.index < cellsLength + (!isNextColumnMode && (!rtlEnabled || isRtlParentStyle) ? 1 : 0)) {\r\n point.columnIndex -= firstPointColumnIndex;\r\n var currentColumn = columns[point.columnIndex] || {};\r\n var nextColumn = columns[point.columnIndex + 1] || {};\r\n return !(isNextColumnMode ? currentColumn.allowResizing && nextColumn.allowResizing : currentColumn.allowResizing)\r\n }\r\n return true\r\n },\r\n _getTargetPoint: function(pointsByColumns, currentX, deltaX) {\r\n if (pointsByColumns) {\r\n for (var i = 0; i < pointsByColumns.length; i++) {\r\n if (pointsByColumns[i].x === pointsByColumns[0].x && pointsByColumns[i + 1] && pointsByColumns[i].x === pointsByColumns[i + 1].x) {\r\n continue\r\n }\r\n if (pointsByColumns[i].x - deltaX <= currentX && currentX <= pointsByColumns[i].x + deltaX) {\r\n return pointsByColumns[i]\r\n }\r\n }\r\n }\r\n return null\r\n },\r\n _moveSeparator: function(args) {\r\n var e = args.event;\r\n var that = e.data;\r\n var columnsSeparatorWidth = that._columnsSeparatorView.width();\r\n var isNextColumnMode = isNextColumnResizingMode(that);\r\n var deltaX = columnsSeparatorWidth / 2;\r\n var parentOffset = that._$parentContainer.offset();\r\n var parentOffsetLeft = parentOffset.left;\r\n var eventData = getEventData(e);\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n var isRtlParentStyle = this._isRtlParentStyle();\r\n if (that._isResizing && that._resizingInfo) {\r\n if ((parentOffsetLeft <= eventData.x || !isNextColumnMode && isRtlParentStyle) && (!isNextColumnMode || eventData.x <= parentOffsetLeft + that._$parentContainer.width())) {\r\n if (that._updateColumnsWidthIfNeeded(eventData.x)) {\r\n var $cell = that._columnHeadersView.getColumnElements().eq(that._resizingInfo.currentColumnIndex);\r\n var cell = $cell[0];\r\n if (cell) {\r\n var outerWidth = cell.getBoundingClientRect().width;\r\n that._columnsSeparatorView.moveByX($cell.offset().left + ((isNextColumnMode || isRtlParentStyle) && rtlEnabled ? 0 : outerWidth));\r\n that._tablePositionController.update(that._targetPoint.y);\r\n e.preventDefault()\r\n }\r\n }\r\n }\r\n } else if (that._isHeadersRowArea(eventData.y)) {\r\n if (that._previousParentOffset) {\r\n if (that._previousParentOffset.left !== parentOffset.left || that._previousParentOffset.top !== parentOffset.top) {\r\n that.pointsByColumns(null)\r\n }\r\n }\r\n that._targetPoint = that._getTargetPoint(that.pointsByColumns(), eventData.x, columnsSeparatorWidth);\r\n that._previousParentOffset = parentOffset;\r\n that._isReadyResizing = false;\r\n if (that._targetPoint) {\r\n that._columnsSeparatorView.changeCursor(\"col-resize\");\r\n that._columnsSeparatorView.moveByX(that._targetPoint.x - deltaX);\r\n that._tablePositionController.update(that._targetPoint.y);\r\n that._isReadyResizing = true;\r\n e.preventDefault()\r\n } else {\r\n that._columnsSeparatorView.changeCursor()\r\n }\r\n } else {\r\n that.pointsByColumns(null);\r\n that._isReadyResizing = false;\r\n that._columnsSeparatorView.changeCursor()\r\n }\r\n },\r\n _endResizing: function(args) {\r\n var e = args.event;\r\n var that = e.data;\r\n if (that._isResizing) {\r\n that.pointsByColumns(null);\r\n that._resizingInfo = null;\r\n that._columnsSeparatorView.hide();\r\n that._columnsSeparatorView.changeCursor();\r\n that._trackerView.hide();\r\n that._isReadyResizing = false;\r\n that._isResizing = false\r\n }\r\n },\r\n _getNextColumnIndex: function(currentColumnIndex) {\r\n return currentColumnIndex + 1\r\n },\r\n _setupResizingInfo: function(posX) {\r\n var currentColumnIndex = this._targetPoint.columnIndex;\r\n var nextColumnIndex = this._getNextColumnIndex(currentColumnIndex);\r\n var currentHeader = this._columnHeadersView.getHeaderElement(currentColumnIndex);\r\n var nextHeader = this._columnHeadersView.getHeaderElement(nextColumnIndex);\r\n this._resizingInfo = {\r\n startPosX: posX,\r\n currentColumnIndex: currentColumnIndex,\r\n currentColumnWidth: currentHeader && currentHeader.length > 0 ? getBoundingRect(currentHeader[0]).width : 0,\r\n nextColumnIndex: nextColumnIndex,\r\n nextColumnWidth: nextHeader && nextHeader.length > 0 ? getBoundingRect(nextHeader[0]).width : 0\r\n }\r\n },\r\n _startResizing: function(args) {\r\n var e = args.event;\r\n var that = e.data;\r\n var eventData = getEventData(e);\r\n if (isTouchEvent(e)) {\r\n if (that._isHeadersRowArea(eventData.y)) {\r\n that._targetPoint = that._getTargetPoint(that.pointsByColumns(), eventData.x, COLUMNS_SEPARATOR_TOUCH_TRACKER_WIDTH);\r\n if (that._targetPoint) {\r\n that._columnsSeparatorView.moveByX(that._targetPoint.x - that._columnsSeparatorView.width() / 2);\r\n that._isReadyResizing = true\r\n }\r\n } else {\r\n that._isReadyResizing = false\r\n }\r\n }\r\n if (that._isReadyResizing) {\r\n that._setupResizingInfo(eventData.x);\r\n that._isResizing = true;\r\n that._tablePositionController.update(that._targetPoint.y);\r\n that._columnsSeparatorView.show();\r\n that._trackerView.show();\r\n var scrollable = that.component.getScrollable();\r\n if (scrollable && that._isRtlParentStyle()) {\r\n that._scrollRight = scrollable.$content().width() - scrollable._container().width() - scrollable.scrollLeft()\r\n }\r\n e.preventDefault();\r\n e.stopPropagation()\r\n }\r\n if (this.isResizing()) {\r\n this.getController(\"editorFactory\").loseFocus()\r\n }\r\n },\r\n _generatePointsByColumns: function() {\r\n var that = this;\r\n var columns = that._columnsController ? that._columnsController.getVisibleColumns() : [];\r\n var cells = that._columnHeadersView.getColumnElements();\r\n var pointsByColumns = [];\r\n if (cells && cells.length > 0) {\r\n pointsByColumns = gridCoreUtils.getPointsByColumns(cells, (function(point) {\r\n return that._pointCreated(point, cells.length, columns)\r\n }))\r\n }\r\n that._pointsByColumns = pointsByColumns\r\n },\r\n _unsubscribeFromEvents: function() {\r\n this._moveSeparatorHandler && eventsEngine.off(domAdapter.getDocument(), addNamespace(pointerEvents.move, MODULE_NAMESPACE), this._moveSeparatorHandler);\r\n this._startResizingHandler && eventsEngine.off(this._$parentContainer, addNamespace(pointerEvents.down, MODULE_NAMESPACE), this._startResizingHandler);\r\n if (this._endResizingHandler) {\r\n eventsEngine.off(this._columnsSeparatorView.element(), addNamespace(pointerEvents.up, MODULE_NAMESPACE), this._endResizingHandler);\r\n eventsEngine.off(domAdapter.getDocument(), addNamespace(pointerEvents.up, MODULE_NAMESPACE), this._endResizingHandler)\r\n }\r\n },\r\n _subscribeToEvents: function() {\r\n this._moveSeparatorHandler = this.createAction(this._moveSeparator);\r\n this._startResizingHandler = this.createAction(this._startResizing);\r\n this._endResizingHandler = this.createAction(this._endResizing);\r\n eventsEngine.on(domAdapter.getDocument(), addNamespace(pointerEvents.move, MODULE_NAMESPACE), this, this._moveSeparatorHandler);\r\n eventsEngine.on(this._$parentContainer, addNamespace(pointerEvents.down, MODULE_NAMESPACE), this, this._startResizingHandler);\r\n eventsEngine.on(this._columnsSeparatorView.element(), addNamespace(pointerEvents.up, MODULE_NAMESPACE), this, this._endResizingHandler);\r\n eventsEngine.on(domAdapter.getDocument(), addNamespace(pointerEvents.up, MODULE_NAMESPACE), this, this._endResizingHandler)\r\n },\r\n _updateColumnsWidthIfNeeded: function(posX) {\r\n var deltaX;\r\n var needUpdate = false;\r\n var nextCellWidth;\r\n var resizingInfo = this._resizingInfo;\r\n var columnsController = this._columnsController;\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n var columnsSeparatorWidth = this._columnsSeparatorView.width();\r\n var contentWidth = this._rowsView.contentWidth();\r\n var isNextColumnMode = isNextColumnResizingMode(this);\r\n var adaptColumnWidthByRatio = isNextColumnMode && this.option(\"adaptColumnWidthByRatio\") && !this.option(\"columnAutoWidth\");\r\n var minWidth;\r\n var nextColumn;\r\n var cellWidth;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isRtlParentStyle = this._isRtlParentStyle();\r\n\r\n function isPercentWidth(width) {\r\n return isString(width) && \"%\" === width.slice(-1)\r\n }\r\n\r\n function setColumnWidth(column, columnWidth, contentWidth, adaptColumnWidthByRatio) {\r\n if (column) {\r\n var oldColumnWidth = column.width;\r\n if (oldColumnWidth) {\r\n adaptColumnWidthByRatio = isPercentWidth(oldColumnWidth)\r\n }\r\n if (adaptColumnWidthByRatio) {\r\n columnsController.columnOption(column.index, \"visibleWidth\", columnWidth);\r\n columnsController.columnOption(column.index, \"width\", (columnWidth / contentWidth * 100).toFixed(3) + \"%\")\r\n } else {\r\n columnsController.columnOption(column.index, \"visibleWidth\", null);\r\n columnsController.columnOption(column.index, \"width\", columnWidth)\r\n }\r\n }\r\n }\r\n deltaX = posX - resizingInfo.startPosX;\r\n if ((isNextColumnMode || isRtlParentStyle) && rtlEnabled) {\r\n deltaX = -deltaX\r\n }\r\n cellWidth = resizingInfo.currentColumnWidth + deltaX;\r\n var column = visibleColumns[resizingInfo.currentColumnIndex];\r\n minWidth = column && column.minWidth || columnsSeparatorWidth;\r\n needUpdate = cellWidth >= minWidth;\r\n if (isNextColumnMode) {\r\n nextCellWidth = resizingInfo.nextColumnWidth - deltaX;\r\n nextColumn = visibleColumns[resizingInfo.nextColumnIndex];\r\n minWidth = nextColumn && nextColumn.minWidth || columnsSeparatorWidth;\r\n needUpdate = needUpdate && nextCellWidth >= minWidth\r\n }\r\n if (needUpdate) {\r\n columnsController.beginUpdate();\r\n cellWidth = Math.floor(cellWidth);\r\n contentWidth = function(contentWidth, visibleColumns) {\r\n var allColumnsHaveWidth = visibleColumns.every(column => column.width);\r\n if (allColumnsHaveWidth) {\r\n var totalPercent = visibleColumns.reduce((sum, column) => {\r\n if (isPercentWidth(column.width)) {\r\n sum += parseFloat(column.width)\r\n }\r\n return sum\r\n }, 0);\r\n if (totalPercent > 100) {\r\n contentWidth = contentWidth / totalPercent * 100\r\n }\r\n }\r\n return contentWidth\r\n }(contentWidth, visibleColumns);\r\n setColumnWidth(column, cellWidth, contentWidth, adaptColumnWidthByRatio);\r\n if (isNextColumnMode) {\r\n nextCellWidth = Math.floor(nextCellWidth);\r\n setColumnWidth(nextColumn, nextCellWidth, contentWidth, adaptColumnWidthByRatio)\r\n } else {\r\n var columnWidths = this._columnHeadersView.getColumnWidths();\r\n columnWidths[resizingInfo.currentColumnIndex] = cellWidth;\r\n var hasScroll = columnWidths.reduce((totalWidth, width) => totalWidth + width, 0) > this._rowsView.contentWidth();\r\n if (!hasScroll) {\r\n var lastColumnIndex = gridCoreUtils.getLastResizableColumnIndex(visibleColumns);\r\n if (lastColumnIndex >= 0) {\r\n columnsController.columnOption(visibleColumns[lastColumnIndex].index, \"visibleWidth\", \"auto\")\r\n }\r\n }\r\n for (var i = 0; i < columnWidths.length; i++) {\r\n if (visibleColumns[i] && visibleColumns[i] !== column && void 0 === visibleColumns[i].width) {\r\n columnsController.columnOption(visibleColumns[i].index, \"width\", columnWidths[i])\r\n }\r\n }\r\n }\r\n columnsController.endUpdate();\r\n if (!isNextColumnMode) {\r\n this.component.updateDimensions();\r\n var scrollable = this.component.getScrollable();\r\n if (scrollable && isRtlParentStyle) {\r\n var left = scrollable.$content().width() - scrollable._container().width() - this._scrollRight;\r\n scrollable.scrollTo({\r\n left: left\r\n })\r\n }\r\n }\r\n }\r\n return needUpdate\r\n },\r\n _subscribeToCallback: function(callback, handler) {\r\n callback.add(handler);\r\n this._subscribesToCallbacks.push({\r\n callback: callback,\r\n handler: handler\r\n })\r\n },\r\n _unsubscribeFromCallbacks: function() {\r\n for (var i = 0; i < this._subscribesToCallbacks.length; i++) {\r\n var subscribe = this._subscribesToCallbacks[i];\r\n subscribe.callback.remove(subscribe.handler)\r\n }\r\n this._subscribesToCallbacks = []\r\n },\r\n _unsubscribes: function() {\r\n this._unsubscribeFromEvents();\r\n this._unsubscribeFromCallbacks()\r\n },\r\n _init: function() {\r\n var that = this;\r\n var generatePointsByColumnsHandler = function() {\r\n if (!that._isResizing) {\r\n that.pointsByColumns(null)\r\n }\r\n };\r\n var generatePointsByColumnsScrollHandler = function(offset) {\r\n if (that._scrollLeft !== offset.left) {\r\n that._scrollLeft = offset.left;\r\n that.pointsByColumns(null)\r\n }\r\n };\r\n that._columnsSeparatorView = that.getView(\"columnsSeparatorView\");\r\n that._columnHeadersView = that.getView(\"columnHeadersView\");\r\n that._trackerView = that.getView(\"trackerView\");\r\n that._rowsView = that.getView(\"rowsView\");\r\n that._columnsController = that.getController(\"columns\");\r\n that._tablePositionController = that.getController(\"tablePosition\");\r\n that._$parentContainer = that.component.$element();\r\n that._subscribeToCallback(that._columnHeadersView.renderCompleted, generatePointsByColumnsHandler);\r\n that._subscribeToCallback(that._columnHeadersView.resizeCompleted, generatePointsByColumnsHandler);\r\n that._subscribeToCallback(that._columnsSeparatorView.renderCompleted, (function() {\r\n that._unsubscribeFromEvents();\r\n that._subscribeToEvents()\r\n }));\r\n that._subscribeToCallback(that._rowsView.renderCompleted, (function() {\r\n that._rowsView.scrollChanged.remove(generatePointsByColumnsScrollHandler);\r\n that._rowsView.scrollChanged.add(generatePointsByColumnsScrollHandler)\r\n }));\r\n var previousScrollbarVisibility = 0 !== that._rowsView.getScrollbarWidth();\r\n var previousTableHeight = 0;\r\n that._subscribeToCallback(that.getController(\"tablePosition\").positionChanged, (function(e) {\r\n if (that._isResizing && !that._rowsView.isResizing) {\r\n var scrollbarVisibility = 0 !== that._rowsView.getScrollbarWidth();\r\n if (previousScrollbarVisibility !== scrollbarVisibility || previousTableHeight && previousTableHeight !== e.height) {\r\n previousScrollbarVisibility = scrollbarVisibility;\r\n previousTableHeight = e.height;\r\n that.component.updateDimensions()\r\n } else {\r\n that._rowsView.updateFreeSpaceRowHeight()\r\n }\r\n }\r\n previousTableHeight = e.height\r\n }))\r\n },\r\n optionChanged: function(args) {\r\n this.callBase(args);\r\n if (\"allowColumnResizing\" === args.name) {\r\n if (args.value) {\r\n this._init();\r\n this._subscribeToEvents()\r\n } else {\r\n this._unsubscribes()\r\n }\r\n }\r\n },\r\n isResizing: function() {\r\n return this._isResizing\r\n },\r\n init: function() {\r\n this._subscribesToCallbacks = [];\r\n if (allowResizing(this)) {\r\n this._init()\r\n }\r\n },\r\n pointsByColumns: function(value) {\r\n if (void 0 !== value) {\r\n this._pointsByColumns = value\r\n } else {\r\n if (!this._pointsByColumns) {\r\n this._generatePointsByColumns()\r\n }\r\n return this._pointsByColumns\r\n }\r\n },\r\n dispose: function() {\r\n this._unsubscribes();\r\n this.callBase()\r\n }\r\n});\r\nvar TablePositionViewController = modules.ViewController.inherit({\r\n update: function(top) {\r\n var params = {};\r\n var $element = this._columnHeadersView.element();\r\n var offset = $element && $element.offset();\r\n var offsetTop = offset && offset.top || 0;\r\n var diffOffsetTop = isDefined(top) ? Math.abs(top - offsetTop) : 0;\r\n var columnsHeadersHeight = this._columnHeadersView ? this._columnHeadersView.getHeight() : 0;\r\n var scrollBarWidth = this._rowsView.getScrollbarWidth(true);\r\n var rowsHeight = this._rowsView ? this._rowsView.height() - scrollBarWidth : 0;\r\n var columnsResizerController = this.component.getController(\"columnsResizer\");\r\n var draggingHeaderView = this.component.getView(\"draggingHeaderView\");\r\n params.height = columnsHeadersHeight;\r\n var isDraggingOrResizing = false !== columnsResizerController.isResizing() || draggingHeaderView.isDragging();\r\n if (isDraggingOrResizing) {\r\n params.height += rowsHeight - diffOffsetTop\r\n }\r\n if (null !== top && $element && $element.length) {\r\n params.top = $element[0].offsetTop + diffOffsetTop\r\n }\r\n this.positionChanged.fire(params)\r\n },\r\n init: function() {\r\n var that = this;\r\n that.callBase();\r\n that._columnHeadersView = this.getView(\"columnHeadersView\");\r\n that._rowsView = this.getView(\"rowsView\");\r\n that._pagerView = this.getView(\"pagerView\");\r\n that._rowsView.resizeCompleted.add((function() {\r\n if (that.option(\"allowColumnResizing\")) {\r\n var targetPoint = that.getController(\"columnsResizer\")._targetPoint;\r\n that.update(targetPoint ? targetPoint.y : null)\r\n }\r\n }))\r\n },\r\n ctor: function(component) {\r\n this.callBase(component);\r\n this.positionChanged = Callbacks()\r\n }\r\n});\r\nvar DraggingHeaderViewController = modules.ViewController.inherit({\r\n _generatePointsByColumns: function(options) {\r\n var that = this;\r\n return gridCoreUtils.getPointsByColumns(options.columnElements, (function(point) {\r\n return that._pointCreated(point, options.columns, options.targetDraggingPanel.getName(), options.sourceColumn)\r\n }), options.isVerticalOrientation, options.startColumnIndex)\r\n },\r\n _pointCreated: function(point, columns, location, sourceColumn) {\r\n var targetColumn = columns[point.columnIndex];\r\n var prevColumn = columns[point.columnIndex - 1];\r\n switch (location) {\r\n case \"columnChooser\":\r\n return true;\r\n case \"headers\":\r\n return sourceColumn && !sourceColumn.allowReordering || (!targetColumn || !targetColumn.allowReordering) && (!prevColumn || !prevColumn.allowReordering);\r\n default:\r\n return 0 === columns.length\r\n }\r\n },\r\n _subscribeToEvents: function(draggingHeader, draggingPanels) {\r\n var that = this;\r\n each(draggingPanels, (function(_, draggingPanel) {\r\n if (draggingPanel) {\r\n var columns;\r\n var rowCount = draggingPanel.getRowCount ? draggingPanel.getRowCount() : 1;\r\n var nameDraggingPanel = draggingPanel.getName();\r\n var subscribeToEvents = function(index, columnElement) {\r\n if (!columnElement) {\r\n return\r\n }\r\n var $columnElement = $(columnElement);\r\n var column = columns[index];\r\n if (draggingPanel.allowDragging(column, nameDraggingPanel, draggingPanels)) {\r\n $columnElement.addClass(that.addWidgetPrefix(HEADERS_DRAG_ACTION_CLASS));\r\n eventsEngine.on($columnElement, addNamespace(dragEventStart, MODULE_NAMESPACE), that.createAction((function(args) {\r\n var e = args.event;\r\n var eventData = getEventData(e);\r\n draggingHeader.dragHeader({\r\n deltaX: eventData.x - $(e.currentTarget).offset().left,\r\n deltaY: eventData.y - $(e.currentTarget).offset().top,\r\n sourceColumn: column,\r\n index: column.index,\r\n columnIndex: index,\r\n columnElement: $columnElement,\r\n sourceLocation: nameDraggingPanel,\r\n draggingPanels: draggingPanels,\r\n rowIndex: that._columnsController.getRowIndex(column.index, true)\r\n })\r\n })));\r\n eventsEngine.on($columnElement, addNamespace(dragEventMove, MODULE_NAMESPACE), {\r\n that: draggingHeader\r\n }, that.createAction(draggingHeader.moveHeader));\r\n eventsEngine.on($columnElement, addNamespace(dragEventEnd, MODULE_NAMESPACE), {\r\n that: draggingHeader\r\n }, that.createAction(draggingHeader.dropHeader))\r\n }\r\n };\r\n for (var i = 0; i < rowCount; i++) {\r\n var columnElements = draggingPanel.getColumnElements(i) || [];\r\n if (columnElements.length) {\r\n columns = draggingPanel.getColumns(i) || [];\r\n each(columnElements, subscribeToEvents)\r\n }\r\n }\r\n }\r\n }))\r\n },\r\n _unsubscribeFromEvents: function(draggingHeader, draggingPanels) {\r\n var that = this;\r\n each(draggingPanels, (function(_, draggingPanel) {\r\n if (draggingPanel) {\r\n var columnElements = draggingPanel.getColumnElements() || [];\r\n each(columnElements, (function(index, columnElement) {\r\n var $columnElement = $(columnElement);\r\n eventsEngine.off($columnElement, addNamespace(dragEventStart, MODULE_NAMESPACE));\r\n eventsEngine.off($columnElement, addNamespace(dragEventMove, MODULE_NAMESPACE));\r\n eventsEngine.off($columnElement, addNamespace(dragEventEnd, MODULE_NAMESPACE));\r\n $columnElement.removeClass(that.addWidgetPrefix(HEADERS_DRAG_ACTION_CLASS))\r\n }))\r\n }\r\n }))\r\n },\r\n _getSeparator: function(targetLocation) {\r\n return \"headers\" === targetLocation ? this._columnsSeparatorView : this._blockSeparatorView\r\n },\r\n hideSeparators: function(type) {\r\n var blockSeparator = this._blockSeparatorView;\r\n var columnsSeparator = this._columnsSeparatorView;\r\n this._animationColumnIndex = null;\r\n blockSeparator && blockSeparator.hide();\r\n \"block\" !== type && columnsSeparator && columnsSeparator.hide()\r\n },\r\n init: function() {\r\n var that = this;\r\n that.callBase();\r\n that._columnsController = that.getController(\"columns\");\r\n that._columnHeadersView = that.getView(\"columnHeadersView\");\r\n that._columnsSeparatorView = that.getView(\"columnsSeparatorView\");\r\n that._draggingHeaderView = that.getView(\"draggingHeaderView\");\r\n that._rowsView = that.getView(\"rowsView\");\r\n that._blockSeparatorView = that.getView(\"blockSeparatorView\");\r\n that._headerPanelView = that.getView(\"headerPanel\");\r\n that._columnChooserView = that.getView(\"columnChooserView\");\r\n var subscribeToEvents = function() {\r\n if (that._draggingHeaderView) {\r\n var draggingPanels = [that._columnChooserView, that._columnHeadersView, that._headerPanelView];\r\n that._unsubscribeFromEvents(that._draggingHeaderView, draggingPanels);\r\n that._subscribeToEvents(that._draggingHeaderView, draggingPanels)\r\n }\r\n };\r\n that._columnHeadersView.renderCompleted.add(subscribeToEvents);\r\n that._headerPanelView && that._headerPanelView.renderCompleted.add(subscribeToEvents);\r\n that._columnChooserView && that._columnChooserView.renderCompleted.add(subscribeToEvents)\r\n },\r\n allowDrop: function(parameters) {\r\n return this._columnsController.allowMoveColumn(parameters.sourceColumnIndex, parameters.targetColumnIndex, parameters.sourceLocation, parameters.targetLocation)\r\n },\r\n drag: function(parameters) {\r\n var sourceIndex = parameters.sourceIndex;\r\n var sourceLocation = parameters.sourceLocation;\r\n var sourceColumnElement = parameters.sourceColumnElement;\r\n var headersView = this._columnHeadersView;\r\n var rowsView = this._rowsView;\r\n if (sourceColumnElement) {\r\n sourceColumnElement.css({\r\n opacity: COLUMN_OPACITY\r\n });\r\n if (\"headers\" === sourceLocation) {\r\n headersView && headersView.setRowsOpacity(sourceIndex, COLUMN_OPACITY);\r\n rowsView && rowsView.setRowsOpacity(sourceIndex, COLUMN_OPACITY)\r\n }\r\n }\r\n },\r\n dock: function(parameters) {\r\n var that = this;\r\n var targetColumnIndex = isObject(parameters.targetColumnIndex) ? parameters.targetColumnIndex.columnIndex : parameters.targetColumnIndex;\r\n var sourceLocation = parameters.sourceLocation;\r\n var targetLocation = parameters.targetLocation;\r\n var separator = that._getSeparator(targetLocation);\r\n var hasTargetVisibleIndex = targetColumnIndex >= 0;\r\n that._columnHeadersView.element().find(\".\" + HEADER_ROW_CLASS).toggleClass(that.addWidgetPrefix(HEADERS_DROP_HIGHLIGHT_CLASS), \"headers\" !== sourceLocation && \"headers\" === targetLocation && !hasTargetVisibleIndex);\r\n if (separator) {\r\n if (that.allowDrop(parameters) && hasTargetVisibleIndex) {\r\n if (\"group\" === targetLocation || \"columnChooser\" === targetLocation) {\r\n ! function() {\r\n if (that._animationColumnIndex !== targetColumnIndex) {\r\n that.hideSeparators();\r\n separator.element()[parameters.isLast ? \"insertAfter\" : \"insertBefore\"](parameters.targetColumnElement);\r\n that._animationColumnIndex = targetColumnIndex;\r\n separator.show(targetLocation)\r\n }\r\n }()\r\n } else {\r\n that.hideSeparators(\"block\");\r\n that.getController(\"tablePosition\").update(parameters.posY);\r\n separator.moveByX(parameters.posX - separator.width());\r\n separator.show()\r\n }\r\n } else {\r\n that.hideSeparators()\r\n }\r\n }\r\n },\r\n drop: function(parameters) {\r\n var sourceColumnElement = parameters.sourceColumnElement;\r\n if (sourceColumnElement) {\r\n sourceColumnElement.css({\r\n opacity: \"\"\r\n });\r\n this._columnHeadersView.setRowsOpacity(parameters.sourceIndex, \"\");\r\n this._rowsView.setRowsOpacity(parameters.sourceIndex, \"\");\r\n this._columnHeadersView.element().find(\".\" + HEADER_ROW_CLASS).removeClass(this.addWidgetPrefix(HEADERS_DROP_HIGHLIGHT_CLASS))\r\n }\r\n if (this.allowDrop(parameters)) {\r\n var separator = this._getSeparator(parameters.targetLocation);\r\n if (separator) {\r\n separator.hide()\r\n }\r\n this._columnsController.moveColumn(parameters.sourceColumnIndex, parameters.targetColumnIndex, parameters.sourceLocation, parameters.targetLocation)\r\n }\r\n },\r\n dispose: function() {\r\n if (this._draggingHeaderView) {\r\n this._unsubscribeFromEvents(this._draggingHeaderView, [this._columnChooserView, this._columnHeadersView, this._headerPanelView])\r\n }\r\n }\r\n});\r\nexport var columnsResizingReorderingModule = {\r\n views: {\r\n columnsSeparatorView: ColumnsSeparatorView,\r\n blockSeparatorView: BlockSeparatorView,\r\n draggingHeaderView: DraggingHeaderView,\r\n trackerView: TrackerView\r\n },\r\n controllers: {\r\n draggingHeader: DraggingHeaderViewController,\r\n tablePosition: TablePositionViewController,\r\n columnsResizer: ColumnsResizerViewController\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: {\r\n _needUpdateRowHeight: function(itemCount) {\r\n var wordWrapEnabled = this.option(\"wordWrapEnabled\");\r\n var columnsResizerController = this.getController(\"columnsResizer\");\r\n var isResizing = columnsResizerController.isResizing();\r\n return this.callBase.apply(this, arguments) || itemCount > 0 && wordWrapEnabled && isResizing\r\n }\r\n }\r\n },\r\n controllers: {\r\n editorFactory: {\r\n renderFocusOverlay: function() {\r\n if (this.getController(\"columnsResizer\").isResizing()) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.columns_resizing_reordering.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n columnsResizingReorderingModule\r\n} from \"../grid_core/ui.grid_core.columns_resizing_reordering\";\r\nexport var DraggingHeaderView = columnsResizingReorderingModule.views.draggingHeaderView;\r\nexport var DraggingHeaderViewController = columnsResizingReorderingModule.controllers.draggingHeader;\r\nexport var ColumnsSeparatorView = columnsResizingReorderingModule.views.columnsSeparatorView;\r\nexport var TablePositionViewController = columnsResizingReorderingModule.controllers.tablePosition;\r\nexport var ColumnsResizerViewController = columnsResizingReorderingModule.controllers.columnsResizer;\r\nexport var TrackerView = columnsResizingReorderingModule.views.trackerView;\r\ngridCore.registerModule(\"columnsResizingReordering\", columnsResizingReorderingModule);\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.keyboard_navigation.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 core from \"./ui.grid_core.modules\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n isDefined,\r\n isEmptyObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n focused\r\n} from \"../widget/selectors\";\r\nimport {\r\n addNamespace,\r\n createEvent,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport * as accessibility from \"../shared/accessibility\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n keyboard\r\n} from \"../../events/short\";\r\nimport devices from \"../../core/devices\";\r\nvar ROWS_VIEW_CLASS = \"rowsview\";\r\nvar EDIT_FORM_CLASS = \"edit-form\";\r\nvar GROUP_FOOTER_CLASS = \"group-footer\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar DATA_ROW_CLASS = \"dx-data-row\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar HEADER_ROW_CLASS = \"dx-header-row\";\r\nvar EDIT_FORM_ITEM_CLASS = \"edit-form-item\";\r\nvar MASTER_DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nvar FREESPACE_ROW_CLASS = \"dx-freespace-row\";\r\nvar VIRTUAL_ROW_CLASS = \"dx-virtual-row\";\r\nvar MASTER_DETAIL_CELL_CLASS = \"dx-master-detail-cell\";\r\nvar EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nvar DROPDOWN_EDITOR_OVERLAY_CLASS = \"dx-dropdowneditor-overlay\";\r\nvar COMMAND_EXPAND_CLASS = \"dx-command-expand\";\r\nvar COMMAND_SELECT_CLASS = \"dx-command-select\";\r\nvar COMMAND_EDIT_CLASS = \"dx-command-edit\";\r\nvar COMMAND_CELL_SELECTOR = \"[class^=dx-command]\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar DATEBOX_WIDGET_NAME = \"dxDateBox\";\r\nvar FOCUS_STATE_CLASS = \"dx-state-focused\";\r\nvar WIDGET_CLASS = \"dx-widget\";\r\nvar REVERT_BUTTON_CLASS = \"dx-revert-button\";\r\nvar FAST_EDITING_DELETE_KEY = \"delete\";\r\nvar INTERACTIVE_ELEMENTS_SELECTOR = \"input:not([type='hidden']), textarea, a, select, button, [tabindex], .dx-dropdowneditor-icon\";\r\nvar EDIT_MODE_ROW = \"row\";\r\nvar EDIT_MODE_FORM = \"form\";\r\nvar EDIT_MODE_BATCH = \"batch\";\r\nvar EDIT_MODE_CELL = \"cell\";\r\nvar FOCUS_TYPE_ROW = \"row\";\r\nvar FOCUS_TYPE_CELL = \"cell\";\r\nvar COLUMN_HEADERS_VIEW = \"columnHeadersView\";\r\n\r\nfunction isGroupRow($row) {\r\n return $row && $row.hasClass(GROUP_ROW_CLASS)\r\n}\r\n\r\nfunction isDetailRow($row) {\r\n return $row && $row.hasClass(MASTER_DETAIL_ROW_CLASS)\r\n}\r\n\r\nfunction isDataRow($row) {\r\n return $row && !isGroupRow($row) && !isDetailRow($row)\r\n}\r\n\r\nfunction isNotFocusedRow($row) {\r\n return !$row || $row.hasClass(FREESPACE_ROW_CLASS) || $row.hasClass(VIRTUAL_ROW_CLASS)\r\n}\r\n\r\nfunction isCellElement($element) {\r\n return $element.length && \"TD\" === $element[0].tagName\r\n}\r\n\r\nfunction isEditorCell(that, $cell) {\r\n return !that._isRowEditMode() && $cell && !$cell.hasClass(COMMAND_SELECT_CLASS) && $cell.hasClass(EDITOR_CELL_CLASS)\r\n}\r\n\r\nfunction isElementDefined($element) {\r\n return isDefined($element) && $element.length > 0\r\n}\r\n\r\nfunction isMobile() {\r\n return \"desktop\" !== devices.current().deviceType\r\n}\r\n\r\nfunction isCellInHeaderRow($cell) {\r\n return !!$cell.parent(\".\".concat(HEADER_ROW_CLASS)).length\r\n}\r\n\r\nfunction isFixedColumnIndexOffsetRequired(that, column) {\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n var result = false;\r\n if (rtlEnabled) {\r\n result = !(\"right\" === column.fixedPosition || isDefined(column.command) && !isDefined(column.fixedPosition))\r\n } else {\r\n result = !(!isDefined(column.fixedPosition) || \"left\" === column.fixedPosition)\r\n }\r\n return result\r\n}\r\n\r\nfunction shouldPreventScroll(that) {\r\n var keyboardController = that.getController(\"keyboardNavigation\");\r\n return keyboardController._isVirtualScrolling() ? that.option(\"focusedRowIndex\") === keyboardController.getRowIndex() : false\r\n}\r\nvar KeyboardNavigationController = core.ViewController.inherit({\r\n init: function() {\r\n this._dataController = this.getController(\"data\");\r\n this._selectionController = this.getController(\"selection\");\r\n this._editingController = this.getController(\"editing\");\r\n this._headerPanel = this.getView(\"headerPanel\");\r\n this._columnsController = this.getController(\"columns\");\r\n this._editorFactory = this.getController(\"editorFactory\");\r\n if (this.isKeyboardEnabled()) {\r\n accessibility.subscribeVisibilityChange();\r\n this._updateFocusTimeout = null;\r\n this._fastEditingStarted = false;\r\n this._focusedCellPosition = {};\r\n this._canceledCellPosition = null;\r\n this._editorFactory.focused.add($element => {\r\n this.setupFocusedView();\r\n if (this._isNeedScroll) {\r\n if ($element.is(\":visible\") && this._focusedView && this._focusedView.getScrollable) {\r\n this._focusedView._scrollToElement($element);\r\n this._isNeedScroll = false\r\n }\r\n }\r\n });\r\n this._initViewHandlers();\r\n this._initDocumentHandlers();\r\n this.createAction(\"onKeyDown\")\r\n }\r\n },\r\n _initViewHandlers: function() {\r\n var rowsView = this.getView(\"rowsView\");\r\n var rowsViewFocusHandler = event => {\r\n var $element = $(event.target);\r\n var isRelatedTargetInRowsView = $(event.relatedTarget).closest(rowsView.element()).length;\r\n var isCommandButton = $element.hasClass(\"dx-link\");\r\n if (isCommandButton && !isRelatedTargetInRowsView && this._isEventInCurrentGrid(event)) {\r\n var $focusedCell = this._getFocusedCell();\r\n $focusedCell = !isElementDefined($focusedCell) ? rowsView.getCellElements(0).filter(\"[tabindex]\").eq(0) : $focusedCell;\r\n if (!$element.closest($focusedCell).length) {\r\n event.preventDefault();\r\n eventsEngine.trigger($focusedCell, \"focus\")\r\n }\r\n }\r\n };\r\n rowsView.renderCompleted.add(e => {\r\n var $rowsView = rowsView.element();\r\n var isFullUpdate = !e || \"refresh\" === e.changeType;\r\n var isFocusedViewCorrect = this._focusedView && this._focusedView.name === rowsView.name;\r\n var needUpdateFocus = false;\r\n var isAppend = e && (\"append\" === e.changeType || \"prepend\" === e.changeType);\r\n var $focusedElement = $(\":focus\");\r\n var isFocusedElementCorrect = !$focusedElement.length || $focusedElement.closest($rowsView).length || browser.msie && $focusedElement.is(\"body\");\r\n eventsEngine.off($rowsView, \"focusin\", rowsViewFocusHandler);\r\n eventsEngine.on($rowsView, \"focusin\", rowsViewFocusHandler);\r\n this._initPointerEventHandler();\r\n this._initKeyDownHandler();\r\n this._setRowsViewAttributes();\r\n if (isFocusedViewCorrect && isFocusedElementCorrect) {\r\n needUpdateFocus = this._isNeedFocus ? !isAppend : this._isHiddenFocus && isFullUpdate;\r\n needUpdateFocus && this._updateFocus(true)\r\n }\r\n })\r\n },\r\n _initDocumentHandlers: function() {\r\n var document = domAdapter.getDocument();\r\n this._documentClickHandler = this.createAction(e => {\r\n var $target = $(e.event.target);\r\n var isCurrentRowsViewClick = this._isEventInCurrentGrid(e.event) && $target.closest(\".\".concat(this.addWidgetPrefix(ROWS_VIEW_CLASS))).length;\r\n var isEditorOverlay = $target.closest(\".\".concat(DROPDOWN_EDITOR_OVERLAY_CLASS)).length;\r\n var columnsResizerController = this.getController(\"columnsResizer\");\r\n var isColumnResizing = !!columnsResizerController && columnsResizerController.isResizing();\r\n if (!isCurrentRowsViewClick && !isEditorOverlay && !isColumnResizing) {\r\n var targetInsideFocusedView = this._focusedView ? $target.parents().filter(this._focusedView.element()).length > 0 : false;\r\n !targetInsideFocusedView && this._resetFocusedCell(true);\r\n this._resetFocusedView()\r\n }\r\n });\r\n eventsEngine.on(document, addNamespace(pointerEvents.down, \"dxDataGridKeyboardNavigation\"), this._documentClickHandler)\r\n },\r\n _setRowsViewAttributes: function() {\r\n var $rowsView = this._getRowsViewElement();\r\n var isGridEmpty = !this._dataController.getVisibleRows().length;\r\n if (isGridEmpty) {\r\n this._applyTabIndexToElement($rowsView)\r\n }\r\n },\r\n _initPointerEventHandler: function() {\r\n var pointerEventName = !isMobile() ? pointerEvents.down : clickEventName;\r\n var clickSelector = \".\".concat(ROW_CLASS, \" > td, .\").concat(ROW_CLASS);\r\n var $rowsView = this._getRowsViewElement();\r\n if (!isDefined(this._pointerEventAction)) {\r\n this._pointerEventAction = this.createAction(this._pointerEventHandler)\r\n }\r\n eventsEngine.off($rowsView, addNamespace(pointerEventName, \"dxDataGridKeyboardNavigation\"), this._pointerEventAction);\r\n eventsEngine.on($rowsView, addNamespace(pointerEventName, \"dxDataGridKeyboardNavigation\"), clickSelector, this._pointerEventAction)\r\n },\r\n _initKeyDownHandler: function() {\r\n var $rowsView = this._getRowsViewElement();\r\n keyboard.off(this._keyDownListener);\r\n this._keyDownListener = keyboard.on($rowsView, null, e => this._keyDownHandler(e))\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n this._resetFocusedView();\r\n keyboard.off(this._keyDownListener);\r\n eventsEngine.off(domAdapter.getDocument(), addNamespace(pointerEvents.down, \"dxDataGridKeyboardNavigation\"), this._documentClickHandler);\r\n clearTimeout(this._updateFocusTimeout);\r\n accessibility.unsubscribeVisibilityChange()\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"keyboardNavigation\":\r\n case \"useLegacyKeyboardNavigation\":\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n isRowFocusType: function() {\r\n return this.focusType === FOCUS_TYPE_ROW\r\n },\r\n isCellFocusType: function() {\r\n return this.focusType === FOCUS_TYPE_CELL\r\n },\r\n setRowFocusType: function() {\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this.focusType = FOCUS_TYPE_ROW\r\n }\r\n },\r\n setCellFocusType: function() {\r\n this.focusType = FOCUS_TYPE_CELL\r\n },\r\n _keyDownHandler: function(e) {\r\n var isEditing = this._editingController.isEditing();\r\n var needStopPropagation = true;\r\n var originalEvent = e.originalEvent;\r\n var isHandled = this._processOnKeyDown(e);\r\n if (originalEvent.isDefaultPrevented()) {\r\n return\r\n }\r\n this._isNeedFocus = true;\r\n this._isNeedScroll = true;\r\n this._updateFocusedCellPositionByTarget(originalEvent.target);\r\n if (!isHandled) {\r\n switch (e.keyName) {\r\n case \"leftArrow\":\r\n case \"rightArrow\":\r\n this._leftRightKeysHandler(e, isEditing);\r\n break;\r\n case \"upArrow\":\r\n case \"downArrow\":\r\n if (e.ctrl) {\r\n accessibility.selectView(\"rowsView\", this, originalEvent)\r\n } else {\r\n this._upDownKeysHandler(e, isEditing)\r\n }\r\n break;\r\n case \"pageUp\":\r\n case \"pageDown\":\r\n this._pageUpDownKeyHandler(e);\r\n break;\r\n case \"space\":\r\n this._spaceKeyHandler(e, isEditing);\r\n break;\r\n case \"A\":\r\n if (isCommandKeyPressed(e.originalEvent)) {\r\n this._ctrlAKeyHandler(e, isEditing)\r\n } else {\r\n this._beginFastEditing(e.originalEvent)\r\n }\r\n break;\r\n case \"tab\":\r\n this._tabKeyHandler(e, isEditing);\r\n break;\r\n case \"enter\":\r\n this._enterKeyHandler(e, isEditing);\r\n break;\r\n case \"escape\":\r\n this._escapeKeyHandler(e, isEditing);\r\n break;\r\n case \"F\":\r\n if (isCommandKeyPressed(e.originalEvent)) {\r\n this._ctrlFKeyHandler(e)\r\n } else {\r\n this._beginFastEditing(e.originalEvent)\r\n }\r\n break;\r\n case \"F2\":\r\n this._f2KeyHandler();\r\n break;\r\n case \"del\":\r\n case \"backspace\":\r\n if (this._isFastEditingAllowed() && !this._isFastEditingStarted()) {\r\n this._beginFastEditing(originalEvent, true)\r\n }\r\n break;\r\n default:\r\n if (!this._beginFastEditing(originalEvent)) {\r\n this._isNeedFocus = false;\r\n this._isNeedScroll = false;\r\n needStopPropagation = false\r\n }\r\n }\r\n if (needStopPropagation) {\r\n originalEvent.stopPropagation()\r\n }\r\n }\r\n },\r\n _processOnKeyDown: function(eventArgs) {\r\n var originalEvent = eventArgs.originalEvent;\r\n var args = {\r\n handled: false,\r\n event: originalEvent\r\n };\r\n this.executeAction(\"onKeyDown\", args);\r\n eventArgs.ctrl = originalEvent.ctrlKey;\r\n eventArgs.alt = originalEvent.altKey;\r\n eventArgs.shift = originalEvent.shiftKey;\r\n return !!args.handled\r\n },\r\n _closeEditCell: function() {\r\n setTimeout(() => {\r\n this._editingController.closeEditCell()\r\n })\r\n },\r\n _leftRightKeysHandler: function(eventArgs, isEditing) {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var $event = eventArgs.originalEvent;\r\n var $row = this._focusedView && this._focusedView.getRow(rowIndex);\r\n var directionCode = this._getDirectionCodeByKey(eventArgs.keyName);\r\n var isEditingNavigationMode = this._isFastEditingStarted();\r\n var allowNavigate = (!isEditing || isEditingNavigationMode) && isDataRow($row);\r\n if (allowNavigate) {\r\n this.setCellFocusType();\r\n isEditingNavigationMode && this._closeEditCell();\r\n if (this._isVirtualColumnRender()) {\r\n this._processVirtualHorizontalPosition(directionCode)\r\n }\r\n var $cell = this._getNextCell(directionCode);\r\n if (isElementDefined($cell)) {\r\n this._arrowKeysHandlerFocusCell($event, $cell, directionCode)\r\n }\r\n $event && $event.preventDefault()\r\n }\r\n },\r\n _upDownKeysHandler: function(eventArgs, isEditing) {\r\n var rowIndex = this._focusedCellPosition.rowIndex;\r\n var visibleRowIndex = this.getVisibleRowIndex();\r\n var $row = this._focusedView && this._focusedView.getRow(visibleRowIndex);\r\n var $event = eventArgs.originalEvent;\r\n var isUpArrow = \"upArrow\" === eventArgs.keyName;\r\n var dataSource = this._dataController.dataSource();\r\n var isEditingNavigationMode = this._isFastEditingStarted();\r\n var allowNavigate = (!isEditing || isEditingNavigationMode) && $row && !isDetailRow($row);\r\n if (allowNavigate) {\r\n isEditingNavigationMode && this._closeEditCell();\r\n if (!this._navigateNextCell($event, eventArgs.keyName)) {\r\n if (this._isVirtualRowRender() && isUpArrow && dataSource && !dataSource.isLoading()) {\r\n var rowHeight = $row.outerHeight();\r\n rowIndex = this._focusedCellPosition.rowIndex - 1;\r\n this._scrollBy(0, -rowHeight, rowIndex, $event)\r\n }\r\n }\r\n $event && $event.preventDefault()\r\n }\r\n },\r\n _pageUpDownKeyHandler: function(eventArgs) {\r\n var pageIndex = this._dataController.pageIndex();\r\n var pageCount = this._dataController.pageCount();\r\n var pagingEnabled = this.option(\"paging.enabled\");\r\n var isPageUp = \"pageUp\" === eventArgs.keyName;\r\n var pageStep = isPageUp ? -1 : 1;\r\n var scrollable = this.getView(\"rowsView\").getScrollable();\r\n if (pagingEnabled && !this._isVirtualScrolling()) {\r\n if ((isPageUp ? pageIndex > 0 : pageIndex < pageCount - 1) && !this._isVirtualScrolling()) {\r\n this._dataController.pageIndex(pageIndex + pageStep);\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n } else if (scrollable && scrollable._container().height() < scrollable.$content().height()) {\r\n this._scrollBy(0, scrollable._container().height() * pageStep);\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n },\r\n _spaceKeyHandler: function(eventArgs, isEditing) {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var $target = $(eventArgs.originalEvent && eventArgs.originalEvent.target);\r\n if (this.option(\"selection\") && \"none\" !== this.option(\"selection\").mode && !isEditing) {\r\n var isFocusedRowElement = \"row\" === this._getElementType($target) && this.isRowFocusType() && isDataRow($target);\r\n var isFocusedSelectionCell = $target.hasClass(COMMAND_SELECT_CLASS);\r\n if (isFocusedSelectionCell && \"onClick\" === this.option(\"selection.showCheckBoxesMode\")) {\r\n this._selectionController.startSelectionWithCheckboxes()\r\n }\r\n if (isFocusedRowElement || $target.parent().hasClass(DATA_ROW_CLASS) || $target.hasClass(this.addWidgetPrefix(ROWS_VIEW_CLASS))) {\r\n this._selectionController.changeItemSelection(rowIndex, {\r\n shift: eventArgs.shift,\r\n control: eventArgs.ctrl\r\n });\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n } else {\r\n this._beginFastEditing(eventArgs.originalEvent)\r\n }\r\n },\r\n _ctrlAKeyHandler: function(eventArgs, isEditing) {\r\n if (!isEditing && !eventArgs.alt && \"multiple\" === this.option(\"selection.mode\") && this.option(\"selection.allowSelectAll\")) {\r\n this._selectionController.selectAll();\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n },\r\n _tabKeyHandler: function(eventArgs, isEditing) {\r\n var editingOptions = this.option(\"editing\");\r\n var direction = eventArgs.shift ? \"previous\" : \"next\";\r\n var isCellPositionDefined = isDefined(this._focusedCellPosition) && !isEmptyObject(this._focusedCellPosition);\r\n var isOriginalHandlerRequired = !isCellPositionDefined || !eventArgs.shift && this._isLastValidCell(this._focusedCellPosition) || eventArgs.shift && this._isFirstValidCell(this._focusedCellPosition);\r\n var eventTarget = eventArgs.originalEvent.target;\r\n var focusedViewElement = this._focusedView && this._focusedView.element();\r\n if (this._handleTabKeyOnMasterDetailCell(eventTarget, direction)) {\r\n return\r\n }\r\n $(focusedViewElement).addClass(FOCUS_STATE_CLASS);\r\n if (editingOptions && eventTarget && !isOriginalHandlerRequired) {\r\n if ($(eventTarget).hasClass(this.addWidgetPrefix(ROWS_VIEW_CLASS))) {\r\n this._resetFocusedCell()\r\n }\r\n if (this._isVirtualColumnRender()) {\r\n this._processVirtualHorizontalPosition(direction)\r\n }\r\n if (isEditing) {\r\n if (!this._editingCellTabHandler(eventArgs, direction)) {\r\n return\r\n }\r\n } else if (this._targetCellTabHandler(eventArgs, direction)) {\r\n isOriginalHandlerRequired = true\r\n }\r\n }\r\n if (isOriginalHandlerRequired) {\r\n this._editorFactory.loseFocus();\r\n if (this._editingController.isEditing() && !this._isRowEditMode()) {\r\n this._resetFocusedCell(true);\r\n this._resetFocusedView();\r\n this._closeEditCell()\r\n }\r\n } else {\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n },\r\n _getMaxHorizontalOffset: function() {\r\n var scrollable = this.component.getScrollable();\r\n var rowsView = this.getView(\"rowsView\");\r\n var offset = scrollable ? scrollable.scrollWidth() - $(rowsView.element()).width() : 0;\r\n return offset\r\n },\r\n _isColumnRendered: function(columnIndex) {\r\n var allVisibleColumns = this._columnsController.getVisibleColumns(null, true);\r\n var renderedVisibleColumns = this._columnsController.getVisibleColumns();\r\n var column = allVisibleColumns[columnIndex];\r\n var result = false;\r\n if (column) {\r\n result = renderedVisibleColumns.indexOf(column) >= 0\r\n }\r\n return result\r\n },\r\n _isFixedColumn: function(columnIndex) {\r\n var allVisibleColumns = this._columnsController.getVisibleColumns(null, true);\r\n var column = allVisibleColumns[columnIndex];\r\n return !!column && !!column.fixed\r\n },\r\n _isColumnVirtual: function(columnIndex) {\r\n var localColumnIndex = columnIndex - this._columnsController.getColumnIndexOffset();\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var column = visibleColumns[localColumnIndex];\r\n return !!column && \"virtual\" === column.command\r\n },\r\n _processVirtualHorizontalPosition: function(direction) {\r\n var scrollable = this.component.getScrollable();\r\n var columnIndex = this.getColumnIndex();\r\n var nextColumnIndex;\r\n var horizontalScrollPosition = 0;\r\n var needToScroll = false;\r\n switch (direction) {\r\n case \"next\":\r\n case \"nextInRow\":\r\n var columnsCount = this._getVisibleColumnCount();\r\n nextColumnIndex = columnIndex + 1;\r\n horizontalScrollPosition = this.option(\"rtlEnabled\") ? this._getMaxHorizontalOffset() : 0;\r\n if (\"next\" === direction) {\r\n needToScroll = columnsCount === nextColumnIndex || this._isFixedColumn(columnIndex) && !this._isColumnRendered(nextColumnIndex)\r\n } else {\r\n needToScroll = columnsCount > nextColumnIndex && this._isFixedColumn(columnIndex) && !this._isColumnRendered(nextColumnIndex)\r\n }\r\n break;\r\n case \"previous\":\r\n case \"previousInRow\":\r\n nextColumnIndex = columnIndex - 1;\r\n horizontalScrollPosition = this.option(\"rtlEnabled\") ? 0 : this._getMaxHorizontalOffset();\r\n if (\"previous\" === direction) {\r\n var columnIndexOffset = this._columnsController.getColumnIndexOffset();\r\n var leftEdgePosition = nextColumnIndex < 0 && 0 === columnIndexOffset;\r\n needToScroll = leftEdgePosition || this._isFixedColumn(columnIndex) && !this._isColumnRendered(nextColumnIndex)\r\n } else {\r\n needToScroll = nextColumnIndex >= 0 && this._isFixedColumn(columnIndex) && !this._isColumnRendered(nextColumnIndex)\r\n }\r\n }\r\n if (needToScroll) {\r\n scrollable.scrollTo({\r\n left: horizontalScrollPosition\r\n })\r\n } else if (isDefined(nextColumnIndex) && isDefined(direction) && this._isColumnVirtual(nextColumnIndex)) {\r\n horizontalScrollPosition = this._getHorizontalScrollPositionOffset(direction);\r\n 0 !== horizontalScrollPosition && scrollable.scrollBy({\r\n left: horizontalScrollPosition,\r\n top: 0\r\n })\r\n }\r\n },\r\n _getHorizontalScrollPositionOffset: function(direction) {\r\n var positionOffset = 0;\r\n var $currentCell = this._getCell(this._focusedCellPosition);\r\n var currentCellWidth = $currentCell && $currentCell.outerWidth();\r\n if (currentCellWidth > 0) {\r\n var rtlMultiplier = this.option(\"rtlEnabled\") ? -1 : 1;\r\n positionOffset = \"nextInRow\" === direction || \"next\" === direction ? currentCellWidth * rtlMultiplier : currentCellWidth * rtlMultiplier * -1\r\n }\r\n return positionOffset\r\n },\r\n _editingCellTabHandler: function(eventArgs, direction) {\r\n var eventTarget = eventArgs.originalEvent.target;\r\n var $cell = this._getCellElementFromTarget(eventTarget);\r\n var isEditingAllowed;\r\n var $event = eventArgs.originalEvent;\r\n var elementType = this._getElementType(eventTarget);\r\n if ($cell.is(COMMAND_CELL_SELECTOR)) {\r\n return !this._targetCellTabHandler(eventArgs, direction)\r\n }\r\n this._updateFocusedCellPosition($cell);\r\n var nextCellInfo = this._getNextCellByTabKey($event, direction, elementType);\r\n $cell = nextCellInfo.$cell;\r\n if (!$cell || this._handleTabKeyOnMasterDetailCell($cell, direction)) {\r\n return false\r\n }\r\n var columnsController = this._columnsController;\r\n var cellIndex = this.getView(\"rowsView\").getCellIndex($cell);\r\n var columnIndex = cellIndex + columnsController.getColumnIndexOffset();\r\n var column = columnsController.getVisibleColumns(null, true)[columnIndex];\r\n var $row = $cell.parent();\r\n var rowIndex = this._getRowIndex($row);\r\n var row = this._dataController.items()[rowIndex];\r\n var editingController = this._editingController;\r\n if (column && column.allowEditing) {\r\n var _isDataRow = !row || \"data\" === row.rowType;\r\n isEditingAllowed = editingController.allowUpdating({\r\n row: row\r\n }) ? _isDataRow : row && row.isNewRow\r\n }\r\n if (!isEditingAllowed) {\r\n this._closeEditCell()\r\n }\r\n if (this._focusCell($cell, !nextCellInfo.isHighlighted)) {\r\n if (!this._isRowEditMode() && isEditingAllowed) {\r\n this._editFocusedCell()\r\n } else {\r\n this._focusInteractiveElement($cell, eventArgs.shift)\r\n }\r\n }\r\n return true\r\n },\r\n _targetCellTabHandler: function(eventArgs, direction) {\r\n var $event = eventArgs.originalEvent;\r\n var eventTarget = $event.target;\r\n var $cell = this._getCellElementFromTarget(eventTarget);\r\n var $lastInteractiveElement = this._getInteractiveElement($cell, !eventArgs.shift);\r\n var isOriginalHandlerRequired = false;\r\n var elementType;\r\n if (!isEditorCell(this, $cell) && $lastInteractiveElement.length && eventTarget !== $lastInteractiveElement.get(0)) {\r\n isOriginalHandlerRequired = true\r\n } else {\r\n if (void 0 === this._focusedCellPosition.rowIndex && $(eventTarget).hasClass(ROW_CLASS)) {\r\n this._updateFocusedCellPosition($cell)\r\n }\r\n elementType = this._getElementType(eventTarget);\r\n if (this.isRowFocusType()) {\r\n this.setCellFocusType();\r\n if (\"row\" === elementType && isDataRow($(eventTarget))) {\r\n eventTarget = this.getFirstValidCellInRow($(eventTarget));\r\n elementType = this._getElementType(eventTarget)\r\n }\r\n }\r\n var nextCellInfo = this._getNextCellByTabKey($event, direction, elementType);\r\n $cell = nextCellInfo.$cell;\r\n if (!$cell) {\r\n return false\r\n }\r\n $cell = this._checkNewLineTransition($event, $cell);\r\n if (!$cell) {\r\n return false\r\n }\r\n this._focusCell($cell, !nextCellInfo.isHighlighted);\r\n if (!isEditorCell(this, $cell)) {\r\n this._focusInteractiveElement($cell, eventArgs.shift)\r\n }\r\n }\r\n return isOriginalHandlerRequired\r\n },\r\n _getNextCellByTabKey: function($event, direction, elementType) {\r\n var $cell = this._getNextCell(direction, elementType);\r\n var args = $cell && this._fireFocusedCellChanging($event, $cell, true);\r\n if (!args || args.cancel) {\r\n return {}\r\n }\r\n if (args.$newCellElement) {\r\n $cell = args.$newCellElement\r\n }\r\n return {\r\n $cell: $cell,\r\n isHighlighted: args.isHighlighted\r\n }\r\n },\r\n _checkNewLineTransition: function($event, $cell) {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var $row = $cell.parent();\r\n if (rowIndex !== this._getRowIndex($row)) {\r\n var cellPosition = this._getCellPosition($cell);\r\n var args = this._fireFocusedRowChanging($event, $row);\r\n if (args.cancel) {\r\n return\r\n }\r\n if (args.rowIndexChanged) {\r\n this.setFocusedColumnIndex(cellPosition.columnIndex);\r\n $cell = this._getFocusedCell()\r\n }\r\n }\r\n return $cell\r\n },\r\n _enterKeyHandler: function(eventArgs, isEditing) {\r\n var $cell = this._getFocusedCell();\r\n var rowIndex = this.getVisibleRowIndex();\r\n var $row = this._focusedView && this._focusedView.getRow(rowIndex);\r\n if (this.option(\"grouping.allowCollapsing\") && isGroupRow($row) || this.option(\"masterDetail.enabled\") && $cell && $cell.hasClass(COMMAND_EXPAND_CLASS)) {\r\n var key = this._dataController.getKeyByRowIndex(rowIndex);\r\n var item = this._dataController.items()[rowIndex];\r\n if (void 0 !== key && item && item.data && !item.data.isContinuation) {\r\n this._dataController.changeRowExpand(key)\r\n }\r\n } else {\r\n this._processEnterKeyForDataCell(eventArgs, isEditing)\r\n }\r\n },\r\n _processEnterKeyForDataCell: function(eventArgs, isEditing) {\r\n var direction = this._getEnterKeyDirection(eventArgs);\r\n var allowEditingOnEnterKey = this._allowEditingOnEnterKey();\r\n if (isEditing || !allowEditingOnEnterKey && direction) {\r\n this._handleEnterKeyEditingCell(eventArgs.originalEvent);\r\n if (\"next\" === direction || \"previous\" === direction) {\r\n this._targetCellTabHandler(eventArgs, direction)\r\n } else if (\"upArrow\" === direction || \"downArrow\" === direction) {\r\n this._navigateNextCell(eventArgs.originalEvent, direction)\r\n }\r\n } else if (allowEditingOnEnterKey) {\r\n this._startEditing(eventArgs)\r\n }\r\n },\r\n _getEnterKeyDirection: function(eventArgs) {\r\n var enterKeyDirection = this.option(\"keyboardNavigation.enterKeyDirection\");\r\n var isShift = eventArgs.shift;\r\n if (\"column\" === enterKeyDirection) {\r\n return isShift ? \"upArrow\" : \"downArrow\"\r\n }\r\n if (\"row\" === enterKeyDirection) {\r\n return isShift ? \"previous\" : \"next\"\r\n }\r\n },\r\n _handleEnterKeyEditingCell: function(event) {\r\n var target = event.target;\r\n var $cell = this._getCellElementFromTarget(target);\r\n var isRowEditMode = this._isRowEditMode();\r\n this._updateFocusedCellPosition($cell);\r\n if (isRowEditMode) {\r\n this._focusEditFormCell($cell);\r\n setTimeout(this._editingController.saveEditData.bind(this._editingController))\r\n } else {\r\n eventsEngine.trigger($(target), \"change\");\r\n this._closeEditCell();\r\n event.preventDefault()\r\n }\r\n },\r\n _escapeKeyHandler: function(eventArgs, isEditing) {\r\n var $cell = this._getCellElementFromTarget(eventArgs.originalEvent.target);\r\n if (isEditing) {\r\n this._updateFocusedCellPosition($cell);\r\n if (!this._isRowEditMode()) {\r\n if (\"cell\" === this._editingController.getEditMode()) {\r\n this._editingController.cancelEditData()\r\n } else {\r\n this._closeEditCell()\r\n }\r\n } else {\r\n this._focusEditFormCell($cell);\r\n this._editingController.cancelEditData();\r\n if (0 === this._dataController.items().length) {\r\n this._resetFocusedCell();\r\n this._editorFactory.loseFocus()\r\n }\r\n }\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n },\r\n _ctrlFKeyHandler: function(eventArgs) {\r\n if (this.option(\"searchPanel.visible\")) {\r\n var searchTextEditor = this._headerPanel.getSearchTextEditor();\r\n if (searchTextEditor) {\r\n searchTextEditor.focus();\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n }\r\n },\r\n _f2KeyHandler: function() {\r\n var isEditing = this._editingController.isEditing();\r\n var rowIndex = this.getVisibleRowIndex();\r\n var $row = this._focusedView && this._focusedView.getRow(rowIndex);\r\n if (!isEditing && isDataRow($row)) {\r\n this._startEditing()\r\n }\r\n },\r\n _navigateNextCell: function($event, keyCode) {\r\n var $cell = this._getNextCell(keyCode);\r\n var directionCode = this._getDirectionCodeByKey(keyCode);\r\n var isCellValid = $cell && this._isCellValid($cell);\r\n var result = isCellValid ? this._arrowKeysHandlerFocusCell($event, $cell, directionCode) : false;\r\n return result\r\n },\r\n _arrowKeysHandlerFocusCell: function($event, $nextCell, direction) {\r\n var isVerticalDirection = \"prevRow\" === direction || \"nextRow\" === direction;\r\n var args = this._fireFocusChangingEvents($event, $nextCell, isVerticalDirection, true);\r\n $nextCell = args.$newCellElement;\r\n if (!args.cancel && this._isCellValid($nextCell)) {\r\n this._focus($nextCell, !args.isHighlighted);\r\n return true\r\n }\r\n return false\r\n },\r\n _beginFastEditing: function(originalEvent, isDeleting) {\r\n if (!this._isFastEditingAllowed() || originalEvent.altKey || originalEvent.ctrlKey || this._editingController.isEditing()) {\r\n return false\r\n }\r\n if (isDeleting) {\r\n this._startEditing(originalEvent, FAST_EDITING_DELETE_KEY)\r\n } else {\r\n var key = originalEvent.key;\r\n var keyCode = originalEvent.keyCode || originalEvent.which;\r\n var fastEditingKey = key || keyCode && String.fromCharCode(keyCode);\r\n if (fastEditingKey && (1 === fastEditingKey.length || fastEditingKey === FAST_EDITING_DELETE_KEY)) {\r\n this._startEditing(originalEvent, fastEditingKey)\r\n }\r\n }\r\n return true\r\n },\r\n _pointerEventHandler: function(e) {\r\n var event = e.event || e;\r\n var $target = $(event.currentTarget);\r\n var rowsView = this.getView(\"rowsView\");\r\n var focusedViewElement = rowsView && rowsView.element();\r\n var $parent = $target.parent();\r\n var isInteractiveElement = $(event.target).is(INTERACTIVE_ELEMENTS_SELECTOR);\r\n var isRevertButton = !!$(event.target).closest(\".\".concat(REVERT_BUTTON_CLASS)).length;\r\n var isExpandCommandCell = $target.hasClass(COMMAND_EXPAND_CLASS);\r\n if (!this._isEventInCurrentGrid(event)) {\r\n return\r\n }\r\n if (!isRevertButton && (this._isCellValid($target, !isInteractiveElement) || isExpandCommandCell)) {\r\n $target = this._isInsideEditForm($target) ? $(event.target) : $target;\r\n this._focusView();\r\n $(focusedViewElement).removeClass(FOCUS_STATE_CLASS);\r\n if ($parent.hasClass(FREESPACE_ROW_CLASS)) {\r\n this._updateFocusedCellPosition($target);\r\n this._applyTabIndexToElement(this._focusedView.element());\r\n this._focusedView.focus()\r\n } else if (!this._isMasterDetailCell($target)) {\r\n this._clickTargetCellHandler(event, $target)\r\n } else {\r\n this._updateFocusedCellPosition($target)\r\n }\r\n } else if ($target.is(\"td\")) {\r\n this._resetFocusedCell()\r\n }\r\n },\r\n _clickTargetCellHandler: function(event, $cell) {\r\n var columnIndex = this.getView(\"rowsView\").getCellIndex($cell);\r\n var column = this._columnsController.getVisibleColumns()[columnIndex];\r\n var isCellEditMode = this._isCellEditMode();\r\n this.setCellFocusType();\r\n var args = this._fireFocusChangingEvents(event, $cell, true);\r\n $cell = args.$newCellElement;\r\n if (!args.cancel) {\r\n if (args.resetFocusedRow) {\r\n this.getController(\"focus\")._resetFocusedRow();\r\n return\r\n }\r\n if (args.rowIndexChanged) {\r\n $cell = this._getFocusedCell()\r\n }\r\n if (!args.isHighlighted && !isCellEditMode) {\r\n this.setRowFocusType()\r\n }\r\n this._updateFocusedCellPosition($cell);\r\n if (this._allowRowUpdating() && isCellEditMode && column && column.allowEditing) {\r\n this._isNeedFocus = false;\r\n this._isHiddenFocus = false\r\n } else {\r\n var $target = event && $(event.target).closest(INTERACTIVE_ELEMENTS_SELECTOR + \", td\");\r\n var isInteractiveTarget = $target && $target.not($cell).is(INTERACTIVE_ELEMENTS_SELECTOR);\r\n var isEditor = !!column && !column.command && $cell.hasClass(EDITOR_CELL_CLASS);\r\n var isDisabled = !isEditor && (!args.isHighlighted || isInteractiveTarget);\r\n this._focus($cell, isDisabled, isInteractiveTarget)\r\n }\r\n } else {\r\n this.setRowFocusType();\r\n this.setFocusedRowIndex(args.prevRowIndex);\r\n $cell = this._getFocusedCell();\r\n if (this._editingController.isEditing() && isCellEditMode) {\r\n this._closeEditCell()\r\n }\r\n }\r\n },\r\n _allowRowUpdating: function() {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var row = this._dataController.items()[rowIndex];\r\n return this._editingController.allowUpdating({\r\n row: row\r\n }, \"click\")\r\n },\r\n focus: function(element) {\r\n var activeElementSelector;\r\n var focusedRowEnabled = this.option(\"focusedRowEnabled\");\r\n var isHighlighted = isCellElement($(element));\r\n if (!element) {\r\n activeElementSelector = \".dx-datagrid-rowsview .dx-row[tabindex]\";\r\n if (!focusedRowEnabled) {\r\n activeElementSelector += \", .dx-datagrid-rowsview .dx-row > td[tabindex]\"\r\n }\r\n element = this.component.$element().find(activeElementSelector).first()\r\n }\r\n element && this._focusElement($(element), isHighlighted)\r\n },\r\n getFocusedView: function() {\r\n return this._focusedView\r\n },\r\n setupFocusedView: function() {\r\n if (this.isKeyboardEnabled() && !isDefined(this._focusedView)) {\r\n this._focusView()\r\n }\r\n },\r\n _focusElement: function($element, isHighlighted) {\r\n var rowsViewElement = $(this._getRowsViewElement());\r\n var $focusedView = $element.closest(rowsViewElement);\r\n var isRowFocusType = this.isRowFocusType();\r\n var args = {};\r\n if (!$focusedView.length || isCellElement($element) && !this._isCellValid($element)) {\r\n return\r\n }\r\n this._focusView();\r\n this._isNeedFocus = true;\r\n this._isNeedScroll = true;\r\n if (isCellElement($element) || isGroupRow($element)) {\r\n this.setCellFocusType();\r\n args = this._fireFocusChangingEvents(null, $element, false, isHighlighted);\r\n $element = args.$newCellElement;\r\n if (isRowFocusType && !args.isHighlighted) {\r\n this.setRowFocusType()\r\n }\r\n }\r\n if (!args.cancel) {\r\n this._focus($element, !args.isHighlighted);\r\n this._focusInteractiveElement($element)\r\n }\r\n },\r\n _getFocusedViewByElement: function($element) {\r\n var view = this.getFocusedView();\r\n var $view = view && $(view.element());\r\n return $element && 0 !== $element.closest($view).length\r\n },\r\n _focusView: function() {\r\n this._focusedView = this.getView(\"rowsView\")\r\n },\r\n _resetFocusedView: function() {\r\n this.setRowFocusType();\r\n this._focusedView = null\r\n },\r\n _focusInteractiveElement: function($cell, isLast) {\r\n if (!$cell) {\r\n return\r\n }\r\n var $focusedElement = this._getInteractiveElement($cell, isLast);\r\n gridCoreUtils.focusAndSelectElement(this, $focusedElement)\r\n },\r\n _focus: function($cell, disableFocus, isInteractiveElement) {\r\n var $row = $cell && !$cell.hasClass(ROW_CLASS) ? $cell.closest(\".\".concat(ROW_CLASS)) : $cell;\r\n if ($row && isNotFocusedRow($row)) {\r\n return\r\n }\r\n var focusedView = this._focusedView;\r\n var $focusViewElement = focusedView && focusedView.element();\r\n var $focusElement;\r\n this._isHiddenFocus = disableFocus;\r\n if (isGroupRow($row) || this.isRowFocusType()) {\r\n $focusElement = $row;\r\n if (focusedView) {\r\n this.setFocusedRowIndex(this._getRowIndex($row))\r\n }\r\n } else if (isCellElement($cell)) {\r\n $focusElement = $cell;\r\n this._updateFocusedCellPosition($cell)\r\n }\r\n if ($focusElement) {\r\n if ($focusViewElement) {\r\n $focusViewElement.find(\".dx-row[tabindex], .dx-row > td[tabindex]\").not($focusElement).removeClass(CELL_FOCUS_DISABLED_CLASS).removeAttr(\"tabindex\")\r\n }\r\n eventsEngine.one($focusElement, \"blur\", e => {\r\n if (e.relatedTarget) {\r\n $focusElement.removeClass(CELL_FOCUS_DISABLED_CLASS)\r\n }\r\n });\r\n if (!isInteractiveElement) {\r\n this._applyTabIndexToElement($focusElement);\r\n eventsEngine.trigger($focusElement, \"focus\")\r\n }\r\n if (disableFocus) {\r\n $focusElement.addClass(CELL_FOCUS_DISABLED_CLASS)\r\n } else {\r\n this._editorFactory.focus($focusElement)\r\n }\r\n }\r\n },\r\n _updateFocus: function(isRenderView) {\r\n this._updateFocusTimeout = setTimeout(() => {\r\n var editingController = this._editingController;\r\n var isCellEditMode = editingController.getEditMode() === EDIT_MODE_CELL;\r\n if (isCellEditMode && editingController.hasChanges()) {\r\n editingController._focusEditingCell();\r\n return\r\n }\r\n var $cell = this._getFocusedCell();\r\n var isEditing = editingController.isEditing();\r\n if ($cell && !(this._isMasterDetailCell($cell) && !this._isRowEditMode())) {\r\n if (this._hasSkipRow($cell.parent())) {\r\n var direction = this._focusedCellPosition && this._focusedCellPosition.rowIndex > 0 ? \"upArrow\" : \"downArrow\";\r\n $cell = this._getNextCell(direction)\r\n }\r\n if (isElementDefined($cell)) {\r\n if (isRenderView && !isEditing && this._checkCellOverlapped($cell)) {\r\n return\r\n }\r\n if ($cell.is(\"td\") || $cell.hasClass(this.addWidgetPrefix(EDIT_FORM_ITEM_CLASS))) {\r\n var isCommandCell = $cell.is(COMMAND_CELL_SELECTOR);\r\n var $focusedElementInsideCell = $cell.find(\":focus\");\r\n var isFocusedElementDefined = isElementDefined($focusedElementInsideCell);\r\n if ((isRenderView || !isCommandCell) && this._editorFactory.focus()) {\r\n if (isCommandCell && isFocusedElementDefined) {\r\n gridCoreUtils.focusAndSelectElement(this, $focusedElementInsideCell);\r\n return\r\n }!isFocusedElementDefined && this._focus($cell)\r\n } else if (!isFocusedElementDefined && (this._isNeedFocus || this._isHiddenFocus)) {\r\n this._focus($cell, this._isHiddenFocus)\r\n }\r\n if (isEditing) {\r\n this._focusInteractiveElement.bind(this)($cell)\r\n }\r\n } else {\r\n eventsEngine.trigger($cell, \"focus\")\r\n }\r\n }\r\n }\r\n })\r\n },\r\n _checkCellOverlapped: function($cell) {\r\n var cellOffset = $cell.offset();\r\n var hasScrollable = this.component.getScrollable && this.component.getScrollable();\r\n var isOverlapped = false;\r\n if (hasScrollable) {\r\n if (cellOffset.left < 0) {\r\n isOverlapped = $cell.width() + cellOffset.left <= 0\r\n } else if (cellOffset.top < 0) {\r\n isOverlapped = $cell.height() + cellOffset.top <= 0\r\n }\r\n }\r\n return isOverlapped\r\n },\r\n _getFocusedCell: function() {\r\n return $(this._getCell(this._focusedCellPosition))\r\n },\r\n _updateFocusedCellPositionByTarget: function(target) {\r\n var _this$_focusedCellPos;\r\n var elementType = this._getElementType(target);\r\n if (\"row\" === elementType && isDefined(null === (_this$_focusedCellPos = this._focusedCellPosition) || void 0 === _this$_focusedCellPos ? void 0 : _this$_focusedCellPos.columnIndex)) {\r\n var $row = $(target);\r\n this._focusedView && isGroupRow($row) && this.setFocusedRowIndex(this._getRowIndex($row))\r\n } else {\r\n this._updateFocusedCellPosition(this._getCellElementFromTarget(target))\r\n }\r\n },\r\n _updateFocusedCellPosition: function($cell, direction) {\r\n var position = this._getCellPosition($cell, direction);\r\n if (position) {\r\n if (!$cell.length || position.rowIndex >= 0 && position.columnIndex >= 0) {\r\n this.setFocusedCellPosition(position.rowIndex, position.columnIndex)\r\n }\r\n }\r\n return position\r\n },\r\n _getFocusedColumnIndexOffset: function(columnIndex) {\r\n var offset = 0;\r\n var column = this._columnsController.getVisibleColumns()[columnIndex];\r\n if (column && column.fixed) {\r\n offset = this._getFixedColumnIndexOffset(column)\r\n } else if (columnIndex >= 0) {\r\n offset = this._columnsController.getColumnIndexOffset()\r\n }\r\n return offset\r\n },\r\n _getFixedColumnIndexOffset: function(column) {\r\n var offset = isFixedColumnIndexOffsetRequired(this, column) ? this._getVisibleColumnCount() - this._columnsController.getVisibleColumns().length : 0;\r\n return offset\r\n },\r\n _getCellPosition: function($cell, direction) {\r\n var columnIndex;\r\n var $row = isElementDefined($cell) && $cell.closest(\"tr\");\r\n var rowsView = this.getView(\"rowsView\");\r\n if (isElementDefined($row)) {\r\n var rowIndex = this._getRowIndex($row);\r\n columnIndex = rowsView.getCellIndex($cell, rowIndex);\r\n columnIndex += this._getFocusedColumnIndexOffset(columnIndex);\r\n if (direction) {\r\n columnIndex = \"previous\" === direction ? columnIndex - 1 : columnIndex + 1;\r\n columnIndex = this._applyColumnIndexBoundaries(columnIndex)\r\n }\r\n return {\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n }\r\n }\r\n },\r\n _focusCell: function($cell, isDisabled) {\r\n if (this._isCellValid($cell)) {\r\n this._focus($cell, isDisabled);\r\n return true\r\n }\r\n },\r\n _focusEditFormCell: function($cell) {\r\n if ($cell.hasClass(MASTER_DETAIL_CELL_CLASS)) {\r\n this._editorFactory.focus($cell, true)\r\n }\r\n },\r\n _resetFocusedCell: function(preventScroll) {\r\n var _this$_focusedView;\r\n var $cell = this._getFocusedCell();\r\n isElementDefined($cell) && $cell.removeAttr(\"tabindex\");\r\n this._isNeedFocus = false;\r\n this._isNeedScroll = false;\r\n this._focusedCellPosition = {};\r\n clearTimeout(this._updateFocusTimeout);\r\n null === (_this$_focusedView = this._focusedView) || void 0 === _this$_focusedView ? void 0 : _this$_focusedView.renderFocusState(preventScroll)\r\n },\r\n restoreFocusableElement: function(rowIndex, $event) {\r\n var args;\r\n var $rowElement;\r\n var isUpArrow = isDefined(rowIndex);\r\n var rowsView = this.getView(\"rowsView\");\r\n var $rowsViewElement = rowsView.element();\r\n var columnIndex = this._focusedCellPosition.columnIndex;\r\n var rowIndexOffset = this._dataController.getRowIndexOffset();\r\n rowIndex = isUpArrow ? rowIndex : rowsView.getTopVisibleItemIndex() + rowIndexOffset;\r\n if (!isUpArrow) {\r\n this._editorFactory.loseFocus();\r\n this._applyTabIndexToElement($rowsViewElement);\r\n eventsEngine.trigger($rowsViewElement, \"focus\")\r\n } else {\r\n $rowElement = rowsView.getRow(rowIndex - rowIndexOffset);\r\n args = this._fireFocusedRowChanging($event, $rowElement);\r\n if (!args.cancel && args.rowIndexChanged) {\r\n rowIndex = args.newRowIndex\r\n }\r\n }\r\n if (!isUpArrow || !args.cancel) {\r\n this.setFocusedCellPosition(rowIndex, columnIndex)\r\n }\r\n isUpArrow && this._updateFocus()\r\n },\r\n _getNewPositionByCode: function(cellPosition, elementType, code) {\r\n var columnIndex = cellPosition.columnIndex;\r\n var rowIndex = cellPosition.rowIndex;\r\n var visibleColumnsCount;\r\n if (void 0 === cellPosition.rowIndex && \"next\" === code) {\r\n return {\r\n columnIndex: 0,\r\n rowIndex: 0\r\n }\r\n }\r\n switch (code) {\r\n case \"nextInRow\":\r\n case \"next\":\r\n visibleColumnsCount = this._getVisibleColumnCount();\r\n if (columnIndex < visibleColumnsCount - 1 && \"row\" !== elementType && this._hasValidCellAfterPosition({\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex\r\n })) {\r\n columnIndex++\r\n } else if (!this._isLastRow(rowIndex) && \"next\" === code) {\r\n columnIndex = 0;\r\n rowIndex++\r\n }\r\n break;\r\n case \"previousInRow\":\r\n case \"previous\":\r\n if (columnIndex > 0 && \"row\" !== elementType && this._hasValidCellBeforePosition({\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex\r\n })) {\r\n columnIndex--\r\n } else if (rowIndex > 0 && \"previous\" === code) {\r\n rowIndex--;\r\n visibleColumnsCount = this._getVisibleColumnCount();\r\n columnIndex = visibleColumnsCount - 1\r\n }\r\n break;\r\n case \"upArrow\":\r\n rowIndex = rowIndex > 0 ? rowIndex - 1 : rowIndex;\r\n break;\r\n case \"downArrow\":\r\n rowIndex = !this._isLastRow(rowIndex) ? rowIndex + 1 : rowIndex\r\n }\r\n return {\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex\r\n }\r\n },\r\n setFocusedCellPosition: function(rowIndex, columnIndex) {\r\n this.setFocusedRowIndex(rowIndex);\r\n this.setFocusedColumnIndex(columnIndex)\r\n },\r\n setFocusedRowIndex: function(rowIndex) {\r\n if (!this._focusedCellPosition) {\r\n this._focusedCellPosition = {}\r\n }\r\n this._focusedCellPosition.rowIndex = rowIndex\r\n },\r\n setFocusedColumnIndex: function(columnIndex) {\r\n if (!this._focusedCellPosition) {\r\n this._focusedCellPosition = {}\r\n }\r\n this._focusedCellPosition.columnIndex = columnIndex\r\n },\r\n getRowIndex: function() {\r\n return this._focusedCellPosition ? this._focusedCellPosition.rowIndex : -1\r\n },\r\n getColumnIndex: function() {\r\n return this._focusedCellPosition ? this._focusedCellPosition.columnIndex : -1\r\n },\r\n getVisibleRowIndex: function() {\r\n var rowIndex = this._focusedCellPosition && this._focusedCellPosition.rowIndex;\r\n if (!isDefined(rowIndex)) {\r\n return -1\r\n }\r\n return rowIndex - this._dataController.getRowIndexOffset()\r\n },\r\n getVisibleColumnIndex: function() {\r\n var columnIndex = this._focusedCellPosition && this._focusedCellPosition.columnIndex;\r\n if (!isDefined(columnIndex)) {\r\n return -1\r\n }\r\n return columnIndex - this._columnsController.getColumnIndexOffset()\r\n },\r\n _applyColumnIndexBoundaries: function(columnIndex) {\r\n var visibleColumnsCount = this._getVisibleColumnCount();\r\n if (columnIndex < 0) {\r\n columnIndex = 0\r\n } else if (columnIndex >= visibleColumnsCount) {\r\n columnIndex = visibleColumnsCount - 1\r\n }\r\n return columnIndex\r\n },\r\n _isCellByPositionValid: function(cellPosition) {\r\n var $cell = $(this._getCell(cellPosition));\r\n return this._isCellValid($cell)\r\n },\r\n _isLastRow: function(rowIndex) {\r\n if (this._isVirtualRowRender()) {\r\n return rowIndex >= this._dataController.totalItemsCount() - 1\r\n }\r\n return rowIndex === this._dataController.items().length - 1\r\n },\r\n _isFirstValidCell: function(cellPosition) {\r\n var isFirstValidCell = false;\r\n if (0 === cellPosition.rowIndex && cellPosition.columnIndex >= 0) {\r\n isFirstValidCell = isFirstValidCell || !this._hasValidCellBeforePosition(cellPosition)\r\n }\r\n return isFirstValidCell\r\n },\r\n _hasValidCellBeforePosition: function(cellPosition) {\r\n var columnIndex = cellPosition.columnIndex;\r\n var hasValidCells = false;\r\n while (columnIndex > 0 && !hasValidCells) {\r\n var checkingPosition = {\r\n columnIndex: --columnIndex,\r\n rowIndex: cellPosition.rowIndex\r\n };\r\n hasValidCells = this._isCellByPositionValid(checkingPosition)\r\n }\r\n return hasValidCells\r\n },\r\n _hasValidCellAfterPosition: function(cellPosition) {\r\n var columnIndex = cellPosition.columnIndex;\r\n var hasValidCells = false;\r\n var visibleColumnCount = this._getVisibleColumnCount();\r\n while (columnIndex < visibleColumnCount - 1 && !hasValidCells) {\r\n var checkingPosition = {\r\n columnIndex: ++columnIndex,\r\n rowIndex: cellPosition.rowIndex\r\n };\r\n hasValidCells = this._isCellByPositionValid(checkingPosition)\r\n }\r\n return hasValidCells\r\n },\r\n _isLastValidCell: function(cellPosition) {\r\n var nextColumnIndex = cellPosition.columnIndex >= 0 ? cellPosition.columnIndex + 1 : 0;\r\n var rowIndex = cellPosition.rowIndex;\r\n var checkingPosition = {\r\n columnIndex: nextColumnIndex,\r\n rowIndex: rowIndex\r\n };\r\n var visibleRows = this._dataController.getVisibleRows();\r\n var row = visibleRows && visibleRows[rowIndex];\r\n var isLastRow = this._isLastRow(rowIndex);\r\n if (!isLastRow) {\r\n return false\r\n }\r\n if (row && \"group\" === row.rowType && cellPosition.columnIndex > 0) {\r\n return true\r\n }\r\n if (cellPosition.columnIndex === this._getVisibleColumnCount() - 1) {\r\n return true\r\n }\r\n if (this._isCellByPositionValid(checkingPosition)) {\r\n return false\r\n }\r\n return this._isLastValidCell(checkingPosition)\r\n },\r\n _isCellValid: function($cell, isClick) {\r\n if (isElementDefined($cell)) {\r\n var rowsView = this.getView(\"rowsView\");\r\n var $row = $cell.parent();\r\n var columnsController = this._columnsController;\r\n var columnIndex = rowsView.getCellIndex($cell) + columnsController.getColumnIndexOffset();\r\n var column = columnsController.getVisibleColumns(null, true)[columnIndex];\r\n var visibleColumnCount = this._getVisibleColumnCount();\r\n var editingController = this._editingController;\r\n var isMasterDetailRow = isDetailRow($row);\r\n var isShowWhenGrouped = column && column.showWhenGrouped;\r\n var isDataCell = column && !$cell.hasClass(COMMAND_EXPAND_CLASS) && isDataRow($row);\r\n if (this._isMasterDetailCell($cell)) {\r\n return true\r\n }\r\n if (visibleColumnCount > columnIndex && (!isMasterDetailRow && column && (!isDefined(column.groupIndex) || isShowWhenGrouped && isDataCell) || parseInt($cell.attr(\"colspan\")) > 1)) {\r\n var rowItems = this._dataController.items();\r\n var visibleRowIndex = rowsView.getRowIndex($row);\r\n var row = rowItems[visibleRowIndex];\r\n var isCellEditing = editingController && this._isCellEditMode() && editingController.isEditing();\r\n var isRowEditingInCurrentRow = editingController && editingController.isEditRow(visibleRowIndex);\r\n var isEditing = isRowEditingInCurrentRow || isCellEditing;\r\n if (column.command) {\r\n if (this._isLegacyNavigation()) {\r\n return !isEditing && \"expand\" === column.command\r\n }\r\n if (isCellEditing) {\r\n return false\r\n }\r\n if (isRowEditingInCurrentRow) {\r\n return \"select\" !== column.command\r\n }\r\n return !isEditing\r\n }\r\n if (isCellEditing && row && \"data\" !== row.rowType) {\r\n return false\r\n }\r\n return !isEditing || column.allowEditing || isClick\r\n }\r\n }\r\n },\r\n getFirstValidCellInRow: function($row, columnIndex) {\r\n var $cells = $row.find(\"> td\");\r\n var $cell;\r\n var $result;\r\n columnIndex = columnIndex || 0;\r\n for (var i = columnIndex; i < $cells.length; ++i) {\r\n $cell = $cells.eq(i);\r\n if (this._isCellValid($cell)) {\r\n $result = $cell;\r\n break\r\n }\r\n }\r\n return $result\r\n },\r\n _getNextCell: function(keyCode, elementType, cellPosition) {\r\n var focusedCellPosition = cellPosition || this._focusedCellPosition;\r\n var isRowFocusType = this.isRowFocusType();\r\n var includeCommandCells = isRowFocusType || inArray(keyCode, [\"next\", \"previous\"]) > -1;\r\n var $cell;\r\n var $row;\r\n if (this._focusedView && focusedCellPosition) {\r\n var newFocusedCellPosition = this._getNewPositionByCode(focusedCellPosition, elementType, keyCode);\r\n $cell = $(this._getCell(newFocusedCellPosition));\r\n var isLastCellOnDirection = \"previous\" === keyCode ? this._isFirstValidCell(newFocusedCellPosition) : this._isLastValidCell(newFocusedCellPosition);\r\n if (isElementDefined($cell) && !this._isCellValid($cell) && this._isCellInRow(newFocusedCellPosition, includeCommandCells) && !isLastCellOnDirection) {\r\n if (isRowFocusType) {\r\n $cell = this.getFirstValidCellInRow($cell.parent(), newFocusedCellPosition.columnIndex)\r\n } else {\r\n $cell = this._getNextCell(keyCode, \"cell\", newFocusedCellPosition)\r\n }\r\n }\r\n $row = isElementDefined($cell) && $cell.parent();\r\n if (this._hasSkipRow($row)) {\r\n var rowIndex = this._getRowIndex($row);\r\n if (!this._isLastRow(rowIndex)) {\r\n $cell = this._getNextCell(keyCode, \"row\", {\r\n columnIndex: focusedCellPosition.columnIndex,\r\n rowIndex: rowIndex\r\n })\r\n } else {\r\n return null\r\n }\r\n }\r\n return isElementDefined($cell) ? $cell : null\r\n }\r\n return null\r\n },\r\n _startEditing: function(eventArgs, fastEditingKey) {\r\n var focusedCellPosition = this._focusedCellPosition;\r\n var visibleRowIndex = this.getVisibleRowIndex();\r\n var visibleColumnIndex = this.getVisibleColumnIndex();\r\n var row = this._dataController.items()[visibleRowIndex];\r\n var column = this._columnsController.getVisibleColumns()[visibleColumnIndex];\r\n if (this._isAllowEditing(row, column)) {\r\n if (this._isRowEditMode()) {\r\n this._editingController.editRow(visibleRowIndex)\r\n } else if (focusedCellPosition) {\r\n this._startEditCell(eventArgs, fastEditingKey)\r\n }\r\n }\r\n },\r\n _isAllowEditing: function(row, column) {\r\n return this._editingController.allowUpdating({\r\n row: row\r\n }) && column && column.allowEditing\r\n },\r\n _editFocusedCell: function() {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var colIndex = this.getVisibleColumnIndex();\r\n return this._editingController.editCell(rowIndex, colIndex)\r\n },\r\n _startEditCell: function(eventArgs, fastEditingKey) {\r\n this._fastEditingStarted = isDefined(fastEditingKey);\r\n var editResult = this._editFocusedCell();\r\n if (this._isFastEditingStarted()) {\r\n if (true === editResult) {\r\n this._editingCellHandler(eventArgs, fastEditingKey)\r\n } else if (editResult && editResult.done) {\r\n var editorValue = fastEditingKey !== FAST_EDITING_DELETE_KEY ? fastEditingKey : \"\";\r\n editResult.done(() => this._editingCellHandler(eventArgs, editorValue))\r\n }\r\n }\r\n },\r\n _editingCellHandler: function(eventArgs, editorValue) {\r\n var $input = this._getFocusedCell().find(\".dx-texteditor-input\").eq(0);\r\n var keyDownEvent = createEvent(eventArgs, {\r\n type: \"keydown\",\r\n target: $input.get(0)\r\n });\r\n var keyPressEvent = createEvent(eventArgs, {\r\n type: \"keypress\",\r\n target: $input.get(0)\r\n });\r\n var inputEvent = createEvent(eventArgs, {\r\n type: \"input\",\r\n target: $input.get(0)\r\n });\r\n $input.get(0).select();\r\n eventsEngine.trigger($input, keyDownEvent);\r\n if (!keyDownEvent.isDefaultPrevented()) {\r\n eventsEngine.trigger($input, keyPressEvent);\r\n if (!keyPressEvent.isDefaultPrevented()) {\r\n var timeout = browser.mozilla ? 25 : 0;\r\n setTimeout(() => {\r\n $input.val(editorValue);\r\n if (browser.msie) {\r\n gridCoreUtils.setSelectionRange($input.get(0), {\r\n selectionStart: editorValue.length,\r\n selectionEnd: editorValue.length\r\n })\r\n }\r\n var $widgetContainer = $input.closest(\".\".concat(WIDGET_CLASS));\r\n eventsEngine.off($widgetContainer, \"focusout\");\r\n eventsEngine.one($widgetContainer, \"focusout\", (function() {\r\n eventsEngine.trigger($input, \"change\")\r\n }));\r\n eventsEngine.trigger($input, inputEvent)\r\n }, timeout)\r\n }\r\n }\r\n },\r\n _fireFocusChangingEvents: function($event, $cell, fireRowEvent, isHighlighted) {\r\n var args = {};\r\n var cellPosition = this._getCellPosition($cell) || {};\r\n if (this.isCellFocusType()) {\r\n args = this._fireFocusedCellChanging($event, $cell, isHighlighted);\r\n if (!args.cancel) {\r\n cellPosition.columnIndex = args.newColumnIndex;\r\n cellPosition.rowIndex = args.newRowIndex;\r\n isHighlighted = args.isHighlighted;\r\n $cell = $(this._getCell(cellPosition))\r\n }\r\n }\r\n if (!args.cancel && fireRowEvent && $cell) {\r\n args = this._fireFocusedRowChanging($event, $cell.parent());\r\n if (!args.cancel) {\r\n cellPosition.rowIndex = args.newRowIndex;\r\n args.isHighlighted = isHighlighted\r\n }\r\n }\r\n args.$newCellElement = $(this._getCell(cellPosition));\r\n if (!args.$newCellElement.length) {\r\n args.$newCellElement = $cell\r\n }\r\n return args\r\n },\r\n _fireFocusedCellChanging: function($event, $cellElement, isHighlighted) {\r\n var prevCellIndex = this.option(\"focusedColumnIndex\");\r\n var prevRowIndex = this.option(\"focusedRowIndex\");\r\n var cellPosition = this._getCellPosition($cellElement);\r\n var columnIndex = cellPosition ? cellPosition.columnIndex : -1;\r\n var rowIndex = cellPosition ? cellPosition.rowIndex : -1;\r\n var args = {\r\n cellElement: $cellElement,\r\n prevColumnIndex: prevCellIndex,\r\n prevRowIndex: prevRowIndex,\r\n newColumnIndex: columnIndex,\r\n newRowIndex: rowIndex,\r\n rows: this._dataController.getVisibleRows(),\r\n columns: this._columnsController.getVisibleColumns(),\r\n event: $event,\r\n isHighlighted: isHighlighted || false,\r\n cancel: false\r\n };\r\n this._canceledCellPosition = null;\r\n this.executeAction(\"onFocusedCellChanging\", args);\r\n if (args.newColumnIndex !== columnIndex || args.newRowIndex !== rowIndex) {\r\n args.$newCellElement = $(this._getCell({\r\n columnIndex: args.newColumnIndex,\r\n rowIndex: args.newRowIndex\r\n }))\r\n }\r\n if (args.cancel) {\r\n this._canceledCellPosition = {\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n }\r\n }\r\n return args\r\n },\r\n _fireFocusedCellChanged: function($cellElement, prevCellIndex, prevRowIndex) {\r\n var dataController = this._dataController;\r\n var columnIndex = this.getView(\"rowsView\").getCellIndex($cellElement);\r\n var rowIndex = this._getRowIndex($cellElement && $cellElement.parent());\r\n var localRowIndex = Math.min(rowIndex - dataController.getRowIndexOffset(), dataController.items().length - 1);\r\n var isEditingCell = this._editingController.isEditCell(localRowIndex, columnIndex);\r\n var row = dataController.items()[localRowIndex];\r\n if (!isEditingCell && (prevCellIndex !== columnIndex || prevRowIndex !== rowIndex)) {\r\n this.executeAction(\"onFocusedCellChanged\", {\r\n cellElement: $cellElement,\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex,\r\n row: row,\r\n column: this._columnsController.getVisibleColumns()[columnIndex]\r\n })\r\n }\r\n },\r\n _fireFocusedRowChanging: function(eventArgs, $newFocusedRow) {\r\n var newRowIndex = this._getRowIndex($newFocusedRow);\r\n var dataController = this._dataController;\r\n var prevFocusedRowIndex = this.option(\"focusedRowIndex\");\r\n var loadingOperationTypes = dataController.loadingOperationTypes();\r\n var args = {\r\n rowElement: $newFocusedRow,\r\n prevRowIndex: prevFocusedRowIndex,\r\n newRowIndex: newRowIndex,\r\n event: eventArgs,\r\n rows: dataController.getVisibleRows(),\r\n cancel: false\r\n };\r\n if (!dataController || dataController.isLoading() && (loadingOperationTypes.reload || loadingOperationTypes.paging)) {\r\n args.cancel = true;\r\n return args\r\n }\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this.executeAction(\"onFocusedRowChanging\", args);\r\n if (!args.cancel && args.newRowIndex !== newRowIndex) {\r\n args.resetFocusedRow = args.newRowIndex < 0;\r\n if (!args.resetFocusedRow) {\r\n this.setFocusedRowIndex(args.newRowIndex)\r\n }\r\n args.rowIndexChanged = true\r\n }\r\n }\r\n return args\r\n },\r\n _fireFocusedRowChanged: function($rowElement) {\r\n var row;\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var focusController = this.getController(\"focus\");\r\n var focusedRowIndex = null === focusController || void 0 === focusController ? void 0 : focusController.getFocusedRowIndexByKey(focusedRowKey);\r\n if (this.option(\"focusedRowEnabled\")) {\r\n if (focusedRowIndex >= 0) {\r\n var dataController = this._dataController;\r\n row = focusedRowIndex >= 0 && dataController.getVisibleRows()[focusedRowIndex - dataController.getRowIndexOffset()]\r\n }\r\n this.executeAction(\"onFocusedRowChanged\", {\r\n rowElement: $rowElement,\r\n rowIndex: focusedRowIndex,\r\n row: row\r\n })\r\n }\r\n },\r\n _isEventInCurrentGrid: function(event) {\r\n return gridCoreUtils.isElementInCurrentGrid(this, $(event.target))\r\n },\r\n _isRowEditMode: function() {\r\n var editMode = this._editingController.getEditMode();\r\n return editMode === EDIT_MODE_ROW || editMode === EDIT_MODE_FORM\r\n },\r\n _isCellEditMode: function() {\r\n var editMode = this._editingController.getEditMode();\r\n return editMode === EDIT_MODE_CELL || editMode === EDIT_MODE_BATCH\r\n },\r\n _isFastEditingAllowed: function() {\r\n return this._isCellEditMode() && this.option(\"keyboardNavigation.editOnKeyPress\")\r\n },\r\n _getInteractiveElement: function($cell, isLast) {\r\n var $focusedElement = $cell.find(INTERACTIVE_ELEMENTS_SELECTOR).filter(\":visible\");\r\n return isLast ? $focusedElement.last() : $focusedElement.first()\r\n },\r\n _applyTabIndexToElement: function($element) {\r\n var tabIndex = this.option(\"tabIndex\") || 0;\r\n $element.attr(\"tabindex\", isDefined(tabIndex) ? tabIndex : 0)\r\n },\r\n _getCell: function(cellPosition) {\r\n if (this._focusedView && cellPosition) {\r\n var rowIndexOffset = this._dataController.getRowIndexOffset();\r\n var column = this._columnsController.getVisibleColumns(null, true)[cellPosition.columnIndex];\r\n var columnIndexOffset = column && column.fixed ? this._getFixedColumnIndexOffset(column) : this._columnsController.getColumnIndexOffset();\r\n var rowIndex = cellPosition.rowIndex >= 0 ? cellPosition.rowIndex - rowIndexOffset : -1;\r\n var columnIndex = cellPosition.columnIndex >= 0 ? cellPosition.columnIndex - columnIndexOffset : -1;\r\n return this._focusedView.getCell({\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n })\r\n }\r\n },\r\n _getRowIndex: function($row) {\r\n var rowsView = this.getView(\"rowsView\");\r\n var rowIndex = rowsView.getRowIndex($row);\r\n if (rowIndex >= 0) {\r\n rowIndex += this._dataController.getRowIndexOffset()\r\n }\r\n return rowIndex\r\n },\r\n _hasSkipRow: function($row) {\r\n var row = $row && $row.get(0);\r\n return row && (\"none\" === row.style.display || $row.hasClass(this.addWidgetPrefix(GROUP_FOOTER_CLASS)) || isDetailRow($row) && !$row.hasClass(this.addWidgetPrefix(EDIT_FORM_CLASS)))\r\n },\r\n _allowEditingOnEnterKey: function() {\r\n return \"startEdit\" === this.option(\"keyboardNavigation.enterKeyAction\")\r\n },\r\n _isLegacyNavigation: function() {\r\n return this.option(\"useLegacyKeyboardNavigation\")\r\n },\r\n _getDirectionCodeByKey: function(key) {\r\n var directionCode;\r\n switch (key) {\r\n case \"upArrow\":\r\n directionCode = \"prevRow\";\r\n break;\r\n case \"downArrow\":\r\n directionCode = \"nextRow\";\r\n break;\r\n case \"leftArrow\":\r\n directionCode = this.option(\"rtlEnabled\") ? \"nextInRow\" : \"previousInRow\";\r\n break;\r\n case \"rightArrow\":\r\n directionCode = this.option(\"rtlEnabled\") ? \"previousInRow\" : \"nextInRow\"\r\n }\r\n return directionCode\r\n },\r\n _isVirtualScrolling: function() {\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n return \"virtual\" === scrollingMode || \"infinite\" === scrollingMode\r\n },\r\n _isVirtualRowRender: function() {\r\n return this._isVirtualScrolling() || \"virtual\" === this.option(\"scrolling.rowRenderingMode\")\r\n },\r\n _isVirtualColumnRender: function() {\r\n return \"virtual\" === this.option(\"scrolling.columnRenderingMode\")\r\n },\r\n _scrollBy: function(left, top, rowIndex, $event) {\r\n var that = this;\r\n var scrollable = this.getView(\"rowsView\").getScrollable();\r\n if (that._focusedCellPosition) {\r\n scrollable.on(\"scroll\", (function scrollHandler() {\r\n scrollable.off(\"scroll\", scrollHandler);\r\n setTimeout(that.restoreFocusableElement.bind(that, rowIndex, $event))\r\n }))\r\n }\r\n return scrollable.scrollBy({\r\n left: left,\r\n top: top\r\n })\r\n },\r\n _isInsideEditForm: function(element) {\r\n return $(element).closest(\".\" + this.addWidgetPrefix(EDIT_FORM_CLASS)).length > 0\r\n },\r\n _isMasterDetailCell: function(element) {\r\n var $masterDetailCell = $(element).closest(\".\" + MASTER_DETAIL_CELL_CLASS);\r\n var $masterDetailGrid = $masterDetailCell.closest(\".\" + this.getWidgetContainerClass()).parent();\r\n return $masterDetailCell.length && $masterDetailGrid.is(this.component.$element())\r\n },\r\n _processNextCellInMasterDetail: function($nextCell) {\r\n if (!this._isInsideEditForm($nextCell) && $nextCell) {\r\n this._applyTabIndexToElement($nextCell)\r\n }\r\n },\r\n _handleTabKeyOnMasterDetailCell: function(target, direction) {\r\n if (this._isMasterDetailCell(target)) {\r\n this._updateFocusedCellPosition($(target), direction);\r\n var $nextCell = this._getNextCell(direction, \"row\");\r\n this._processNextCellInMasterDetail($nextCell);\r\n return true\r\n }\r\n return false\r\n },\r\n _getElementType: function(target) {\r\n return $(target).is(\"tr\") ? \"row\" : \"cell\"\r\n },\r\n _isFastEditingStarted: function() {\r\n return this._isFastEditingAllowed() && this._fastEditingStarted\r\n },\r\n _getVisibleColumnCount: function() {\r\n return this._columnsController.getVisibleColumns(null, true).length\r\n },\r\n _isCellInRow: function(cellPosition, includeCommandCells) {\r\n var columnIndex = cellPosition.columnIndex;\r\n var visibleColumnsCount = this._getVisibleColumnCount();\r\n return includeCommandCells ? columnIndex >= 0 && columnIndex <= visibleColumnsCount - 1 : columnIndex > 0 && columnIndex < visibleColumnsCount - 1\r\n },\r\n _getCellElementFromTarget: function(target) {\r\n var elementType = this._getElementType(target);\r\n var $targetElement = $(target);\r\n var $cell;\r\n if (\"cell\" === elementType) {\r\n $cell = $targetElement.closest(\".\".concat(ROW_CLASS, \" > td\"))\r\n } else {\r\n $cell = $targetElement.children().not(\".\" + COMMAND_EXPAND_CLASS).first()\r\n }\r\n return $cell\r\n },\r\n _getRowsViewElement: function() {\r\n var rowsView = this.getView(\"rowsView\");\r\n return rowsView && rowsView.element()\r\n },\r\n isKeyboardEnabled: function() {\r\n return this.option(\"keyboardNavigation.enabled\")\r\n },\r\n _processCanceledEditCellPosition: function(rowIndex, columnIndex) {\r\n if (this._canceledCellPosition) {\r\n var isCanceled = this._canceledCellPosition.rowIndex === rowIndex && this._canceledCellPosition.columnIndex === columnIndex;\r\n this._canceledCellPosition = null;\r\n return isCanceled\r\n }\r\n }\r\n});\r\nexport var keyboardNavigationModule = {\r\n defaultOptions: function() {\r\n return {\r\n useLegacyKeyboardNavigation: false,\r\n keyboardNavigation: {\r\n enabled: true,\r\n enterKeyAction: \"startEdit\",\r\n enterKeyDirection: \"none\",\r\n editOnKeyPress: false\r\n }\r\n }\r\n },\r\n controllers: {\r\n keyboardNavigation: KeyboardNavigationController\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: {\r\n _rowClick: function(e) {\r\n var editRowIndex = this.getController(\"editing\").getEditRowIndex();\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n if (editRowIndex === e.rowIndex) {\r\n keyboardController.setCellFocusType()\r\n }\r\n var needTriggerPointerEventHandler = isMobile() && this.option(\"focusedRowEnabled\");\r\n if (needTriggerPointerEventHandler) {\r\n this._triggerPointerDownEventHandler(e)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _triggerPointerDownEventHandler: function(e) {\r\n var originalEvent = e.event.originalEvent;\r\n if (originalEvent) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var $cell = $(originalEvent.target);\r\n var columnIndex = this.getCellIndex($cell);\r\n var column = this.getController(\"columns\").getVisibleColumns()[columnIndex];\r\n var row = this.getController(\"data\").items()[e.rowIndex];\r\n if (keyboardController._isAllowEditing(row, column)) {\r\n var eventArgs = createEvent(originalEvent, {\r\n currentTarget: originalEvent.target\r\n });\r\n keyboardController._pointerEventHandler(eventArgs)\r\n }\r\n }\r\n },\r\n renderFocusState: function(preventScroll) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var $rowsViewElement = this.element();\r\n if ($rowsViewElement && !focused($rowsViewElement)) {\r\n $rowsViewElement.attr(\"tabindex\", null)\r\n }\r\n var rowIndex = keyboardController.getVisibleRowIndex();\r\n if (!isDefined(rowIndex) || rowIndex < 0) {\r\n rowIndex = 0\r\n }\r\n var cellElements = this.getCellElements(rowIndex);\r\n if (keyboardController.isKeyboardEnabled() && cellElements.length) {\r\n this.updateFocusElementTabIndex(cellElements, preventScroll)\r\n }\r\n },\r\n updateFocusElementTabIndex: function(cellElements) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var $row = cellElements.eq(0).parent();\r\n if (isGroupRow($row)) {\r\n keyboardController._applyTabIndexToElement($row)\r\n } else {\r\n var columnIndex = keyboardController.getColumnIndex();\r\n if (!isDefined(columnIndex) || columnIndex < 0) {\r\n columnIndex = 0\r\n }\r\n this._updateFocusedCellTabIndex(cellElements, columnIndex)\r\n }\r\n },\r\n _updateFocusedCellTabIndex: function(cellElements, columnIndex) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var cellElementsLength = cellElements ? cellElements.length : -1;\r\n var updateCellTabIndex = function($cell) {\r\n var isMasterDetailCell = keyboardController._isMasterDetailCell($cell);\r\n var isValidCell = keyboardController._isCellValid($cell);\r\n if (!isMasterDetailCell && isValidCell && isCellElement($cell)) {\r\n keyboardController._applyTabIndexToElement($cell);\r\n keyboardController.setCellFocusType();\r\n return true\r\n }\r\n };\r\n var $cell = cellElements.filter(\"[aria-colindex='\".concat(columnIndex + 1, \"']\"));\r\n if ($cell.length) {\r\n updateCellTabIndex($cell)\r\n } else {\r\n if (cellElementsLength <= columnIndex) {\r\n columnIndex = cellElementsLength - 1\r\n }\r\n for (var i = columnIndex; i < cellElementsLength; ++i) {\r\n if (updateCellTabIndex($(cellElements[i]))) {\r\n break\r\n }\r\n }\r\n }\r\n },\r\n renderDelayedTemplates: function(change) {\r\n this.callBase.apply(this, arguments);\r\n this._renderFocusByChange(change)\r\n },\r\n _renderFocusByChange(change) {\r\n if (!change || !change.repaintChangesOnly) {\r\n var preventScroll = shouldPreventScroll(this);\r\n this.renderFocusState(preventScroll)\r\n }\r\n },\r\n _renderCore: function(change) {\r\n this.callBase.apply(this, arguments);\r\n this._renderFocusByChange(change)\r\n },\r\n _editCellPrepared: function($cell) {\r\n var editorInstance = this._getEditorInstance($cell);\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var isEditingNavigationMode = keyboardController && keyboardController._isFastEditingStarted();\r\n if (editorInstance && isEditingNavigationMode) {\r\n this._handleEditingNavigationMode(editorInstance)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _handleEditingNavigationMode: function(editorInstance) {\r\n [\"downArrow\", \"upArrow\"].forEach((function(keyName) {\r\n var originalKeyHandler = editorInstance._supportedKeys()[keyName];\r\n editorInstance.registerKeyHandler(keyName, e => {\r\n var isDropDownOpened = \"true\" === editorInstance._input().attr(\"aria-expanded\");\r\n if (isDropDownOpened) {\r\n return originalKeyHandler && originalKeyHandler.call(editorInstance, e)\r\n }\r\n })\r\n }));\r\n editorInstance.registerKeyHandler(\"leftArrow\", noop);\r\n editorInstance.registerKeyHandler(\"rightArrow\", noop);\r\n var isDateBoxWithMask = editorInstance.NAME === DATEBOX_WIDGET_NAME && editorInstance.option(\"useMaskBehavior\");\r\n if (isDateBoxWithMask) {\r\n editorInstance.registerKeyHandler(\"enter\", noop)\r\n }\r\n },\r\n _getEditorInstance: function($cell) {\r\n var $editor = $cell.find(\".dx-texteditor\").eq(0);\r\n return gridCoreUtils.getWidgetInstance($editor)\r\n }\r\n }\r\n },\r\n controllers: {\r\n editing: {\r\n editCell: function(rowIndex, columnIndex) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n if (keyboardController._processCanceledEditCellPosition(rowIndex, columnIndex)) {\r\n return false\r\n }\r\n var isCellEditing = this.callBase(rowIndex, columnIndex);\r\n if (isCellEditing) {\r\n keyboardController.setupFocusedView()\r\n }\r\n return isCellEditing\r\n },\r\n editRow: function(rowIndex) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var visibleColumnIndex = keyboardController.getVisibleColumnIndex();\r\n var column = this._columnsController.getVisibleColumns()[visibleColumnIndex];\r\n if (column && column.type || this.option(\"editing.mode\") === EDIT_MODE_FORM) {\r\n keyboardController._resetFocusedCell()\r\n }\r\n this.callBase(rowIndex)\r\n },\r\n addRow: function(parentKey) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n keyboardController.setupFocusedView();\r\n keyboardController.setCellFocusType();\r\n return this.callBase.apply(this, arguments)\r\n },\r\n getFocusedCellInRow: function(rowIndex) {\r\n var keyboardNavigationController = this.getController(\"keyboardNavigation\");\r\n var $cell = this.callBase(rowIndex);\r\n if (keyboardNavigationController.isKeyboardEnabled() && keyboardNavigationController._focusedCellPosition.rowIndex === rowIndex) {\r\n var $focusedCell = keyboardNavigationController._getFocusedCell();\r\n if (isElementDefined($focusedCell) && !$focusedCell.hasClass(COMMAND_EDIT_CLASS)) {\r\n $cell = $focusedCell\r\n }\r\n }\r\n return $cell\r\n },\r\n _processCanceledEditingCell: function() {\r\n this.closeEditCell().done(() => {\r\n var keyboardNavigation = this.getController(\"keyboardNavigation\");\r\n keyboardNavigation._updateFocus()\r\n })\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._keyboardNavigationController = this.getController(\"keyboardNavigation\")\r\n },\r\n closeEditCell: function() {\r\n var keyboardNavigation = this._keyboardNavigationController;\r\n keyboardNavigation._fastEditingStarted = false;\r\n var result = this.callBase.apply(this, arguments);\r\n keyboardNavigation._updateFocus();\r\n return result\r\n },\r\n _delayedInputFocus: function() {\r\n this._keyboardNavigationController._isNeedScroll = true;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _isEditingStart: function() {\r\n var keyboardNavigation = this.getController(\"keyboardNavigation\");\r\n var cancel = this.callBase.apply(this, arguments);\r\n if (cancel && !keyboardNavigation._isNeedFocus) {\r\n var $cell = keyboardNavigation._getFocusedCell();\r\n keyboardNavigation._focus($cell, true)\r\n }\r\n return cancel\r\n }\r\n },\r\n data: {\r\n _correctRowIndices: function(getRowIndexCorrection) {\r\n var that = this;\r\n var keyboardNavigationController = that.getController(\"keyboardNavigation\");\r\n var editorFactory = that.getController(\"editorFactory\");\r\n var focusedCellPosition = keyboardNavigationController._focusedCellPosition;\r\n that.callBase.apply(that, arguments);\r\n if (focusedCellPosition && focusedCellPosition.rowIndex >= 0) {\r\n var focusedRowIndexCorrection = getRowIndexCorrection(focusedCellPosition.rowIndex);\r\n if (focusedRowIndexCorrection) {\r\n focusedCellPosition.rowIndex += focusedRowIndexCorrection;\r\n editorFactory.refocus()\r\n }\r\n }\r\n }\r\n },\r\n adaptiveColumns: {\r\n _showHiddenCellsInView: function(_ref) {\r\n var {\r\n viewName: viewName,\r\n $cells: $cells,\r\n isCommandColumn: isCommandColumn\r\n } = _ref;\r\n this.callBase.apply(this, arguments);\r\n viewName === COLUMN_HEADERS_VIEW && !isCommandColumn && $cells.each((_, cellElement) => {\r\n var $cell = $(cellElement);\r\n isCellInHeaderRow($cell) && $cell.attr(\"tabindex\", 0)\r\n })\r\n },\r\n _hideVisibleCellInView: function(_ref2) {\r\n var {\r\n viewName: viewName,\r\n $cell: $cell,\r\n isCommandColumn: isCommandColumn\r\n } = _ref2;\r\n this.callBase.apply(this, arguments);\r\n if (viewName === COLUMN_HEADERS_VIEW && !isCommandColumn && isCellInHeaderRow($cell)) {\r\n $cell.removeAttr(\"tabindex\")\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/aggregate_calculator.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n errors\r\n} from \"../../data/errors\";\r\nimport dataUtils from \"../../data/utils\";\r\n\r\nfunction depthFirstSearch(i, depth, root, callback) {\r\n var j = 0;\r\n if (i < depth) {\r\n for (; j < root.items.length; j++) {\r\n depthFirstSearch(i + 1, depth, root.items[j], callback)\r\n }\r\n }\r\n if (i === depth) {\r\n callback(root)\r\n }\r\n}\r\n\r\nfunction map(array, callback) {\r\n var i;\r\n if (\"map\" in array) {\r\n return array.map(callback)\r\n }\r\n var result = new Array(array.length);\r\n for (i in array) {\r\n result[i] = callback(array[i], i)\r\n }\r\n return result\r\n}\r\n\r\nfunction isEmpty(x) {\r\n return x !== x || \"\" === x || null === x || void 0 === x\r\n}\r\n\r\nfunction isCount(aggregator) {\r\n return aggregator === dataUtils.aggregators.count\r\n}\r\n\r\nfunction normalizeAggregate(aggregate) {\r\n var selector = compileGetter(aggregate.selector);\r\n var skipEmptyValues = \"skipEmptyValues\" in aggregate ? aggregate.skipEmptyValues : true;\r\n var aggregator = aggregate.aggregator;\r\n if (\"string\" === typeof aggregator) {\r\n aggregator = dataUtils.aggregators[aggregator];\r\n if (!aggregator) {\r\n throw errors.Error(\"E4001\", aggregate.aggregator)\r\n }\r\n }\r\n return {\r\n selector: selector,\r\n aggregator: aggregator,\r\n skipEmptyValues: skipEmptyValues\r\n }\r\n}\r\nexport default Class.inherit({\r\n ctor: function(options) {\r\n this._data = options.data;\r\n this._groupLevel = options.groupLevel || 0;\r\n this._totalAggregates = map(options.totalAggregates || [], normalizeAggregate);\r\n this._groupAggregates = map(options.groupAggregates || [], normalizeAggregate);\r\n this._totals = []\r\n },\r\n calculate: function() {\r\n if (this._totalAggregates.length) {\r\n this._calculateTotals(0, {\r\n items: this._data\r\n })\r\n }\r\n if (this._groupAggregates.length && this._groupLevel > 0) {\r\n this._calculateGroups({\r\n items: this._data\r\n })\r\n }\r\n },\r\n totalAggregates: function() {\r\n return this._totals\r\n },\r\n _aggregate: function(aggregates, data, container) {\r\n var length = data.items ? data.items.length : 0;\r\n for (var i = 0; i < aggregates.length; i++) {\r\n if (isCount(aggregates[i].aggregator)) {\r\n container[i] = (container[i] || 0) + length;\r\n continue\r\n }\r\n for (var j = 0; j < length; j++) {\r\n this._accumulate(i, aggregates[i], container, data.items[j])\r\n }\r\n }\r\n },\r\n _calculateTotals: function(level, data) {\r\n if (0 === level) {\r\n this._totals = this._seed(this._totalAggregates)\r\n }\r\n if (level === this._groupLevel) {\r\n this._aggregate(this._totalAggregates, data, this._totals)\r\n } else {\r\n for (var i = 0; i < data.items.length; i++) {\r\n this._calculateTotals(level + 1, data.items[i])\r\n }\r\n }\r\n if (0 === level) {\r\n this._totals = this._finalize(this._totalAggregates, this._totals)\r\n }\r\n },\r\n _calculateGroups: function(root) {\r\n var maxLevel = this._groupLevel;\r\n var currentLevel = maxLevel + 1;\r\n var seedFn = this._seed.bind(this, this._groupAggregates);\r\n var stepFn = this._aggregate.bind(this, this._groupAggregates);\r\n var finalizeFn = this._finalize.bind(this, this._groupAggregates);\r\n\r\n function aggregator(node) {\r\n node.aggregates = seedFn(currentLevel - 1);\r\n if (currentLevel === maxLevel) {\r\n stepFn(node, node.aggregates)\r\n } else {\r\n depthFirstSearch(currentLevel, maxLevel, node, (function(innerNode) {\r\n stepFn(innerNode, node.aggregates)\r\n }))\r\n }\r\n node.aggregates = finalizeFn(node.aggregates)\r\n }\r\n while (--currentLevel > 0) {\r\n depthFirstSearch(0, currentLevel, root, aggregator)\r\n }\r\n },\r\n _seed: function(aggregates, groupIndex) {\r\n return map(aggregates, (function(aggregate) {\r\n var aggregator = aggregate.aggregator;\r\n var seed = \"seed\" in aggregator ? isFunction(aggregator.seed) ? aggregator.seed(groupIndex) : aggregator.seed : NaN;\r\n return seed\r\n }))\r\n },\r\n _accumulate: function(aggregateIndex, aggregate, results, item) {\r\n var value = aggregate.selector(item);\r\n var aggregator = aggregate.aggregator;\r\n var skipEmptyValues = aggregate.skipEmptyValues;\r\n if (skipEmptyValues && isEmpty(value)) {\r\n return\r\n }\r\n if (results[aggregateIndex] !== results[aggregateIndex]) {\r\n results[aggregateIndex] = value\r\n } else {\r\n results[aggregateIndex] = aggregator.step(results[aggregateIndex], value)\r\n }\r\n },\r\n _finalize: function(aggregates, results) {\r\n return map(aggregates, (function(aggregate, index) {\r\n var fin = aggregate.aggregator.finalize;\r\n return fin ? fin(results[index]) : results[index]\r\n }))\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.keyboard_navigation.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n keyboardNavigationModule\r\n} from \"../grid_core/ui.grid_core.keyboard_navigation\";\r\ngridCore.registerModule(\"keyboardNavigation\", keyboardNavigationModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.summary.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 {\r\n isDefined,\r\n isPlainObject,\r\n isEmptyObject,\r\n isString,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport dataSourceAdapter from \"./ui.data_grid.data_source_adapter\";\r\nimport {\r\n ColumnsView\r\n} from \"../grid_core/ui.grid_core.columns_view\";\r\nimport AggregateCalculator from \"./aggregate_calculator\";\r\nimport dataQuery from \"../../data/query\";\r\nimport storeHelper from \"../../data/store_helper\";\r\nimport dataUtils from \"../../data/utils\";\r\nvar DATAGRID_TOTAL_FOOTER_CLASS = \"dx-datagrid-total-footer\";\r\nvar DATAGRID_SUMMARY_ITEM_CLASS = \"dx-datagrid-summary-item\";\r\nvar DATAGRID_TEXT_CONTENT_CLASS = \"dx-datagrid-text-content\";\r\nvar DATAGRID_GROUP_FOOTER_CLASS = \"dx-datagrid-group-footer\";\r\nvar DATAGRID_GROUP_TEXT_CONTENT_CLASS = \"dx-datagrid-group-text-content\";\r\nvar DATAGRID_NOWRAP_CLASS = \"dx-datagrid-nowrap\";\r\nvar DATAGRID_GROUP_FOOTER_ROW_TYPE = \"groupFooter\";\r\nexport var renderSummaryCell = function(cell, options) {\r\n var $cell = $(cell);\r\n var column = options.column;\r\n var summaryItems = options.summaryItems;\r\n var $summaryItems = [];\r\n if (!column.command && summaryItems) {\r\n for (var i = 0; i < summaryItems.length; i++) {\r\n var summaryItem = summaryItems[i];\r\n $summaryItems.push($(\"
\").css(\"textAlign\", summaryItem.alignment || column.alignment).addClass(DATAGRID_SUMMARY_ITEM_CLASS).addClass(DATAGRID_TEXT_CONTENT_CLASS).addClass(summaryItem.cssClass).toggleClass(DATAGRID_GROUP_TEXT_CONTENT_CLASS, \"group\" === options.rowType).text(gridCore.getSummaryText(summaryItem, options.summaryTexts)))\r\n }\r\n $cell.append($summaryItems)\r\n }\r\n};\r\nvar getSummaryCellOptions = function(that, options) {\r\n var summaryTexts = that.option(\"summary.texts\") || {};\r\n return {\r\n totalItem: options.row,\r\n summaryItems: options.row.summaryCells[options.columnIndex],\r\n summaryTexts: summaryTexts\r\n }\r\n};\r\nvar getGroupAggregates = function(data) {\r\n return data.summary || data.aggregates || []\r\n};\r\nvar recalculateWhileEditing = function(that) {\r\n return that.option(\"summary.recalculateWhileEditing\")\r\n};\r\nexport var FooterView = ColumnsView.inherit({\r\n _getRows: function() {\r\n return this._dataController.footerItems()\r\n },\r\n _getCellOptions: function(options) {\r\n return extend(this.callBase(options), getSummaryCellOptions(this, options))\r\n },\r\n _renderCellContent: function($cell, options) {\r\n renderSummaryCell($cell, options);\r\n this.callBase($cell, options)\r\n },\r\n _renderCore: function(change) {\r\n var needUpdateScrollLeft = false;\r\n var totalItem = this._dataController.footerItems()[0];\r\n if (!change || !change.columnIndices) {\r\n this.element().empty().addClass(DATAGRID_TOTAL_FOOTER_CLASS).toggleClass(DATAGRID_NOWRAP_CLASS, !this.option(\"wordWrapEnabled\"));\r\n needUpdateScrollLeft = true\r\n }\r\n if (totalItem && totalItem.summaryCells && totalItem.summaryCells.length) {\r\n this._updateContent(this._renderTable({\r\n change: change\r\n }), change);\r\n needUpdateScrollLeft && this._updateScrollLeftPosition()\r\n }\r\n },\r\n _updateContent: function($newTable, change) {\r\n if (change && \"update\" === change.changeType && change.columnIndices) {\r\n var $row = this.getTableElement().find(\".dx-row\");\r\n var $newRow = $newTable.find(\".dx-row\");\r\n this._updateCells($row, $newRow, change.columnIndices[0])\r\n } else {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _rowClick: function(e) {\r\n var item = this._dataController.footerItems()[e.rowIndex] || {};\r\n this.executeAction(\"onRowClick\", extend({}, e, item))\r\n },\r\n _columnOptionChanged: function(e) {\r\n var optionNames = e.optionNames;\r\n if (e.changeTypes.grouping) {\r\n return\r\n }\r\n if (optionNames.width || optionNames.visibleWidth) {\r\n this.callBase(e)\r\n }\r\n },\r\n _handleDataChanged: function(e) {\r\n var changeType = e.changeType;\r\n if (\"update\" === e.changeType && e.repaintChangesOnly) {\r\n if (!e.totalColumnIndices) {\r\n this.render()\r\n } else if (e.totalColumnIndices.length) {\r\n this.render(null, {\r\n changeType: \"update\",\r\n columnIndices: [e.totalColumnIndices]\r\n })\r\n }\r\n } else if (\"refresh\" === changeType || \"append\" === changeType || \"prepend\" === changeType) {\r\n this.render()\r\n }\r\n },\r\n getHeight: function() {\r\n return this.getElementHeight()\r\n },\r\n isVisible: function() {\r\n return !!this._dataController.footerItems().length\r\n }\r\n});\r\nvar SummaryDataSourceAdapterExtender = {\r\n init: function() {\r\n this.callBase.apply(this, arguments);\r\n this._totalAggregates = [];\r\n this._summaryGetter = noop\r\n },\r\n summaryGetter: function(_summaryGetter) {\r\n if (!arguments.length) {\r\n return this._summaryGetter\r\n }\r\n if (isFunction(_summaryGetter)) {\r\n this._summaryGetter = _summaryGetter\r\n }\r\n },\r\n summary: function(_summary) {\r\n if (!arguments.length) {\r\n return this._summaryGetter()\r\n }\r\n this._summaryGetter = function() {\r\n return _summary\r\n }\r\n },\r\n totalAggregates: function() {\r\n return this._totalAggregates\r\n },\r\n isLastLevelGroupItemsPagingLocal: function() {\r\n var summary = this.summary();\r\n var sortByGroupsInfo = summary && summary.sortByGroups();\r\n return sortByGroupsInfo && sortByGroupsInfo.length\r\n },\r\n sortLastLevelGroupItems: function(items, groups, paths) {\r\n var groupedItems = storeHelper.multiLevelGroup(dataQuery(items), groups).toArray();\r\n var result = [];\r\n paths.forEach((function(path) {\r\n ! function forEachGroup(groups, groupCount, callback, path) {\r\n path = path || [];\r\n for (var i = 0; i < groups.length; i++) {\r\n path.push(groups[i].key);\r\n if (1 === groupCount) {\r\n callback(path, groups[i].items)\r\n } else {\r\n forEachGroup(groups[i].items, groupCount - 1, callback, path)\r\n }\r\n path.pop()\r\n }\r\n }(groupedItems, groups.length, (function(itemsPath, items) {\r\n if (path.toString() === itemsPath.toString()) {\r\n result = result.concat(items)\r\n }\r\n }))\r\n }));\r\n return result\r\n }\r\n};\r\nvar SummaryDataSourceAdapterClientExtender = function() {\r\n var calculateAggregates = function(that, summary, data, groupLevel) {\r\n var calculator;\r\n if (recalculateWhileEditing(that)) {\r\n var editingController = that.getController(\"editing\");\r\n if (editingController) {\r\n var insertedData = editingController.getInsertedData();\r\n if (insertedData.length) {\r\n data = function applyAddedData(data, insertedData, groupLevel) {\r\n if (groupLevel) {\r\n return applyAddedData(data, insertedData.map(item => ({\r\n items: [item]\r\n }), groupLevel - 1))\r\n }\r\n return data.concat(insertedData)\r\n }(data, insertedData, groupLevel)\r\n }\r\n var removedData = editingController.getRemovedData();\r\n if (removedData.length) {\r\n data = function applyRemovedData(data, removedData, groupLevel) {\r\n if (groupLevel) {\r\n return data.map(data => {\r\n var updatedData = {};\r\n var updatedItems = applyRemovedData(data.items || [], removedData, groupLevel - 1);\r\n Object.defineProperty(updatedData, \"aggregates\", {\r\n get: () => data.aggregates,\r\n set: value => {\r\n data.aggregates = value\r\n }\r\n });\r\n return extend(updatedData, data, {\r\n items: updatedItems\r\n })\r\n })\r\n }\r\n return data.filter(data => removedData.indexOf(data) < 0)\r\n }(data, removedData, groupLevel)\r\n }\r\n }\r\n }\r\n if (summary) {\r\n calculator = new AggregateCalculator({\r\n totalAggregates: summary.totalAggregates,\r\n groupAggregates: summary.groupAggregates,\r\n data: data,\r\n groupLevel: groupLevel\r\n });\r\n calculator.calculate()\r\n }\r\n return calculator ? calculator.totalAggregates() : []\r\n };\r\n var sortGroupsBySummary = function(data, group, summary) {\r\n var sortByGroups = summary && summary.sortByGroups && summary.sortByGroups();\r\n if (sortByGroups && sortByGroups.length) {\r\n return function sortGroupsBySummaryCore(items, groups, sortByGroups) {\r\n if (!items || !groups.length) {\r\n return items\r\n }\r\n var group = groups[0];\r\n var sorts = sortByGroups[0];\r\n var query;\r\n if (group && sorts && sorts.length) {\r\n query = dataQuery(items);\r\n each(sorts, (function(index) {\r\n if (0 === index) {\r\n query = query.sortBy(this.selector, this.desc)\r\n } else {\r\n query = query.thenBy(this.selector, this.desc)\r\n }\r\n }));\r\n query.enumerate().done((function(sortedItems) {\r\n items = sortedItems\r\n }))\r\n }\r\n groups = groups.slice(1);\r\n sortByGroups = sortByGroups.slice(1);\r\n if (groups.length && sortByGroups.length) {\r\n each(items, (function() {\r\n this.items = sortGroupsBySummaryCore(this.items, groups, sortByGroups)\r\n }))\r\n }\r\n return items\r\n }(data, group, sortByGroups)\r\n }\r\n return data\r\n };\r\n return {\r\n _customizeRemoteOperations: function(options) {\r\n var summary = this.summary();\r\n if (summary) {\r\n if (options.remoteOperations.summary) {\r\n if (!options.isCustomLoading || options.storeLoadOptions.isLoadingAll) {\r\n if (options.storeLoadOptions.group) {\r\n if (options.remoteOperations.grouping) {\r\n options.storeLoadOptions.groupSummary = summary.groupAggregates\r\n } else if (summary.groupAggregates.length) {\r\n options.remoteOperations.paging = false\r\n }\r\n }\r\n options.storeLoadOptions.totalSummary = summary.totalAggregates\r\n }\r\n } else if (summary.totalAggregates.length || summary.groupAggregates.length && options.storeLoadOptions.group) {\r\n options.remoteOperations.paging = false\r\n }\r\n }\r\n this.callBase.apply(this, arguments);\r\n var cachedExtra = options.cachedPagesData.extra;\r\n if (cachedExtra && cachedExtra.summary && !options.isCustomLoading) {\r\n options.storeLoadOptions.totalSummary = void 0\r\n }\r\n },\r\n _handleDataLoadedCore: function(options) {\r\n var groups = dataUtils.normalizeSortingInfo(options.storeLoadOptions.group || options.loadOptions.group || []);\r\n var remoteOperations = options.remoteOperations || {};\r\n var summary = this.summaryGetter()(remoteOperations);\r\n var totalAggregates;\r\n if (!options.isCustomLoading || options.storeLoadOptions.isLoadingAll) {\r\n if (remoteOperations.summary) {\r\n if (!remoteOperations.paging && groups.length && summary) {\r\n if (!remoteOperations.grouping) {\r\n calculateAggregates(this, {\r\n groupAggregates: summary.groupAggregates\r\n }, options.data, groups.length)\r\n }\r\n options.data = sortGroupsBySummary(options.data, groups, summary)\r\n }\r\n } else if (!remoteOperations.paging) {\r\n totalAggregates = calculateAggregates(this, summary, options.data, groups.length);\r\n options.data = sortGroupsBySummary(options.data, groups, summary);\r\n options.extra = isPlainObject(options.extra) ? options.extra : {};\r\n options.extra.summary = totalAggregates\r\n }\r\n }\r\n if (!options.isCustomLoading) {\r\n this._totalAggregates = options.extra && options.extra.summary || this._totalAggregates\r\n }\r\n this.callBase(options)\r\n }\r\n }\r\n}();\r\ndataSourceAdapter.extend(SummaryDataSourceAdapterExtender);\r\ndataSourceAdapter.extend(SummaryDataSourceAdapterClientExtender);\r\ngridCore.registerModule(\"summary\", {\r\n defaultOptions: function() {\r\n return {\r\n summary: {\r\n groupItems: void 0,\r\n totalItems: void 0,\r\n calculateCustomSummary: void 0,\r\n skipEmptyValues: true,\r\n recalculateWhileEditing: false,\r\n texts: {\r\n sum: messageLocalization.getFormatter(\"dxDataGrid-summarySum\"),\r\n sumOtherColumn: messageLocalization.getFormatter(\"dxDataGrid-summarySumOtherColumn\"),\r\n min: messageLocalization.getFormatter(\"dxDataGrid-summaryMin\"),\r\n minOtherColumn: messageLocalization.getFormatter(\"dxDataGrid-summaryMinOtherColumn\"),\r\n max: messageLocalization.getFormatter(\"dxDataGrid-summaryMax\"),\r\n maxOtherColumn: messageLocalization.getFormatter(\"dxDataGrid-summaryMaxOtherColumn\"),\r\n avg: messageLocalization.getFormatter(\"dxDataGrid-summaryAvg\"),\r\n avgOtherColumn: messageLocalization.getFormatter(\"dxDataGrid-summaryAvgOtherColumn\"),\r\n count: messageLocalization.getFormatter(\"dxDataGrid-summaryCount\")\r\n }\r\n },\r\n sortByGroupSummaryInfo: void 0\r\n }\r\n },\r\n views: {\r\n footerView: FooterView\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n _isDataColumn: function(column) {\r\n return column && (!isDefined(column.groupIndex) || column.showWhenGrouped)\r\n },\r\n _isGroupFooterVisible: function() {\r\n var groupItems = this.option(\"summary.groupItems\") || [];\r\n for (var i = 0; i < groupItems.length; i++) {\r\n var groupItem = groupItems[i];\r\n var column = this._columnsController.columnOption(groupItem.showInColumn || groupItem.column);\r\n if (groupItem.showInGroupFooter && this._isDataColumn(column)) {\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n _processGroupItems: function(items, groupCount, options) {\r\n var data = options && options.data;\r\n var result = this.callBase.apply(this, arguments);\r\n if (options) {\r\n if (void 0 === options.isGroupFooterVisible) {\r\n options.isGroupFooterVisible = this._isGroupFooterVisible()\r\n }\r\n if (data && data.items && options.isGroupFooterVisible && (options.collectContinuationItems || !data.isContinuationOnNextPage)) {\r\n result.push({\r\n rowType: DATAGRID_GROUP_FOOTER_ROW_TYPE,\r\n key: options.path.slice(),\r\n data: data,\r\n groupIndex: options.path.length - 1,\r\n values: []\r\n })\r\n }\r\n }\r\n return result\r\n },\r\n _processGroupItem: function(groupItem, options) {\r\n var that = this;\r\n if (!options.summaryGroupItems) {\r\n options.summaryGroupItems = that.option(\"summary.groupItems\") || []\r\n }\r\n if (\"group\" === groupItem.rowType) {\r\n var groupColumnIndex = -1;\r\n var afterGroupColumnIndex = -1;\r\n each(options.visibleColumns, (function(visibleIndex) {\r\n var prevColumn = options.visibleColumns[visibleIndex - 1];\r\n if (groupItem.groupIndex === this.groupIndex) {\r\n groupColumnIndex = this.index\r\n }\r\n if (visibleIndex > 0 && \"expand\" === prevColumn.command && \"expand\" !== this.command) {\r\n afterGroupColumnIndex = this.index\r\n }\r\n }));\r\n groupItem.summaryCells = this._calculateSummaryCells(options.summaryGroupItems, getGroupAggregates(groupItem.data), options.visibleColumns, (function(summaryItem, column) {\r\n if (summaryItem.showInGroupFooter) {\r\n return -1\r\n }\r\n if (summaryItem.alignByColumn && column && !isDefined(column.groupIndex) && column.index !== afterGroupColumnIndex) {\r\n return column.index\r\n } else {\r\n return groupColumnIndex\r\n }\r\n }))\r\n }\r\n if (groupItem.rowType === DATAGRID_GROUP_FOOTER_ROW_TYPE) {\r\n groupItem.summaryCells = this._calculateSummaryCells(options.summaryGroupItems, getGroupAggregates(groupItem.data), options.visibleColumns, (function(summaryItem, column) {\r\n return summaryItem.showInGroupFooter && that._isDataColumn(column) ? column.index : -1\r\n }))\r\n }\r\n return groupItem\r\n },\r\n _calculateSummaryCells: function(summaryItems, aggregates, visibleColumns, calculateTargetColumnIndex) {\r\n var that = this;\r\n var summaryCells = [];\r\n var summaryCellsByColumns = {};\r\n each(summaryItems, (function(summaryIndex, summaryItem) {\r\n var column = that._columnsController.columnOption(summaryItem.column);\r\n var showInColumn = summaryItem.showInColumn && that._columnsController.columnOption(summaryItem.showInColumn) || column;\r\n var columnIndex = calculateTargetColumnIndex(summaryItem, showInColumn);\r\n if (columnIndex >= 0) {\r\n if (!summaryCellsByColumns[columnIndex]) {\r\n summaryCellsByColumns[columnIndex] = []\r\n }\r\n var aggregate = aggregates[summaryIndex];\r\n if (aggregate === aggregate) {\r\n var valueFormat;\r\n if (isDefined(summaryItem.valueFormat)) {\r\n valueFormat = summaryItem.valueFormat\r\n } else if (\"count\" !== summaryItem.summaryType) {\r\n valueFormat = gridCore.getFormatByDataType(column && column.dataType)\r\n }\r\n summaryCellsByColumns[columnIndex].push(extend({}, summaryItem, {\r\n value: isString(aggregate) && column && column.deserializeValue ? column.deserializeValue(aggregate) : aggregate,\r\n valueFormat: valueFormat,\r\n columnCaption: column && column.index !== columnIndex ? column.caption : void 0\r\n }))\r\n }\r\n }\r\n }));\r\n if (!isEmptyObject(summaryCellsByColumns)) {\r\n each(visibleColumns, (function() {\r\n summaryCells.push(summaryCellsByColumns[this.index] || [])\r\n }))\r\n }\r\n return summaryCells\r\n },\r\n _getSummaryCells: function(summaryTotalItems, totalAggregates) {\r\n var that = this;\r\n var columnsController = that._columnsController;\r\n return that._calculateSummaryCells(summaryTotalItems, totalAggregates, columnsController.getVisibleColumns(), (function(summaryItem, column) {\r\n return that._isDataColumn(column) ? column.index : -1\r\n }))\r\n },\r\n _updateItemsCore: function(change) {\r\n var summaryCells;\r\n var dataSource = this._dataSource;\r\n var footerItems = this._footerItems;\r\n var oldSummaryCells = footerItems && footerItems[0] && footerItems[0].summaryCells;\r\n var summaryTotalItems = this.option(\"summary.totalItems\");\r\n this._footerItems = [];\r\n if (dataSource && summaryTotalItems && summaryTotalItems.length) {\r\n var totalAggregates = dataSource.totalAggregates();\r\n summaryCells = this._getSummaryCells(summaryTotalItems, totalAggregates);\r\n if (change && change.repaintChangesOnly && oldSummaryCells) {\r\n change.totalColumnIndices = summaryCells.map((function(summaryCell, index) {\r\n if (JSON.stringify(summaryCell) !== JSON.stringify(oldSummaryCells[index])) {\r\n return index\r\n }\r\n return -1\r\n })).filter(index => index >= 0)\r\n }\r\n if (summaryCells.length) {\r\n this._footerItems.push({\r\n rowType: \"totalFooter\",\r\n summaryCells: summaryCells\r\n })\r\n }\r\n }\r\n this.callBase(change)\r\n },\r\n _prepareUnsavedDataSelector: function(selector) {\r\n if (recalculateWhileEditing(this)) {\r\n var editingController = this.getController(\"editing\");\r\n if (editingController) {\r\n return function(data) {\r\n data = editingController.getUpdatedData(data);\r\n return selector(data)\r\n }\r\n }\r\n }\r\n return selector\r\n },\r\n _prepareAggregateSelector: function(selector, aggregator) {\r\n selector = this._prepareUnsavedDataSelector(selector);\r\n if (\"avg\" === aggregator || \"sum\" === aggregator) {\r\n return function(data) {\r\n var value = selector(data);\r\n return isDefined(value) ? Number(value) : value\r\n }\r\n }\r\n return selector\r\n },\r\n _getAggregates: function(summaryItems, remoteOperations) {\r\n var that = this;\r\n var columnsController = that.getController(\"columns\");\r\n var calculateCustomSummary = that.option(\"summary.calculateCustomSummary\");\r\n var commonSkipEmptyValues = that.option(\"summary.skipEmptyValues\");\r\n return map(summaryItems || [], (function(summaryItem) {\r\n var column = columnsController.columnOption(summaryItem.column);\r\n var calculateCellValue = column && column.calculateCellValue ? column.calculateCellValue.bind(column) : compileGetter(column ? column.dataField : summaryItem.column);\r\n var aggregator = summaryItem.summaryType || \"count\";\r\n var selector = summaryItem.column;\r\n var skipEmptyValues = isDefined(summaryItem.skipEmptyValues) ? summaryItem.skipEmptyValues : commonSkipEmptyValues;\r\n if (remoteOperations) {\r\n return {\r\n selector: summaryItem.column,\r\n summaryType: aggregator\r\n }\r\n } else {\r\n selector = that._prepareAggregateSelector(calculateCellValue, aggregator);\r\n if (\"custom\" === aggregator) {\r\n if (!calculateCustomSummary) {\r\n errors.log(\"E1026\");\r\n calculateCustomSummary = function() {}\r\n }\r\n var options = {\r\n component: that.component,\r\n name: summaryItem.name\r\n };\r\n calculateCustomSummary(options);\r\n options.summaryProcess = \"calculate\";\r\n aggregator = {\r\n seed: function(groupIndex) {\r\n options.summaryProcess = \"start\";\r\n options.totalValue = void 0;\r\n options.groupIndex = groupIndex;\r\n delete options.value;\r\n calculateCustomSummary(options);\r\n return options.totalValue\r\n },\r\n step: function(totalValue, value) {\r\n options.summaryProcess = \"calculate\";\r\n options.totalValue = totalValue;\r\n options.value = value;\r\n calculateCustomSummary(options);\r\n return options.totalValue\r\n },\r\n finalize: function(totalValue) {\r\n options.summaryProcess = \"finalize\";\r\n options.totalValue = totalValue;\r\n delete options.value;\r\n calculateCustomSummary(options);\r\n return options.totalValue\r\n }\r\n }\r\n }\r\n return {\r\n selector: selector,\r\n aggregator: aggregator,\r\n skipEmptyValues: skipEmptyValues\r\n }\r\n }\r\n }))\r\n },\r\n _addSortInfo: function(sortByGroups, groupColumn, selector, sortOrder) {\r\n if (groupColumn) {\r\n var groupIndex = groupColumn.groupIndex;\r\n sortOrder = sortOrder || groupColumn.sortOrder;\r\n if (isDefined(groupIndex)) {\r\n sortByGroups[groupIndex] = sortByGroups[groupIndex] || [];\r\n sortByGroups[groupIndex].push({\r\n selector: selector,\r\n desc: \"desc\" === sortOrder\r\n })\r\n }\r\n }\r\n },\r\n _findSummaryItem: function(summaryItems, name) {\r\n var summaryItemIndex = -1;\r\n if (isDefined(name)) {\r\n each(summaryItems || [], (function(index) {\r\n if (this.name === name || index === name || this.summaryType === name || this.column === name || (summaryItem = this, summaryType = summaryItem.summaryType, column = summaryItem.column, summaryType && column && summaryType + \"_\" + column) === name) {\r\n summaryItemIndex = index;\r\n return false\r\n }\r\n var summaryItem, summaryType, column\r\n }))\r\n }\r\n return summaryItemIndex\r\n },\r\n _getSummarySortByGroups: function(sortByGroupSummaryInfo, groupSummaryItems) {\r\n var that = this;\r\n var columnsController = that._columnsController;\r\n var groupColumns = columnsController.getGroupColumns();\r\n var sortByGroups = [];\r\n if (!groupSummaryItems || !groupSummaryItems.length) {\r\n return\r\n }\r\n each(sortByGroupSummaryInfo || [], (function() {\r\n var sortOrder = this.sortOrder;\r\n var groupColumn = this.groupColumn;\r\n var summaryItemIndex = that._findSummaryItem(groupSummaryItems, this.summaryItem);\r\n if (summaryItemIndex < 0) {\r\n return\r\n }\r\n var selector = function(data) {\r\n return getGroupAggregates(data)[summaryItemIndex]\r\n };\r\n if (isDefined(groupColumn)) {\r\n groupColumn = columnsController.columnOption(groupColumn);\r\n that._addSortInfo(sortByGroups, groupColumn, selector, sortOrder)\r\n } else {\r\n each(groupColumns, (function(groupIndex, groupColumn) {\r\n that._addSortInfo(sortByGroups, groupColumn, selector, sortOrder)\r\n }))\r\n }\r\n }));\r\n return sortByGroups\r\n },\r\n _createDataSourceAdapterCore: function(dataSource, remoteOperations) {\r\n var that = this;\r\n var dataSourceAdapter = this.callBase(dataSource, remoteOperations);\r\n dataSourceAdapter.summaryGetter((function(currentRemoteOperations) {\r\n return that._getSummaryOptions(currentRemoteOperations || remoteOperations)\r\n }));\r\n return dataSourceAdapter\r\n },\r\n _getSummaryOptions: function(remoteOperations) {\r\n var that = this;\r\n var groupSummaryItems = that.option(\"summary.groupItems\");\r\n var totalSummaryItems = that.option(\"summary.totalItems\");\r\n var sortByGroupSummaryInfo = that.option(\"sortByGroupSummaryInfo\");\r\n var groupAggregates = that._getAggregates(groupSummaryItems, remoteOperations && remoteOperations.grouping && remoteOperations.summary);\r\n var totalAggregates = that._getAggregates(totalSummaryItems, remoteOperations && remoteOperations.summary);\r\n if (groupAggregates.length || totalAggregates.length) {\r\n return {\r\n groupAggregates: groupAggregates,\r\n totalAggregates: totalAggregates,\r\n sortByGroups: function() {\r\n return that._getSummarySortByGroups(sortByGroupSummaryInfo, groupSummaryItems)\r\n }\r\n }\r\n }\r\n },\r\n publicMethods: function() {\r\n var methods = this.callBase();\r\n methods.push(\"getTotalSummaryValue\");\r\n return methods\r\n },\r\n getTotalSummaryValue: function(summaryItemName) {\r\n var summaryItemIndex = this._findSummaryItem(this.option(\"summary.totalItems\"), summaryItemName);\r\n var aggregates = this._dataSource.totalAggregates();\r\n if (aggregates.length && summaryItemIndex > -1) {\r\n return aggregates[summaryItemIndex]\r\n }\r\n },\r\n optionChanged: function(args) {\r\n if (\"summary\" === args.name || \"sortByGroupSummaryInfo\" === args.name) {\r\n args.name = \"dataSource\"\r\n }\r\n this.callBase(args)\r\n },\r\n init: function() {\r\n this._footerItems = [];\r\n this.callBase()\r\n },\r\n footerItems: function() {\r\n return this._footerItems\r\n }\r\n },\r\n editing: {\r\n _refreshSummary: function() {\r\n if (recalculateWhileEditing(this) && !this.isSaving()) {\r\n this._dataController.refresh({\r\n load: true,\r\n changesOnly: true\r\n })\r\n }\r\n },\r\n _addChange: function(params) {\r\n var result = this.callBase.apply(this, arguments);\r\n if (params.type) {\r\n this._refreshSummary()\r\n }\r\n return result\r\n },\r\n _removeChange: function() {\r\n var result = this.callBase.apply(this, arguments);\r\n this._refreshSummary();\r\n return result\r\n },\r\n cancelEditData: function() {\r\n var result = this.callBase.apply(this, arguments);\r\n this._refreshSummary();\r\n return result\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n _createRow: function(row) {\r\n var $row = this.callBase(row);\r\n row && $row.addClass(row.rowType === DATAGRID_GROUP_FOOTER_ROW_TYPE ? DATAGRID_GROUP_FOOTER_CLASS : \"\");\r\n return $row\r\n },\r\n _renderCells: function($row, options) {\r\n this.callBase.apply(this, arguments);\r\n if (\"group\" === options.row.rowType && options.row.summaryCells && options.row.summaryCells.length) {\r\n this._renderGroupSummaryCells($row, options)\r\n }\r\n },\r\n _hasAlignByColumnSummaryItems: function(columnIndex, options) {\r\n return !isDefined(options.columns[columnIndex].groupIndex) && options.row.summaryCells[columnIndex].length\r\n },\r\n _getAlignByColumnCellCount: function(groupCellColSpan, options) {\r\n var alignByColumnCellCount = 0;\r\n for (var i = 1; i < groupCellColSpan; i++) {\r\n var columnIndex = options.row.summaryCells.length - i;\r\n alignByColumnCellCount = this._hasAlignByColumnSummaryItems(columnIndex, options) ? i : alignByColumnCellCount\r\n }\r\n return alignByColumnCellCount\r\n },\r\n _renderGroupSummaryCells: function($row, options) {\r\n var $groupCell = $row.children().last();\r\n var groupCellColSpan = Number($groupCell.attr(\"colSpan\")) || 1;\r\n var alignByColumnCellCount = this._getAlignByColumnCellCount(groupCellColSpan, options);\r\n this._renderGroupSummaryCellsCore($groupCell, options, groupCellColSpan, alignByColumnCellCount)\r\n },\r\n _renderGroupSummaryCellsCore: function($groupCell, options, groupCellColSpan, alignByColumnCellCount) {\r\n if (alignByColumnCellCount > 0) {\r\n $groupCell.attr(\"colSpan\", groupCellColSpan - alignByColumnCellCount);\r\n for (var i = 0; i < alignByColumnCellCount; i++) {\r\n var columnIndex = options.columns.length - alignByColumnCellCount + i;\r\n this._renderCell($groupCell.parent(), extend({\r\n column: options.columns[columnIndex],\r\n columnIndex: this._getSummaryCellIndex(columnIndex, options.columns)\r\n }, options))\r\n }\r\n }\r\n },\r\n _getSummaryCellIndex: function(columnIndex) {\r\n return columnIndex\r\n },\r\n _getCellTemplate: function(options) {\r\n if (!options.column.command && !isDefined(options.column.groupIndex) && options.summaryItems && options.summaryItems.length) {\r\n return renderSummaryCell\r\n } else {\r\n return this.callBase(options)\r\n }\r\n },\r\n _getCellOptions: function(options) {\r\n var parameters = this.callBase(options);\r\n if (options.row.summaryCells) {\r\n return extend(parameters, getSummaryCellOptions(this, options))\r\n } else {\r\n return parameters\r\n }\r\n }\r\n }\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.column_fixing.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 name as wheelEventName\r\n} from \"../../events/core/wheel\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport gridCoreUtils from \"../grid_core/ui.grid_core.utils\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport Scrollable from \"../scroll_view/ui.scrollable\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar CONTENT_FIXED_CLASS = \"content-fixed\";\r\nvar MASTER_DETAIL_CELL_CLASS = \"dx-master-detail-cell\";\r\nvar FIRST_CELL_CLASS = \"dx-first-cell\";\r\nvar LAST_CELL_CLASS = \"dx-last-cell\";\r\nvar HOVER_STATE_CLASS = \"dx-state-hover\";\r\nvar FIXED_COL_CLASS = \"dx-col-fixed\";\r\nvar FIXED_COLUMNS_CLASS = \"dx-fixed-columns\";\r\nvar POINTER_EVENTS_NONE_CLASS = \"dx-pointer-events-none\";\r\nvar COMMAND_TRANSPARENT = \"transparent\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar getTransparentColumnIndex = function(fixedColumns) {\r\n var transparentColumnIndex = -1;\r\n each(fixedColumns, (function(index, column) {\r\n if (column.command === COMMAND_TRANSPARENT) {\r\n transparentColumnIndex = index;\r\n return false\r\n }\r\n }));\r\n return transparentColumnIndex\r\n};\r\nvar normalizeColumnWidths = function(fixedColumns, widths, fixedWidths) {\r\n var fixedColumnIndex = 0;\r\n if (fixedColumns && widths && fixedWidths) {\r\n for (var i = 0; i < fixedColumns.length; i++) {\r\n if (fixedColumns[i].command === COMMAND_TRANSPARENT) {\r\n fixedColumnIndex += fixedColumns[i].colspan\r\n } else {\r\n if (widths[fixedColumnIndex] < fixedWidths[i]) {\r\n widths[fixedColumnIndex] = fixedWidths[i]\r\n }\r\n fixedColumnIndex++\r\n }\r\n }\r\n }\r\n return widths\r\n};\r\nvar baseFixedColumns = {\r\n init: function() {\r\n this.callBase();\r\n this._isFixedTableRendering = false;\r\n this._isFixedColumns = false\r\n },\r\n _createCol: function(column) {\r\n return this.callBase(column).toggleClass(FIXED_COL_CLASS, !!(this._isFixedTableRendering && (column.fixed || column.command && column.command !== COMMAND_TRANSPARENT)))\r\n },\r\n _correctColumnIndicesForFixedColumns: function(fixedColumns, change) {\r\n var transparentColumnIndex = getTransparentColumnIndex(fixedColumns);\r\n var transparentColspan = fixedColumns[transparentColumnIndex].colspan;\r\n var columnIndices = change && change.columnIndices;\r\n if (columnIndices) {\r\n change.columnIndices = columnIndices.map((function(columnIndices) {\r\n if (columnIndices) {\r\n return columnIndices.map((function(columnIndex) {\r\n if (columnIndex < transparentColumnIndex) {\r\n return columnIndex\r\n } else if (columnIndex >= transparentColumnIndex + transparentColspan) {\r\n return columnIndex - transparentColspan + 1\r\n }\r\n return -1\r\n })).filter((function(columnIndex) {\r\n return columnIndex >= 0\r\n }))\r\n }\r\n }))\r\n }\r\n },\r\n _renderTable: function(options) {\r\n var $fixedTable;\r\n var fixedColumns = this.getFixedColumns();\r\n this._isFixedColumns = !!fixedColumns.length;\r\n var $table = this.callBase(options);\r\n if (this._isFixedColumns) {\r\n this._isFixedTableRendering = true;\r\n var change = options && options.change;\r\n var columnIndices = change && change.columnIndices;\r\n this._correctColumnIndicesForFixedColumns(fixedColumns, change);\r\n $fixedTable = this._createTable(fixedColumns);\r\n this._renderRows($fixedTable, extend({}, options, {\r\n columns: fixedColumns\r\n }));\r\n this._updateContent($fixedTable, change);\r\n if (columnIndices) {\r\n change.columnIndices = columnIndices\r\n }\r\n this._isFixedTableRendering = false\r\n } else {\r\n this._fixedTableElement && this._fixedTableElement.parent().remove();\r\n this._fixedTableElement = null\r\n }\r\n return $table\r\n },\r\n _renderRow: function($table, options) {\r\n var fixedCorrection;\r\n var cells = options.row.cells;\r\n this.callBase.apply(this, arguments);\r\n if (this._isFixedTableRendering && cells && cells.length) {\r\n fixedCorrection = 0;\r\n var fixedCells = options.row.cells || [];\r\n cells = cells.slice();\r\n options.row.cells = cells;\r\n for (var i = 0; i < fixedCells.length; i++) {\r\n if (fixedCells[i].column && fixedCells[i].column.command === COMMAND_TRANSPARENT) {\r\n fixedCorrection = (fixedCells[i].column.colspan || 1) - 1;\r\n continue\r\n }\r\n cells[i + fixedCorrection] = fixedCells[i]\r\n }\r\n }\r\n },\r\n _createCell: function(options) {\r\n var that = this;\r\n var column = options.column;\r\n var columnCommand = column && column.command;\r\n var rowType = options.rowType;\r\n var $cell = that.callBase.apply(that, arguments);\r\n var fixedColumns;\r\n var prevFixedColumn;\r\n var transparentColumnIndex;\r\n if (that._isFixedTableRendering || \"filter\" === rowType) {\r\n fixedColumns = that.getFixedColumns();\r\n transparentColumnIndex = getTransparentColumnIndex(fixedColumns);\r\n prevFixedColumn = fixedColumns[transparentColumnIndex - 1]\r\n }\r\n if (that._isFixedTableRendering) {\r\n if (columnCommand === COMMAND_TRANSPARENT) {\r\n $cell.addClass(POINTER_EVENTS_NONE_CLASS).toggleClass(FIRST_CELL_CLASS, 0 === transparentColumnIndex || prevFixedColumn && \"expand\" === prevFixedColumn.command).toggleClass(LAST_CELL_CLASS, fixedColumns.length && transparentColumnIndex === fixedColumns.length - 1);\r\n if (\"freeSpace\" !== rowType) {\r\n gridCoreUtils.setEmptyText($cell)\r\n }\r\n }\r\n } else if (\"filter\" === rowType) {\r\n $cell.toggleClass(FIRST_CELL_CLASS, options.columnIndex === transparentColumnIndex)\r\n }\r\n var isRowAltStyle = that.option(\"rowAlternationEnabled\") && options.isAltRow;\r\n if (browser.mozilla && options.column.fixed && \"group\" !== options.rowType && !isRowAltStyle) {\r\n $cell.addClass(FIXED_COL_CLASS)\r\n }\r\n return $cell\r\n },\r\n _wrapTableInScrollContainer: function() {\r\n var $scrollContainer = this.callBase.apply(this, arguments);\r\n if (this._isFixedTableRendering) {\r\n $scrollContainer.addClass(this.addWidgetPrefix(CONTENT_FIXED_CLASS))\r\n }\r\n return $scrollContainer\r\n },\r\n _renderCellContent: function($cell, options) {\r\n var isEmptyCell;\r\n var column = options.column;\r\n var isFixedTableRendering = this._isFixedTableRendering;\r\n var isGroupCell = \"group\" === options.rowType && isDefined(column.groupIndex);\r\n if (isFixedTableRendering && isGroupCell && !column.command && !column.groupCellTemplate) {\r\n $cell.css(\"pointerEvents\", \"none\")\r\n }\r\n if (!isFixedTableRendering && this._isFixedColumns) {\r\n isEmptyCell = column.fixed || column.command && false !== column.fixed;\r\n if (isGroupCell) {\r\n isEmptyCell = false;\r\n if (options.row.summaryCells && options.row.summaryCells.length) {\r\n var columns = this._columnsController.getVisibleColumns();\r\n var alignByFixedColumnCellCount = this._getAlignByColumnCellCount ? this._getAlignByColumnCellCount(column.colspan, {\r\n columns: columns,\r\n row: options.row,\r\n isFixed: true\r\n }) : 0;\r\n if (alignByFixedColumnCellCount > 0) {\r\n var transparentColumnIndex = getTransparentColumnIndex(this._columnsController.getFixedColumns());\r\n isEmptyCell = columns.length - alignByFixedColumnCellCount < transparentColumnIndex\r\n }\r\n }\r\n }\r\n if (isEmptyCell) {\r\n if (column.command && \"buttons\" !== column.type || \"group\" === options.rowType) {\r\n $cell.html(\" \").addClass(column.cssClass);\r\n return\r\n } else {\r\n $cell.addClass(\"dx-hidden-cell\")\r\n }\r\n }\r\n }\r\n if (column.command !== COMMAND_TRANSPARENT) {\r\n this.callBase($cell, options)\r\n }\r\n },\r\n _getCellElementsCore: function(rowIndex) {\r\n var cellElements = this.callBase.apply(this, arguments);\r\n var isGroupRow = cellElements.parent().hasClass(GROUP_ROW_CLASS);\r\n var headerRowIndex = \"columnHeadersView\" === this.name ? rowIndex : void 0;\r\n if (this._fixedTableElement && cellElements) {\r\n var fixedColumns = this.getFixedColumns(headerRowIndex);\r\n var fixedCellElements = this._getRowElements(this._fixedTableElement).eq(rowIndex).children(\"td\");\r\n each(fixedCellElements, (columnIndex, cell) => {\r\n if (isGroupRow) {\r\n if (cellElements[columnIndex] && \"hidden\" !== cell.style.visibility) {\r\n cellElements[columnIndex] = cell\r\n }\r\n } else {\r\n var fixedColumn = fixedColumns[columnIndex];\r\n if (fixedColumn) {\r\n if (fixedColumn.command === COMMAND_TRANSPARENT) {\r\n if (fixedCellElements.eq(columnIndex).hasClass(MASTER_DETAIL_CELL_CLASS)) {\r\n cellElements[columnIndex] = cell || cellElements[columnIndex]\r\n }\r\n } else {\r\n var fixedColumnIndex = this._columnsController.getVisibleIndexByColumn(fixedColumn, headerRowIndex);\r\n cellElements[fixedColumnIndex] = cell || cellElements[fixedColumnIndex]\r\n }\r\n }\r\n }\r\n })\r\n }\r\n return cellElements\r\n },\r\n getColumnWidths: function() {\r\n var fixedWidths;\r\n var result = this.callBase();\r\n var fixedColumns = this.getFixedColumns();\r\n if (this._fixedTableElement && result.length) {\r\n fixedWidths = this.callBase(this._fixedTableElement)\r\n }\r\n return normalizeColumnWidths(fixedColumns, result, fixedWidths)\r\n },\r\n getTableElement: function() {\r\n var tableElement = this._isFixedTableRendering ? this._fixedTableElement : this.callBase();\r\n return tableElement\r\n },\r\n setTableElement: function(tableElement) {\r\n if (this._isFixedTableRendering) {\r\n this._fixedTableElement = tableElement.addClass(POINTER_EVENTS_NONE_CLASS)\r\n } else {\r\n this.callBase(tableElement)\r\n }\r\n },\r\n getColumns: function(rowIndex, $tableElement) {\r\n $tableElement = $tableElement || this.getTableElement();\r\n if (this._isFixedTableRendering || $tableElement && $tableElement.closest(\"table\").parent(\".\" + this.addWidgetPrefix(CONTENT_FIXED_CLASS)).length) {\r\n return this.getFixedColumns(rowIndex)\r\n }\r\n return this.callBase(rowIndex, $tableElement)\r\n },\r\n getRowIndex: function($row) {\r\n var $fixedTable = this._fixedTableElement;\r\n if ($fixedTable && $fixedTable.find($row).length) {\r\n return this._getRowElements($fixedTable).index($row)\r\n }\r\n return this.callBase($row)\r\n },\r\n getTableElements: function() {\r\n var result = this.callBase.apply(this, arguments);\r\n if (this._fixedTableElement) {\r\n result = $([result.get(0), this._fixedTableElement.get(0)])\r\n }\r\n return result\r\n },\r\n getFixedColumns: function(rowIndex) {\r\n return this._columnsController.getFixedColumns(rowIndex)\r\n },\r\n getFixedColumnsOffset: function() {\r\n var offset = {\r\n left: 0,\r\n right: 0\r\n };\r\n var $transparentColumn;\r\n if (this._fixedTableElement) {\r\n $transparentColumn = this.getTransparentColumnElement();\r\n var positionTransparentColumn = $transparentColumn.position();\r\n offset = {\r\n left: positionTransparentColumn.left,\r\n right: this.element().outerWidth(true) - ($transparentColumn.outerWidth(true) + positionTransparentColumn.left)\r\n }\r\n }\r\n return offset\r\n },\r\n getTransparentColumnElement: function() {\r\n return this._fixedTableElement && this._fixedTableElement.find(\".\" + POINTER_EVENTS_NONE_CLASS).first()\r\n },\r\n getFixedTableElement: function() {\r\n return this._fixedTableElement\r\n },\r\n isFixedColumns: function() {\r\n return this._isFixedColumns\r\n },\r\n _resizeCore: function() {\r\n this.callBase();\r\n this.synchronizeRows()\r\n },\r\n setColumnWidths: function(options) {\r\n var columns;\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var widths = options.widths;\r\n var isWidthsSynchronized = widths && widths.length && isDefined(visibleColumns[0].visibleWidth);\r\n var optionNames = options.optionNames;\r\n var isColumnWidthChanged = optionNames && optionNames.width;\r\n var useVisibleColumns = false;\r\n this.callBase.apply(this, arguments);\r\n if (this._fixedTableElement) {\r\n var hasAutoWidth = widths && widths.some((function(width) {\r\n return \"auto\" === width\r\n }));\r\n useVisibleColumns = hasAutoWidth && (!isWidthsSynchronized || !this.isScrollbarVisible(true));\r\n if (useVisibleColumns) {\r\n columns = visibleColumns\r\n }\r\n this.callBase(extend({}, options, {\r\n $tableElement: this._fixedTableElement,\r\n columns: columns,\r\n fixed: true\r\n }))\r\n }\r\n if (isWidthsSynchronized || isColumnWidthChanged && this.option(\"wordWrapEnabled\")) {\r\n this.synchronizeRows()\r\n }\r\n },\r\n _createColGroup: function(columns) {\r\n if (this._isFixedTableRendering && !this.option(\"columnAutoWidth\")) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var useVisibleColumns = visibleColumns.filter((function(column) {\r\n return !column.width\r\n })).length;\r\n if (useVisibleColumns) {\r\n columns = visibleColumns\r\n }\r\n }\r\n return this.callBase(columns)\r\n },\r\n _getClientHeight: function(element) {\r\n var boundingClientRectElement = element.getBoundingClientRect && getBoundingRect(element);\r\n return boundingClientRectElement && boundingClientRectElement.height ? boundingClientRectElement.height : element.clientHeight\r\n },\r\n synchronizeRows: function() {\r\n var rowHeights = [];\r\n var fixedRowHeights = [];\r\n var rowIndex;\r\n var $rowElements;\r\n var $fixedRowElements;\r\n var $contentElement;\r\n if (this._isFixedColumns && this._tableElement && this._fixedTableElement) {\r\n var heightTable = this._getClientHeight(this._tableElement.get(0));\r\n var heightFixedTable = this._getClientHeight(this._fixedTableElement.get(0));\r\n $rowElements = this._getRowElements(this._tableElement);\r\n $fixedRowElements = this._getRowElements(this._fixedTableElement);\r\n $contentElement = this._findContentElement();\r\n if (heightTable !== heightFixedTable) {\r\n $contentElement && $contentElement.css(\"height\", heightTable);\r\n $rowElements.css(\"height\", \"\");\r\n $fixedRowElements.css(\"height\", \"\");\r\n for (rowIndex = 0; rowIndex < $rowElements.length; rowIndex++) {\r\n rowHeights.push(this._getClientHeight($rowElements.get(rowIndex)));\r\n fixedRowHeights.push(this._getClientHeight($fixedRowElements.get(rowIndex)))\r\n }\r\n for (rowIndex = 0; rowIndex < $rowElements.length; rowIndex++) {\r\n var rowHeight = rowHeights[rowIndex];\r\n var fixedRowHeight = fixedRowHeights[rowIndex];\r\n if (rowHeight > fixedRowHeight) {\r\n $fixedRowElements.eq(rowIndex).css(\"height\", rowHeight)\r\n } else if (rowHeight < fixedRowHeight) {\r\n $rowElements.eq(rowIndex).css(\"height\", fixedRowHeight)\r\n }\r\n }\r\n $contentElement && $contentElement.css(\"height\", \"\")\r\n }\r\n }\r\n },\r\n setScrollerSpacing: function(width) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n this.callBase(width);\r\n this.element().children(\".\" + this.addWidgetPrefix(CONTENT_FIXED_CLASS)).css({\r\n paddingLeft: rtlEnabled ? width : \"\",\r\n paddingRight: !rtlEnabled ? width : \"\"\r\n })\r\n }\r\n};\r\nvar ColumnHeadersViewFixedColumnsExtender = extend({}, baseFixedColumns, {\r\n _getRowVisibleColumns: function(rowIndex) {\r\n if (this._isFixedTableRendering) {\r\n return this.getFixedColumns(rowIndex)\r\n }\r\n return this.callBase(rowIndex)\r\n },\r\n getContextMenuItems: function(options) {\r\n var column = options.column;\r\n var columnFixingOptions = this.option(\"columnFixing\");\r\n var items = this.callBase(options);\r\n if (options.row && \"header\" === options.row.rowType) {\r\n if (true === columnFixingOptions.enabled && column && column.allowFixing) {\r\n var onItemClick = params => {\r\n switch (params.itemData.value) {\r\n case \"none\":\r\n this._columnsController.columnOption(column.index, \"fixed\", false);\r\n break;\r\n case \"left\":\r\n this._columnsController.columnOption(column.index, {\r\n fixed: true,\r\n fixedPosition: \"left\"\r\n });\r\n break;\r\n case \"right\":\r\n this._columnsController.columnOption(column.index, {\r\n fixed: true,\r\n fixedPosition: \"right\"\r\n })\r\n }\r\n };\r\n items = items || [];\r\n items.push({\r\n text: columnFixingOptions.texts.fix,\r\n beginGroup: true,\r\n items: [{\r\n text: columnFixingOptions.texts.leftPosition,\r\n value: \"left\",\r\n disabled: column.fixed && (!column.fixedPosition || \"left\" === column.fixedPosition),\r\n onItemClick: onItemClick\r\n }, {\r\n text: columnFixingOptions.texts.rightPosition,\r\n value: \"right\",\r\n disabled: column.fixed && \"right\" === column.fixedPosition,\r\n onItemClick: onItemClick\r\n }]\r\n }, {\r\n text: columnFixingOptions.texts.unfix,\r\n value: \"none\",\r\n disabled: !column.fixed,\r\n onItemClick: onItemClick\r\n })\r\n }\r\n }\r\n return items\r\n },\r\n getFixedColumnElements: function(rowIndex) {\r\n if (isDefined(rowIndex)) {\r\n return this._fixedTableElement && this._getRowElements(this._fixedTableElement).eq(rowIndex).children()\r\n }\r\n var columnElements = this.getColumnElements();\r\n var $transparentColumnElement = this.getTransparentColumnElement();\r\n if (columnElements && $transparentColumnElement && $transparentColumnElement.length) {\r\n var transparentColumnIndex = getTransparentColumnIndex(this.getFixedColumns());\r\n columnElements.splice(transparentColumnIndex, $transparentColumnElement.get(0).colSpan, $transparentColumnElement.get(0))\r\n }\r\n return columnElements\r\n },\r\n getColumnWidths: function() {\r\n var fixedWidths;\r\n var result = this.callBase();\r\n var $fixedColumnElements = this.getFixedColumnElements();\r\n var fixedColumns = this.getFixedColumns();\r\n if (this._fixedTableElement) {\r\n if ($fixedColumnElements && $fixedColumnElements.length) {\r\n fixedWidths = this._getWidths($fixedColumnElements)\r\n } else {\r\n fixedWidths = this.callBase(this._fixedTableElement)\r\n }\r\n }\r\n return normalizeColumnWidths(fixedColumns, result, fixedWidths)\r\n }\r\n});\r\nvar RowsViewFixedColumnsExtender = extend({}, baseFixedColumns, {\r\n _detachHoverEvents: function() {\r\n this._fixedTableElement && eventsEngine.off(this._fixedTableElement, \"mouseover mouseout\", \".dx-data-row\");\r\n this._tableElement && eventsEngine.off(this._tableElement, \"mouseover mouseout\", \".dx-data-row\")\r\n },\r\n _attachHoverEvents: function() {\r\n var that = this;\r\n var attachHoverEvent = function($table) {\r\n eventsEngine.on($table, \"mouseover mouseout\", \".dx-data-row\", that.createAction((function(args) {\r\n var event = args.event;\r\n var rowIndex = that.getRowIndex($(event.target).closest(\".dx-row\"));\r\n var isHover = \"mouseover\" === event.type;\r\n if (rowIndex >= 0) {\r\n that._tableElement && that._getRowElements(that._tableElement).eq(rowIndex).toggleClass(HOVER_STATE_CLASS, isHover);\r\n that._fixedTableElement && that._getRowElements(that._fixedTableElement).eq(rowIndex).toggleClass(HOVER_STATE_CLASS, isHover)\r\n }\r\n })))\r\n };\r\n if (that._fixedTableElement && that._tableElement) {\r\n attachHoverEvent(that._fixedTableElement);\r\n attachHoverEvent(that._tableElement)\r\n }\r\n },\r\n _findContentElement: function() {\r\n var that = this;\r\n var $content;\r\n var scrollTop;\r\n var contentClass = that.addWidgetPrefix(CONTENT_CLASS);\r\n var element = that.element();\r\n var scrollDelay = browser.mozilla ? 60 : 0;\r\n if (element && that._isFixedTableRendering) {\r\n $content = element.children(\".\" + contentClass);\r\n var scrollable = that.getScrollable();\r\n if (!$content.length && scrollable) {\r\n $content = $(\"
\").addClass(contentClass);\r\n eventsEngine.on($content, \"scroll\", (function(e) {\r\n clearTimeout(that._fixedScrollTimeout);\r\n that._fixedScrollTimeout = setTimeout((function() {\r\n scrollTop = $(e.target).scrollTop();\r\n scrollable.scrollTo({\r\n y: scrollTop\r\n })\r\n }), scrollDelay)\r\n }));\r\n eventsEngine.on($content, wheelEventName, (function(e) {\r\n var $nearestScrollable = $(e.target).closest(\".dx-scrollable\");\r\n var shouldScroll = false;\r\n if (scrollable && scrollable.$element().is($nearestScrollable)) {\r\n shouldScroll = true\r\n } else {\r\n var nearestScrollableInstance = $nearestScrollable.length && Scrollable.getInstance($nearestScrollable.get(0));\r\n var nearestScrollableHasVerticalScrollbar = nearestScrollableInstance && nearestScrollableInstance.scrollHeight() - nearestScrollableInstance.clientHeight() > 0;\r\n shouldScroll = nearestScrollableInstance && !nearestScrollableHasVerticalScrollbar\r\n }\r\n if (shouldScroll) {\r\n scrollTop = scrollable.scrollTop();\r\n scrollable.scrollTo({\r\n y: scrollTop - e.delta\r\n });\r\n if (scrollable.scrollTop() > 0 && scrollable.scrollTop() + scrollable.clientHeight() < scrollable.scrollHeight() + that.getScrollbarWidth()) {\r\n return false\r\n }\r\n }\r\n }));\r\n $content.appendTo(element)\r\n }\r\n return $content\r\n }\r\n return that.callBase()\r\n },\r\n _updateScrollable: function() {\r\n this.callBase();\r\n var scrollable = this.getScrollable();\r\n var scrollTop = scrollable && scrollable.scrollOffset().top;\r\n this._updateFixedTablePosition(scrollTop)\r\n },\r\n _renderContent: function(contentElement, tableElement) {\r\n if (this._isFixedTableRendering) {\r\n return contentElement.empty().addClass(this.addWidgetPrefix(CONTENT_CLASS) + \" \" + this.addWidgetPrefix(CONTENT_FIXED_CLASS)).append(tableElement)\r\n }\r\n return this.callBase(contentElement, tableElement)\r\n },\r\n _getGroupCellOptions: function(options) {\r\n if (this._isFixedTableRendering) {\r\n return this.callBase(extend({}, options, {\r\n columns: this._columnsController.getVisibleColumns()\r\n }))\r\n }\r\n return this.callBase(options)\r\n },\r\n _renderGroupedCells: function($row, options) {\r\n return this.callBase($row, extend({}, options, {\r\n columns: this._columnsController.getVisibleColumns()\r\n }))\r\n },\r\n _renderGroupSummaryCells: function($row, options) {\r\n if (this._isFixedTableRendering) {\r\n this.callBase($row, extend({}, options, {\r\n columns: this._columnsController.getVisibleColumns()\r\n }))\r\n } else {\r\n this.callBase($row, options)\r\n }\r\n },\r\n _hasAlignByColumnSummaryItems: function(columnIndex, options) {\r\n var result = this.callBase.apply(this, arguments);\r\n var column = options.columns[columnIndex];\r\n if (options.isFixed) {\r\n return column.fixed && (result || \"right\" === column.fixedPosition)\r\n }\r\n return result && !column.fixed\r\n },\r\n _renderGroupSummaryCellsCore: function($groupCell, options, groupCellColSpan, alignByColumnCellCount) {\r\n var alignByFixedColumnCellCount;\r\n if (this._isFixedTableRendering) {\r\n options.isFixed = true;\r\n alignByFixedColumnCellCount = this._getAlignByColumnCellCount(groupCellColSpan, options);\r\n options.isFixed = false;\r\n var startColumnIndex = options.columns.length - alignByFixedColumnCellCount;\r\n options = extend({}, options, {\r\n columns: this.getFixedColumns()\r\n });\r\n var transparentColumnIndex = getTransparentColumnIndex(options.columns);\r\n if (startColumnIndex < transparentColumnIndex) {\r\n alignByFixedColumnCellCount -= options.columns[transparentColumnIndex].colspan - 1 || 0;\r\n groupCellColSpan -= options.columns[transparentColumnIndex].colspan - 1 || 0\r\n } else if (alignByColumnCellCount > 0) {\r\n $groupCell.css(\"visibility\", \"hidden\")\r\n }\r\n alignByColumnCellCount = alignByFixedColumnCellCount\r\n }\r\n this.callBase($groupCell, options, groupCellColSpan, alignByColumnCellCount)\r\n },\r\n _getSummaryCellIndex: function(columnIndex, columns) {\r\n if (this._isFixedTableRendering) {\r\n var transparentColumnIndex = getTransparentColumnIndex(columns);\r\n if (columnIndex > transparentColumnIndex) {\r\n columnIndex += columns[transparentColumnIndex].colspan - 1\r\n }\r\n return columnIndex\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _renderCore: function(change) {\r\n this._detachHoverEvents();\r\n this.callBase(change);\r\n var isFixedColumns = this._isFixedColumns;\r\n this.element().toggleClass(FIXED_COLUMNS_CLASS, isFixedColumns);\r\n if (this.option(\"hoverStateEnabled\") && isFixedColumns) {\r\n this._attachHoverEvents()\r\n }\r\n },\r\n setRowsOpacity: function(columnIndex, value) {\r\n this.callBase(columnIndex, value);\r\n var $rows = this._getRowElements(this._fixedTableElement);\r\n this._setRowsOpacityCore($rows, this.getFixedColumns(), columnIndex, value)\r\n },\r\n optionChanged: function(args) {\r\n this.callBase(args);\r\n if (\"hoverStateEnabled\" === args.name && this._isFixedColumns) {\r\n args.value ? this._attachHoverEvents() : this._detachHoverEvents()\r\n }\r\n },\r\n getCellIndex: function($cell) {\r\n var $fixedTable = this._fixedTableElement;\r\n var cellIndex = 0;\r\n if ($fixedTable && $cell.is(\"td\") && $cell.closest($fixedTable).length) {\r\n var columns = this.getFixedColumns();\r\n each(columns, (function(index, column) {\r\n if (index === $cell[0].cellIndex) {\r\n return false\r\n }\r\n if (column.colspan) {\r\n cellIndex += column.colspan;\r\n return\r\n }\r\n cellIndex++\r\n }));\r\n return cellIndex\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _updateFixedTablePosition: function(scrollTop, needFocus) {\r\n if (this._fixedTableElement && this._tableElement) {\r\n var $focusedElement;\r\n var editorFactory = this.getController(\"editorFactory\");\r\n this._fixedTableElement.parent().scrollTop(scrollTop);\r\n if (needFocus && editorFactory) {\r\n $focusedElement = editorFactory.focus();\r\n $focusedElement && editorFactory.focus($focusedElement)\r\n }\r\n }\r\n },\r\n setScrollerSpacing: function(vWidth, hWidth) {\r\n var styles = {\r\n marginBottom: 0\r\n };\r\n var $fixedContent = this.element().children(\".\" + this.addWidgetPrefix(CONTENT_FIXED_CLASS));\r\n if ($fixedContent.length && this._fixedTableElement) {\r\n $fixedContent.css(styles);\r\n this._fixedTableElement.css(styles);\r\n styles[this.option(\"rtlEnabled\") ? \"marginLeft\" : \"marginRight\"] = vWidth;\r\n styles.marginBottom = hWidth;\r\n var useNativeScrolling = this._scrollable && this._scrollable.option(\"useNative\");\r\n (useNativeScrolling ? $fixedContent : this._fixedTableElement).css(styles)\r\n }\r\n },\r\n _getElasticScrollTop: function(e) {\r\n var elasticScrollTop = 0;\r\n var scrollbarWidth = this.getScrollbarWidth(true);\r\n if (e.scrollOffset.top < 0) {\r\n elasticScrollTop = -e.scrollOffset.top\r\n } else if (e.reachedBottom) {\r\n var scrollableContent = this._findContentElement();\r\n var scrollableContainer = e.component._container();\r\n var maxScrollTop = Math.max(scrollableContent.height() + scrollbarWidth - scrollableContainer.height(), 0);\r\n elasticScrollTop = maxScrollTop - e.scrollOffset.top\r\n }\r\n return elasticScrollTop\r\n },\r\n _applyElasticScrolling: function(e) {\r\n if (this._fixedTableElement) {\r\n var elasticScrollTop = this._getElasticScrollTop(e);\r\n if (0 !== Math.ceil(elasticScrollTop)) {\r\n move(this._fixedTableElement, {\r\n top: elasticScrollTop\r\n })\r\n } else {\r\n this._fixedTableElement.css(\"transform\", \"\")\r\n }\r\n }\r\n },\r\n _handleScroll: function(e) {\r\n this._updateFixedTablePosition(e.scrollOffset.top, true);\r\n this._applyElasticScrolling(e);\r\n this.callBase(e)\r\n },\r\n _updateContentPosition: function(isRender) {\r\n this.callBase.apply(this, arguments);\r\n if (!isRender) {\r\n this._updateFixedTablePosition(this._scrollTop)\r\n }\r\n },\r\n _afterRowPrepared: function(e) {\r\n if (this._isFixedTableRendering) {\r\n return\r\n }\r\n this.callBase(e)\r\n },\r\n _scrollToElement: function($element) {\r\n this.callBase($element, this.getFixedColumnsOffset())\r\n },\r\n dispose: function() {\r\n this.callBase.apply(this, arguments);\r\n clearTimeout(this._fixedScrollTimeout)\r\n }\r\n});\r\nvar FooterViewFixedColumnsExtender = baseFixedColumns;\r\nexport var columnFixingModule = {\r\n defaultOptions: function() {\r\n return {\r\n columnFixing: {\r\n enabled: false,\r\n texts: {\r\n fix: messageLocalization.format(\"dxDataGrid-columnFixingFix\"),\r\n unfix: messageLocalization.format(\"dxDataGrid-columnFixingUnfix\"),\r\n leftPosition: messageLocalization.format(\"dxDataGrid-columnFixingLeftPosition\"),\r\n rightPosition: messageLocalization.format(\"dxDataGrid-columnFixingRightPosition\")\r\n }\r\n }\r\n }\r\n },\r\n extenders: {\r\n views: {\r\n columnHeadersView: ColumnHeadersViewFixedColumnsExtender,\r\n rowsView: RowsViewFixedColumnsExtender,\r\n footerView: FooterViewFixedColumnsExtender\r\n },\r\n controllers: function() {\r\n var normalizeColumnIndicesByPoints = function(columns, fixedColumns, pointsByColumns) {\r\n var transparentColumnIndex = getTransparentColumnIndex(fixedColumns);\r\n var correctIndex = columns.length - fixedColumns.length;\r\n each(pointsByColumns, (function(_, point) {\r\n if (point.index > transparentColumnIndex) {\r\n point.columnIndex += correctIndex;\r\n point.index += correctIndex\r\n }\r\n }));\r\n return pointsByColumns\r\n };\r\n return {\r\n draggingHeader: {\r\n _generatePointsByColumns: function(options) {\r\n var visibleColumns = options.columns;\r\n var targetDraggingPanel = options.targetDraggingPanel;\r\n if (targetDraggingPanel && \"headers\" === targetDraggingPanel.getName() && targetDraggingPanel.isFixedColumns()) {\r\n if (options.sourceColumn.fixed) {\r\n if (!options.rowIndex) {\r\n options.columnElements = targetDraggingPanel.getFixedColumnElements(0)\r\n }\r\n options.columns = targetDraggingPanel.getFixedColumns(options.rowIndex);\r\n var pointsByColumns = this.callBase(options);\r\n normalizeColumnIndicesByPoints(visibleColumns, options.columns, pointsByColumns);\r\n return pointsByColumns\r\n }\r\n }\r\n return this.callBase(options)\r\n },\r\n _pointCreated: function(point, columns, location, sourceColumn) {\r\n var result = this.callBase.apply(this, arguments);\r\n var targetColumn = columns[point.columnIndex];\r\n var $transparentColumn = this._columnHeadersView.getTransparentColumnElement();\r\n if (!result && \"headers\" === location && $transparentColumn && $transparentColumn.length) {\r\n var boundingRect = getBoundingRect($transparentColumn.get(0));\r\n if (sourceColumn && sourceColumn.fixed) {\r\n return \"right\" === sourceColumn.fixedPosition ? point.x < boundingRect.right : point.x > boundingRect.left\r\n } else {\r\n if (targetColumn && targetColumn.fixed && \"right\" !== targetColumn.fixedPosition) {\r\n return true\r\n }\r\n return point.x < boundingRect.left || point.x > boundingRect.right\r\n }\r\n }\r\n return result\r\n }\r\n },\r\n columnsResizer: {\r\n _generatePointsByColumns: function() {\r\n var that = this;\r\n var columnsController = that._columnsController;\r\n var columns = columnsController && that._columnsController.getVisibleColumns();\r\n var fixedColumns = columnsController && that._columnsController.getFixedColumns();\r\n var cells = that._columnHeadersView.getFixedColumnElements();\r\n var pointsByFixedColumns = [];\r\n that.callBase();\r\n if (cells && cells.length > 0) {\r\n pointsByFixedColumns = gridCoreUtils.getPointsByColumns(cells, (function(point) {\r\n return that._pointCreated(point, cells.length, fixedColumns)\r\n }));\r\n that._pointsByFixedColumns = normalizeColumnIndicesByPoints(columns, fixedColumns, pointsByFixedColumns)\r\n }\r\n },\r\n _pointCreated: function(point, cellsLength, columns) {\r\n var isWidgetResizingMode = \"widget\" === this.option(\"columnResizingMode\");\r\n if (point.index > 0 && point.index < cellsLength) {\r\n var currentColumn = columns[point.columnIndex - 1] || {};\r\n var nextColumn = columns[point.columnIndex] || {};\r\n if (currentColumn.fixed || nextColumn.fixed) {\r\n point.columnIndex -= 1;\r\n return !((currentColumn.allowResizing || currentColumn.command === COMMAND_TRANSPARENT) && (isWidgetResizingMode || nextColumn.allowResizing || nextColumn.command === COMMAND_TRANSPARENT))\r\n }\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _getTargetPoint: function(pointsByColumns, currentX, deltaX) {\r\n var $transparentColumn = this._columnHeadersView.getTransparentColumnElement();\r\n if ($transparentColumn && $transparentColumn.length) {\r\n var boundingRect = getBoundingRect($transparentColumn.get(0));\r\n if (currentX <= boundingRect.left || currentX >= boundingRect.right) {\r\n return this.callBase(this._pointsByFixedColumns, currentX, deltaX)\r\n }\r\n }\r\n return this.callBase(pointsByColumns, currentX, deltaX)\r\n }\r\n }\r\n }\r\n }()\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.column_fixing.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n columnFixingModule\r\n} from \"../grid_core/ui.grid_core.column_fixing\";\r\ngridCore.registerModule(\"columnFixing\", columnFixingModule);\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.adaptivity.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport Guid from \"../../core/guid\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport Form from \"../form\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n isMaterial\r\n} from \"../themes\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n equalByValue\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 Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport messageLocalization from \"../../localization/message\";\r\nvar COLUMN_HEADERS_VIEW = \"columnHeadersView\";\r\nvar ROWS_VIEW = \"rowsView\";\r\nvar FOOTER_VIEW = \"footerView\";\r\nvar COLUMN_VIEWS = [COLUMN_HEADERS_VIEW, ROWS_VIEW, FOOTER_VIEW];\r\nvar ADAPTIVE_NAMESPACE = \"dxDataGridAdaptivity\";\r\nvar HIDDEN_COLUMNS_WIDTH = \"adaptiveHidden\";\r\nvar ADAPTIVE_ROW_TYPE = \"detailAdaptive\";\r\nvar FORM_ITEM_CONTENT_CLASS = \"dx-field-item-content\";\r\nvar FORM_ITEM_MODIFIED = \"dx-item-modified\";\r\nvar HIDDEN_COLUMN_CLASS = \"hidden-column\";\r\nvar ADAPTIVE_COLUMN_BUTTON_CLASS = \"adaptive-more\";\r\nvar ADAPTIVE_COLUMN_NAME_CLASS = \"dx-command-adaptive\";\r\nvar COMMAND_ADAPTIVE_HIDDEN_CLASS = \"dx-command-adaptive-hidden\";\r\nvar ADAPTIVE_DETAIL_ROW_CLASS = \"dx-adaptive-detail-row\";\r\nvar ADAPTIVE_ITEM_TEXT_CLASS = \"dx-adaptive-item-text\";\r\nvar MASTER_DETAIL_CELL_CLASS = \"dx-master-detail-cell\";\r\nvar LAST_DATA_CELL_CLASS = \"dx-last-data-cell\";\r\nvar ADAPTIVE_COLUMN_NAME = \"adaptive\";\r\nvar EDIT_MODE_BATCH = \"batch\";\r\nvar EDIT_MODE_ROW = \"row\";\r\nvar EDIT_MODE_FORM = \"form\";\r\nvar EDIT_MODE_POPUP = \"popup\";\r\nvar REVERT_TOOLTIP_CLASS = \"revert-tooltip\";\r\nvar GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar EXPAND_ARIA_NAME = \"dxDataGrid-ariaAdaptiveExpand\";\r\nvar COLLAPSE_ARIA_NAME = \"dxDataGrid-ariaAdaptiveCollapse\";\r\n\r\nfunction getColumnId(that, column) {\r\n return that._columnsController.getColumnId(column)\r\n}\r\n\r\nfunction getDataCellElements($row) {\r\n return $row.find(\"td:not(.dx-datagrid-hidden-column):not([class*='dx-command-'])\")\r\n}\r\n\r\nfunction adaptiveCellTemplate(container, options) {\r\n var $adaptiveColumnButton;\r\n var $container = $(container);\r\n var adaptiveColumnsController = options.component.getController(\"adaptiveColumns\");\r\n if (\"data\" === options.rowType) {\r\n $adaptiveColumnButton = $(\"\").addClass(adaptiveColumnsController.addWidgetPrefix(ADAPTIVE_COLUMN_BUTTON_CLASS));\r\n eventsEngine.on($adaptiveColumnButton, addNamespace(clickEventName, ADAPTIVE_NAMESPACE), adaptiveColumnsController.createAction((function() {\r\n adaptiveColumnsController.toggleExpandAdaptiveDetailRow(options.key)\r\n })));\r\n $adaptiveColumnButton.appendTo($container)\r\n } else {\r\n gridCoreUtils.setEmptyText($container)\r\n }\r\n}\r\nvar AdaptiveColumnsController = modules.ViewController.inherit({\r\n _isRowEditMode: function() {\r\n var editMode = this._getEditMode();\r\n return editMode === EDIT_MODE_ROW\r\n },\r\n _isItemModified: function(item, cellOptions) {\r\n var columnIndex = this._columnsController.getVisibleIndex(item.column.index);\r\n var rowIndex = this._dataController.getRowIndexByKey(cellOptions.key);\r\n var row = this._dataController.items()[rowIndex + 1];\r\n return row && row.modifiedValues && isDefined(row.modifiedValues[columnIndex])\r\n },\r\n _renderFormViewTemplate: function(item, cellOptions, $container) {\r\n var column = item.column;\r\n var focusAction = this.createAction((function() {\r\n eventsEngine.trigger($container, clickEventName)\r\n }));\r\n var value = column.calculateCellValue(cellOptions.data);\r\n var displayValue = gridCoreUtils.getDisplayValue(column, value, cellOptions.data, cellOptions.rowType);\r\n var text = gridCoreUtils.formatValue(displayValue, column);\r\n var isCellOrBatchEditMode = this._editingController.isCellOrBatchEditMode();\r\n var rowsView = this._rowsView;\r\n if (column.allowEditing && this.getController(\"keyboardNavigation\").isKeyboardEnabled()) {\r\n $container.attr(\"tabIndex\", this.option(\"tabIndex\"));\r\n if (isCellOrBatchEditMode) {\r\n eventsEngine.off($container, \"focus\", focusAction);\r\n eventsEngine.on($container, \"focus\", focusAction)\r\n }\r\n }\r\n if (column.cellTemplate) {\r\n var templateOptions = extend({}, cellOptions, {\r\n value: value,\r\n displayValue: displayValue,\r\n text: text,\r\n column: column\r\n });\r\n var isDomElement = !!$container.closest(getWindow().document).length;\r\n rowsView.renderTemplate($container, column.cellTemplate, templateOptions, isDomElement).done(() => {\r\n rowsView._cellPrepared($container, cellOptions)\r\n })\r\n } else {\r\n var container = $container.get(0);\r\n if (column.encodeHtml) {\r\n container.textContent = text\r\n } else {\r\n container.innerHTML = text\r\n }\r\n $container.addClass(ADAPTIVE_ITEM_TEXT_CLASS);\r\n if (!isDefined(text) || \"\" === text) {\r\n $container.html(\" \")\r\n }\r\n if (!this._isRowEditMode()) {\r\n if (this._isItemModified(item, cellOptions)) {\r\n $container.addClass(FORM_ITEM_MODIFIED)\r\n }\r\n }\r\n rowsView._cellPrepared($container, cellOptions)\r\n }\r\n },\r\n _getTemplate: function(item, cellOptions) {\r\n var that = this;\r\n var column = item.column;\r\n var editingController = this.getController(\"editing\");\r\n return function(options, container) {\r\n var $container = $(container);\r\n var columnIndex = that._columnsController.getVisibleIndex(column.index);\r\n var templateOptions = extend({}, cellOptions);\r\n var renderFormTemplate = function() {\r\n var isItemEdited = that._isItemEdited(item);\r\n templateOptions.value = cellOptions.row.values[columnIndex];\r\n if (isItemEdited || column.showEditorAlways) {\r\n editingController.renderFormEditTemplate(templateOptions, item, options.component, $container, !isItemEdited)\r\n } else {\r\n templateOptions.column = column;\r\n templateOptions.columnIndex = columnIndex;\r\n that._renderFormViewTemplate(item, templateOptions, $container)\r\n }\r\n };\r\n renderFormTemplate();\r\n templateOptions.watch && templateOptions.watch((function() {\r\n return {\r\n isItemEdited: that._isItemEdited(item),\r\n value: cellOptions.row.values[columnIndex]\r\n }\r\n }), (function() {\r\n $container.contents().remove();\r\n $container.removeClass(ADAPTIVE_ITEM_TEXT_CLASS);\r\n renderFormTemplate()\r\n }))\r\n }\r\n },\r\n _isVisibleColumnsValid: function(visibleColumns) {\r\n if (visibleColumns < 2) {\r\n return false\r\n }\r\n if (visibleColumns.length - function() {\r\n var result = 0;\r\n for (var j = 0; j < visibleColumns.length; j++) {\r\n var visibleColumn = visibleColumns[j];\r\n if (visibleColumn.command) {\r\n result++\r\n }\r\n }\r\n return result\r\n }() <= 1) {\r\n return false\r\n }\r\n return true\r\n },\r\n _calculatePercentWidths: function(widths, visibleColumns) {\r\n var that = this;\r\n var percentWidths = 0;\r\n visibleColumns.forEach((function(item, index) {\r\n if (widths[index] !== HIDDEN_COLUMNS_WIDTH) {\r\n percentWidths += that._getItemPercentWidth(item)\r\n }\r\n }));\r\n return percentWidths\r\n },\r\n _isPercentWidth: function(width) {\r\n return isString(width) && \"%\" === width.slice(-1)\r\n },\r\n _isColumnHidden: function(column) {\r\n return this._hiddenColumns.filter((function(hiddenColumn) {\r\n return hiddenColumn.index === column.index\r\n })).length > 0\r\n },\r\n _getAverageColumnsWidth: function(containerWidth, columns, columnsCanFit) {\r\n var that = this;\r\n var fixedColumnsWidth = 0;\r\n var columnsWithoutFixedWidthCount = 0;\r\n columns.forEach((function(column) {\r\n if (!that._isColumnHidden(column)) {\r\n var width = column.width;\r\n if (isDefined(width) && !isNaN(parseFloat(width))) {\r\n fixedColumnsWidth += that._isPercentWidth(width) ? that._calculatePercentWidth({\r\n visibleIndex: column.visibleIndex,\r\n columnsCount: columns.length,\r\n columnsCanFit: columnsCanFit,\r\n bestFitWidth: column.bestFitWidth,\r\n columnWidth: width,\r\n containerWidth: containerWidth\r\n }) : parseFloat(width)\r\n } else {\r\n columnsWithoutFixedWidthCount++\r\n }\r\n }\r\n }));\r\n return (containerWidth - fixedColumnsWidth) / columnsWithoutFixedWidthCount\r\n },\r\n _calculateColumnWidth: function(column, containerWidth, contentColumns, columnsCanFit) {\r\n var columnId = getColumnId(this, column);\r\n var widthOption = this._columnsController.columnOption(columnId, \"width\");\r\n var bestFitWidth = this._columnsController.columnOption(columnId, \"bestFitWidth\");\r\n var columnsCount = contentColumns.length;\r\n var colWidth;\r\n if (widthOption && \"auto\" !== widthOption) {\r\n if (this._isPercentWidth(widthOption)) {\r\n colWidth = this._calculatePercentWidth({\r\n visibleIndex: column.visibleIndex,\r\n columnsCount: columnsCount,\r\n columnsCanFit: columnsCanFit,\r\n bestFitWidth: bestFitWidth,\r\n columnWidth: widthOption,\r\n containerWidth: containerWidth\r\n })\r\n } else {\r\n return widthOption\r\n }\r\n } else {\r\n var columnAutoWidth = this.option(\"columnAutoWidth\");\r\n colWidth = columnAutoWidth || !!column.command ? bestFitWidth : this._getAverageColumnsWidth(containerWidth, contentColumns, columnsCanFit)\r\n }\r\n return colWidth\r\n },\r\n _calculatePercentWidth: function(options) {\r\n var columnFitted = options.visibleIndex < options.columnsCount - 1 && options.columnsCanFit;\r\n var partialWidth = options.containerWidth * parseFloat(options.columnWidth) / 100;\r\n var resultWidth = options.columnsCanFit && partialWidth < options.bestFitWidth ? options.bestFitWidth : partialWidth;\r\n return columnFitted ? options.containerWidth * parseFloat(options.columnWidth) / 100 : resultWidth\r\n },\r\n _getNotTruncatedColumnWidth: function(column, containerWidth, contentColumns, columnsCanFit) {\r\n var columnId = getColumnId(this, column);\r\n var widthOption = this._columnsController.columnOption(columnId, \"width\");\r\n var bestFitWidth = this._columnsController.columnOption(columnId, \"bestFitWidth\");\r\n if (widthOption && \"auto\" !== widthOption && !this._isPercentWidth(widthOption)) {\r\n return parseFloat(widthOption)\r\n }\r\n var colWidth = this._calculateColumnWidth(column, containerWidth, contentColumns, columnsCanFit);\r\n return colWidth < bestFitWidth ? null : colWidth\r\n },\r\n _getItemPercentWidth: function(item) {\r\n var result = 0;\r\n if (item.width && this._isPercentWidth(item.width)) {\r\n result = parseFloat(item.width)\r\n }\r\n return result\r\n },\r\n _getCommandColumnsWidth: function() {\r\n var that = this;\r\n var columns = that._columnsController.getVisibleColumns();\r\n var colWidth = 0;\r\n each(columns, (function(index, column) {\r\n if (column.index < 0 || column.command) {\r\n colWidth += that._columnsController.columnOption(getColumnId(that, column), \"bestFitWidth\") || 0\r\n }\r\n }));\r\n return colWidth\r\n },\r\n _isItemEdited: function(item) {\r\n if (this.isFormOrPopupEditMode()) {\r\n return false\r\n }\r\n if (this._isRowEditMode()) {\r\n var editRowKey = this.option(\"editing.editRowKey\");\r\n if (equalByValue(editRowKey, this._dataController.adaptiveExpandedKey())) {\r\n return true\r\n }\r\n } else {\r\n var rowIndex = this._dataController.getRowIndexByKey(this._dataController.adaptiveExpandedKey()) + 1;\r\n var columnIndex = this._columnsController.getVisibleIndex(item.column.index);\r\n return this._editingController.isEditCell(rowIndex, columnIndex)\r\n }\r\n },\r\n _getFormItemsByHiddenColumns: function(hiddenColumns) {\r\n var items = [];\r\n each(hiddenColumns, (function(_, column) {\r\n items.push({\r\n column: column,\r\n name: column.name,\r\n dataField: column.dataField,\r\n visibleIndex: column.visibleIndex\r\n })\r\n }));\r\n return items\r\n },\r\n _getAdaptiveColumnVisibleIndex: function(visibleColumns) {\r\n for (var i = 0; i < visibleColumns.length; i++) {\r\n var column = visibleColumns[i];\r\n if (column.command === ADAPTIVE_COLUMN_NAME) {\r\n return i\r\n }\r\n }\r\n },\r\n _hideAdaptiveColumn: function(resultWidths, visibleColumns) {\r\n var visibleIndex = this._getAdaptiveColumnVisibleIndex(visibleColumns);\r\n if (isDefined(visibleIndex)) {\r\n resultWidths[visibleIndex] = HIDDEN_COLUMNS_WIDTH;\r\n this._hideVisibleColumn({\r\n isCommandColumn: true,\r\n visibleIndex: visibleIndex\r\n })\r\n }\r\n },\r\n _showHiddenCellsInView: function(_ref) {\r\n var {\r\n $cells: $cells,\r\n isCommandColumn: isCommandColumn\r\n } = _ref;\r\n var cssClassNameToRemove = isCommandColumn ? COMMAND_ADAPTIVE_HIDDEN_CLASS : this.addWidgetPrefix(HIDDEN_COLUMN_CLASS);\r\n $cells.removeClass(cssClassNameToRemove)\r\n },\r\n _showHiddenColumns: function() {\r\n for (var i = 0; i < COLUMN_VIEWS.length; i++) {\r\n var view = this.getView(COLUMN_VIEWS[i]);\r\n if (view && view.isVisible() && view.element()) {\r\n var viewName = view.name;\r\n var $hiddenCommandCells = view.element().find(\".\" + COMMAND_ADAPTIVE_HIDDEN_CLASS);\r\n this._showHiddenCellsInView({\r\n viewName: viewName,\r\n $cells: $hiddenCommandCells,\r\n isCommandColumn: true\r\n });\r\n var $hiddenCells = view.element().find(\".\" + this.addWidgetPrefix(HIDDEN_COLUMN_CLASS));\r\n this._showHiddenCellsInView({\r\n viewName: viewName,\r\n $cells: $hiddenCells\r\n })\r\n }\r\n }\r\n },\r\n _isCellValid: function($cell) {\r\n return $cell && $cell.length && !$cell.hasClass(MASTER_DETAIL_CELL_CLASS) && !$cell.hasClass(GROUP_CELL_CLASS)\r\n },\r\n _hideVisibleColumn: function(_ref2) {\r\n var {\r\n isCommandColumn: isCommandColumn,\r\n visibleIndex: visibleIndex\r\n } = _ref2;\r\n var that = this;\r\n COLUMN_VIEWS.forEach((function(viewName) {\r\n var view = that.getView(viewName);\r\n view && that._hideVisibleColumnInView({\r\n view: view,\r\n isCommandColumn: isCommandColumn,\r\n visibleIndex: visibleIndex\r\n })\r\n }))\r\n },\r\n _hideVisibleColumnInView: function(_ref3) {\r\n var {\r\n view: view,\r\n isCommandColumn: isCommandColumn,\r\n visibleIndex: visibleIndex\r\n } = _ref3;\r\n var viewName = view.name;\r\n var $cellElement;\r\n var column = this._columnsController.getVisibleColumns()[visibleIndex];\r\n var editFormRowIndex = this._editingController && this._editingController.getEditFormRowIndex();\r\n if (view && view.isVisible() && column) {\r\n var rowsCount = view.getRowsCount();\r\n var $rowElements = view._getRowElements();\r\n for (var rowIndex = 0; rowIndex < rowsCount; rowIndex++) {\r\n var cancelClassAdding = rowIndex === editFormRowIndex && viewName === ROWS_VIEW && \"popup\" !== this.option(\"editing.mode\");\r\n if (!cancelClassAdding) {\r\n var currentVisibleIndex = viewName === COLUMN_HEADERS_VIEW ? this._columnsController.getVisibleIndex(column.index, rowIndex) : visibleIndex;\r\n if (currentVisibleIndex >= 0) {\r\n var $rowElement = $rowElements.eq(rowIndex);\r\n $cellElement = this._findCellElementInRow($rowElement, currentVisibleIndex);\r\n this._isCellValid($cellElement) && this._hideVisibleCellInView({\r\n viewName: viewName,\r\n isCommandColumn: isCommandColumn,\r\n $cell: $cellElement\r\n })\r\n }\r\n }\r\n }\r\n }\r\n },\r\n _findCellElementInRow($rowElement, visibleColumnIndex) {\r\n var $rowCells = $rowElement.children();\r\n var visibleIndex = visibleColumnIndex;\r\n var cellIsInsideGroup = false;\r\n if ($rowElement.hasClass(GROUP_ROW_CLASS)) {\r\n var $groupCell = $rowElement.find(\".\".concat(GROUP_CELL_CLASS));\r\n var colSpan = $groupCell.attr(\"colspan\");\r\n if ($groupCell.length && isDefined(colSpan)) {\r\n var groupCellLength = parseInt(colSpan);\r\n var endGroupIndex = $groupCell.index() + groupCellLength - 1;\r\n if (visibleColumnIndex > endGroupIndex) {\r\n visibleIndex = visibleColumnIndex - groupCellLength + 1\r\n } else {\r\n cellIsInsideGroup = true\r\n }\r\n }\r\n }\r\n var $cellElement = !cellIsInsideGroup ? $rowCells.eq(visibleIndex) : void 0;\r\n return $cellElement\r\n },\r\n _hideVisibleCellInView: function(_ref4) {\r\n var {\r\n $cell: $cell,\r\n isCommandColumn: isCommandColumn\r\n } = _ref4;\r\n var cssClassNameToAdd = isCommandColumn ? COMMAND_ADAPTIVE_HIDDEN_CLASS : this.addWidgetPrefix(HIDDEN_COLUMN_CLASS);\r\n $cell.addClass(cssClassNameToAdd)\r\n },\r\n _getEditMode: function() {\r\n return this._editingController.getEditMode()\r\n },\r\n isFormOrPopupEditMode: function() {\r\n var editMode = this._getEditMode();\r\n return editMode === EDIT_MODE_FORM || editMode === EDIT_MODE_POPUP\r\n },\r\n hideRedundantColumns: function(resultWidths, visibleColumns, hiddenQueue) {\r\n this._hiddenColumns = [];\r\n if (this._isVisibleColumnsValid(visibleColumns) && hiddenQueue.length) {\r\n var totalWidth = 0;\r\n var $rootElement = this.component.$element();\r\n var rootElementWidth = $rootElement.width() - this._getCommandColumnsWidth();\r\n var getVisibleContentColumns = function() {\r\n return visibleColumns.filter(item => !item.command && 0 === this._hiddenColumns.filter(i => i.index === item.index).length)\r\n }.bind(this);\r\n var visibleContentColumns = getVisibleContentColumns();\r\n var contentColumnsCount = visibleContentColumns.length;\r\n var i;\r\n var hasHiddenColumns;\r\n var needHideColumn;\r\n do {\r\n needHideColumn = false;\r\n totalWidth = 0;\r\n var percentWidths = this._calculatePercentWidths(resultWidths, visibleColumns);\r\n var columnsCanFit = percentWidths < 100 && 0 !== percentWidths;\r\n for (i = 0; i < visibleColumns.length; i++) {\r\n var visibleColumn = visibleColumns[i];\r\n var columnWidth = this._getNotTruncatedColumnWidth(visibleColumn, rootElementWidth, visibleContentColumns, columnsCanFit);\r\n var columnId = getColumnId(this, visibleColumn);\r\n var widthOption = this._columnsController.columnOption(columnId, \"width\");\r\n var minWidth = this._columnsController.columnOption(columnId, \"minWidth\");\r\n var columnBestFitWidth = this._columnsController.columnOption(columnId, \"bestFitWidth\");\r\n if (resultWidths[i] === HIDDEN_COLUMNS_WIDTH) {\r\n hasHiddenColumns = true;\r\n continue\r\n }\r\n if (!columnWidth && !visibleColumn.command && !visibleColumn.fixed) {\r\n needHideColumn = true;\r\n break\r\n }\r\n if (!widthOption || \"auto\" === widthOption) {\r\n columnWidth = Math.max(columnBestFitWidth || 0, minWidth || 0)\r\n }\r\n if (visibleColumn.command !== ADAPTIVE_COLUMN_NAME || hasHiddenColumns) {\r\n totalWidth += columnWidth\r\n }\r\n }\r\n needHideColumn = needHideColumn || totalWidth > $rootElement.width();\r\n if (needHideColumn) {\r\n var column = hiddenQueue.pop();\r\n var visibleIndex = this._columnsController.getVisibleIndex(column.index);\r\n rootElementWidth += this._calculateColumnWidth(column, rootElementWidth, visibleContentColumns, columnsCanFit);\r\n this._hideVisibleColumn({\r\n visibleIndex: visibleIndex\r\n });\r\n resultWidths[visibleIndex] = HIDDEN_COLUMNS_WIDTH;\r\n this._hiddenColumns.push(column);\r\n visibleContentColumns = getVisibleContentColumns()\r\n }\r\n } while (needHideColumn && visibleContentColumns.length > 1 && hiddenQueue.length);\r\n if (contentColumnsCount === visibleContentColumns.length) {\r\n this._hideAdaptiveColumn(resultWidths, visibleColumns)\r\n }\r\n } else {\r\n this._hideAdaptiveColumn(resultWidths, visibleColumns)\r\n }\r\n },\r\n getItemContentByColumnIndex: function(visibleColumnIndex) {\r\n var $itemContent;\r\n for (var i = 0; i < this._$itemContents.length; i++) {\r\n $itemContent = this._$itemContents.eq(i);\r\n var item = $itemContent.data(\"dx-form-item\");\r\n if (item && item.column && this._columnsController.getVisibleIndex(item.column.index) === visibleColumnIndex) {\r\n return $itemContent\r\n }\r\n }\r\n },\r\n toggleExpandAdaptiveDetailRow: function(key, alwaysExpanded) {\r\n if (!(this.isFormOrPopupEditMode() && this._editingController.isEditing())) {\r\n this.getController(\"data\").toggleExpandAdaptiveDetailRow(key, alwaysExpanded)\r\n }\r\n },\r\n createFormByHiddenColumns: function(container, options) {\r\n var that = this;\r\n var $container = $(container);\r\n var userFormOptions = {\r\n items: that._getFormItemsByHiddenColumns(that._hiddenColumns),\r\n formID: \"dx-\" + new Guid\r\n };\r\n var defaultFormOptions = isMaterial() ? {\r\n colCount: 2\r\n } : {};\r\n this.executeAction(\"onAdaptiveDetailRowPreparing\", {\r\n formOptions: userFormOptions\r\n });\r\n that._$itemContents = null;\r\n that._form = that._createComponent($(\"
\").appendTo($container), Form, extend(defaultFormOptions, userFormOptions, {\r\n customizeItem: function(item) {\r\n var column = item.column || that._columnsController.columnOption(item.name || item.dataField);\r\n if (column) {\r\n item.label = item.label || {};\r\n item.label.text = item.label.text || column.caption;\r\n item.column = column;\r\n item.template = that._getTemplate(item, options, that.updateForm.bind(that))\r\n }\r\n userFormOptions.customizeItem && userFormOptions.customizeItem.call(this, item)\r\n },\r\n onContentReady: function(e) {\r\n userFormOptions.onContentReady && userFormOptions.onContentReady.call(this, e);\r\n that._$itemContents = $container.find(\".\" + FORM_ITEM_CONTENT_CLASS)\r\n }\r\n }))\r\n },\r\n hasAdaptiveDetailRowExpanded: function() {\r\n return isDefined(this._dataController.adaptiveExpandedKey())\r\n },\r\n updateForm: function(hiddenColumns) {\r\n if (this.hasAdaptiveDetailRowExpanded()) {\r\n if (this._form && isDefined(this._form._contentReadyAction)) {\r\n if (hiddenColumns && hiddenColumns.length) {\r\n this._form.option(\"items\", this._getFormItemsByHiddenColumns(hiddenColumns))\r\n } else {\r\n this._form.repaint()\r\n }\r\n }\r\n }\r\n },\r\n updateHidingQueue: function(columns) {\r\n var hideableColumns = columns.filter((function(column) {\r\n return column.visible && !column.type && !column.fixed && !(isDefined(column.groupIndex) && column.groupIndex >= 0)\r\n }));\r\n var columnsHasHidingPriority;\r\n var i;\r\n this._hidingColumnsQueue = [];\r\n if (this.option(\"allowColumnResizing\") && \"widget\" === this.option(\"columnResizingMode\")) {\r\n return this._hidingColumnsQueue\r\n }\r\n for (i = 0; i < hideableColumns.length; i++) {\r\n if (isDefined(hideableColumns[i].hidingPriority) && hideableColumns[i].hidingPriority >= 0) {\r\n columnsHasHidingPriority = true;\r\n this._hidingColumnsQueue[hideableColumns[i].hidingPriority] = hideableColumns[i]\r\n }\r\n }\r\n if (columnsHasHidingPriority) {\r\n this._hidingColumnsQueue.reverse()\r\n } else if (this.option(\"columnHidingEnabled\")) {\r\n for (i = 0; i < hideableColumns.length; i++) {\r\n var visibleIndex = this._columnsController.getVisibleIndex(hideableColumns[i].index);\r\n this._hidingColumnsQueue[visibleIndex] = hideableColumns[i]\r\n }\r\n }\r\n this._hidingColumnsQueue = this._hidingColumnsQueue.filter(Object);\r\n return this._hidingColumnsQueue\r\n },\r\n getHiddenColumns: function() {\r\n return this._hiddenColumns\r\n },\r\n hasHiddenColumns: function() {\r\n return this._hiddenColumns.length > 0\r\n },\r\n getHidingColumnsQueue: function() {\r\n return this._hidingColumnsQueue\r\n },\r\n init: function() {\r\n var that = this;\r\n that._columnsController = that.getController(\"columns\");\r\n that._dataController = that.getController(\"data\");\r\n that._rowsView = that.getView(\"rowsView\");\r\n that._columnsController.addCommandColumn({\r\n type: ADAPTIVE_COLUMN_NAME,\r\n command: ADAPTIVE_COLUMN_NAME,\r\n visible: true,\r\n adaptiveHidden: true,\r\n cssClass: ADAPTIVE_COLUMN_NAME_CLASS,\r\n alignment: \"center\",\r\n width: \"auto\",\r\n cellTemplate: adaptiveCellTemplate,\r\n fixedPosition: \"right\"\r\n });\r\n that._columnsController.columnsChanged.add((function() {\r\n var isAdaptiveVisible = !!that.updateHidingQueue(that._columnsController.getColumns()).length;\r\n that._columnsController.columnOption(\"command:adaptive\", \"adaptiveHidden\", !isAdaptiveVisible, true)\r\n }));\r\n that._editingController = that.getController(\"editing\");\r\n that._hidingColumnsQueue = [];\r\n that._hiddenColumns = [];\r\n that.createAction(\"onAdaptiveDetailRowPreparing\");\r\n that.callBase()\r\n },\r\n optionChanged: function(args) {\r\n if (\"columnHidingEnabled\" === args.name) {\r\n this._columnsController.columnOption(\"command:adaptive\", \"adaptiveHidden\", !args.value)\r\n }\r\n this.callBase(args)\r\n },\r\n publicMethods: function() {\r\n return [\"isAdaptiveDetailRowExpanded\", \"expandAdaptiveDetailRow\", \"collapseAdaptiveDetailRow\"]\r\n },\r\n isAdaptiveDetailRowExpanded: function(key) {\r\n return this._dataController.adaptiveExpandedKey() && equalByValue(this._dataController.adaptiveExpandedKey(), key)\r\n },\r\n expandAdaptiveDetailRow: function(key) {\r\n if (!this.hasAdaptiveDetailRowExpanded()) {\r\n this.toggleExpandAdaptiveDetailRow(key)\r\n }\r\n },\r\n collapseAdaptiveDetailRow: function() {\r\n if (this.hasAdaptiveDetailRowExpanded()) {\r\n this.toggleExpandAdaptiveDetailRow()\r\n }\r\n },\r\n updateCommandAdaptiveAriaLabel: function(key, label) {\r\n var rowIndex = this._dataController.getRowIndexByKey(key);\r\n if (-1 === rowIndex) {\r\n return\r\n }\r\n var $row = $(this.component.getRowElement(rowIndex));\r\n this.setCommandAdaptiveAriaLabel($row, label)\r\n },\r\n setCommandAdaptiveAriaLabel: function($row, labelName) {\r\n var $adaptiveCommand = $row.find(\".dx-command-adaptive\");\r\n $adaptiveCommand.attr(\"aria-label\", messageLocalization.format(labelName))\r\n }\r\n});\r\nexport var adaptivityModule = {\r\n defaultOptions: function() {\r\n return {\r\n columnHidingEnabled: false,\r\n onAdaptiveDetailRowPreparing: null\r\n }\r\n },\r\n controllers: {\r\n adaptiveColumns: AdaptiveColumnsController\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: {\r\n _getCellTemplate: function(options) {\r\n var that = this;\r\n var column = options.column;\r\n if (options.rowType === ADAPTIVE_ROW_TYPE && \"detail\" === column.command) {\r\n return function(container, options) {\r\n that._adaptiveColumnsController.createFormByHiddenColumns($(container), options)\r\n }\r\n }\r\n return that.callBase(options)\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase(row);\r\n if (row && row.rowType === ADAPTIVE_ROW_TYPE && row.key === this._dataController.adaptiveExpandedKey()) {\r\n $row.addClass(ADAPTIVE_DETAIL_ROW_CLASS)\r\n }\r\n return $row\r\n },\r\n _renderCells: function($row, options) {\r\n this.callBase($row, options);\r\n var adaptiveColumnsController = this._adaptiveColumnsController;\r\n var hidingColumnsQueueLength = adaptiveColumnsController.getHidingColumnsQueue().length;\r\n var hiddenColumnsLength = adaptiveColumnsController.getHiddenColumns().length;\r\n if (hidingColumnsQueueLength && !hiddenColumnsLength) {\r\n getDataCellElements($row).last().addClass(LAST_DATA_CELL_CLASS)\r\n }\r\n if (\"data\" === options.row.rowType) {\r\n adaptiveColumnsController.setCommandAdaptiveAriaLabel($row, EXPAND_ARIA_NAME)\r\n }\r\n },\r\n _getColumnIndexByElementCore: function($element) {\r\n var $itemContent = $element.closest(\".\" + FORM_ITEM_CONTENT_CLASS);\r\n if ($itemContent.length && $itemContent.closest(this.component.$element()).length) {\r\n var formItem = $itemContent.length ? $itemContent.first().data(\"dx-form-item\") : null;\r\n return formItem && formItem.column && this._columnsController.getVisibleIndex(formItem.column.index)\r\n } else {\r\n return this.callBase($element)\r\n }\r\n },\r\n _cellPrepared: function($cell, options) {\r\n this.callBase.apply(this, arguments);\r\n if (options.row.rowType !== ADAPTIVE_ROW_TYPE && options.column.visibleWidth === HIDDEN_COLUMNS_WIDTH) {\r\n $cell.addClass(this.addWidgetPrefix(HIDDEN_COLUMN_CLASS))\r\n }\r\n },\r\n _getCellElement: function(rowIndex, columnIdentifier) {\r\n var item = this._dataController.items()[rowIndex];\r\n if (item && item.rowType === ADAPTIVE_ROW_TYPE) {\r\n return this._adaptiveColumnsController.getItemContentByColumnIndex(columnIdentifier)\r\n } else {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n },\r\n getContextMenuItems: function(options) {\r\n if (options.row && \"detailAdaptive\" === options.row.rowType) {\r\n var view = this.component.getView(\"columnHeadersView\");\r\n var formItem = $(options.targetElement).closest(\".dx-field-item-label\").next().data(\"dx-form-item\");\r\n options.column = formItem ? formItem.column : options.column;\r\n return view.getContextMenuItems && view.getContextMenuItems(options)\r\n }\r\n return this.callBase && this.callBase(options)\r\n },\r\n isClickableElement: function($target) {\r\n var isClickable = this.callBase ? this.callBase($target) : false;\r\n return isClickable || !!$target.closest(\".\" + ADAPTIVE_COLUMN_NAME_CLASS).length\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._adaptiveColumnsController = this.getController(\"adaptiveColumns\")\r\n }\r\n }\r\n },\r\n controllers: {\r\n export: {\r\n _updateColumnWidth: function(column, width) {\r\n this.callBase(column, column.visibleWidth === HIDDEN_COLUMNS_WIDTH ? column.bestFitWidth : width)\r\n }\r\n },\r\n columnsResizer: {\r\n _pointCreated: function(point, cellsLength, columns) {\r\n var result = this.callBase(point, cellsLength, columns);\r\n var currentColumn = columns[point.columnIndex] || {};\r\n var nextColumnIndex = this._getNextColumnIndex(point.columnIndex);\r\n var nextColumn = columns[nextColumnIndex] || {};\r\n var hasHiddenColumnsOnly = nextColumnIndex !== point.columnIndex + 1 && nextColumn.command;\r\n var hasAdaptiveHiddenWidth = currentColumn.visibleWidth === HIDDEN_COLUMNS_WIDTH || hasHiddenColumnsOnly;\r\n return result || hasAdaptiveHiddenWidth\r\n },\r\n _getNextColumnIndex: function(currentColumnIndex) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var index = this.callBase(currentColumnIndex);\r\n while (visibleColumns[index] && visibleColumns[index].visibleWidth === HIDDEN_COLUMNS_WIDTH) {\r\n index++\r\n }\r\n return index\r\n }\r\n },\r\n draggingHeader: {\r\n _pointCreated: function(point, columns, location, sourceColumn) {\r\n var result = this.callBase(point, columns, location, sourceColumn);\r\n var column = columns[point.columnIndex - 1] || {};\r\n var hasAdaptiveHiddenWidth = column.visibleWidth === HIDDEN_COLUMNS_WIDTH;\r\n return result || hasAdaptiveHiddenWidth\r\n }\r\n },\r\n editing: {\r\n _isRowEditMode: function() {\r\n return this.getEditMode() === EDIT_MODE_ROW\r\n },\r\n _getFormEditItemTemplate: function(cellOptions, column) {\r\n if (this.getEditMode() !== EDIT_MODE_ROW && \"detailAdaptive\" === cellOptions.rowType) {\r\n cellOptions.columnIndex = this._columnsController.getVisibleIndex(column.index);\r\n return this.getColumnTemplate(cellOptions)\r\n }\r\n return this.callBase(cellOptions, column)\r\n },\r\n _closeEditItem: function($targetElement) {\r\n var $itemContents = $targetElement.closest(\".\" + FORM_ITEM_CONTENT_CLASS);\r\n var rowIndex = this._dataController.getRowIndexByKey(this._dataController.adaptiveExpandedKey()) + 1;\r\n var formItem = $itemContents.length ? $itemContents.first().data(\"dx-form-item\") : null;\r\n var columnIndex = formItem && formItem.column && this._columnsController.getVisibleIndex(formItem.column.index);\r\n if (!this.isEditCell(rowIndex, columnIndex)) {\r\n this.callBase($targetElement)\r\n }\r\n },\r\n _beforeUpdateItems: function(rowIndices, rowIndex) {\r\n if (!this._adaptiveController.isFormOrPopupEditMode() && this._adaptiveController.hasHiddenColumns()) {\r\n var items = this._dataController.items();\r\n var item = items[rowIndex];\r\n var oldExpandRowIndex = gridCoreUtils.getIndexByKey(this._dataController.adaptiveExpandedKey(), items);\r\n this._isForceRowAdaptiveExpand = !this._adaptiveController.hasAdaptiveDetailRowExpanded();\r\n if (oldExpandRowIndex >= 0) {\r\n rowIndices.push(oldExpandRowIndex + 1)\r\n }\r\n rowIndices.push(rowIndex + 1);\r\n this._dataController.adaptiveExpandedKey(item.key)\r\n }\r\n },\r\n _afterInsertRow: function(options) {\r\n this.callBase(options);\r\n if (this._adaptiveController.hasHiddenColumns()) {\r\n this._adaptiveController.toggleExpandAdaptiveDetailRow(options.key, this.isRowEditMode());\r\n this._isForceRowAdaptiveExpand = true\r\n }\r\n },\r\n _collapseAdaptiveDetailRow: function() {\r\n if (this._isRowEditMode() && this._isForceRowAdaptiveExpand) {\r\n this._adaptiveController.collapseAdaptiveDetailRow();\r\n this._isForceRowAdaptiveExpand = false\r\n }\r\n },\r\n _cancelEditAdaptiveDetailRow: function() {\r\n if (this._adaptiveController.hasHiddenColumns()) {\r\n this._collapseAdaptiveDetailRow()\r\n }\r\n },\r\n _afterSaveEditData: function() {\r\n this.callBase.apply(this, arguments);\r\n var deferred = new Deferred;\r\n if (this._isRowEditMode() && this._adaptiveController.hasHiddenColumns()) {\r\n when(this.getController(\"validating\").validate(true)).done(isValid => {\r\n if (isValid) {\r\n this._cancelEditAdaptiveDetailRow()\r\n }\r\n deferred.resolve()\r\n })\r\n } else {\r\n deferred.resolve()\r\n }\r\n return deferred.promise()\r\n },\r\n _beforeCancelEditData: function() {\r\n this.callBase();\r\n this._cancelEditAdaptiveDetailRow()\r\n },\r\n _getRowIndicesForCascadeUpdating: function(row) {\r\n var rowIndices = this.callBase.apply(this, arguments);\r\n if (this._adaptiveController.isAdaptiveDetailRowExpanded(row.key)) {\r\n rowIndices.push(row.rowType === ADAPTIVE_ROW_TYPE ? row.rowIndex - 1 : row.rowIndex + 1)\r\n }\r\n return rowIndices\r\n },\r\n _beforeCloseEditCellInBatchMode: function(rowIndices) {\r\n var expandedKey = this._dataController._adaptiveExpandedKey;\r\n if (expandedKey) {\r\n var rowIndex = gridCoreUtils.getIndexByKey(expandedKey, this._dataController.items());\r\n if (rowIndex > -1) {\r\n rowIndices.unshift(rowIndex)\r\n }\r\n }\r\n },\r\n editRow: function(rowIndex) {\r\n if (this._adaptiveController.isFormOrPopupEditMode()) {\r\n this._adaptiveController.collapseAdaptiveDetailRow()\r\n }\r\n this.callBase(rowIndex)\r\n },\r\n deleteRow: function(rowIndex) {\r\n var rowKey = this._dataController.getKeyByRowIndex(rowIndex);\r\n if (this.getEditMode() === EDIT_MODE_BATCH && this._adaptiveController.isAdaptiveDetailRowExpanded(rowKey)) {\r\n this._adaptiveController.collapseAdaptiveDetailRow()\r\n }\r\n this.callBase(rowIndex)\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._adaptiveController = this.getController(\"adaptiveColumns\")\r\n }\r\n },\r\n resizing: {\r\n _needBestFit: function() {\r\n return this.callBase() || !!this._adaptiveColumnsController.getHidingColumnsQueue().length\r\n },\r\n _updateScrollableForIE: function() {\r\n var that = this;\r\n if (browser.msie && parseInt(browser.version) <= 11) {\r\n this._updateScrollableTimeoutID = setTimeout((function() {\r\n that.getView(\"rowsView\")._updateScrollable()\r\n }))\r\n }\r\n },\r\n _correctColumnWidths: function(resultWidths, visibleColumns) {\r\n var adaptiveController = this._adaptiveColumnsController;\r\n var columnAutoWidth = this.option(\"columnAutoWidth\");\r\n var oldHiddenColumns = adaptiveController.getHiddenColumns();\r\n var hidingColumnsQueue = adaptiveController.updateHidingQueue(this._columnsController.getColumns());\r\n adaptiveController.hideRedundantColumns(resultWidths, visibleColumns, hidingColumnsQueue);\r\n var hiddenColumns = adaptiveController.getHiddenColumns();\r\n if (adaptiveController.hasAdaptiveDetailRowExpanded()) {\r\n if (oldHiddenColumns.length !== hiddenColumns.length) {\r\n adaptiveController.updateForm(hiddenColumns)\r\n }\r\n }!hiddenColumns.length && adaptiveController.collapseAdaptiveDetailRow();\r\n if (columnAutoWidth && hidingColumnsQueue.length && !hiddenColumns.length) {\r\n this._updateScrollableForIE()\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _toggleBestFitMode: function(isBestFit) {\r\n isBestFit && this._adaptiveColumnsController._showHiddenColumns();\r\n this.callBase(isBestFit)\r\n },\r\n _needStretch: function() {\r\n var adaptiveColumnsController = this._adaptiveColumnsController;\r\n return this.callBase.apply(this, arguments) || adaptiveColumnsController.getHidingColumnsQueue().length || adaptiveColumnsController.hasHiddenColumns()\r\n },\r\n init: function() {\r\n this._adaptiveColumnsController = this.getController(\"adaptiveColumns\");\r\n this.callBase()\r\n },\r\n dispose: function() {\r\n this.callBase.apply(this, arguments);\r\n clearTimeout(this._updateScrollableTimeoutID)\r\n }\r\n },\r\n data: {\r\n _processItems: function(items, change) {\r\n var that = this;\r\n var changeType = change.changeType;\r\n items = that.callBase.apply(that, arguments);\r\n if (\"loadingAll\" === changeType || !isDefined(that._adaptiveExpandedKey)) {\r\n return items\r\n }\r\n var expandRowIndex = gridCoreUtils.getIndexByKey(that._adaptiveExpandedKey, items);\r\n if (expandRowIndex >= 0) {\r\n var item = items[expandRowIndex];\r\n items.splice(expandRowIndex + 1, 0, {\r\n visible: true,\r\n rowType: ADAPTIVE_ROW_TYPE,\r\n key: item.key,\r\n data: item.data,\r\n node: item.node,\r\n modifiedValues: item.modifiedValues,\r\n isNewRow: item.isNewRow,\r\n values: item.values\r\n })\r\n } else if (\"refresh\" === changeType) {\r\n that._adaptiveExpandedKey = void 0\r\n }\r\n return items\r\n },\r\n _getRowIndicesForExpand: function(key) {\r\n var rowIndices = this.callBase.apply(this, arguments);\r\n if (this.getController(\"adaptiveColumns\").isAdaptiveDetailRowExpanded(key)) {\r\n var lastRowIndex = rowIndices[rowIndices.length - 1];\r\n rowIndices.push(lastRowIndex + 1)\r\n }\r\n return rowIndices\r\n },\r\n adaptiveExpandedKey: function(value) {\r\n if (isDefined(value)) {\r\n this._adaptiveExpandedKey = value\r\n } else {\r\n return this._adaptiveExpandedKey\r\n }\r\n },\r\n toggleExpandAdaptiveDetailRow: function(key, alwaysExpanded) {\r\n var oldExpandLoadedRowIndex = gridCoreUtils.getIndexByKey(this._adaptiveExpandedKey, this._items);\r\n var newExpandLoadedRowIndex = gridCoreUtils.getIndexByKey(key, this._items);\r\n if (oldExpandLoadedRowIndex >= 0 && oldExpandLoadedRowIndex === newExpandLoadedRowIndex && !alwaysExpanded) {\r\n key = void 0;\r\n newExpandLoadedRowIndex = -1\r\n }\r\n var oldKey = this._adaptiveExpandedKey;\r\n this._adaptiveExpandedKey = key;\r\n if (oldExpandLoadedRowIndex >= 0) {\r\n oldExpandLoadedRowIndex++\r\n }\r\n if (newExpandLoadedRowIndex >= 0) {\r\n newExpandLoadedRowIndex++\r\n }\r\n var rowIndexDelta = this.getRowIndexDelta();\r\n this.updateItems({\r\n allowInvisibleRowIndices: true,\r\n changeType: \"update\",\r\n rowIndices: [oldExpandLoadedRowIndex - rowIndexDelta, newExpandLoadedRowIndex - rowIndexDelta]\r\n });\r\n var adaptiveColumnsController = this.getController(\"adaptiveColumns\");\r\n adaptiveColumnsController.updateCommandAdaptiveAriaLabel(key, COLLAPSE_ARIA_NAME);\r\n adaptiveColumnsController.updateCommandAdaptiveAriaLabel(oldKey, EXPAND_ARIA_NAME)\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._adaptiveExpandedKey = void 0\r\n }\r\n },\r\n editorFactory: {\r\n _getFocusCellSelector: function() {\r\n return this.callBase() + \", .dx-adaptive-detail-row .dx-field-item > .dx-field-item-content\"\r\n },\r\n _getTooltipsSelector: function() {\r\n return this.callBase() + \", .dx-field-item-content .\" + this.addWidgetPrefix(REVERT_TOOLTIP_CLASS)\r\n }\r\n },\r\n columns: {\r\n _isColumnVisible: function(column) {\r\n return this.callBase(column) && !column.adaptiveHidden\r\n }\r\n },\r\n keyboardNavigation: {\r\n _isCellValid: function($cell) {\r\n return this.callBase.apply(this, arguments) && !$cell.hasClass(this.addWidgetPrefix(HIDDEN_COLUMN_CLASS))\r\n },\r\n _processNextCellInMasterDetail: function($nextCell) {\r\n this.callBase($nextCell);\r\n var isCellOrBatchMode = this._editingController.isCellOrBatchEditMode();\r\n if (!this._isInsideEditForm($nextCell) && $nextCell && isCellOrBatchMode) {\r\n eventsEngine.on($nextCell, \"focus\", (function focusHandler() {\r\n eventsEngine.off($nextCell, \"focus\", focusHandler);\r\n eventsEngine.trigger($nextCell, \"dxclick\")\r\n }))\r\n }\r\n },\r\n _handleTabKeyOnMasterDetailCell: function(eventTarget, direction) {\r\n var result = this.callBase(eventTarget, direction);\r\n var $currentCell = this._getFocusedCell();\r\n var $row = $currentCell && $currentCell.parent();\r\n if (!result && $row && $row.length) {\r\n var $dataCells = getDataCellElements($row);\r\n var $targetCell = \"next\" === direction ? $dataCells.last() : $dataCells.first();\r\n var rowIndex = $row.get(0).rowIndex;\r\n var adaptiveController = this._adaptiveController;\r\n var key = this._dataController.getKeyByRowIndex(\"next\" === direction ? rowIndex : rowIndex - 1);\r\n var isCellElementsEquals = $currentCell && $targetCell && $currentCell.get(0) === $targetCell.get(0);\r\n return adaptiveController.isAdaptiveDetailRowExpanded(key) && isCellElementsEquals\r\n }\r\n return result\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._adaptiveController = this.getController(\"adaptiveColumns\")\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.virtual_columns_core.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 function foreachColumnInfo(info, callback, rowIndex, offsets, columnCount, lastProcessedIndexes) {\r\n rowIndex = rowIndex || 0;\r\n offsets = offsets || [];\r\n lastProcessedIndexes = lastProcessedIndexes || [];\r\n offsets[rowIndex] = offsets[rowIndex] || 0;\r\n var row = info[rowIndex];\r\n var startIndex = lastProcessedIndexes[rowIndex] + 1 || 0;\r\n var processedColumnCount = 0;\r\n var colIndex;\r\n if (!row) {\r\n return\r\n }\r\n for (colIndex = startIndex; colIndex < row.length; colIndex++) {\r\n var cell = row[colIndex];\r\n var visibleIndex = colIndex + offsets[rowIndex];\r\n var colspan = cell.colspan || 1;\r\n foreachColumnInfo(info, callback, rowIndex + (cell.rowspan || 1), offsets, colspan, lastProcessedIndexes);\r\n offsets[rowIndex] += colspan - 1;\r\n processedColumnCount += colspan;\r\n if (cell.rowspan) {\r\n for (var i = rowIndex + 1; i < rowIndex + cell.rowspan; i++) {\r\n offsets[i] = offsets[i] || 0;\r\n offsets[i] += cell.colspan || 1\r\n }\r\n }\r\n if (false === callback(cell, visibleIndex, rowIndex, colIndex)) {\r\n break\r\n }\r\n if (void 0 !== columnCount && processedColumnCount >= columnCount) {\r\n break\r\n }\r\n }\r\n lastProcessedIndexes[rowIndex] = colIndex\r\n}\r\nexport function createColumnsInfo(info, startIndex, endIndex) {\r\n var newInfo = [];\r\n foreachColumnInfo(info, (function(columnInfo, visibleIndex, rowIndex) {\r\n var cell = columnInfo;\r\n var colspan;\r\n var cellColspan = cell.colspan || 1;\r\n var isVisible = visibleIndex + cellColspan - 1 >= startIndex && visibleIndex < endIndex;\r\n newInfo[rowIndex] = newInfo[rowIndex] || [];\r\n if (isVisible) {\r\n if (visibleIndex < startIndex) {\r\n colspan = cellColspan - (startIndex - visibleIndex);\r\n visibleIndex = startIndex\r\n } else {\r\n colspan = cellColspan\r\n }\r\n if (visibleIndex + colspan > endIndex) {\r\n colspan = endIndex - visibleIndex\r\n }\r\n if (colspan !== cellColspan) {\r\n cell = extend({}, cell, {\r\n colspan: colspan\r\n })\r\n }\r\n newInfo[rowIndex].push(cell)\r\n } else if (visibleIndex > endIndex) {\r\n return false\r\n }\r\n }));\r\n for (var i = 0; i < newInfo.length; i++) {\r\n newInfo[i] = newInfo[i] || []\r\n }\r\n return newInfo\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.adaptivity.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n adaptivityModule\r\n} from \"../grid_core/ui.grid_core.adaptivity\";\r\ngridCore.registerModule(\"adaptivity\", adaptivityModule);\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.virtual_columns.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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} from \"../../core/utils/window\";\r\nimport {\r\n createColumnsInfo\r\n} from \"./ui.grid_core.virtual_columns_core\";\r\nvar DEFAULT_COLUMN_WIDTH = 50;\r\nvar VirtualScrollingRowsViewExtender = {\r\n _resizeCore: function() {\r\n this.callBase.apply(this, arguments);\r\n this._columnsController.resize()\r\n },\r\n _handleScroll: function(e) {\r\n var that = this;\r\n var scrollable = this.getScrollable();\r\n var left = e.scrollOffset.left;\r\n that.callBase.apply(that, arguments);\r\n if (that.option(\"rtlEnabled\") && scrollable) {\r\n left = scrollable.$content().width() - scrollable.$element().width() - left\r\n }\r\n that._columnsController.setScrollPosition(left)\r\n }\r\n};\r\nvar HeaderViewExtender = {\r\n _renderCore: function() {\r\n this.callBase.apply(this, arguments);\r\n if (this._columnsController.isVirtualMode()) {\r\n this._updateScrollLeftPosition()\r\n }\r\n }\r\n};\r\nvar ColumnsControllerExtender = function() {\r\n var getWidths = function(columns) {\r\n return columns.map(column => column.visibleWidth || parseFloat(column.width) || DEFAULT_COLUMN_WIDTH)\r\n };\r\n var members = {\r\n init: function() {\r\n this.callBase();\r\n this._beginPageIndex = 0;\r\n this._endPageIndex = 0;\r\n this._position = 0;\r\n this._virtualVisibleColumns = {}\r\n },\r\n resetColumnsCache: function() {\r\n this.callBase();\r\n this._virtualVisibleColumns = {}\r\n },\r\n getBeginPageIndex: function(position) {\r\n var visibleColumns = this.getVisibleColumns(void 0, true);\r\n var widths = getWidths(visibleColumns);\r\n var currentPosition = 0;\r\n for (var index = 0; index < widths.length; index++) {\r\n if (currentPosition >= position) {\r\n return Math.floor(index / this.getColumnPageSize())\r\n }\r\n currentPosition += widths[index]\r\n }\r\n return 0\r\n },\r\n getTotalWidth: function() {\r\n var width = this.option(\"width\");\r\n if (\"number\" === typeof width) {\r\n return width\r\n }\r\n return this.getController(\"resizing\")._lastWidth || this.component.$element().outerWidth()\r\n },\r\n getEndPageIndex: function(position) {\r\n var visibleColumns = this.getVisibleColumns(void 0, true);\r\n var widths = getWidths(visibleColumns);\r\n var currentPosition = 0;\r\n position += this.getTotalWidth();\r\n for (var index = 0; index < widths.length; index++) {\r\n if (currentPosition >= position) {\r\n return Math.ceil(index / this.getColumnPageSize())\r\n }\r\n currentPosition += widths[index]\r\n }\r\n return Math.ceil(widths.length / this.getColumnPageSize())\r\n },\r\n getColumnPageSize: function() {\r\n return this.option(\"scrolling.columnPageSize\")\r\n },\r\n _fireColumnsChanged: function() {\r\n var date = new Date;\r\n this.columnsChanged.fire({\r\n optionNames: {\r\n all: true,\r\n length: 1\r\n },\r\n changeTypes: {\r\n columns: true,\r\n length: 1\r\n }\r\n });\r\n this._renderTime = new Date - date\r\n },\r\n setScrollPosition: function(position) {\r\n var that = this;\r\n var renderingThreshold = that.option(\"scrolling.columnRenderingThreshold\");\r\n if (that._renderTime > renderingThreshold) {\r\n clearTimeout(that._changedTimeout);\r\n that._changedTimeout = setTimeout((function() {\r\n that._setScrollPositionCore(position)\r\n }), that.option(\"scrolling.timeout\"))\r\n } else {\r\n that._setScrollPositionCore(position)\r\n }\r\n },\r\n isVirtualMode: function() {\r\n return hasWindow() && \"virtual\" === this.option(\"scrolling.columnRenderingMode\")\r\n },\r\n resize: function() {\r\n this._setScrollPositionCore(this._position)\r\n },\r\n _setScrollPositionCore: function(position) {\r\n if (this.isVirtualMode()) {\r\n var beginPageIndex = this.getBeginPageIndex(position);\r\n var endPageIndex = this.getEndPageIndex(position);\r\n var needColumnsChanged = position < this._position ? this._beginPageIndex > beginPageIndex : this._endPageIndex < endPageIndex;\r\n this._position = position;\r\n if (needColumnsChanged) {\r\n this._beginPageIndex = beginPageIndex;\r\n this._endPageIndex = endPageIndex;\r\n this._fireColumnsChanged()\r\n }\r\n }\r\n },\r\n getFixedColumns: function(rowIndex, isBase) {\r\n var fixedColumns = this.callBase(rowIndex);\r\n if (this.isVirtualMode() && !isBase && fixedColumns.length) {\r\n var transparentColumnIndex = fixedColumns.map(c => c.command).indexOf(\"transparent\");\r\n fixedColumns[transparentColumnIndex].colspan = this.getVisibleColumns().length - this.callBase().length + 1;\r\n return fixedColumns\r\n }\r\n return fixedColumns\r\n },\r\n getVisibleColumns: function(rowIndex, isBase) {\r\n if (isBase || !this.isVirtualMode()) {\r\n return this.callBase(rowIndex)\r\n }\r\n if (!this._beginPageIndex && !this._endPageIndex) {\r\n this._beginPageIndex = this.getBeginPageIndex(this._position);\r\n this._endPageIndex = this.getEndPageIndex(this._position)\r\n }\r\n var beginPageIndex = this._beginPageIndex;\r\n var endPageIndex = this._endPageIndex;\r\n var visibleColumnsHash = rowIndex + \"-\" + beginPageIndex + \"-\" + endPageIndex;\r\n if (this._virtualVisibleColumns[visibleColumnsHash]) {\r\n return this._virtualVisibleColumns[visibleColumnsHash]\r\n }\r\n var visibleColumns = this.callBase();\r\n var rowCount = this.getRowCount();\r\n var pageSize = this.getColumnPageSize();\r\n var startIndex = beginPageIndex * pageSize;\r\n var endIndex = endPageIndex * pageSize;\r\n var fixedColumns = this.getFixedColumns(void 0, true);\r\n var transparentColumnIndex = fixedColumns.map(c => c.command).indexOf(\"transparent\");\r\n var beginFixedColumnCount = fixedColumns.length ? transparentColumnIndex : 0;\r\n var beginFixedColumns = visibleColumns.slice(0, beginFixedColumnCount);\r\n var beginColumns = visibleColumns.slice(beginFixedColumnCount, startIndex);\r\n var beginWidth = getWidths(beginColumns).reduce((a, b) => a + b, 0);\r\n if (!beginWidth) {\r\n startIndex = 0\r\n }\r\n var endFixedColumnCount = fixedColumns.length ? fixedColumns.length - transparentColumnIndex - 1 : 0;\r\n var endFixedColumns = visibleColumns.slice(visibleColumns.length - endFixedColumnCount);\r\n var endColumns = visibleColumns.slice(endIndex, visibleColumns.length - endFixedColumnCount);\r\n var endWidth = getWidths(endColumns).reduce((a, b) => a + b, 0);\r\n if (!endWidth) {\r\n endIndex = visibleColumns.length\r\n }\r\n if (rowCount > 1 && \"number\" === typeof rowIndex) {\r\n var columnsInfo = [];\r\n for (var i = 0; i < rowCount; i++) {\r\n columnsInfo.push(this.callBase(i))\r\n }\r\n beginFixedColumns = createColumnsInfo(columnsInfo, 0, beginFixedColumns.length)[rowIndex] || [];\r\n endFixedColumns = createColumnsInfo(columnsInfo, visibleColumns.length - endFixedColumns.length, visibleColumns.length)[rowIndex] || [];\r\n visibleColumns = createColumnsInfo(columnsInfo, startIndex, endIndex)[rowIndex] || []\r\n } else {\r\n visibleColumns = visibleColumns.slice(startIndex, endIndex)\r\n }\r\n if (beginWidth) {\r\n visibleColumns.unshift({\r\n command: \"virtual\",\r\n width: beginWidth\r\n });\r\n visibleColumns = beginFixedColumns.concat(visibleColumns)\r\n }\r\n if (endWidth) {\r\n visibleColumns.push({\r\n command: \"virtual\",\r\n width: endWidth\r\n });\r\n visibleColumns = visibleColumns.concat(endFixedColumns)\r\n }\r\n this._virtualVisibleColumns[visibleColumnsHash] = visibleColumns;\r\n return visibleColumns\r\n },\r\n getColumnIndexOffset: function() {\r\n var offset = 0;\r\n if (this._beginPageIndex > 0) {\r\n var fixedColumns = this.getFixedColumns();\r\n var transparentColumnIndex = fixedColumns.map(c => c.command).indexOf(\"transparent\");\r\n var leftFixedColumnCount = transparentColumnIndex >= 0 ? transparentColumnIndex : 0;\r\n offset = this._beginPageIndex * this.getColumnPageSize() - leftFixedColumnCount - 1\r\n }\r\n return offset > 0 ? offset : 0\r\n },\r\n dispose: function() {\r\n clearTimeout(this._changedTimeout);\r\n this.callBase.apply(this, arguments)\r\n }\r\n };\r\n return members\r\n}();\r\nexport var virtualColumnsModule = {\r\n defaultOptions: function() {\r\n return {\r\n scrolling: {\r\n columnRenderingMode: \"standard\",\r\n columnPageSize: 5,\r\n columnRenderingThreshold: 300\r\n }\r\n }\r\n },\r\n extenders: {\r\n controllers: {\r\n columns: ColumnsControllerExtender\r\n },\r\n views: {\r\n columnHeadersView: HeaderViewExtender,\r\n rowsView: VirtualScrollingRowsViewExtender\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.virtual_columns.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n virtualColumnsModule\r\n} from \"../grid_core/ui.grid_core.virtual_columns\";\r\ngridCore.registerModule(\"virtualColumns\", virtualColumnsModule);\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.export_mixin.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 _getEmptyCell: function() {\r\n return {\r\n text: \"\",\r\n value: void 0,\r\n colspan: 1,\r\n rowspan: 1\r\n }\r\n },\r\n _defaultSetter: function(value) {\r\n return !value ? 1 : value\r\n },\r\n _cloneItem: function(item) {\r\n return extend({}, item, this._getEmptyCell())\r\n },\r\n _prepareItems: function(items) {\r\n var that = this;\r\n var resultItems = [];\r\n var cols = (items[0] || []).reduce((sum, item) => sum + that._defaultSetter(item.colspan), 0);\r\n var getItem = function(items) {\r\n var rowIndex = 0;\r\n var cellIndex = 0;\r\n return function() {\r\n var row = items[rowIndex] || [];\r\n var item = row[cellIndex++];\r\n if (cellIndex >= row.length) {\r\n rowIndex++;\r\n cellIndex = 0\r\n }\r\n if (item) {\r\n item.colspan = that._defaultSetter(item.colspan);\r\n item.rowspan = that._defaultSetter(item.rowspan)\r\n }\r\n return item\r\n }\r\n }(items);\r\n\r\n function addItem(rowIndex, cellIndex, item) {\r\n var row = resultItems[rowIndex] = resultItems[rowIndex] || [];\r\n row[cellIndex] = item;\r\n if (item.colspan > 1 || item.rowspan > 1) {\r\n var clone = that._cloneItem(item);\r\n for (var c = 1; c < item.colspan; c++) {\r\n addItem(rowIndex, cellIndex + c, clone)\r\n }\r\n for (var r = 1; r < item.rowspan; r++) {\r\n for (var _c = 0; _c < item.colspan; _c++) {\r\n addItem(rowIndex + r, cellIndex + _c, clone)\r\n }\r\n }\r\n }\r\n }\r\n var item = getItem();\r\n var rowIndex = 0;\r\n while (item) {\r\n for (var cellIndex = 0; cellIndex < cols; cellIndex++) {\r\n if (!item) {\r\n break\r\n }\r\n if (resultItems[rowIndex] && resultItems[rowIndex][cellIndex]) {\r\n continue\r\n }\r\n addItem(rowIndex, cellIndex, item);\r\n cellIndex += item.colspan - 1;\r\n item = getItem()\r\n }\r\n rowIndex++\r\n }\r\n return resultItems\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/exporter/file_saver.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 {\r\n getWindow,\r\n getNavigator\r\n} from \"../core/utils/window\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport errors from \"../ui/widget/ui.errors\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport {\r\n logger\r\n} from \"../core/utils/console\";\r\nvar window = getWindow();\r\nvar navigator = getNavigator();\r\nvar FILE_EXTESIONS = {\r\n EXCEL: \"xlsx\",\r\n CSS: \"css\",\r\n PNG: \"png\",\r\n JPEG: \"jpeg\",\r\n GIF: \"gif\",\r\n SVG: \"svg\",\r\n PDF: \"pdf\"\r\n};\r\nexport var MIME_TYPES = {\r\n CSS: \"text/css\",\r\n EXCEL: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\r\n PNG: \"image/png\",\r\n JPEG: \"image/jpeg\",\r\n GIF: \"image/gif\",\r\n SVG: \"image/svg+xml\",\r\n PDF: \"application/pdf\"\r\n};\r\nexport var fileSaver = {\r\n _revokeObjectURLTimeout: 3e4,\r\n _getDataUri: function(format, data) {\r\n var mimeType = this._getMimeType(format);\r\n return \"data:\".concat(mimeType, \";base64,\").concat(data)\r\n },\r\n _getMimeType: function(format) {\r\n return MIME_TYPES[format] || \"application/octet-stream\"\r\n },\r\n _linkDownloader: function(fileName, href) {\r\n var exportLinkElement = domAdapter.createElement(\"a\");\r\n exportLinkElement.download = fileName;\r\n exportLinkElement.href = href;\r\n exportLinkElement.target = \"_blank\";\r\n return exportLinkElement\r\n },\r\n _formDownloader: function(proxyUrl, fileName, contentType, data) {\r\n var formAttributes = {\r\n method: \"post\",\r\n action: proxyUrl,\r\n enctype: \"multipart/form-data\"\r\n };\r\n var exportForm = $(\"
\").css({\r\n display: \"none\"\r\n }).attr(formAttributes);\r\n\r\n function setAttributes(element, attributes) {\r\n for (var key in attributes) {\r\n element.setAttribute(key, attributes[key])\r\n }\r\n return element\r\n }\r\n exportForm.append(setAttributes(domAdapter.createElement(\"input\"), {\r\n type: \"hidden\",\r\n name: \"fileName\",\r\n value: fileName\r\n }));\r\n exportForm.append(setAttributes(domAdapter.createElement(\"input\"), {\r\n type: \"hidden\",\r\n name: \"contentType\",\r\n value: contentType\r\n }));\r\n exportForm.append(setAttributes(domAdapter.createElement(\"input\"), {\r\n type: \"hidden\",\r\n name: \"data\",\r\n value: data\r\n }));\r\n exportForm.appendTo(\"body\");\r\n eventsEngine.trigger(exportForm, \"submit\");\r\n if (eventsEngine.trigger(exportForm, \"submit\")) {\r\n exportForm.remove()\r\n }\r\n },\r\n _saveByProxy: function(proxyUrl, fileName, format, data) {\r\n var contentType = this._getMimeType(format);\r\n return this._formDownloader(proxyUrl, fileName, contentType, data)\r\n },\r\n _winJSBlobSave: function(blob, fileName, format) {\r\n var savePicker = new Windows.Storage.Pickers.FileSavePicker;\r\n savePicker.suggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.documentsLibrary;\r\n var fileExtension = FILE_EXTESIONS[format];\r\n if (fileExtension) {\r\n var mimeType = this._getMimeType(format);\r\n savePicker.fileTypeChoices.insert(mimeType, [\".\" + fileExtension])\r\n }\r\n savePicker.suggestedFileName = fileName;\r\n savePicker.pickSaveFileAsync().then((function(file) {\r\n if (file) {\r\n file.openAsync(Windows.Storage.FileAccessMode.readWrite).then((function(outputStream) {\r\n var inputStream = blob.msDetachStream();\r\n Windows.Storage.Streams.RandomAccessStream.copyAsync(inputStream, outputStream).then((function() {\r\n outputStream.flushAsync().done((function() {\r\n inputStream.close();\r\n outputStream.close()\r\n }))\r\n }))\r\n }))\r\n }\r\n }))\r\n },\r\n _click: function(link) {\r\n try {\r\n link.dispatchEvent(new MouseEvent(\"click\", {\r\n cancelable: true\r\n }))\r\n } catch (e) {\r\n var event = domAdapter.getDocument().createEvent(\"MouseEvents\");\r\n event.initMouseEvent(\"click\", true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null);\r\n link.dispatchEvent(event)\r\n }\r\n },\r\n _saveBlobAs: function(fileName, format, data) {\r\n this._blobSaved = false;\r\n if (isDefined(navigator.msSaveOrOpenBlob)) {\r\n navigator.msSaveOrOpenBlob(data, fileName);\r\n this._blobSaved = true\r\n } else if (isDefined(window.WinJS)) {\r\n this._winJSBlobSave(data, fileName, format);\r\n this._blobSaved = true\r\n } else {\r\n var URL = window.URL || window.webkitURL || window.mozURL || window.msURL || window.oURL;\r\n if (isDefined(URL)) {\r\n var objectURL = URL.createObjectURL(data);\r\n var downloadLink = this._linkDownloader(fileName, objectURL);\r\n setTimeout(() => {\r\n URL.revokeObjectURL(objectURL);\r\n this._objectUrlRevoked = true\r\n }, this._revokeObjectURLTimeout);\r\n this._click(downloadLink)\r\n } else {\r\n logger.warn(\"window.URL || window.webkitURL || window.mozURL || window.msURL || window.oURL is not defined\")\r\n }\r\n }\r\n },\r\n saveAs: function(fileName, format, data, proxyURL, forceProxy) {\r\n var fileExtension = FILE_EXTESIONS[format];\r\n if (fileExtension) {\r\n fileName += \".\" + fileExtension\r\n }\r\n if (isDefined(proxyURL)) {\r\n errors.log(\"W0001\", \"Export\", \"proxyURL\", \"19.2\", \"This option is no longer required\")\r\n }\r\n if (forceProxy) {\r\n this._saveByProxy(proxyURL, fileName, format, data)\r\n } else if (isFunction(window.Blob)) {\r\n this._saveBlobAs(fileName, format, data)\r\n } else if (isDefined(proxyURL) && !isDefined(navigator.userAgent.match(/iPad/i))) {\r\n this._saveByProxy(proxyURL, fileName, format, data)\r\n } else {\r\n if (!isDefined(navigator.userAgent.match(/iPad/i))) {\r\n errors.log(\"E1034\")\r\n }\r\n var downloadLink = this._linkDownloader(fileName, this._getDataUri(format, data));\r\n this._click(downloadLink)\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/language_codes.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 localizationCoreUtils from \"./core\";\r\nvar LANGUAGE_CODES = {\r\n ar: 1,\r\n bg: 2,\r\n ca: 3,\r\n \"zh-Hans\": 4,\r\n cs: 5,\r\n da: 6,\r\n de: 7,\r\n el: 8,\r\n en: 9,\r\n es: 10,\r\n fi: 11,\r\n fr: 12,\r\n he: 13,\r\n hu: 14,\r\n is: 15,\r\n it: 16,\r\n ja: 17,\r\n ko: 18,\r\n nl: 19,\r\n no: 20,\r\n pl: 21,\r\n pt: 22,\r\n rm: 23,\r\n ro: 24,\r\n ru: 25,\r\n hr: 26,\r\n sk: 27,\r\n sq: 28,\r\n sv: 29,\r\n th: 30,\r\n tr: 31,\r\n ur: 32,\r\n id: 33,\r\n uk: 34,\r\n be: 35,\r\n sl: 36,\r\n et: 37,\r\n lv: 38,\r\n lt: 39,\r\n tg: 40,\r\n fa: 41,\r\n vi: 42,\r\n hy: 43,\r\n az: 44,\r\n eu: 45,\r\n hsb: 46,\r\n mk: 47,\r\n tn: 50,\r\n xh: 52,\r\n zu: 53,\r\n af: 54,\r\n ka: 55,\r\n fo: 56,\r\n hi: 57,\r\n mt: 58,\r\n se: 59,\r\n ga: 60,\r\n ms: 62,\r\n kk: 63,\r\n ky: 64,\r\n sw: 65,\r\n tk: 66,\r\n uz: 67,\r\n tt: 68,\r\n bn: 69,\r\n pa: 70,\r\n gu: 71,\r\n or: 72,\r\n ta: 73,\r\n te: 74,\r\n kn: 75,\r\n ml: 76,\r\n as: 77,\r\n mr: 78,\r\n sa: 79,\r\n mn: 80,\r\n bo: 81,\r\n cy: 82,\r\n km: 83,\r\n lo: 84,\r\n gl: 86,\r\n kok: 87,\r\n syr: 90,\r\n si: 91,\r\n iu: 93,\r\n am: 94,\r\n tzm: 95,\r\n ne: 97,\r\n fy: 98,\r\n ps: 99,\r\n fil: 100,\r\n dv: 101,\r\n ha: 104,\r\n yo: 106,\r\n quz: 107,\r\n nso: 108,\r\n ba: 109,\r\n lb: 110,\r\n kl: 111,\r\n ig: 112,\r\n ii: 120,\r\n arn: 122,\r\n moh: 124,\r\n br: 126,\r\n ug: 128,\r\n mi: 129,\r\n oc: 130,\r\n co: 131,\r\n gsw: 132,\r\n sah: 133,\r\n qut: 134,\r\n rw: 135,\r\n wo: 136,\r\n prs: 140,\r\n gd: 145,\r\n \"ar-SA\": 1025,\r\n \"bg-BG\": 1026,\r\n \"ca-ES\": 1027,\r\n \"zh-TW\": 1028,\r\n \"cs-CZ\": 1029,\r\n \"da-DK\": 1030,\r\n \"de-DE\": 1031,\r\n \"el-GR\": 1032,\r\n \"en-US\": 1033,\r\n \"fi-FI\": 1035,\r\n \"fr-FR\": 1036,\r\n \"he-IL\": 1037,\r\n \"hu-HU\": 1038,\r\n \"is-IS\": 1039,\r\n \"it-IT\": 1040,\r\n \"ja-JP\": 1041,\r\n \"ko-KR\": 1042,\r\n \"nl-NL\": 1043,\r\n \"nb-NO\": 1044,\r\n \"pl-PL\": 1045,\r\n \"pt-BR\": 1046,\r\n \"rm-CH\": 1047,\r\n \"ro-RO\": 1048,\r\n \"ru-RU\": 1049,\r\n \"hr-HR\": 1050,\r\n \"sk-SK\": 1051,\r\n \"sq-AL\": 1052,\r\n \"sv-SE\": 1053,\r\n \"th-TH\": 1054,\r\n \"tr-TR\": 1055,\r\n \"ur-PK\": 1056,\r\n \"id-ID\": 1057,\r\n \"uk-UA\": 1058,\r\n \"be-BY\": 1059,\r\n \"sl-SI\": 1060,\r\n \"et-EE\": 1061,\r\n \"lv-LV\": 1062,\r\n \"lt-LT\": 1063,\r\n \"tg-Cyrl-TJ\": 1064,\r\n \"fa-IR\": 1065,\r\n \"vi-VN\": 1066,\r\n \"hy-AM\": 1067,\r\n \"az-Latn-AZ\": 1068,\r\n \"eu-ES\": 1069,\r\n \"hsb-DE\": 1070,\r\n \"mk-MK\": 1071,\r\n \"tn-ZA\": 1074,\r\n \"xh-ZA\": 1076,\r\n \"zu-ZA\": 1077,\r\n \"af-ZA\": 1078,\r\n \"ka-GE\": 1079,\r\n \"fo-FO\": 1080,\r\n \"hi-IN\": 1081,\r\n \"mt-MT\": 1082,\r\n \"se-NO\": 1083,\r\n \"ms-MY\": 1086,\r\n \"kk-KZ\": 1087,\r\n \"ky-KG\": 1088,\r\n \"sw-KE\": 1089,\r\n \"tk-TM\": 1090,\r\n \"uz-Latn-UZ\": 1091,\r\n \"tt-RU\": 1092,\r\n \"bn-IN\": 1093,\r\n \"pa-IN\": 1094,\r\n \"gu-IN\": 1095,\r\n \"or-IN\": 1096,\r\n \"ta-IN\": 1097,\r\n \"te-IN\": 1098,\r\n \"kn-IN\": 1099,\r\n \"ml-IN\": 1100,\r\n \"as-IN\": 1101,\r\n \"mr-IN\": 1102,\r\n \"sa-IN\": 1103,\r\n \"mn-MN\": 1104,\r\n \"bo-CN\": 1105,\r\n \"cy-GB\": 1106,\r\n \"km-KH\": 1107,\r\n \"lo-LA\": 1108,\r\n \"gl-ES\": 1110,\r\n \"kok-IN\": 1111,\r\n \"syr-SY\": 1114,\r\n \"si-LK\": 1115,\r\n \"iu-Cans-CA\": 1117,\r\n \"am-ET\": 1118,\r\n \"ne-NP\": 1121,\r\n \"fy-NL\": 1122,\r\n \"ps-AF\": 1123,\r\n \"fil-PH\": 1124,\r\n \"dv-MV\": 1125,\r\n \"ha-Latn-NG\": 1128,\r\n \"yo-NG\": 1130,\r\n \"quz-BO\": 1131,\r\n \"nso-ZA\": 1132,\r\n \"ba-RU\": 1133,\r\n \"lb-LU\": 1134,\r\n \"kl-GL\": 1135,\r\n \"ig-NG\": 1136,\r\n \"ii-CN\": 1144,\r\n \"arn-CL\": 1146,\r\n \"moh-CA\": 1148,\r\n \"br-FR\": 1150,\r\n \"ug-CN\": 1152,\r\n \"mi-NZ\": 1153,\r\n \"oc-FR\": 1154,\r\n \"co-FR\": 1155,\r\n \"gsw-FR\": 1156,\r\n \"sah-RU\": 1157,\r\n \"qut-GT\": 1158,\r\n \"rw-RW\": 1159,\r\n \"wo-SN\": 1160,\r\n \"prs-AF\": 1164,\r\n \"gd-GB\": 1169,\r\n \"ar-IQ\": 2049,\r\n \"zh-CN\": 2052,\r\n \"de-CH\": 2055,\r\n \"en-GB\": 2057,\r\n \"es-MX\": 2058,\r\n \"fr-BE\": 2060,\r\n \"it-CH\": 2064,\r\n \"nl-BE\": 2067,\r\n \"nn-NO\": 2068,\r\n \"pt-PT\": 2070,\r\n \"sr-Latn-CS\": 2074,\r\n \"sv-FI\": 2077,\r\n \"az-Cyrl-AZ\": 2092,\r\n \"dsb-DE\": 2094,\r\n \"se-SE\": 2107,\r\n \"ga-IE\": 2108,\r\n \"ms-BN\": 2110,\r\n \"uz-Cyrl-UZ\": 2115,\r\n \"bn-BD\": 2117,\r\n \"mn-Mong-CN\": 2128,\r\n \"iu-Latn-CA\": 2141,\r\n \"tzm-Latn-DZ\": 2143,\r\n \"quz-EC\": 2155,\r\n \"ar-EG\": 3073,\r\n \"zh-HK\": 3076,\r\n \"de-AT\": 3079,\r\n \"en-AU\": 3081,\r\n \"es-ES\": 3082,\r\n \"fr-CA\": 3084,\r\n \"sr-Cyrl-CS\": 3098,\r\n \"se-FI\": 3131,\r\n \"quz-PE\": 3179,\r\n \"ar-LY\": 4097,\r\n \"zh-SG\": 4100,\r\n \"de-LU\": 4103,\r\n \"en-CA\": 4105,\r\n \"es-GT\": 4106,\r\n \"fr-CH\": 4108,\r\n \"hr-BA\": 4122,\r\n \"smj-NO\": 4155,\r\n \"ar-DZ\": 5121,\r\n \"zh-MO\": 5124,\r\n \"de-LI\": 5127,\r\n \"en-NZ\": 5129,\r\n \"es-CR\": 5130,\r\n \"fr-LU\": 5132,\r\n \"bs-Latn-BA\": 5146,\r\n \"smj-SE\": 5179,\r\n \"ar-MA\": 6145,\r\n \"en-IE\": 6153,\r\n \"es-PA\": 6154,\r\n \"fr-MC\": 6156,\r\n \"sr-Latn-BA\": 6170,\r\n \"sma-NO\": 6203,\r\n \"ar-TN\": 7169,\r\n \"en-ZA\": 7177,\r\n \"es-DO\": 7178,\r\n \"sr-Cyrl-BA\": 7194,\r\n \"sma-SE\": 7227,\r\n \"ar-OM\": 8193,\r\n \"en-JM\": 8201,\r\n \"es-VE\": 8202,\r\n \"bs-Cyrl-BA\": 8218,\r\n \"sms-FI\": 8251,\r\n \"ar-YE\": 9217,\r\n \"en-029\": 9225,\r\n \"es-CO\": 9226,\r\n \"sr-Latn-RS\": 9242,\r\n \"smn-FI\": 9275,\r\n \"ar-SY\": 10241,\r\n \"en-BZ\": 10249,\r\n \"es-PE\": 10250,\r\n \"sr-Cyrl-RS\": 10266,\r\n \"ar-JO\": 11265,\r\n \"en-TT\": 11273,\r\n \"es-AR\": 11274,\r\n \"sr-Latn-ME\": 11290,\r\n \"ar-LB\": 12289,\r\n \"en-ZW\": 12297,\r\n \"es-EC\": 12298,\r\n \"sr-Cyrl-ME\": 12314,\r\n \"ar-KW\": 13313,\r\n \"en-PH\": 13321,\r\n \"es-CL\": 13322,\r\n \"ar-AE\": 14337,\r\n \"es-UY\": 14346,\r\n \"ar-BH\": 15361,\r\n \"es-PY\": 15370,\r\n \"ar-QA\": 16385,\r\n \"en-IN\": 16393,\r\n \"es-BO\": 16394,\r\n \"en-MY\": 17417,\r\n \"es-SV\": 17418,\r\n \"en-SG\": 18441,\r\n \"es-HN\": 18442,\r\n \"es-NI\": 19466,\r\n \"es-PR\": 20490,\r\n \"es-US\": 21514,\r\n \"bs-Cyrl\": 25626,\r\n \"bs-Latn\": 26650,\r\n \"sr-Cyrl\": 27674,\r\n \"sr-Latn\": 28698,\r\n smn: 28731,\r\n \"az-Cyrl\": 29740,\r\n sms: 29755,\r\n zh: 30724,\r\n nn: 30740,\r\n bs: 30746,\r\n \"az-Latn\": 30764,\r\n sma: 30779,\r\n \"uz-Cyrl\": 30787,\r\n \"mn-Cyrl\": 30800,\r\n \"iu-Cans\": 30813,\r\n \"zh-Hant\": 31748,\r\n nb: 31764,\r\n sr: 31770,\r\n \"tg-Cyrl\": 31784,\r\n dsb: 31790,\r\n smj: 31803,\r\n \"uz-Latn\": 31811,\r\n \"mn-Mong\": 31824,\r\n \"iu-Latn\": 31837,\r\n \"tzm-Latn\": 31839,\r\n \"ha-Latn\": 31848\r\n};\r\nexport function getLanguageId() {\r\n return LANGUAGE_CODES[localizationCoreUtils.locale()]\r\n}\r\n","/**\r\n * DevExtreme (esm/exporter/excel_format_converter.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 format as stringFormat\r\n} from \"../core/utils/string\";\r\nimport numberFormatter from \"../localization/number\";\r\nimport dateLocalization from \"../localization/date\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../core/utils/type\";\r\nimport {\r\n getFormat\r\n} from \"../localization/ldml/date.format\";\r\nimport {\r\n getLanguageId\r\n} from \"../localization/language_codes\";\r\nimport \"../localization/currency\";\r\nvar ARABIC_ZERO_CODE = 1632;\r\nvar DEFINED_NUMBER_FORMTATS = {\r\n thousands: \"#,##0{0},"K"\",\r\n millions: \"#,##0{0},,"M"\",\r\n billions: \"#,##0{0},,,"B"\",\r\n trillions: \"#,##0{0},,,,"T"\",\r\n percent: \"0{0}%\",\r\n decimal: \"#{0}\",\r\n fixedpoint: \"#,##0{0}\",\r\n exponential: \"0{0}E+00\",\r\n currency: \" \"\r\n};\r\nvar PERIOD_REGEXP = /a+/g;\r\nvar DAY_REGEXP = /E/g;\r\nvar DO_REGEXP = /dE+/g;\r\nvar STANDALONE_MONTH_REGEXP = /L/g;\r\nvar HOUR_REGEXP = /h/g;\r\nvar ANY_REGEXP = /./g;\r\nvar excelFormatConverter = {\r\n _applyPrecision: function(format, precision) {\r\n var result;\r\n var i;\r\n if (precision > 0) {\r\n result = \"decimal\" !== format ? \".\" : \"\";\r\n for (i = 0; i < precision; i++) {\r\n result += \"0\"\r\n }\r\n return result\r\n }\r\n return \"\"\r\n },\r\n _hasArabicDigits: function(text) {\r\n var code;\r\n for (var i = 0; i < text.length; i++) {\r\n code = text.charCodeAt(i);\r\n if (code >= ARABIC_ZERO_CODE && code < ARABIC_ZERO_CODE + 10) {\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n _convertDateFormatToOpenXml: function(format) {\r\n return format.split(\"/\").join(\"\\\\/\").split(\"'\").map((function(datePart, index) {\r\n if (index % 2 === 0) {\r\n return datePart.replace(PERIOD_REGEXP, \"AM/PM\").replace(DO_REGEXP, \"d\").replace(DAY_REGEXP, \"d\").replace(STANDALONE_MONTH_REGEXP, \"M\").replace(HOUR_REGEXP, \"H\").split(\"[\").join(\"\\\\[\").split(\"]\").join(\"\\\\]\")\r\n }\r\n if (datePart) {\r\n return datePart.replace(ANY_REGEXP, \"\\\\$&\")\r\n }\r\n return \"'\"\r\n })).join(\"\")\r\n },\r\n _convertDateFormat: function(format) {\r\n var formattedValue = (dateLocalization.format(new Date(2009, 8, 8, 6, 5, 4), format) || \"\").toString();\r\n var result = getFormat(value => dateLocalization.format(value, format));\r\n if (result) {\r\n result = this._convertDateFormatToOpenXml(result);\r\n result = this._getLanguageInfo(formattedValue) + result\r\n }\r\n return result\r\n },\r\n _getLanguageInfo: function(defaultPattern) {\r\n var languageID = getLanguageId();\r\n var languageIDStr = languageID ? languageID.toString(16) : \"\";\r\n var languageInfo = \"\";\r\n if (this._hasArabicDigits(defaultPattern)) {\r\n while (languageIDStr.length < 3) {\r\n languageIDStr = \"0\" + languageIDStr\r\n }\r\n languageInfo = \"[$-2010\" + languageIDStr + \"]\"\r\n } else if (languageIDStr) {\r\n languageInfo = \"[$-\" + languageIDStr + \"]\"\r\n }\r\n return languageInfo\r\n },\r\n _convertNumberFormat: function(format, precision, currency) {\r\n var result;\r\n var excelFormat;\r\n if (\"currency\" === format) {\r\n excelFormat = numberFormatter.getOpenXmlCurrencyFormat(currency)\r\n } else {\r\n excelFormat = DEFINED_NUMBER_FORMTATS[format.toLowerCase()]\r\n }\r\n if (excelFormat) {\r\n result = stringFormat(excelFormat, this._applyPrecision(format, precision))\r\n }\r\n return result\r\n },\r\n convertFormat: function(format, precision, type, currency) {\r\n if (isDefined(format)) {\r\n if (\"date\" === type) {\r\n return excelFormatConverter._convertDateFormat(format)\r\n } else if (isString(format) && DEFINED_NUMBER_FORMTATS[format.toLowerCase()]) {\r\n return excelFormatConverter._convertNumberFormat(format, precision, currency)\r\n }\r\n }\r\n }\r\n};\r\nexport default excelFormatConverter;\r\n","/**\r\n * DevExtreme (esm/exporter/excel/excel.tag_helper.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 isDefined\r\n} from \"../../core/utils/type\";\r\nvar tagHelper = {\r\n toXml: function(tagName, attributes, content) {\r\n var result = [\"<\", tagName];\r\n for (var attributeName in attributes) {\r\n var attributeValue = attributes[attributeName];\r\n if (isDefined(attributeValue)) {\r\n result.push(\" \", attributeName, '=\"', attributeValue, '\"')\r\n }\r\n }\r\n if (isDefined(content) && \"\" !== content) {\r\n result.push(\">\", content, \"\")\r\n } else {\r\n result.push(\" />\")\r\n }\r\n return result.join(\"\")\r\n }\r\n};\r\nexport default tagHelper;\r\n","/**\r\n * DevExtreme (esm/exporter/excel/excel.cell_alignment_helper.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 isDefined\r\n} from \"../../core/utils/type\";\r\nimport tagHelper from \"./excel.tag_helper\";\r\nvar cellAlignmentHelper = {\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if (isDefined(sourceObj)) {\r\n result = {\r\n vertical: sourceObj.vertical,\r\n wrapText: sourceObj.wrapText,\r\n horizontal: sourceObj.horizontal\r\n };\r\n if (cellAlignmentHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n copy: function(source) {\r\n var result = null;\r\n if (isDefined(source)) {\r\n result = {};\r\n if (void 0 !== source.horizontal) {\r\n result.horizontal = source.horizontal\r\n }\r\n if (void 0 !== source.vertical) {\r\n result.vertical = source.vertical\r\n }\r\n if (void 0 !== source.wrapText) {\r\n result.wrapText = source.wrapText\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return cellAlignmentHelper.isEmpty(leftTag) && cellAlignmentHelper.isEmpty(rightTag) || isDefined(leftTag) && isDefined(rightTag) && leftTag.vertical === rightTag.vertical && leftTag.wrapText === rightTag.wrapText && leftTag.horizontal === rightTag.horizontal\r\n },\r\n isEmpty: function(tag) {\r\n return !isDefined(tag) || !isDefined(tag.vertical) && !isDefined(tag.wrapText) && !isDefined(tag.horizontal)\r\n },\r\n toXml: function(tag) {\r\n return tagHelper.toXml(\"alignment\", {\r\n vertical: tag.vertical,\r\n wrapText: isDefined(tag.wrapText) ? Number(tag.wrapText) : void 0,\r\n horizontal: tag.horizontal\r\n })\r\n }\r\n};\r\nexport default cellAlignmentHelper;\r\n","/**\r\n * DevExtreme (esm/exporter/excel/excel.color_helper.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 isDefined\r\n} from \"../../core/utils/type\";\r\nimport tagHelper from \"./excel.tag_helper\";\r\nvar colorHelper = {\r\n _tryConvertColor: function(source) {\r\n if (\"string\" !== typeof source) {\r\n return source\r\n }\r\n var result;\r\n if (source.length > 0 && \"#\" === source[0]) {\r\n var colorCode = source.substr(1, source.length);\r\n if (6 === colorCode.length) {\r\n result = \"FF\" + colorCode\r\n } else if (8 === colorCode.length) {\r\n result = colorCode[6] + colorCode[7] + colorCode.substr(0, 6)\r\n } else {\r\n result = colorCode\r\n }\r\n } else {\r\n result = source\r\n }\r\n return result\r\n },\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if (isDefined(sourceObj)) {\r\n if (\"string\" === typeof sourceObj) {\r\n result = {\r\n rgb: this._tryConvertColor(sourceObj)\r\n }\r\n } else {\r\n result = {\r\n rgb: this._tryConvertColor(sourceObj.rgb),\r\n theme: sourceObj.theme\r\n }\r\n }\r\n if (colorHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n copy: function(source) {\r\n var result = null;\r\n if (isDefined(source)) {\r\n if (\"string\" === typeof source) {\r\n result = source\r\n } else {\r\n result = {};\r\n if (void 0 !== source.rgb) {\r\n result.rgb = source.rgb\r\n }\r\n if (void 0 !== source.theme) {\r\n result.theme = source.theme\r\n }\r\n }\r\n }\r\n return result\r\n },\r\n isEmpty: function(tag) {\r\n return !isDefined(tag) || !isDefined(tag.rgb) && !isDefined(tag.theme)\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return colorHelper.isEmpty(leftTag) && colorHelper.isEmpty(rightTag) || isDefined(leftTag) && isDefined(rightTag) && leftTag.rgb === rightTag.rgb && leftTag.theme === rightTag.theme\r\n },\r\n toXml: function(tagName, tag) {\r\n return tagHelper.toXml(tagName, {\r\n rgb: tag.rgb,\r\n theme: tag.theme\r\n })\r\n }\r\n};\r\nexport default colorHelper;\r\n","/**\r\n * DevExtreme (esm/exporter/excel/excel.pattern_fill_helper.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 isDefined\r\n} from \"../../core/utils/type\";\r\nimport tagHelper from \"./excel.tag_helper\";\r\nimport colorHelper from \"./excel.color_helper\";\r\nvar patternFillHelper = {\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if (isDefined(sourceObj)) {\r\n result = {\r\n patternType: sourceObj.patternType,\r\n backgroundColor: colorHelper.tryCreateTag(sourceObj.backgroundColor),\r\n foregroundColor: colorHelper.tryCreateTag(sourceObj.foregroundColor)\r\n };\r\n if (patternFillHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n copy: function(source) {\r\n var result = null;\r\n if (isDefined(source)) {\r\n result = {};\r\n if (void 0 !== source.patternType) {\r\n result.patternType = source.patternType\r\n }\r\n if (void 0 !== source.backgroundColor) {\r\n result.backgroundColor = colorHelper.copy(source.backgroundColor)\r\n }\r\n if (void 0 !== source.foregroundColor) {\r\n result.foregroundColor = colorHelper.copy(source.foregroundColor)\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return patternFillHelper.isEmpty(leftTag) && patternFillHelper.isEmpty(rightTag) || isDefined(leftTag) && isDefined(rightTag) && leftTag.patternType === rightTag.patternType && colorHelper.areEqual(leftTag.backgroundColor, rightTag.backgroundColor) && colorHelper.areEqual(leftTag.foregroundColor, rightTag.foregroundColor)\r\n },\r\n isEmpty: function(tag) {\r\n return !isDefined(tag) || !isDefined(tag.patternType)\r\n },\r\n toXml: function(tag) {\r\n var content = [isDefined(tag.foregroundColor) ? colorHelper.toXml(\"fgColor\", tag.foregroundColor) : \"\", isDefined(tag.backgroundColor) ? colorHelper.toXml(\"bgColor\", tag.backgroundColor) : \"\"].join(\"\");\r\n return tagHelper.toXml(\"patternFill\", {\r\n patternType: tag.patternType\r\n }, content)\r\n }\r\n};\r\nexport default patternFillHelper;\r\n","/**\r\n * DevExtreme (esm/exporter/excel/excel.fill_helper.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 isDefined\r\n} from \"../../core/utils/type\";\r\nimport tagHelper from \"./excel.tag_helper\";\r\nimport patternFillHelper from \"./excel.pattern_fill_helper\";\r\nvar fillHelper = {\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if (isDefined(sourceObj)) {\r\n result = {\r\n patternFill: patternFillHelper.tryCreateTag(sourceObj.patternFill)\r\n };\r\n if (fillHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n tryCreateFillFromSimpleFormat: function() {\r\n var {\r\n backgroundColor: backgroundColor,\r\n fillPatternType: fillPatternType,\r\n fillPatternColor: fillPatternColor\r\n } = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\r\n if (isDefined(backgroundColor) && !(isDefined(fillPatternType) && isDefined(fillPatternColor))) {\r\n return {\r\n patternFill: {\r\n patternType: \"solid\",\r\n foregroundColor: {\r\n rgb: backgroundColor\r\n }\r\n }\r\n }\r\n } else if (isDefined(fillPatternType) && isDefined(fillPatternColor)) {\r\n return {\r\n patternFill: {\r\n patternType: fillPatternType,\r\n foregroundColor: {\r\n rgb: fillPatternColor\r\n },\r\n backgroundColor: {\r\n rgb: backgroundColor\r\n }\r\n }\r\n }\r\n }\r\n },\r\n copySimpleFormat: function(source, target) {\r\n if (void 0 !== source.backgroundColor) {\r\n target.backgroundColor = source.backgroundColor\r\n }\r\n if (void 0 !== source.fillPatternType) {\r\n target.fillPatternType = source.fillPatternType\r\n }\r\n if (void 0 !== source.fillPatternColor) {\r\n target.fillPatternColor = source.fillPatternColor\r\n }\r\n },\r\n copy: function(source) {\r\n var result = null;\r\n if (isDefined(source)) {\r\n result = {};\r\n if (void 0 !== source.patternFill) {\r\n result.patternFill = patternFillHelper.copy(source.patternFill)\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return fillHelper.isEmpty(leftTag) && fillHelper.isEmpty(rightTag) || isDefined(leftTag) && isDefined(rightTag) && patternFillHelper.areEqual(leftTag.patternFill, rightTag.patternFill)\r\n },\r\n isEmpty: function(tag) {\r\n return !isDefined(tag) || patternFillHelper.isEmpty(tag.patternFill)\r\n },\r\n toXml: function(tag) {\r\n return tagHelper.toXml(\"fill\", {}, patternFillHelper.toXml(tag.patternFill))\r\n }\r\n};\r\nexport default fillHelper;\r\n","/**\r\n * DevExtreme (esm/exporter/excel/excel.font_helper.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 isDefined\r\n} from \"../../core/utils/type\";\r\nimport tagHelper from \"./excel.tag_helper\";\r\nimport colorHelper from \"./excel.color_helper\";\r\nvar fontHelper = {\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if (isDefined(sourceObj)) {\r\n result = {\r\n size: sourceObj.size,\r\n name: sourceObj.name,\r\n family: sourceObj.family,\r\n scheme: sourceObj.scheme,\r\n bold: sourceObj.bold,\r\n italic: sourceObj.italic,\r\n underline: sourceObj.underline,\r\n color: colorHelper.tryCreateTag(sourceObj.color)\r\n };\r\n if (fontHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n copy: function(source) {\r\n var result = null;\r\n if (isDefined(source)) {\r\n result = {};\r\n if (void 0 !== source.size) {\r\n result.size = source.size\r\n }\r\n if (void 0 !== source.name) {\r\n result.name = source.name\r\n }\r\n if (void 0 !== source.family) {\r\n result.family = source.family\r\n }\r\n if (void 0 !== source.scheme) {\r\n result.scheme = source.scheme\r\n }\r\n if (void 0 !== source.bold) {\r\n result.bold = source.bold\r\n }\r\n if (void 0 !== source.italic) {\r\n result.italic = source.italic\r\n }\r\n if (void 0 !== source.underline) {\r\n result.underline = source.underline\r\n }\r\n if (void 0 !== source.color) {\r\n result.color = colorHelper.copy(source.color)\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return fontHelper.isEmpty(leftTag) && fontHelper.isEmpty(rightTag) || isDefined(leftTag) && isDefined(rightTag) && leftTag.size === rightTag.size && leftTag.name === rightTag.name && leftTag.family === rightTag.family && leftTag.scheme === rightTag.scheme && (leftTag.bold === rightTag.bold || !leftTag.bold === !rightTag.bold) && (leftTag.italic === rightTag.italic || !leftTag.italic === !rightTag.italic) && leftTag.underline === rightTag.underline && colorHelper.areEqual(leftTag.color, rightTag.color)\r\n },\r\n isEmpty: function(tag) {\r\n return !isDefined(tag) || !isDefined(tag.size) && !isDefined(tag.name) && !isDefined(tag.family) && !isDefined(tag.scheme) && (!isDefined(tag.bold) || !tag.bold) && (!isDefined(tag.italic) || !tag.italic) && !isDefined(tag.underline) && colorHelper.isEmpty(tag.color)\r\n },\r\n toXml: function(tag) {\r\n var content = [isDefined(tag.bold) && tag.bold ? tagHelper.toXml(\"b\", {}) : \"\", isDefined(tag.size) ? tagHelper.toXml(\"sz\", {\r\n val: tag.size\r\n }) : \"\", isDefined(tag.color) ? colorHelper.toXml(\"color\", tag.color) : \"\", isDefined(tag.name) ? tagHelper.toXml(\"name\", {\r\n val: tag.name\r\n }) : \"\", isDefined(tag.family) ? tagHelper.toXml(\"family\", {\r\n val: tag.family\r\n }) : \"\", isDefined(tag.scheme) ? tagHelper.toXml(\"scheme\", {\r\n val: tag.scheme\r\n }) : \"\", isDefined(tag.italic) && tag.italic ? tagHelper.toXml(\"i\", {}) : \"\", isDefined(tag.underline) ? tagHelper.toXml(\"u\", {\r\n val: tag.underline\r\n }) : \"\"].join(\"\");\r\n return tagHelper.toXml(\"font\", {}, content)\r\n }\r\n};\r\nexport default fontHelper;\r\n","/**\r\n * DevExtreme (esm/exporter/excel/excel.cell_format_helper.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 isDefined\r\n} from \"../../core/utils/type\";\r\nimport tagHelper from \"./excel.tag_helper\";\r\nimport cellAlignmentHelper from \"./excel.cell_alignment_helper\";\r\nimport fillHelper from \"./excel.fill_helper\";\r\nimport fontHelper from \"./excel.font_helper\";\r\nvar cellFormatHelper = {\r\n tryCreateTag: function(sourceObj, sharedItemsContainer) {\r\n var result = null;\r\n if (isDefined(sourceObj)) {\r\n var numberFormatId;\r\n if (\"number\" === typeof sourceObj.numberFormat) {\r\n numberFormatId = sourceObj.numberFormat\r\n } else {\r\n numberFormatId = sharedItemsContainer.registerNumberFormat(sourceObj.numberFormat)\r\n }\r\n var fill = sourceObj.fill;\r\n if (!isDefined(fill)) {\r\n fill = fillHelper.tryCreateFillFromSimpleFormat(sourceObj)\r\n }\r\n result = {\r\n numberFormatId: numberFormatId,\r\n alignment: cellAlignmentHelper.tryCreateTag(sourceObj.alignment),\r\n fontId: sharedItemsContainer.registerFont(sourceObj.font),\r\n fillId: sharedItemsContainer.registerFill(fill)\r\n };\r\n if (cellFormatHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n copy: function(source) {\r\n var result;\r\n if (null === source) {\r\n result = null\r\n } else if (isDefined(source)) {\r\n result = {};\r\n if (void 0 !== source.numberFormat) {\r\n result.numberFormat = source.numberFormat\r\n }\r\n if (void 0 !== source.fill) {\r\n result.fill = fillHelper.copy(source.fill)\r\n } else {\r\n fillHelper.copySimpleFormat(source, result)\r\n }\r\n if (void 0 !== source.alignment) {\r\n result.alignment = cellAlignmentHelper.copy(source.alignment)\r\n }\r\n if (void 0 !== source.font) {\r\n result.font = fontHelper.copy(source.font)\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return cellFormatHelper.isEmpty(leftTag) && cellFormatHelper.isEmpty(rightTag) || isDefined(leftTag) && isDefined(rightTag) && leftTag.fontId === rightTag.fontId && leftTag.numberFormatId === rightTag.numberFormatId && leftTag.fillId === rightTag.fillId && cellAlignmentHelper.areEqual(leftTag.alignment, rightTag.alignment)\r\n },\r\n isEmpty: function(tag) {\r\n return !isDefined(tag) || !isDefined(tag.fontId) && !isDefined(tag.numberFormatId) && !isDefined(tag.fillId) && cellAlignmentHelper.isEmpty(tag.alignment)\r\n },\r\n toXml: function(tag) {\r\n var isAlignmentEmpty = cellAlignmentHelper.isEmpty(tag.alignment);\r\n var applyNumberFormat;\r\n if (isDefined(tag.numberFormatId)) {\r\n applyNumberFormat = tag.numberFormatId > 0 ? 1 : 0\r\n }\r\n return tagHelper.toXml(\"xf\", {\r\n xfId: 0,\r\n applyAlignment: isAlignmentEmpty ? null : 1,\r\n fontId: tag.fontId,\r\n applyNumberFormat: applyNumberFormat,\r\n fillId: tag.fillId,\r\n numFmtId: tag.numberFormatId\r\n }, isAlignmentEmpty ? null : cellAlignmentHelper.toXml(tag.alignment))\r\n }\r\n};\r\nexport default cellFormatHelper;\r\n","/**\r\n * DevExtreme (esm/exporter/excel/excel.number_format_helper.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 isDefined\r\n} from \"../../core/utils/type\";\r\nimport tagHelper from \"./excel.tag_helper\";\r\nvar numberFormatHelper = {\r\n ID_PROPERTY_NAME: \"id\",\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if (\"string\" === typeof sourceObj) {\r\n result = {\r\n formatCode: sourceObj\r\n };\r\n if (numberFormatHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return numberFormatHelper.isEmpty(leftTag) && numberFormatHelper.isEmpty(rightTag) || isDefined(leftTag) && isDefined(rightTag) && leftTag.formatCode === rightTag.formatCode\r\n },\r\n isEmpty: function(tag) {\r\n return !isDefined(tag) || !isDefined(tag.formatCode) || \"\" === tag.formatCode\r\n },\r\n toXml: function(tag) {\r\n return tagHelper.toXml(\"numFmt\", {\r\n numFmtId: tag[numberFormatHelper.ID_PROPERTY_NAME],\r\n formatCode: tag.formatCode\r\n })\r\n }\r\n};\r\nexport default numberFormatHelper;\r\n","/**\r\n * DevExtreme (esm/exporter/excel/excel.file.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 isDefined\r\n} from \"../../core/utils/type\";\r\nimport tagHelper from \"./excel.tag_helper\";\r\nimport cellFormatHelper from \"./excel.cell_format_helper\";\r\nimport fillHelper from \"./excel.fill_helper\";\r\nimport fontHelper from \"./excel.font_helper\";\r\nimport numberFormatHelper from \"./excel.number_format_helper\";\r\nexport default class ExcelFile {\r\n constructor() {\r\n this._cellFormatTags = [];\r\n this._fillTags = [];\r\n this._fontTags = [];\r\n this._numberFormatTags = [];\r\n this._fillTags.push(fillHelper.tryCreateTag({\r\n patternFill: {\r\n patternType: \"none\"\r\n }\r\n }))\r\n }\r\n registerCellFormat(cellFormat) {\r\n var result;\r\n var cellFormatTag = cellFormatHelper.tryCreateTag(cellFormat, {\r\n registerFill: this.registerFill.bind(this),\r\n registerFont: this.registerFont.bind(this),\r\n registerNumberFormat: this.registerNumberFormat.bind(this)\r\n });\r\n if (isDefined(cellFormatTag)) {\r\n for (var i = 0; i < this._cellFormatTags.length; i++) {\r\n if (cellFormatHelper.areEqual(this._cellFormatTags[i], cellFormatTag)) {\r\n result = i;\r\n break\r\n }\r\n }\r\n if (void 0 === result) {\r\n result = this._cellFormatTags.push(cellFormatTag) - 1\r\n }\r\n }\r\n return result\r\n }\r\n static copyCellFormat(source) {\r\n return cellFormatHelper.copy(source)\r\n }\r\n generateCellFormatsXml() {\r\n var cellFormatTagsAsXmlStringsArray = this._cellFormatTags.map(tag => cellFormatHelper.toXml(tag));\r\n return tagHelper.toXml(\"cellXfs\", {\r\n count: cellFormatTagsAsXmlStringsArray.length\r\n }, cellFormatTagsAsXmlStringsArray.join(\"\"))\r\n }\r\n registerFill(fill) {\r\n var result;\r\n var fillTag = fillHelper.tryCreateTag(fill);\r\n if (isDefined(fillTag)) {\r\n for (var i = 0; i < this._fillTags.length; i++) {\r\n if (fillHelper.areEqual(this._fillTags[i], fillTag)) {\r\n result = i;\r\n break\r\n }\r\n }\r\n if (void 0 === result) {\r\n if (this._fillTags.length < 2) {\r\n this._fillTags.push(fillHelper.tryCreateTag({\r\n patternFill: {\r\n patternType: \"Gray125\"\r\n }\r\n }))\r\n }\r\n result = this._fillTags.push(fillTag) - 1\r\n }\r\n }\r\n return result\r\n }\r\n generateFillsXml() {\r\n var tagsAsXmlStringsArray = this._fillTags.map(tag => fillHelper.toXml(tag));\r\n return tagHelper.toXml(\"fills\", {\r\n count: tagsAsXmlStringsArray.length\r\n }, tagsAsXmlStringsArray.join(\"\"))\r\n }\r\n registerFont(font) {\r\n var result;\r\n var fontTag = fontHelper.tryCreateTag(font);\r\n if (isDefined(fontTag)) {\r\n for (var i = 0; i < this._fontTags.length; i++) {\r\n if (fontHelper.areEqual(this._fontTags[i], fontTag)) {\r\n result = i;\r\n break\r\n }\r\n }\r\n if (void 0 === result) {\r\n result = this._fontTags.push(fontTag) - 1\r\n }\r\n }\r\n return result\r\n }\r\n generateFontsXml() {\r\n var xmlStringsArray = this._fontTags.map(tag => fontHelper.toXml(tag));\r\n return tagHelper.toXml(\"fonts\", {\r\n count: xmlStringsArray.length\r\n }, xmlStringsArray.join(\"\"))\r\n }\r\n _convertNumberFormatIndexToId(index) {\r\n return 165 + index\r\n }\r\n registerNumberFormat(numberFormat) {\r\n var result;\r\n var tag = numberFormatHelper.tryCreateTag(numberFormat);\r\n if (isDefined(tag)) {\r\n for (var i = 0; i < this._numberFormatTags.length; i++) {\r\n if (numberFormatHelper.areEqual(this._numberFormatTags[i], tag)) {\r\n result = this._numberFormatTags[i][numberFormatHelper.ID_PROPERTY_NAME];\r\n break\r\n }\r\n }\r\n if (void 0 === result) {\r\n tag[numberFormatHelper.ID_PROPERTY_NAME] = this._convertNumberFormatIndexToId(this._numberFormatTags.length);\r\n result = tag[numberFormatHelper.ID_PROPERTY_NAME];\r\n this._numberFormatTags.push(tag)\r\n }\r\n }\r\n return result\r\n }\r\n generateNumberFormatsXml() {\r\n if (this._numberFormatTags.length > 0) {\r\n var xmlStringsArray = this._numberFormatTags.map(tag => numberFormatHelper.toXml(tag));\r\n return tagHelper.toXml(\"numFmts\", {\r\n count: xmlStringsArray.length\r\n }, xmlStringsArray.join(\"\"))\r\n } else {\r\n return \"\"\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/exporter/excel_creator.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 getWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n isDefined,\r\n isString,\r\n isDate,\r\n isBoolean,\r\n isObject,\r\n isFunction\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 {\r\n encodeHtml\r\n} from \"../core/utils/string\";\r\nimport JSZip from \"jszip\";\r\nimport {\r\n MIME_TYPES\r\n} from \"./file_saver\";\r\nimport excelFormatConverter from \"./excel_format_converter\";\r\nimport ExcelFile from \"./excel/excel.file\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nvar XML_TAG = '';\r\nvar GROUP_SHEET_PR_XML = '';\r\nvar SINGLE_SHEET_PR_XML = \"\";\r\nvar BASE_STYLE_XML2 = '';\r\nvar OPEN_XML_FORMAT_URL = \"http://schemas.openxmlformats.org\";\r\nvar RELATIONSHIP_PART_NAME = \"rels\";\r\nvar XL_FOLDER_NAME = \"xl\";\r\nvar WORKBOOK_FILE_NAME = \"workbook.xml\";\r\nvar CONTENTTYPES_FILE_NAME = \"[Content_Types].xml\";\r\nvar SHAREDSTRING_FILE_NAME = \"sharedStrings.xml\";\r\nvar STYLE_FILE_NAME = \"styles.xml\";\r\nvar WORKSHEETS_FOLDER = \"worksheets\";\r\nvar WORKSHEET_FILE_NAME = \"sheet1.xml\";\r\nvar WORKSHEET_HEADER_XML = '';\r\nvar VALID_TYPES = {\r\n boolean: \"b\",\r\n date: \"d\",\r\n number: \"n\",\r\n string: \"s\"\r\n};\r\nvar EXCEL_START_TIME = Date.UTC(1899, 11, 30);\r\nvar DAYS_COUNT_BEFORE_29_FEB_1900 = 60;\r\nvar MAX_DIGIT_WIDTH_IN_PIXELS = 7;\r\nvar UNSUPPORTED_FORMAT_MAPPING = {\r\n quarter: \"shortDate\",\r\n quarterAndYear: \"shortDate\",\r\n minute: \"longTime\",\r\n millisecond: \"longTime\"\r\n};\r\nexport var ExcelCreator = Class.inherit({\r\n _getXMLTag: function(tagName, attributes, content) {\r\n var result = \"<\" + tagName;\r\n var i;\r\n var length = attributes.length;\r\n var attr;\r\n for (i = 0; i < length; i++) {\r\n attr = attributes[i];\r\n if (void 0 !== attr.value) {\r\n result = result + \" \" + attr.name + '=\"' + attr.value + '\"'\r\n }\r\n }\r\n return isDefined(content) ? result + \">\" + content + \"\" : result + \" />\"\r\n },\r\n _convertToExcelCellRef: function(zeroBasedRowIndex, zeroBasedCellIndex) {\r\n var columnName = \"\";\r\n var charCode;\r\n var isCellIndexFound;\r\n while (!isCellIndexFound) {\r\n charCode = 65 + (zeroBasedCellIndex >= 26 ? zeroBasedCellIndex % 26 : Math.ceil(zeroBasedCellIndex));\r\n columnName = String.fromCharCode(charCode) + columnName;\r\n if (zeroBasedCellIndex >= 26) {\r\n zeroBasedCellIndex = Math.floor(zeroBasedCellIndex / 26) - 1\r\n } else {\r\n isCellIndexFound = true\r\n }\r\n }\r\n return columnName + (zeroBasedRowIndex + 1)\r\n },\r\n _convertToExcelCellRefAndTrackMaxIndex: function(rowIndex, cellIndex) {\r\n if (this._maxRowIndex < Number(rowIndex)) {\r\n this._maxRowIndex = Number(rowIndex)\r\n }\r\n if (this._maxColumnIndex < Number(cellIndex)) {\r\n this._maxColumnIndex = Number(cellIndex)\r\n }\r\n return this._convertToExcelCellRef(rowIndex, cellIndex)\r\n },\r\n _getDataType: function(dataType) {\r\n return VALID_TYPES[dataType] || VALID_TYPES.string\r\n },\r\n _tryGetExcelCellDataType: function(object) {\r\n if (isDefined(object)) {\r\n if (\"number\" === typeof object) {\r\n if (isFinite(object)) {\r\n return VALID_TYPES.number\r\n } else {\r\n return VALID_TYPES.string\r\n }\r\n } else if (isString(object)) {\r\n return VALID_TYPES.string\r\n } else if (isDate(object)) {\r\n return VALID_TYPES.number\r\n } else if (isBoolean(object)) {\r\n return VALID_TYPES.boolean\r\n }\r\n }\r\n },\r\n _formatObjectConverter: function(format, dataType) {\r\n var result = {\r\n format: format,\r\n precision: format && format.precision,\r\n dataType: dataType\r\n };\r\n if (isObject(format)) {\r\n return extend(result, format, {\r\n format: format.formatter || format.type,\r\n currency: format.currency\r\n })\r\n }\r\n return result\r\n },\r\n _tryConvertToExcelNumberFormat: function(format, dataType) {\r\n var newFormat = this._formatObjectConverter(format, dataType);\r\n format = newFormat.format;\r\n var currency = newFormat.currency;\r\n dataType = newFormat.dataType;\r\n if (isDefined(format) && \"date\" === dataType) {\r\n format = UNSUPPORTED_FORMAT_MAPPING[format && format.type || format] || format\r\n }\r\n return excelFormatConverter.convertFormat(format, newFormat.precision, dataType, currency)\r\n },\r\n _appendString: function(value) {\r\n if (isDefined(value)) {\r\n value = String(value);\r\n if (value.length) {\r\n value = encodeHtml(value);\r\n if (void 0 === this._stringHash[value]) {\r\n this._stringHash[value] = this._stringArray.length;\r\n this._stringArray.push(value)\r\n }\r\n return this._stringHash[value]\r\n }\r\n }\r\n },\r\n _tryGetExcelDateValue: function(date) {\r\n var days;\r\n var totalTime;\r\n if (isDate(date)) {\r\n days = Math.floor((Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) - EXCEL_START_TIME) / 864e5);\r\n if (days < DAYS_COUNT_BEFORE_29_FEB_1900) {\r\n days--\r\n }\r\n totalTime = (3600 * date.getHours() + 60 * date.getMinutes() + date.getSeconds()) / 86400;\r\n return days + totalTime\r\n }\r\n },\r\n _prepareValue: function(rowIndex, cellIndex) {\r\n var dataProvider = this._dataProvider;\r\n var {\r\n cellSourceData: cellSourceData\r\n } = dataProvider.getCellData(rowIndex, cellIndex) || {};\r\n var {\r\n value: value\r\n } = dataProvider.getCellData(rowIndex, cellIndex) || {};\r\n var sourceValue;\r\n var type = this._getDataType(dataProvider.getCellType(rowIndex, cellIndex));\r\n if (type === VALID_TYPES.date && !isDate(value)) {\r\n type = VALID_TYPES.string\r\n }\r\n switch (type) {\r\n case VALID_TYPES.string:\r\n sourceValue = value;\r\n value = this._appendString(value);\r\n break;\r\n case VALID_TYPES.date:\r\n sourceValue = value;\r\n value = this._tryGetExcelDateValue(value);\r\n type = VALID_TYPES.number\r\n }\r\n return {\r\n value: value,\r\n type: type,\r\n sourceValue: sourceValue,\r\n cellSourceData: cellSourceData\r\n }\r\n },\r\n _callCustomizeExcelCell: function(_ref) {\r\n var {\r\n dataProvider: dataProvider,\r\n value: value,\r\n style: style,\r\n sourceData: sourceData\r\n } = _ref;\r\n var styleCopy = ExcelFile.copyCellFormat(style);\r\n var args = {\r\n value: value,\r\n numberFormat: styleCopy.numberFormat,\r\n clearStyle: function() {\r\n this.horizontalAlignment = null;\r\n this.verticalAlignment = null;\r\n this.wrapTextEnabled = null;\r\n this.font = null;\r\n this.numberFormat = null\r\n }\r\n };\r\n if (isDefined(styleCopy)) {\r\n if (isDefined(styleCopy.alignment)) {\r\n args.horizontalAlignment = styleCopy.alignment.horizontal;\r\n args.verticalAlignment = styleCopy.alignment.vertical;\r\n args.wrapTextEnabled = styleCopy.alignment.wrapText\r\n }\r\n args.backgroundColor = styleCopy.backgroundColor;\r\n args.fillPatternType = styleCopy.fillPatternType;\r\n args.fillPatternColor = styleCopy.fillPatternColor;\r\n args.font = styleCopy.font\r\n }\r\n dataProvider.customizeExcelCell(args, sourceData);\r\n var newStyle = styleCopy || {};\r\n newStyle.font = args.font;\r\n newStyle.alignment = newStyle.alignment || {};\r\n newStyle.alignment.horizontal = args.horizontalAlignment;\r\n newStyle.alignment.vertical = args.verticalAlignment;\r\n newStyle.alignment.wrapText = args.wrapTextEnabled;\r\n newStyle.backgroundColor = args.backgroundColor;\r\n newStyle.fillPatternType = args.fillPatternType;\r\n newStyle.fillPatternColor = args.fillPatternColor;\r\n newStyle.numberFormat = args.numberFormat;\r\n return {\r\n value: args.value,\r\n style: newStyle\r\n }\r\n },\r\n _getDataArray: function() {\r\n var rowIndex;\r\n var cellIndex;\r\n var cellsArray;\r\n var cellData;\r\n var result = [];\r\n var dataProvider = this._dataProvider;\r\n var rowsLength = dataProvider.getRowsCount();\r\n var columns = dataProvider.getColumns();\r\n var cellsLength;\r\n for (rowIndex = 0; rowIndex < rowsLength; rowIndex++) {\r\n cellsArray = [];\r\n cellsLength = columns.length;\r\n for (cellIndex = 0; cellIndex !== cellsLength; cellIndex++) {\r\n cellData = this._prepareValue(rowIndex, cellIndex);\r\n var styleArrayIndex = dataProvider.getStyleId(rowIndex, cellIndex);\r\n var cellStyleId = this._styleArrayIndexToCellStyleIdMap[styleArrayIndex];\r\n if (dataProvider.hasCustomizeExcelCell && dataProvider.hasCustomizeExcelCell()) {\r\n var value = cellData.sourceValue || cellData.value;\r\n var modifiedExcelCell = this._callCustomizeExcelCell({\r\n dataProvider: dataProvider,\r\n value: value,\r\n style: this._styleArray[styleArrayIndex],\r\n sourceData: cellData.cellSourceData\r\n });\r\n if (modifiedExcelCell.value !== value) {\r\n if (typeof modifiedExcelCell.value !== typeof value || \"number\" === typeof modifiedExcelCell.value && !isFinite(modifiedExcelCell.value)) {\r\n var cellDataType = this._tryGetExcelCellDataType(modifiedExcelCell.value);\r\n if (isDefined(cellDataType)) {\r\n cellData.type = cellDataType\r\n }\r\n }\r\n switch (cellData.type) {\r\n case VALID_TYPES.string:\r\n cellData.value = this._appendString(modifiedExcelCell.value);\r\n break;\r\n case VALID_TYPES.date:\r\n cellData.value = modifiedExcelCell.value;\r\n break;\r\n case VALID_TYPES.number:\r\n var newValue = modifiedExcelCell.value;\r\n var excelDateValue = this._tryGetExcelDateValue(newValue);\r\n if (isDefined(excelDateValue)) {\r\n newValue = excelDateValue\r\n }\r\n cellData.value = newValue;\r\n break;\r\n default:\r\n cellData.value = modifiedExcelCell.value\r\n }\r\n }\r\n cellStyleId = this._excelFile.registerCellFormat(modifiedExcelCell.style)\r\n }\r\n cellsArray.push({\r\n style: cellStyleId,\r\n value: cellData.value,\r\n type: cellData.type\r\n })\r\n }\r\n if (!this._needSheetPr && dataProvider.getGroupLevel(rowIndex) > 0) {\r\n this._needSheetPr = true\r\n }\r\n result.push(cellsArray)\r\n }\r\n return result\r\n },\r\n _calculateWidth: function(pixelsWidth) {\r\n pixelsWidth = parseInt(pixelsWidth, 10);\r\n if (!pixelsWidth || pixelsWidth < 5) {\r\n pixelsWidth = 100\r\n }\r\n return Math.min(255, Math.floor((pixelsWidth - 5) / MAX_DIGIT_WIDTH_IN_PIXELS * 100 + .5) / 100)\r\n },\r\n _prepareStyleData: function() {\r\n var that = this;\r\n var styles = that._dataProvider.getStyles();\r\n that._dataProvider.getColumns().forEach((function(column) {\r\n that._colsArray.push(that._calculateWidth(column.width))\r\n }));\r\n var fonts = [{\r\n size: 11,\r\n color: {\r\n theme: 1\r\n },\r\n name: \"Calibri\",\r\n family: 2,\r\n scheme: \"minor\",\r\n bold: false\r\n }, {\r\n size: 11,\r\n color: {\r\n theme: 1\r\n },\r\n name: \"Calibri\",\r\n family: 2,\r\n scheme: \"minor\",\r\n bold: true\r\n }];\r\n this._excelFile.registerFont(fonts[0]);\r\n this._excelFile.registerFont(fonts[1]);\r\n styles.forEach((function(style) {\r\n var numberFormat = that._tryConvertToExcelNumberFormat(style.format, style.dataType);\r\n if (!isDefined(numberFormat)) {\r\n numberFormat = 0\r\n }\r\n that._styleArray.push({\r\n font: fonts[Number(!!style.bold)],\r\n numberFormat: numberFormat,\r\n alignment: {\r\n vertical: \"top\",\r\n wrapText: !!style.wrapText,\r\n horizontal: style.alignment || \"left\"\r\n }\r\n })\r\n }));\r\n that._styleArrayIndexToCellStyleIdMap = that._styleArray.map(item => this._excelFile.registerCellFormat(item))\r\n },\r\n _prepareCellData: function() {\r\n this._cellsArray = this._getDataArray()\r\n },\r\n _createXMLRelationships: function(xmlRelationships) {\r\n return this._getXMLTag(\"Relationships\", [{\r\n name: \"xmlns\",\r\n value: OPEN_XML_FORMAT_URL + \"/package/2006/relationships\"\r\n }], xmlRelationships)\r\n },\r\n _createXMLRelationship: function(id, type, target) {\r\n return this._getXMLTag(\"Relationship\", [{\r\n name: \"Id\",\r\n value: \"rId\" + id\r\n }, {\r\n name: \"Type\",\r\n value: OPEN_XML_FORMAT_URL + \"/officeDocument/2006/relationships/\" + type\r\n }, {\r\n name: \"Target\",\r\n value: target\r\n }])\r\n },\r\n _getWorkbookContent: function() {\r\n return XML_TAG + this._getXMLTag(\"workbook\", [{\r\n name: \"xmlns:r\",\r\n value: OPEN_XML_FORMAT_URL + \"/officeDocument/2006/relationships\"\r\n }, {\r\n name: \"xmlns\",\r\n value: OPEN_XML_FORMAT_URL + \"/spreadsheetml/2006/main\"\r\n }], 'Sheet!$1:$1')\r\n },\r\n _getContentTypesContent: function() {\r\n return XML_TAG + ''\r\n },\r\n _generateStylesXML: function() {\r\n var folder = this._zip.folder(XL_FOLDER_NAME);\r\n var XML = \"\";\r\n XML += this._excelFile.generateNumberFormatsXml();\r\n XML += this._excelFile.generateFontsXml();\r\n XML += this._excelFile.generateFillsXml();\r\n XML += BASE_STYLE_XML2;\r\n XML += this._excelFile.generateCellFormatsXml();\r\n XML += this._getXMLTag(\"cellStyles\", [{\r\n name: \"count\",\r\n value: 1\r\n }], this._getXMLTag(\"cellStyle\", [{\r\n name: \"name\",\r\n value: \"Normal\"\r\n }, {\r\n name: \"xfId\",\r\n value: 0\r\n }, {\r\n name: \"builtinId\",\r\n value: 0\r\n }]));\r\n XML = XML_TAG + this._getXMLTag(\"styleSheet\", [{\r\n name: \"xmlns\",\r\n value: OPEN_XML_FORMAT_URL + \"/spreadsheetml/2006/main\"\r\n }], XML);\r\n folder.file(STYLE_FILE_NAME, XML);\r\n this._styleArray = []\r\n },\r\n _generateStringsXML: function() {\r\n var folder = this._zip.folder(XL_FOLDER_NAME);\r\n var stringIndex;\r\n var stringsLength = this._stringArray.length;\r\n var sharedStringXml = XML_TAG;\r\n for (stringIndex = 0; stringIndex < stringsLength; stringIndex++) {\r\n this._stringArray[stringIndex] = this._getXMLTag(\"si\", [], this._getXMLTag(\"t\", [], this._stringArray[stringIndex]))\r\n }\r\n sharedStringXml += this._getXMLTag(\"sst\", [{\r\n name: \"xmlns\",\r\n value: OPEN_XML_FORMAT_URL + \"/spreadsheetml/2006/main\"\r\n }, {\r\n name: \"count\",\r\n value: this._stringArray.length\r\n }, {\r\n name: \"uniqueCount\",\r\n value: this._stringArray.length\r\n }], this._stringArray.join(\"\"));\r\n folder.file(SHAREDSTRING_FILE_NAME, sharedStringXml);\r\n this._stringArray = []\r\n },\r\n _getPaneXML: function() {\r\n var attributes = [{\r\n name: \"activePane\",\r\n value: \"bottomLeft\"\r\n }, {\r\n name: \"state\",\r\n value: \"frozen\"\r\n }];\r\n var frozenArea = this._dataProvider.getFrozenArea();\r\n if (!(frozenArea.x || frozenArea.y)) {\r\n return \"\"\r\n }\r\n if (frozenArea.x) {\r\n attributes.push({\r\n name: \"xSplit\",\r\n value: frozenArea.x\r\n })\r\n }\r\n if (frozenArea.y) {\r\n attributes.push({\r\n name: \"ySplit\",\r\n value: frozenArea.y\r\n })\r\n }\r\n attributes.push({\r\n name: \"topLeftCell\",\r\n value: this._convertToExcelCellRefAndTrackMaxIndex(frozenArea.y, frozenArea.x)\r\n });\r\n return this._getXMLTag(\"pane\", attributes)\r\n },\r\n _getAutoFilterXML: function(maxCellIndex) {\r\n if (this._options.autoFilterEnabled) {\r\n return ''\r\n }\r\n return \"\"\r\n },\r\n _getIgnoredErrorsXML: function(maxCellIndex) {\r\n if (this._options.ignoreErrors) {\r\n return ''\r\n }\r\n return \"\"\r\n },\r\n _generateWorksheetXML: function() {\r\n var colIndex;\r\n var rowIndex;\r\n var cellData;\r\n var xmlCells;\r\n var xmlRows = [];\r\n var rowsLength = this._cellsArray.length;\r\n var cellsLength;\r\n var colsLength = this._colsArray.length;\r\n var rSpans = \"1:\" + colsLength;\r\n var headerRowCount = this._dataProvider.getHeaderRowCount ? this._dataProvider.getHeaderRowCount() : 1;\r\n var xmlResult = [WORKSHEET_HEADER_XML];\r\n xmlResult.push(this._needSheetPr ? GROUP_SHEET_PR_XML : SINGLE_SHEET_PR_XML);\r\n xmlResult.push('');\r\n xmlResult.push(\"');\r\n xmlResult.push(this._getPaneXML());\r\n xmlResult.push(\"\");\r\n xmlResult.push(' 0 ? this._dataProvider.getGroupLevel(0) : 0) + '\"');\r\n xmlResult.push(' x14ac:dyDescent=\"0.25\"/>');\r\n for (colIndex = 0; colIndex < colsLength; colIndex++) {\r\n this._colsArray[colIndex] = this._getXMLTag(\"col\", [{\r\n name: \"width\",\r\n value: this._colsArray[colIndex]\r\n }, {\r\n name: \"min\",\r\n value: Number(colIndex) + 1\r\n }, {\r\n name: \"max\",\r\n value: Number(colIndex) + 1\r\n }, {\r\n name: \"customWidth\",\r\n value: 1\r\n }])\r\n }\r\n xmlResult.push(this._getXMLTag(\"cols\", [], this._colsArray.join(\"\")) + \"\");\r\n for (rowIndex = 0; rowIndex < rowsLength; rowIndex++) {\r\n xmlCells = [];\r\n cellsLength = this._cellsArray[rowIndex].length;\r\n for (colIndex = 0; colIndex < cellsLength; colIndex++) {\r\n rowIndex = Number(rowIndex);\r\n cellData = this._cellsArray[rowIndex][colIndex];\r\n xmlCells.push(this._getXMLTag(\"c\", [{\r\n name: \"r\",\r\n value: this._convertToExcelCellRefAndTrackMaxIndex(rowIndex, colIndex)\r\n }, {\r\n name: \"s\",\r\n value: cellData.style\r\n }, {\r\n name: \"t\",\r\n value: cellData.type\r\n }], isDefined(cellData.value) ? this._getXMLTag(\"v\", [], cellData.value) : null))\r\n }\r\n xmlRows.push(this._getXMLTag(\"row\", [{\r\n name: \"r\",\r\n value: Number(rowIndex) + 1\r\n }, {\r\n name: \"spans\",\r\n value: rSpans\r\n }, {\r\n name: \"outlineLevel\",\r\n value: rowIndex >= headerRowCount ? this._dataProvider.getGroupLevel(rowIndex) : 0\r\n }, {\r\n name: \"x14ac:dyDescent\",\r\n value: \"0.25\"\r\n }], xmlCells.join(\"\")));\r\n this._cellsArray[rowIndex] = null;\r\n if (xmlRows.length > 1e4) {\r\n xmlResult.push(xmlRows.join(\"\"));\r\n xmlRows = []\r\n }\r\n }\r\n xmlResult.push(xmlRows.join(\"\"));\r\n xmlRows = [];\r\n var rightBottomCellRef = this._convertToExcelCellRef(this._maxRowIndex, this._maxColumnIndex);\r\n xmlResult.push(\"\" + this._getAutoFilterXML(rightBottomCellRef) + this._generateMergingXML() + this._getIgnoredErrorsXML(rightBottomCellRef) + \"\");\r\n this._zip.folder(XL_FOLDER_NAME).folder(WORKSHEETS_FOLDER).file(WORKSHEET_FILE_NAME, xmlResult.join(\"\"));\r\n this._colsArray = [];\r\n this._cellsArray = [];\r\n xmlResult = []\r\n },\r\n _generateMergingXML: function() {\r\n var k;\r\n var l;\r\n var cellIndex;\r\n var rowIndex;\r\n var rowsLength = isDefined(this._dataProvider.getHeaderRowCount) ? this._dataProvider.getHeaderRowCount() : this._dataProvider.getRowsCount();\r\n var columnsLength = this._dataProvider.getColumns().length;\r\n var usedArea = [];\r\n var mergeArray = [];\r\n var mergeIndex;\r\n var mergeXML = \"\";\r\n for (rowIndex = 0; rowIndex < rowsLength; rowIndex++) {\r\n for (cellIndex = 0; cellIndex !== columnsLength; cellIndex++) {\r\n if (!isDefined(usedArea[rowIndex]) || !isDefined(usedArea[rowIndex][cellIndex])) {\r\n var cellMerge = this._dataProvider.getCellMerging(rowIndex, cellIndex);\r\n if (cellMerge.colspan || cellMerge.rowspan) {\r\n mergeArray.push({\r\n start: this._convertToExcelCellRefAndTrackMaxIndex(rowIndex, cellIndex),\r\n end: this._convertToExcelCellRefAndTrackMaxIndex(rowIndex + (cellMerge.rowspan || 0), cellIndex + (cellMerge.colspan || 0))\r\n });\r\n for (k = rowIndex; k <= rowIndex + cellMerge.rowspan || 0; k++) {\r\n for (l = cellIndex; l <= cellIndex + cellMerge.colspan || 0; l++) {\r\n if (!isDefined(usedArea[k])) {\r\n usedArea[k] = []\r\n }\r\n usedArea[k][l] = true\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n var mergeArrayLength = mergeArray.length;\r\n for (mergeIndex = 0; mergeIndex < mergeArrayLength; mergeIndex++) {\r\n mergeXML += this._getXMLTag(\"mergeCell\", [{\r\n name: \"ref\",\r\n value: mergeArray[mergeIndex].start + \":\" + mergeArray[mergeIndex].end\r\n }])\r\n }\r\n return mergeXML.length ? this._getXMLTag(\"mergeCells\", [{\r\n name: \"count\",\r\n value: mergeArrayLength\r\n }], mergeXML) : \"\"\r\n },\r\n _generateCommonXML: function() {\r\n var relsFileContent = XML_TAG + this._createXMLRelationships(this._createXMLRelationship(1, \"officeDocument\", \"xl/\" + WORKBOOK_FILE_NAME));\r\n var folder = this._zip.folder(XL_FOLDER_NAME);\r\n var relsXML = XML_TAG;\r\n this._zip.folder(\"_\" + RELATIONSHIP_PART_NAME).file(\".\" + RELATIONSHIP_PART_NAME, relsFileContent);\r\n var xmlRelationships = this._createXMLRelationship(1, \"worksheet\", \"worksheets/\" + WORKSHEET_FILE_NAME) + this._createXMLRelationship(2, \"styles\", STYLE_FILE_NAME) + this._createXMLRelationship(3, \"sharedStrings\", SHAREDSTRING_FILE_NAME);\r\n relsXML += this._createXMLRelationships(xmlRelationships);\r\n folder.folder(\"_\" + RELATIONSHIP_PART_NAME).file(WORKBOOK_FILE_NAME + \".rels\", relsXML);\r\n folder.file(WORKBOOK_FILE_NAME, this._getWorkbookContent());\r\n this._zip.file(CONTENTTYPES_FILE_NAME, this._getContentTypesContent())\r\n },\r\n _generateContent: function() {\r\n this._prepareStyleData();\r\n this._prepareCellData();\r\n this._generateWorkXML();\r\n this._generateCommonXML()\r\n },\r\n _generateWorkXML: function() {\r\n this._generateStylesXML();\r\n this._generateStringsXML();\r\n this._generateWorksheetXML()\r\n },\r\n ctor: function(dataProvider, options) {\r\n this._rtlEnabled = options && !!options.rtlEnabled;\r\n this._options = options;\r\n this._maxRowIndex = 0;\r\n this._maxColumnIndex = 0;\r\n this._stringArray = [];\r\n this._stringHash = {};\r\n this._styleArray = [];\r\n this._colsArray = [];\r\n this._cellsArray = [];\r\n this._needSheetPr = false;\r\n this._dataProvider = dataProvider;\r\n this._excelFile = new ExcelFile;\r\n if (isDefined(ExcelCreator.JSZip)) {\r\n this._zip = new ExcelCreator.JSZip\r\n } else {\r\n this._zip = null\r\n }\r\n },\r\n _checkZipState: function() {\r\n if (!this._zip) {\r\n throw errors.Error(\"E1041\", \"JSZip\")\r\n }\r\n },\r\n ready: function() {\r\n return this._dataProvider.ready()\r\n },\r\n getData: function(isBlob) {\r\n var options = {\r\n type: isBlob ? \"blob\" : \"base64\",\r\n compression: \"DEFLATE\",\r\n mimeType: MIME_TYPES.EXCEL\r\n };\r\n var deferred = new Deferred;\r\n this._checkZipState();\r\n this._generateContent();\r\n if (this._zip.generateAsync) {\r\n this._zip.generateAsync(options).then(deferred.resolve)\r\n } else {\r\n deferred.resolve(this._zip.generate(options))\r\n }\r\n return deferred\r\n }\r\n});\r\nExcelCreator.JSZip = JSZip;\r\nexport function getData(data, options) {\r\n var excelCreator = new ExcelCreator(data, options);\r\n excelCreator._checkZipState();\r\n return excelCreator.ready().then(() => excelCreator.getData(isFunction(getWindow().Blob)))\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/svg.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 {\r\n getWindow\r\n} from \"./window\";\r\nimport $ from \"../../core/renderer\";\r\nvar window = getWindow();\r\n\r\nfunction getMarkup(element, backgroundColor) {\r\n var temp = domAdapter.createElement(\"div\");\r\n var clone = element.cloneNode(true);\r\n if (backgroundColor) {\r\n $(clone).css(\"backgroundColor\", backgroundColor)\r\n }\r\n temp.appendChild(clone);\r\n return temp.innerHTML\r\n}\r\n\r\nfunction fixNamespaces(markup) {\r\n var first = true;\r\n if (-1 === markup.indexOf(\"xmlns:xlink\")) {\r\n markup = markup.replace(\"\")[0];\r\n canvas.width = width + 2 * margin;\r\n canvas.height = height + 2 * margin;\r\n canvas.hidden = true;\r\n return canvas\r\n}\r\n\r\nfunction getStringFromCanvas(canvas, mimeType) {\r\n var dataURL = canvas.toDataURL(mimeType, IMAGE_QUALITY);\r\n var imageData = window.atob(dataURL.substring((\"data:\" + mimeType + \";base64,\").length));\r\n return imageData\r\n}\r\n\r\nfunction arcTo(x1, y1, x2, y2, radius, largeArcFlag, clockwise, context) {\r\n var cBx = (x1 + x2) / 2;\r\n var cBy = (y1 + y2) / 2;\r\n var aB = _atan2(y1 - y2, x1 - x2);\r\n var k = largeArcFlag ? 1 : -1;\r\n aB += PI / 180 * 90 * (clockwise ? 1 : -1);\r\n var opSide = _sqrt(_pow(x2 - x1, 2) + _pow(y2 - y1, 2)) / 2;\r\n var adjSide = _sqrt(_abs(_pow(radius, 2) - _pow(opSide, 2)));\r\n var centerX = cBx + k * (adjSide * _cos(aB));\r\n var centerY = cBy + k * (adjSide * _sin(aB));\r\n var startAngle = _atan2(y1 - centerY, x1 - centerX);\r\n var endAngle = _atan2(y2 - centerY, x2 - centerX);\r\n context.arc(centerX, centerY, radius, startAngle, endAngle, !clockwise)\r\n}\r\n\r\nfunction getElementOptions(element, rootAppended) {\r\n var attr = parseAttributes(element.attributes || {});\r\n var options = extend({}, attr, {\r\n text: element.textContent.replace(/\\s+/g, \" \"),\r\n textAlign: \"middle\" === attr[\"text-anchor\"] ? \"center\" : attr[\"text-anchor\"]\r\n });\r\n var transform = attr.transform;\r\n var coords;\r\n if (transform) {\r\n coords = transform.match(/translate\\(-*\\d+([.]\\d+)*(,*\\s*-*\\d+([.]\\d+)*)*/);\r\n if (coords) {\r\n coords = coords[0].match(/-*\\d+([.]\\d+)*/g);\r\n options.translateX = _number(coords[0]);\r\n options.translateY = coords[1] ? _number(coords[1]) : 0\r\n }\r\n coords = transform.match(/rotate\\(-*\\d+([.]\\d+)*(,*\\s*-*\\d+([.]\\d+)*,*\\s*-*\\d+([.]\\d+)*)*/);\r\n if (coords) {\r\n coords = coords[0].match(/-*\\d+([.]\\d+)*/g);\r\n options.rotationAngle = _number(coords[0]);\r\n options.rotationX = coords[1] && _number(coords[1]);\r\n options.rotationY = coords[2] && _number(coords[2])\r\n }\r\n coords = transform.match(/scale\\(-*\\d+([.]\\d+)*(,*\\s*-*\\d+([.]\\d+)*)*/);\r\n if (coords) {\r\n coords = coords[0].match(/-*\\d+([.]\\d+)*/g);\r\n options.scaleX = _number(coords[0]);\r\n if (coords.length > 1) {\r\n options.scaleY = _number(coords[1])\r\n } else {\r\n options.scaleY = options.scaleX\r\n }\r\n }\r\n }\r\n parseStyles(element, options, rootAppended);\r\n return options\r\n}\r\n\r\nfunction drawRect(context, options) {\r\n var x = options.x;\r\n var y = options.y;\r\n var width = options.width;\r\n var height = options.height;\r\n var cornerRadius = options.rx;\r\n if (!cornerRadius) {\r\n context.rect(x, y, width, height)\r\n } else {\r\n cornerRadius = _min(cornerRadius, width / 2, height / 2);\r\n context.save();\r\n context.translate(x, y);\r\n context.moveTo(width / 2, 0);\r\n context.arcTo(width, 0, width, height, cornerRadius);\r\n context.arcTo(width, height, 0, height, cornerRadius);\r\n context.arcTo(0, height, 0, 0, cornerRadius);\r\n context.arcTo(0, 0, cornerRadius, 0, cornerRadius);\r\n context.lineTo(width / 2, 0);\r\n context.restore()\r\n }\r\n}\r\n\r\nfunction drawImage(context, options, shared) {\r\n var d = new Deferred;\r\n var image = new window.Image;\r\n image.onload = function() {\r\n context.save();\r\n context.globalAlpha = options.globalAlpha;\r\n transformElement(context, options);\r\n clipElement(context, options, shared);\r\n context.drawImage(image, options.x, options.y, options.width, options.height);\r\n context.restore();\r\n d.resolve()\r\n };\r\n image.onerror = function() {\r\n d.resolve()\r\n };\r\n image.setAttribute(\"crossOrigin\", \"anonymous\");\r\n image.src = options.href || options[\"xlink:href\"];\r\n return d\r\n}\r\n\r\nfunction drawPath(context, dAttr) {\r\n var dArray = dAttr.replace(/,/g, \" \").split(/([A-Z])/i).filter(item => \"\" !== item.trim());\r\n var i = 0;\r\n var params;\r\n var prevParams;\r\n var prevParamsLen;\r\n do {\r\n params = (dArray[i + 1] || \"\").trim().split(\" \");\r\n switch (dArray[i]) {\r\n case \"M\":\r\n context.moveTo(_number(params[0]), _number(params[1]));\r\n i += 2;\r\n break;\r\n case \"L\":\r\n for (var j = 0; j < params.length / 2; j++) {\r\n context.lineTo(_number(params[2 * j]), _number(params[2 * j + 1]))\r\n }\r\n i += 2;\r\n break;\r\n case \"C\":\r\n context.bezierCurveTo(_number(params[0]), _number(params[1]), _number(params[2]), _number(params[3]), _number(params[4]), _number(params[5]));\r\n i += 2;\r\n break;\r\n case \"a\":\r\n prevParams = dArray[i - 1].trim().split(\" \");\r\n prevParamsLen = prevParams.length - 1;\r\n arcTo(_number(prevParams[prevParamsLen - 1]), _number(prevParams[prevParamsLen]), _number(prevParams[prevParamsLen - 1]) + _number(params[5]), _number(prevParams[prevParamsLen]) + _number(params[6]), _number(params[0]), _number(params[3]), _number(params[4]), context);\r\n i += 2;\r\n break;\r\n case \"A\":\r\n prevParams = dArray[i - 1].trim().split(\" \");\r\n prevParamsLen = prevParams.length - 1;\r\n arcTo(_number(prevParams[prevParamsLen - 1]), _number(prevParams[prevParamsLen]), _number(params[5]), _number(params[6]), _number(params[0]), _number(params[3]), _number(params[4]), context);\r\n i += 2;\r\n break;\r\n case \"Z\":\r\n context.closePath();\r\n i += 1;\r\n break;\r\n default:\r\n i++\r\n }\r\n } while (i < dArray.length)\r\n}\r\n\r\nfunction parseStyles(element, options, rootAppended) {\r\n var style = element.style || {};\r\n var field;\r\n for (field in style) {\r\n if (\"\" !== style[field]) {\r\n options[camelize(field)] = style[field]\r\n }\r\n }\r\n if (rootAppended && domAdapter.isElementNode(element)) {\r\n style = window.getComputedStyle(element);\r\n [\"fill\", \"stroke\", \"stroke-width\", \"font-family\", \"font-size\", \"font-style\", \"font-weight\"].forEach((function(prop) {\r\n if (prop in style && \"\" !== style[prop]) {\r\n options[camelize(prop)] = style[prop]\r\n }\r\n }));\r\n [\"opacity\", \"fill-opacity\", \"stroke-opacity\"].forEach((function(prop) {\r\n if (prop in style && \"\" !== style[prop] && \"1\" !== style[prop]) {\r\n options[prop] = _number(style[prop])\r\n }\r\n }))\r\n }\r\n options.textDecoration = options.textDecoration || options.textDecorationLine;\r\n options.globalAlpha = isDefined(options.opacity) ? options.opacity : options.globalAlpha\r\n}\r\n\r\nfunction parseUrl(urlString) {\r\n var matches = urlString && urlString.match(/url\\(.*#(.*?)[\"']?\\)/i);\r\n return matches && matches[1]\r\n}\r\n\r\nfunction setFontStyle(context, options) {\r\n var fontParams = [];\r\n options.fontSize = options.fontSize || DEFAULT_FONT_SIZE;\r\n options.fontFamily = options.fontFamily || DEFAULT_FONT_FAMILY;\r\n options.fill = options.fill || DEFAULT_TEXT_COLOR;\r\n options.fontStyle && fontParams.push(options.fontStyle);\r\n options.fontWeight && fontParams.push(options.fontWeight);\r\n fontParams.push(options.fontSize);\r\n fontParams.push(options.fontFamily);\r\n context.font = fontParams.join(\" \");\r\n context.textAlign = options.textAlign;\r\n context.fillStyle = options.fill;\r\n context.globalAlpha = options.globalAlpha\r\n}\r\n\r\nfunction drawText(context, options, shared) {\r\n setFontStyle(context, options);\r\n applyFilter(context, options, shared);\r\n options.text && context.fillText(options.text, options.x || 0, options.y || 0);\r\n strokeElement(context, options, true);\r\n drawTextDecoration(context, options, shared)\r\n}\r\n\r\nfunction drawTextDecoration(context, options, shared) {\r\n if (!options.textDecoration || \"none\" === options.textDecoration) {\r\n return\r\n }\r\n var x = options.x;\r\n var textWidth = context.measureText(options.text).width;\r\n var textHeight = parseInt(options.fontSize, 10);\r\n var lineHeight = textHeight * TEXT_DECORATION_LINE_WIDTH_COEFF < 1 ? 1 : textHeight * TEXT_DECORATION_LINE_WIDTH_COEFF;\r\n var y = options.y;\r\n switch (options.textDecoration) {\r\n case \"line-through\":\r\n y -= textHeight / 3 + lineHeight / 2;\r\n break;\r\n case \"overline\":\r\n y -= textHeight - lineHeight;\r\n break;\r\n case \"underline\":\r\n y += lineHeight\r\n }\r\n context.rect(x, y, textWidth, lineHeight);\r\n fillElement(context, options, shared);\r\n strokeElement(context, options)\r\n}\r\n\r\nfunction aggregateOpacity(options) {\r\n options.strokeOpacity = void 0 !== options[\"stroke-opacity\"] ? options[\"stroke-opacity\"] : 1;\r\n options.fillOpacity = void 0 !== options[\"fill-opacity\"] ? options[\"fill-opacity\"] : 1;\r\n if (void 0 !== options.opacity) {\r\n options.strokeOpacity *= options.opacity;\r\n options.fillOpacity *= options.opacity\r\n }\r\n}\r\n\r\nfunction hasTspan(element) {\r\n var nodes = element.childNodes;\r\n for (var i = 0; i < nodes.length; i++) {\r\n if (\"tspan\" === nodes[i].tagName) {\r\n return true\r\n }\r\n }\r\n return false\r\n}\r\n\r\nfunction drawTextElement(childNodes, context, options, shared) {\r\n var lines = [];\r\n var line;\r\n var offset = 0;\r\n for (var i = 0; i < childNodes.length; i++) {\r\n var element = childNodes[i];\r\n if (void 0 === element.tagName) {\r\n drawElement(element, context, options, shared)\r\n } else if (\"tspan\" === element.tagName || \"text\" === element.tagName) {\r\n var elementOptions = getElementOptions(element, shared.rootAppended);\r\n var mergedOptions = extend({}, options, elementOptions);\r\n if (\"tspan\" === element.tagName && hasTspan(element)) {\r\n drawTextElement(element.childNodes, context, mergedOptions, shared);\r\n continue\r\n }\r\n mergedOptions.textAlign = \"start\";\r\n if (!line || void 0 !== elementOptions.x) {\r\n line = {\r\n elements: [],\r\n options: [],\r\n widths: [],\r\n offsets: []\r\n };\r\n lines.push(line)\r\n }\r\n if (void 0 !== elementOptions.y) {\r\n offset = 0\r\n }\r\n if (void 0 !== elementOptions.dy) {\r\n offset += parseFloat(elementOptions.dy)\r\n }\r\n line.elements.push(element);\r\n line.options.push(mergedOptions);\r\n line.offsets.push(offset);\r\n setFontStyle(context, mergedOptions);\r\n line.widths.push(context.measureText(mergedOptions.text).width)\r\n }\r\n }\r\n lines.forEach((function(line) {\r\n var commonWidth = line.widths.reduce((function(commonWidth, width) {\r\n return commonWidth + width\r\n }), 0);\r\n var xDiff = 0;\r\n var currentOffset = 0;\r\n if (\"center\" === options.textAlign) {\r\n xDiff = commonWidth / 2\r\n }\r\n if (\"end\" === options.textAlign) {\r\n xDiff = commonWidth\r\n }\r\n line.options.forEach((function(o, index) {\r\n var width = line.widths[index];\r\n o.x = o.x - xDiff + currentOffset;\r\n o.y += line.offsets[index];\r\n currentOffset += width\r\n }));\r\n line.elements.forEach((function(element, index) {\r\n drawTextElement(element.childNodes, context, line.options[index], shared)\r\n }))\r\n }))\r\n}\r\n\r\nfunction drawElement(element, context, parentOptions, shared) {\r\n var tagName = element.tagName;\r\n var isText = \"text\" === tagName || \"tspan\" === tagName || void 0 === tagName;\r\n var isImage = \"image\" === tagName;\r\n var options = extend({}, parentOptions, getElementOptions(element, shared.rootAppended));\r\n if (\"hidden\" === options.visibility || options[\"hidden-for-export\"]) {\r\n return\r\n }\r\n context.save();\r\n !isImage && transformElement(context, options);\r\n clipElement(context, options, shared);\r\n aggregateOpacity(options);\r\n var promise;\r\n context.beginPath();\r\n switch (element.tagName) {\r\n case void 0:\r\n drawText(context, options, shared);\r\n break;\r\n case \"text\":\r\n case \"tspan\":\r\n drawTextElement(element.childNodes, context, options, shared);\r\n break;\r\n case \"image\":\r\n promise = drawImage(context, options, shared);\r\n break;\r\n case \"path\":\r\n drawPath(context, options.d);\r\n break;\r\n case \"rect\":\r\n drawRect(context, options);\r\n context.closePath();\r\n break;\r\n case \"circle\":\r\n context.arc(options.cx, options.cy, options.r, 0, 2 * PI, 1)\r\n }\r\n if (!isText) {\r\n applyFilter(context, options, shared);\r\n fillElement(context, options, shared);\r\n strokeElement(context, options)\r\n }\r\n applyGradient(context, options, shared, element);\r\n context.restore();\r\n return promise\r\n}\r\n\r\nfunction applyGradient(context, options, _ref, element) {\r\n var {\r\n gradients: gradients\r\n } = _ref;\r\n if (0 === gradients.length) {\r\n return\r\n }\r\n var id = parseUrl(options.fill);\r\n if (id && gradients[id]) {\r\n var box = element.getBBox();\r\n var gradient = context.createLinearGradient(box.x, 0, box.x + box.width, 0);\r\n gradients[id].forEach(opt => {\r\n var offset = parseInt(opt.offset.replace(/%/, \"\"));\r\n gradient.addColorStop(offset / 100, opt.stopColor)\r\n });\r\n context.globalAlpha = options.opacity;\r\n context.fillStyle = gradient;\r\n context.fill()\r\n }\r\n}\r\n\r\nfunction applyFilter(context, options, shared) {\r\n var filterOptions;\r\n var id = parseUrl(options.filter);\r\n if (id) {\r\n filterOptions = shared.filters[id];\r\n if (!filterOptions) {\r\n filterOptions = {\r\n offsetX: 0,\r\n offsetY: 0,\r\n blur: 0,\r\n color: \"#000\"\r\n }\r\n }\r\n context.shadowOffsetX = filterOptions.offsetX;\r\n context.shadowOffsetY = filterOptions.offsetY;\r\n context.shadowColor = filterOptions.color;\r\n context.shadowBlur = filterOptions.blur\r\n }\r\n}\r\n\r\nfunction transformElement(context, options) {\r\n context.translate(options.translateX || 0, options.translateY || 0);\r\n options.translateX = void 0;\r\n options.translateY = void 0;\r\n if (options.rotationAngle) {\r\n context.translate(options.rotationX || 0, options.rotationY || 0);\r\n context.rotate(options.rotationAngle * PI / 180);\r\n context.translate(-(options.rotationX || 0), -(options.rotationY || 0));\r\n options.rotationAngle = void 0;\r\n options.rotationX = void 0;\r\n options.rotationY = void 0\r\n }\r\n if (isFinite(options.scaleX)) {\r\n context.scale(options.scaleX, options.scaleY);\r\n options.scaleX = void 0;\r\n options.scaleY = void 0\r\n }\r\n}\r\n\r\nfunction clipElement(context, options, shared) {\r\n if (options[\"clip-path\"]) {\r\n drawElement(shared.clipPaths[parseUrl(options[\"clip-path\"])], context, {}, shared);\r\n context.clip();\r\n options[\"clip-path\"] = void 0\r\n }\r\n}\r\n\r\nfunction hex2rgba(hexColor, alpha) {\r\n var color = new Color(hexColor);\r\n return \"rgba(\" + color.r + \",\" + color.g + \",\" + color.b + \",\" + alpha + \")\"\r\n}\r\n\r\nfunction createGradient(element) {\r\n var options = [];\r\n _each(element.childNodes, (_, _ref2) => {\r\n var {\r\n attributes: attributes\r\n } = _ref2;\r\n options.push({\r\n offset: attributes.offset.value,\r\n stopColor: attributes[\"stop-color\"].value\r\n })\r\n });\r\n return options\r\n}\r\n\r\nfunction createFilter(element) {\r\n var color;\r\n var opacity;\r\n var filterOptions = {};\r\n _each(element.childNodes, (function(_, node) {\r\n var attr = node.attributes;\r\n if (!attr.result) {\r\n return\r\n }\r\n switch (attr.result.value) {\r\n case \"gaussianBlurResult\":\r\n filterOptions.blur = _number(attr.stdDeviation.value);\r\n break;\r\n case \"offsetResult\":\r\n filterOptions.offsetX = _number(attr.dx.value);\r\n filterOptions.offsetY = _number(attr.dy.value);\r\n break;\r\n case \"floodResult\":\r\n color = attr[\"flood-color\"] ? attr[\"flood-color\"].value : \"#000\";\r\n opacity = attr[\"flood-opacity\"] ? attr[\"flood-opacity\"].value : 1;\r\n filterOptions.color = hex2rgba(color, opacity)\r\n }\r\n }));\r\n return filterOptions\r\n}\r\n\r\nfunction asyncEach(array, callback) {\r\n var d = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : new Deferred;\r\n var i = 0;\r\n for (; i < array.length; i++) {\r\n var result = callback(array[i]);\r\n if (isPromise(result)) {\r\n result.then(() => {\r\n asyncEach(Array.prototype.slice.call(array, i + 1), callback, d)\r\n });\r\n break\r\n }\r\n }\r\n if (i === array.length) {\r\n d.resolve()\r\n }\r\n return d\r\n}\r\n\r\nfunction drawCanvasElements(elements, context, parentOptions, shared) {\r\n return asyncEach(elements, (function(element) {\r\n switch (element.tagName && element.tagName.toLowerCase()) {\r\n case \"g\":\r\n case \"svg\":\r\n var options = extend({}, parentOptions, getElementOptions(element, shared.rootAppended));\r\n context.save();\r\n transformElement(context, options);\r\n clipElement(context, options, shared);\r\n var onDone = () => {\r\n context.restore()\r\n };\r\n var d = drawCanvasElements(element.childNodes, context, options, shared);\r\n if (isPromise(d)) {\r\n d.then(onDone)\r\n } else {\r\n onDone()\r\n }\r\n return d;\r\n case \"defs\":\r\n return drawCanvasElements(element.childNodes, context, {}, shared);\r\n case \"clippath\":\r\n shared.clipPaths[element.attributes.id.textContent] = element.childNodes[0];\r\n break;\r\n case \"pattern\":\r\n shared.patterns[element.attributes.id.textContent] = element;\r\n break;\r\n case \"filter\":\r\n shared.filters[element.id] = createFilter(element);\r\n break;\r\n case \"lineargradient\":\r\n shared.gradients[element.attributes.id.textContent] = createGradient(element);\r\n break;\r\n default:\r\n return drawElement(element, context, parentOptions, shared)\r\n }\r\n }))\r\n}\r\n\r\nfunction setLineDash(context, options) {\r\n var matches = options[\"stroke-dasharray\"] && options[\"stroke-dasharray\"].match(/(\\d+)/g);\r\n if (matches && matches.length) {\r\n matches = _map(matches, (function(item) {\r\n return _number(item)\r\n }));\r\n context.setLineDash(matches)\r\n }\r\n}\r\n\r\nfunction strokeElement(context, options, isText) {\r\n var stroke = options.stroke;\r\n if (stroke && \"none\" !== stroke && 0 !== options[\"stroke-width\"]) {\r\n setLineDash(context, options);\r\n context.lineJoin = options[\"stroke-linejoin\"];\r\n context.lineWidth = options[\"stroke-width\"];\r\n context.globalAlpha = options.strokeOpacity;\r\n context.strokeStyle = stroke;\r\n isText ? context.strokeText(options.text, options.x, options.y) : context.stroke();\r\n context.globalAlpha = 1\r\n }\r\n}\r\n\r\nfunction getPattern(context, pattern, shared) {\r\n var options = getElementOptions(pattern, shared.rootAppended);\r\n var patternCanvas = createCanvas(options.width, options.height, 0);\r\n var patternContext = patternCanvas.getContext(\"2d\");\r\n drawCanvasElements(pattern.childNodes, patternContext, options, shared);\r\n return context.createPattern(patternCanvas, \"repeat\")\r\n}\r\n\r\nfunction fillElement(context, options, shared) {\r\n var fill = options.fill;\r\n if (fill && \"none\" !== fill) {\r\n if (-1 === fill.search(/url/)) {\r\n context.fillStyle = fill\r\n } else {\r\n var pattern = shared.patterns[parseUrl(fill)];\r\n if (!pattern) {\r\n return\r\n }\r\n context.fillStyle = getPattern(context, pattern, shared)\r\n }\r\n context.globalAlpha = options.fillOpacity;\r\n context.fill();\r\n context.globalAlpha = 1\r\n }\r\n}\r\nparseAttributes = function(attributes) {\r\n var newAttributes = {};\r\n var attr;\r\n _each(attributes, (function(index, item) {\r\n attr = item.textContent;\r\n if (isFinite(attr)) {\r\n attr = _number(attr)\r\n }\r\n newAttributes[item.name.toLowerCase()] = attr\r\n }));\r\n return newAttributes\r\n};\r\n\r\nfunction drawBackground(context, width, height, backgroundColor, margin) {\r\n context.fillStyle = backgroundColor || \"#ffffff\";\r\n context.fillRect(-margin, -margin, width + 2 * margin, height + 2 * margin)\r\n}\r\n\r\nfunction createInvisibleDiv() {\r\n var invisibleDiv = domAdapter.createElement(\"div\");\r\n invisibleDiv.style.left = \"-9999px\";\r\n invisibleDiv.style.position = \"absolute\";\r\n return invisibleDiv\r\n}\r\n\r\nfunction convertSvgToCanvas(svg, canvas, rootAppended) {\r\n return drawCanvasElements(svg.childNodes, canvas.getContext(\"2d\"), {}, {\r\n clipPaths: {},\r\n patterns: {},\r\n filters: {},\r\n gradients: {},\r\n rootAppended: rootAppended\r\n })\r\n}\r\n\r\nfunction getCanvasFromSvg(markup, width, height, backgroundColor, margin, pixelRatio) {\r\n var svgToCanvas = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : convertSvgToCanvas;\r\n var canvas = createCanvas(width, height, margin);\r\n var context = canvas.getContext(\"2d\");\r\n context.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\r\n var svgElem = getSvgElement(markup);\r\n var invisibleDiv;\r\n var markupIsDomElement = domAdapter.isElementNode(markup);\r\n context.translate(margin, margin);\r\n domAdapter.getBody().appendChild(canvas);\r\n if (!markupIsDomElement) {\r\n invisibleDiv = createInvisibleDiv();\r\n invisibleDiv.appendChild(svgElem);\r\n domAdapter.getBody().appendChild(invisibleDiv)\r\n }\r\n if (svgElem.attributes.direction) {\r\n canvas.dir = svgElem.attributes.direction.textContent\r\n }\r\n drawBackground(context, width, height, backgroundColor, margin);\r\n return fromPromise(svgToCanvas(svgElem, canvas, markupIsDomElement && contains(domAdapter.getBody(), markup))).then(() => canvas).always(() => {\r\n invisibleDiv && domAdapter.getBody().removeChild(invisibleDiv);\r\n domAdapter.getBody().removeChild(canvas)\r\n })\r\n}\r\nexport var imageCreator = {\r\n getImageData: function(markup, options) {\r\n var pixelRatio = window.devicePixelRatio || 1;\r\n var mimeType = \"image/\" + options.format;\r\n var width = options.width * pixelRatio;\r\n var height = options.height * pixelRatio;\r\n var backgroundColor = options.backgroundColor;\r\n if (isFunction(options.__parseAttributesFn)) {\r\n parseAttributes = options.__parseAttributesFn\r\n }\r\n return getCanvasFromSvg(markup, width, height, backgroundColor, options.margin, pixelRatio, options.svgToCanvas).then(canvas => getStringFromCanvas(canvas, mimeType))\r\n },\r\n getData: function(markup, options) {\r\n var that = this;\r\n return imageCreator.getImageData(markup, options).then(binaryData => {\r\n var mimeType = \"image/\" + options.format;\r\n var data = isFunction(window.Blob) && !options.forceProxy ? that._getBlob(binaryData, mimeType) : that._getBase64(binaryData);\r\n return data\r\n })\r\n },\r\n _getBlob: function(binaryData, mimeType) {\r\n var i;\r\n var dataArray = new Uint8Array(binaryData.length);\r\n for (i = 0; i < binaryData.length; i++) {\r\n dataArray[i] = binaryData.charCodeAt(i)\r\n }\r\n return new window.Blob([dataArray.buffer], {\r\n type: mimeType\r\n })\r\n },\r\n _getBase64: function(binaryData) {\r\n return window.btoa(binaryData)\r\n }\r\n};\r\nexport function getData(data, options) {\r\n return imageCreator.getData(data, options)\r\n}\r\nexport function testFormats(formats) {\r\n var canvas = createCanvas(100, 100, 0);\r\n return formats.reduce((function(r, f) {\r\n var mimeType = (\"image/\" + f).toLowerCase();\r\n if (-1 !== canvas.toDataURL(mimeType).indexOf(mimeType)) {\r\n r.supported.push(f)\r\n } else {\r\n r.unsupported.push(f)\r\n }\r\n return r\r\n }), {\r\n supported: [],\r\n unsupported: []\r\n })\r\n}\r\n","/**\r\n * DevExtreme (esm/exporter/svg_creator.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 ajax from \"../core/utils/ajax\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n getSvgElement,\r\n getSvgMarkup\r\n} from \"../core/utils/svg\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nexport var svgCreator = {\r\n _markup: \"\",\r\n _imageArray: {},\r\n _imageDeferreds: [],\r\n _getBinaryFile: function(src, callback) {\r\n ajax.sendRequest({\r\n url: src,\r\n method: \"GET\",\r\n responseType: \"arraybuffer\"\r\n }).done(callback).fail((function() {\r\n callback(false)\r\n }))\r\n },\r\n _loadImages: function() {\r\n var that = this;\r\n each(that._imageArray, (function(src) {\r\n var deferred = new Deferred;\r\n that._imageDeferreds.push(deferred);\r\n that._getBinaryFile(src, (function(response) {\r\n if (!response) {\r\n delete that._imageArray[src];\r\n deferred.resolve();\r\n return\r\n }\r\n var i;\r\n var binary = \"\";\r\n var bytes = new Uint8Array(response);\r\n var length = bytes.byteLength;\r\n for (i = 0; i < length; i++) {\r\n binary += String.fromCharCode(bytes[i])\r\n }\r\n that._imageArray[src] = \"data:image/png;base64,\" + window.btoa(binary);\r\n deferred.resolve()\r\n }))\r\n }))\r\n },\r\n _parseImages: function(element) {\r\n var href;\r\n var that = this;\r\n if (\"image\" === element.tagName) {\r\n href = $(element).attr(\"href\") || $(element).attr(\"xlink:href\");\r\n if (!that._imageArray[href]) {\r\n that._imageArray[href] = \"\"\r\n }\r\n }\r\n each(element.childNodes, (function(_, element) {\r\n that._parseImages(element)\r\n }))\r\n },\r\n _prepareImages: function(svgElem) {\r\n this._parseImages(svgElem);\r\n this._loadImages();\r\n return when.apply($, this._imageDeferreds)\r\n },\r\n getData: function(data, options) {\r\n var markup;\r\n var that = this;\r\n var svgElem = getSvgElement(data);\r\n var $svgObject = $(svgElem);\r\n markup = '' + getSvgMarkup($svgObject.get(0), options.backgroundColor);\r\n return that._prepareImages(svgElem).then(() => {\r\n each(that._imageArray, (function(href, dataURI) {\r\n var regexpString = \"href=['|\\\"]\".concat(href, \"['|\\\"]\");\r\n markup = markup.replace(new RegExp(regexpString, \"gi\"), 'href=\"'.concat(dataURI, '\"'))\r\n }));\r\n return isFunction(window.Blob) ? that._getBlob(markup) : that._getBase64(markup)\r\n })\r\n },\r\n _getBlob: function(markup) {\r\n return new window.Blob([markup], {\r\n type: \"image/svg+xml\"\r\n })\r\n },\r\n _getBase64: function(markup) {\r\n return window.btoa(markup)\r\n }\r\n};\r\nexport function getData(data, options) {\r\n return svgCreator.getData(data, options)\r\n}\r\n","/**\r\n * DevExtreme (esm/exporter/pdf_creator.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 version\r\n} from \"../core/version\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n imageCreator\r\n} from \"./image_creator\";\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nvar mainPageTemplate = \"%PDF-1.3\\r\\n2 0 obj\\r\\n<>>>\\r\\nendobj\\r\\n4 0 obj\\r\\n<>\\r\\nendobj\\r\\n7 0 obj\\r\\n<>\\r\\nendobj\\r\\n1 0 obj\\r\\n<>\\r\\nendobj\\r\\n\";\r\nvar contentTemplate = \"3 0 obj\\r\\n<>stream\\r\\n0.20 w\\n0 G\\nq _width_ 0 0 _height_ 0.00 0.00 cm /I0 Do Q\\r\\nendstream\\r\\nendobj\\r\\n\";\r\nvar infoTemplate = \"6 0 obj\\r\\n<>\\r\\nendobj\\r\\n\";\r\nvar imageStartTemplate = \"5 0 obj\\r\\n<>stream\\r\\n\";\r\nvar imageEndTemplate = \"\\r\\nendstream\\r\\nendobj\\r\\n\";\r\nvar trailerTemplate = \"trailer\\r\\n<<\\r\\n/Size 8\\r\\n/Root 7 0 R\\r\\n/Info 6 0 R\\r\\n>>\\r\\nstartxref\\r\\n_length_\\r\\n%%EOF\";\r\nvar xrefTemplate = \"xref\\r\\n0 8\\r\\n0000000000 65535 f\\r\\n0000000241 00000 n\\r\\n0000000010 00000 n\\r\\n_main_ 00000 n\\r\\n0000000089 00000 n\\r\\n_image_ 00000 n\\r\\n_info_ 00000 n\\r\\n0000000143 00000 n\\r\\n\";\r\nvar pad = function pad(str, len) {\r\n return str.length < len ? pad(\"0\" + str, len) : str\r\n};\r\nvar composePdfString = function(imageString, options, curDate) {\r\n var margin = 2 * (options.margin || 0);\r\n var width = options.width + margin;\r\n var height = options.height + margin;\r\n var widthPt = (.75 * width).toFixed(2);\r\n var heightPt = (.75 * height).toFixed(2);\r\n var mainPage = mainPageTemplate.replace(\"_width_\", widthPt).replace(\"_height_\", heightPt);\r\n var content = contentTemplate.replace(\"_width_\", widthPt).replace(\"_height_\", heightPt);\r\n var info = infoTemplate.replace(\"_date_\", curDate).replace(\"_version_\", version);\r\n var image = imageStartTemplate.replace(\"_width_\", width).replace(\"_height_\", height).replace(\"_length_\", imageString.length) + imageString + imageEndTemplate;\r\n var xref = getXref(mainPage.length, content.length, info.length);\r\n var mainContent = mainPage + content + info + image;\r\n var trailer = trailerTemplate.replace(\"_length_\", mainContent.length);\r\n return mainContent + xref + trailer\r\n};\r\n\r\nfunction getXref(mainPageLength, contentLength, infoLength) {\r\n return xrefTemplate.replace(\"_main_\", pad(mainPageLength + \"\", 10)).replace(\"_info_\", pad(mainPageLength + contentLength + \"\", 10)).replace(\"_image_\", pad(mainPageLength + contentLength + infoLength + \"\", 10))\r\n}\r\nvar getCurDate = function() {\r\n return new Date\r\n};\r\nvar getBlob = function(binaryData) {\r\n var i = 0;\r\n var dataArray = new Uint8Array(binaryData.length);\r\n for (; i < binaryData.length; i++) {\r\n dataArray[i] = binaryData.charCodeAt(i)\r\n }\r\n return new window.Blob([dataArray.buffer], {\r\n type: \"application/pdf\"\r\n })\r\n};\r\nvar getBase64 = function(binaryData) {\r\n return window.btoa(binaryData)\r\n};\r\nexport function getData(data, options) {\r\n return imageCreator.getImageData(data, extend({}, options, {\r\n format: \"JPEG\"\r\n })).then(imageString => {\r\n var binaryData = composePdfString(imageString, options, getCurDate());\r\n var pdfData = isFunction(window.Blob) ? getBlob(binaryData) : getBase64(binaryData);\r\n return pdfData\r\n })\r\n}\r\n","/**\r\n * DevExtreme (esm/exporter.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 fileSaver\r\n} from \"./exporter/file_saver\";\r\nimport {\r\n ExcelCreator,\r\n getData as getExcelData\r\n} from \"./exporter/excel_creator\";\r\nimport {\r\n imageCreator,\r\n testFormats,\r\n getData as getImageData\r\n} from \"./exporter/image_creator\";\r\nimport {\r\n svgCreator,\r\n getData as getSvgData\r\n} from \"./exporter/svg_creator\";\r\nimport {\r\n isFunction as _isFunction\r\n} from \"./core/utils/type\";\r\nimport {\r\n Deferred\r\n} from \"./core/utils/deferred\";\r\nimport formatConverter from \"./exporter/excel_format_converter\";\r\nimport {\r\n getData\r\n} from \"./exporter/pdf_creator\";\r\n\r\nfunction _export(data, options, getData) {\r\n if (!data) {\r\n return (new Deferred).resolve()\r\n }\r\n var exportingAction = options.exportingAction;\r\n var exportedAction = options.exportedAction;\r\n var fileSavingAction = options.fileSavingAction;\r\n var eventArgs = {\r\n fileName: options.fileName,\r\n format: options.format,\r\n cancel: false\r\n };\r\n _isFunction(exportingAction) && exportingAction(eventArgs);\r\n if (!eventArgs.cancel) {\r\n return getData(data, options).then(blob => {\r\n _isFunction(exportedAction) && exportedAction();\r\n if (_isFunction(fileSavingAction)) {\r\n eventArgs.data = blob;\r\n fileSavingAction(eventArgs)\r\n }\r\n if (!eventArgs.cancel) {\r\n fileSaver.saveAs(eventArgs.fileName, options.format, blob, options.proxyUrl, options.forceProxy)\r\n }\r\n })\r\n }\r\n return (new Deferred).resolve()\r\n}\r\nexport {\r\n _export as\r\n export, fileSaver\r\n};\r\nexport var excel = {\r\n creator: ExcelCreator,\r\n getData: getExcelData,\r\n formatConverter: formatConverter\r\n};\r\nexport var image = {\r\n creator: imageCreator,\r\n getData: getImageData,\r\n testFormats: testFormats\r\n};\r\nexport var pdf = {\r\n getData: getData\r\n};\r\nexport var svg = {\r\n creator: svgCreator,\r\n getData: getSvgData\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.export.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../core/utils/position\";\r\nimport {\r\n merge\r\n} from \"../../core/utils/array\";\r\nimport dataGridCore from \"./ui.data_grid.core\";\r\nimport exportMixin from \"../grid_core/ui.grid_core.export_mixin\";\r\nimport {\r\n export as clientExport,\r\n excel\r\n} from \"../../exporter\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport Button from \"../button\";\r\nimport List from \"../list\";\r\nimport ContextMenu from \"../context_menu\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar DATAGRID_EXPORT_MENU_CLASS = \"dx-datagrid-export-menu\";\r\nvar DATAGRID_EXPORT_BUTTON_CLASS = \"dx-datagrid-export-button\";\r\nvar DATAGRID_EXPORT_ICON = \"export-to\";\r\nvar DATAGRID_EXPORT_EXCEL_ICON = \"xlsxfile\";\r\nvar DATAGRID_EXPORT_SELECTED_ICON = \"exportselected\";\r\nvar DATAGRID_EXPORT_EXCEL_BUTTON_ICON = \"export-excel-button\";\r\nvar TOOLBAR_ITEM_AUTO_HIDE_CLASS = \"dx-toolbar-item-auto-hide\";\r\nvar TOOLBAR_HIDDEN_BUTTON_CLASS = \"dx-toolbar-hidden-button\";\r\nvar BUTTON_CLASS = \"dx-button\";\r\nexport var DataProvider = Class.inherit({\r\n _getGroupValue: function(item) {\r\n var {\r\n key: key,\r\n data: data,\r\n rowType: rowType,\r\n groupIndex: groupIndex,\r\n summaryCells: summaryCells\r\n } = item;\r\n var groupColumn = this._options.groupColumns[groupIndex];\r\n var value = dataGridCore.getDisplayValue(groupColumn, groupColumn.deserializeValue ? groupColumn.deserializeValue(key[groupIndex]) : key[groupIndex], data, rowType);\r\n var result = groupColumn.caption + \": \" + dataGridCore.formatValue(value, groupColumn);\r\n if (summaryCells && summaryCells[0] && summaryCells[0].length) {\r\n result += \" \" + dataGridCore.getGroupRowSummaryText(summaryCells[0], this._options.summaryTexts)\r\n }\r\n return result\r\n },\r\n _correctCellIndex: function(cellIndex) {\r\n return cellIndex\r\n },\r\n _initOptions: function() {\r\n var exportController = this._exportController;\r\n var groupColumns = exportController._columnsController.getGroupColumns();\r\n var excelWrapTextEnabled = exportController.option(\"export.excelWrapTextEnabled\");\r\n this._options = {\r\n columns: exportController._getColumns(this._initialColumnWidthsByColumnIndex),\r\n groupColumns: groupColumns,\r\n items: this._selectedRowsOnly || exportController._selectionOnly ? exportController._getSelectedItems() : exportController._getAllItems(),\r\n getVisibleIndex: exportController._columnsController.getVisibleIndex.bind(exportController._columnsController),\r\n isHeadersVisible: exportController.option(\"showColumnHeaders\"),\r\n summaryTexts: exportController.option(\"summary.texts\"),\r\n customizeExportData: exportController.option(\"customizeExportData\"),\r\n rtlEnabled: exportController.option(\"rtlEnabled\"),\r\n wrapTextEnabled: isDefined(excelWrapTextEnabled) ? excelWrapTextEnabled : !!exportController.option(\"wordWrapEnabled\"),\r\n customizeExcelCell: exportController.option(\"export.customizeExcelCell\")\r\n }\r\n },\r\n hasCustomizeExcelCell: function() {\r\n return isDefined(this._options.customizeExcelCell)\r\n },\r\n customizeExcelCell: function(e, cellSourceData) {\r\n if (this._options.customizeExcelCell) {\r\n e.gridCell = cellSourceData;\r\n if (isDefined(this._exportController) && isDefined(this._exportController.component)) {\r\n e.component = this._exportController.component\r\n }\r\n this._options.customizeExcelCell(e)\r\n }\r\n },\r\n ctor: function(exportController, initialColumnWidthsByColumnIndex, selectedRowsOnly) {\r\n this._exportController = exportController;\r\n this._initialColumnWidthsByColumnIndex = initialColumnWidthsByColumnIndex;\r\n this._selectedRowsOnly = selectedRowsOnly\r\n },\r\n getHeaderStyles: () => [{\r\n bold: true,\r\n alignment: \"center\",\r\n wrapText: true\r\n }, {\r\n bold: true,\r\n alignment: \"left\",\r\n wrapText: true\r\n }, {\r\n bold: true,\r\n alignment: \"right\",\r\n wrapText: true\r\n }],\r\n getGroupRowStyle() {\r\n return {\r\n bold: true,\r\n wrapText: false,\r\n alignment: getDefaultAlignment(this._options.rtlEnabled)\r\n }\r\n },\r\n getColumnStyles() {\r\n var wrapTextEnabled = this._options.wrapTextEnabled;\r\n var columnStyles = [];\r\n this.getColumns().forEach(column => {\r\n columnStyles.push({\r\n alignment: column.alignment || \"left\",\r\n format: column.format,\r\n wrapText: wrapTextEnabled,\r\n dataType: column.dataType\r\n })\r\n });\r\n return columnStyles\r\n },\r\n getStyles: function() {\r\n return [...this.getHeaderStyles(), ...this.getColumnStyles(), this.getGroupRowStyle()]\r\n },\r\n _getTotalCellStyleId: function(cellIndex) {\r\n var _this$getColumns$cell;\r\n var alignment = (null === (_this$getColumns$cell = this.getColumns()[cellIndex]) || void 0 === _this$getColumns$cell ? void 0 : _this$getColumns$cell.alignment) || \"right\";\r\n return this.getHeaderStyles().map(style => style.alignment).indexOf(alignment)\r\n },\r\n getStyleId: function(rowIndex, cellIndex) {\r\n if (rowIndex < this.getHeaderRowCount()) {\r\n return 0\r\n } else if (this.isTotalCell(rowIndex - this.getHeaderRowCount(), cellIndex)) {\r\n return this._getTotalCellStyleId(cellIndex)\r\n } else if (this.isGroupRow(rowIndex - this.getHeaderRowCount())) {\r\n return this.getHeaderStyles().length + this.getColumns().length\r\n } else {\r\n return cellIndex + this.getHeaderStyles().length\r\n }\r\n },\r\n getColumns: function(getColumnsByAllRows) {\r\n var {\r\n columns: columns\r\n } = this._options;\r\n return getColumnsByAllRows ? columns : columns[columns.length - 1]\r\n },\r\n getColumnsWidths: function() {\r\n var columns = this.getColumns();\r\n return isDefined(columns) ? columns.map(c => c.width) : void 0\r\n },\r\n getRowsCount: function() {\r\n return this._options.items.length + this.getHeaderRowCount()\r\n },\r\n getHeaderRowCount: function() {\r\n if (this.isHeadersVisible()) {\r\n return this._options.columns.length - 1\r\n }\r\n return 0\r\n },\r\n isGroupRow: function(rowIndex) {\r\n return rowIndex < this._options.items.length && \"group\" === this._options.items[rowIndex].rowType\r\n },\r\n getGroupLevel: function(rowIndex) {\r\n var item = this._options.items[rowIndex - this.getHeaderRowCount()];\r\n var groupIndex = item && item.groupIndex;\r\n if (item && \"totalFooter\" === item.rowType) {\r\n return 0\r\n }\r\n return isDefined(groupIndex) ? groupIndex : this._options.groupColumns.length\r\n },\r\n getCellType: function(rowIndex, cellIndex) {\r\n var columns = this.getColumns();\r\n if (rowIndex < this.getHeaderRowCount()) {\r\n return \"string\"\r\n } else {\r\n rowIndex -= this.getHeaderRowCount()\r\n }\r\n if (cellIndex < columns.length) {\r\n var item = this._options.items.length && this._options.items[rowIndex];\r\n var column = columns[cellIndex];\r\n if (item && \"data\" === item.rowType) {\r\n if (isFinite(item.values[this._correctCellIndex(cellIndex)]) && !isDefined(column.customizeText)) {\r\n return isDefined(column.lookup) ? column.lookup.dataType : column.dataType\r\n }\r\n }\r\n return \"string\"\r\n }\r\n },\r\n ready: function() {\r\n var that = this;\r\n that._initOptions();\r\n var options = that._options;\r\n return when(options.items).done((function(items) {\r\n options.customizeExportData && options.customizeExportData(that.getColumns(that.getHeaderRowCount() > 1), items);\r\n options.items = items\r\n })).fail((function() {\r\n options.items = []\r\n }))\r\n },\r\n _convertFromGridGroupSummaryItems: function(gridGroupSummaryItems) {\r\n if (isDefined(gridGroupSummaryItems) && gridGroupSummaryItems.length > 0) {\r\n return gridGroupSummaryItems.map((function(item) {\r\n return {\r\n value: item.value,\r\n name: item.name\r\n }\r\n }))\r\n }\r\n },\r\n getCellData: function(rowIndex, cellIndex, isExcelJS) {\r\n var value;\r\n var column;\r\n var result = {\r\n cellSourceData: {},\r\n value: value\r\n };\r\n var columns = this.getColumns();\r\n var correctedCellIndex = this._correctCellIndex(cellIndex);\r\n if (rowIndex < this.getHeaderRowCount()) {\r\n var columnsRow = this.getColumns(true)[rowIndex];\r\n column = columnsRow[cellIndex];\r\n result.cellSourceData.rowType = \"header\";\r\n result.cellSourceData.column = column && column.gridColumn;\r\n result.value = column && column.caption\r\n } else {\r\n rowIndex -= this.getHeaderRowCount();\r\n var item = this._options.items.length && this._options.items[rowIndex];\r\n if (item) {\r\n var itemValues = item.values;\r\n result.cellSourceData.rowType = item.rowType;\r\n result.cellSourceData.column = columns[cellIndex] && columns[cellIndex].gridColumn;\r\n switch (item.rowType) {\r\n case \"groupFooter\":\r\n case \"totalFooter\":\r\n if (correctedCellIndex < itemValues.length) {\r\n value = itemValues[correctedCellIndex];\r\n if (isDefined(value)) {\r\n result.cellSourceData.value = value.value;\r\n result.cellSourceData.totalSummaryItemName = value.name;\r\n result.value = dataGridCore.getSummaryText(value, this._options.summaryTexts)\r\n } else {\r\n result.cellSourceData.value = void 0\r\n }\r\n }\r\n break;\r\n case \"group\":\r\n result.cellSourceData.groupIndex = item.groupIndex;\r\n if (cellIndex < 1) {\r\n result.cellSourceData.column = this._options.groupColumns[item.groupIndex];\r\n result.cellSourceData.value = item.key[item.groupIndex];\r\n result.cellSourceData.groupSummaryItems = this._convertFromGridGroupSummaryItems(item.summaryCells[0]);\r\n result.value = this._getGroupValue(item)\r\n } else {\r\n var summaryItems = item.values[correctedCellIndex];\r\n if (Array.isArray(summaryItems)) {\r\n result.cellSourceData.groupSummaryItems = this._convertFromGridGroupSummaryItems(summaryItems);\r\n value = \"\";\r\n for (var i = 0; i < summaryItems.length; i++) {\r\n value += (i > 0 ? isExcelJS ? \"\\n\" : \" \\n \" : \"\") + dataGridCore.getSummaryText(summaryItems[i], this._options.summaryTexts)\r\n }\r\n result.value = value\r\n } else {\r\n result.cellSourceData.value = void 0\r\n }\r\n }\r\n break;\r\n default:\r\n column = columns[cellIndex];\r\n if (column) {\r\n var _value = itemValues[correctedCellIndex];\r\n var displayValue = dataGridCore.getDisplayValue(column, _value, item.data, item.rowType);\r\n if (!isFinite(displayValue) || isDefined(column.customizeText)) {\r\n if (isExcelJS && isDefined(column.customizeText) && column.customizeText === this._exportController._columnsController.getCustomizeTextByDataType(\"boolean\")) {\r\n result.value = displayValue\r\n } else {\r\n result.value = dataGridCore.formatValue(displayValue, column)\r\n }\r\n } else {\r\n result.value = displayValue\r\n }\r\n result.cellSourceData.value = _value\r\n }\r\n result.cellSourceData.data = item.data\r\n }\r\n }\r\n }\r\n return result\r\n },\r\n isHeadersVisible: function() {\r\n return this._options.isHeadersVisible\r\n },\r\n isTotalCell: function(rowIndex, cellIndex) {\r\n var items = this._options.items;\r\n var item = items[rowIndex];\r\n var correctCellIndex = this._correctCellIndex(cellIndex);\r\n var isSummaryAlignByColumn = item.summaryCells && item.summaryCells[correctCellIndex] && item.summaryCells[correctCellIndex].length > 0 && item.summaryCells[correctCellIndex][0].alignByColumn;\r\n return item && \"groupFooter\" === item.rowType || \"totalFooter\" === item.rowType || isSummaryAlignByColumn\r\n },\r\n getCellMerging: function(rowIndex, cellIndex) {\r\n var columns = this._options.columns;\r\n var column = columns[rowIndex] && columns[rowIndex][cellIndex];\r\n return column ? {\r\n colspan: (column.exportColspan || 1) - 1,\r\n rowspan: (column.rowspan || 1) - 1\r\n } : {\r\n colspan: 0,\r\n rowspan: 0\r\n }\r\n },\r\n getFrozenArea: function() {\r\n return {\r\n x: 0,\r\n y: this.getHeaderRowCount()\r\n }\r\n }\r\n});\r\nexport var ExportController = dataGridCore.ViewController.inherit({}).include(exportMixin).inherit({\r\n _getEmptyCell: function() {\r\n return {\r\n caption: \"\",\r\n colspan: 1,\r\n rowspan: 1\r\n }\r\n },\r\n _updateColumnWidth: function(column, width) {\r\n column.width = width\r\n },\r\n _getColumns: function(initialColumnWidthsByColumnIndex) {\r\n var result = [];\r\n var i;\r\n var columns;\r\n var columnsController = this._columnsController;\r\n var rowCount = columnsController.getRowCount();\r\n for (i = 0; i <= rowCount; i++) {\r\n var currentHeaderRow = [];\r\n columns = columnsController.getVisibleColumns(i, true);\r\n var columnWidthsByColumnIndex = void 0;\r\n if (i === rowCount) {\r\n if (this._updateLockCount) {\r\n columnWidthsByColumnIndex = initialColumnWidthsByColumnIndex\r\n } else {\r\n var columnWidths = this._getColumnWidths(this._headersView, this._rowsView);\r\n if (columnWidths && columnWidths.length) {\r\n columnWidthsByColumnIndex = {};\r\n for (var _i = 0; _i < columns.length; _i++) {\r\n columnWidthsByColumnIndex[columns[_i].index] = columnWidths[_i]\r\n }\r\n }\r\n }\r\n }\r\n for (var j = 0; j < columns.length; j++) {\r\n var column = extend({}, columns[j], {\r\n dataType: \"datetime\" === columns[j].dataType ? \"date\" : columns[j].dataType,\r\n gridColumn: columns[j]\r\n });\r\n if (this._needColumnExporting(column)) {\r\n var currentColspan = this._calculateExportColspan(column);\r\n if (isDefined(currentColspan)) {\r\n column.exportColspan = currentColspan\r\n }\r\n if (columnWidthsByColumnIndex) {\r\n this._updateColumnWidth(column, columnWidthsByColumnIndex[column.index])\r\n }\r\n currentHeaderRow.push(column)\r\n }\r\n }\r\n result.push(currentHeaderRow)\r\n }\r\n columns = result[rowCount];\r\n result = this._prepareItems(result.slice(0, -1));\r\n result.push(columns);\r\n return result\r\n },\r\n _calculateExportColspan: function(column) {\r\n if (!column.isBand) {\r\n return\r\n }\r\n var childColumns = this._columnsController.getChildrenByBandColumn(column.index, true);\r\n if (!isDefined(childColumns)) {\r\n return\r\n }\r\n return childColumns.reduce((result, childColumn) => {\r\n if (this._needColumnExporting(childColumn)) {\r\n return result + (this._calculateExportColspan(childColumn) || 1)\r\n } else {\r\n return result\r\n }\r\n }, 0)\r\n },\r\n _needColumnExporting: function(column) {\r\n return !column.command && (column.allowExporting || void 0 === column.allowExporting)\r\n },\r\n _getFooterSummaryItems: function(summaryCells, isTotal) {\r\n var result = [];\r\n var estimatedItemsCount = 1;\r\n var i = 0;\r\n do {\r\n var values = [];\r\n for (var j = 0; j < summaryCells.length; j++) {\r\n var summaryCell = summaryCells[j];\r\n var itemsLength = summaryCell.length;\r\n if (estimatedItemsCount < itemsLength) {\r\n estimatedItemsCount = itemsLength\r\n }\r\n values.push(summaryCell[i])\r\n }\r\n result.push({\r\n values: values,\r\n rowType: isTotal ? \"totalFooter\" : \"groupFooter\"\r\n })\r\n } while (i++ < estimatedItemsCount - 1);\r\n return result\r\n },\r\n _hasSummaryGroupFooters: function() {\r\n var groupItems = this.option(\"summary.groupItems\");\r\n if (isDefined(groupItems)) {\r\n for (var i = 0; i < groupItems.length; i++) {\r\n if (groupItems[i].showInGroupFooter) {\r\n return true\r\n }\r\n }\r\n }\r\n return false\r\n },\r\n _getItemsWithSummaryGroupFooters: function(sourceItems) {\r\n var result = [];\r\n var beforeGroupFooterItems = [];\r\n var groupFooterItems = [];\r\n for (var i = 0; i < sourceItems.length; i++) {\r\n var item = sourceItems[i];\r\n if (\"groupFooter\" === item.rowType) {\r\n groupFooterItems = this._getFooterSummaryItems(item.summaryCells);\r\n result = result.concat(beforeGroupFooterItems, groupFooterItems);\r\n beforeGroupFooterItems = []\r\n } else {\r\n beforeGroupFooterItems.push(item)\r\n }\r\n }\r\n return result.length ? result : beforeGroupFooterItems\r\n },\r\n _updateGroupValuesWithSummaryByColumn: function(sourceItems) {\r\n var summaryValues = [];\r\n for (var i = 0; i < sourceItems.length; i++) {\r\n var item = sourceItems[i];\r\n var summaryCells = item.summaryCells;\r\n if (\"group\" === item.rowType && summaryCells && summaryCells.length > 1) {\r\n var groupColumnCount = item.values.length;\r\n for (var j = 1; j < summaryCells.length; j++) {\r\n for (var k = 0; k < summaryCells[j].length; k++) {\r\n var summaryItem = summaryCells[j][k];\r\n if (summaryItem && summaryItem.alignByColumn) {\r\n if (!Array.isArray(summaryValues[j - groupColumnCount])) {\r\n summaryValues[j - groupColumnCount] = []\r\n }\r\n summaryValues[j - groupColumnCount].push(summaryItem)\r\n }\r\n }\r\n }\r\n if (summaryValues.length > 0) {\r\n merge(item.values, summaryValues);\r\n summaryValues = []\r\n }\r\n }\r\n }\r\n },\r\n _processUnExportedItems: function(items) {\r\n var columns = this._columnsController.getVisibleColumns(null, true);\r\n var groupColumns = this._columnsController.getGroupColumns();\r\n var values;\r\n var summaryCells;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var isDetailExpandColumn = false;\r\n values = [];\r\n summaryCells = [];\r\n for (var j = 0; j < columns.length; j++) {\r\n var column = columns[j];\r\n isDetailExpandColumn = isDetailExpandColumn || \"detailExpand\" === column.type;\r\n if (this._needColumnExporting(column)) {\r\n if (item.values) {\r\n if (\"group\" === item.rowType && !values.length) {\r\n values.push(item.key[item.groupIndex])\r\n } else {\r\n values.push(item.values[j])\r\n }\r\n }\r\n if (item.summaryCells) {\r\n if (\"group\" === item.rowType && !summaryCells.length) {\r\n var index = j - groupColumns.length + item.groupIndex;\r\n summaryCells.push(item.summaryCells[isDetailExpandColumn ? index - 1 : index])\r\n } else {\r\n summaryCells.push(item.summaryCells[j])\r\n }\r\n }\r\n }\r\n }\r\n if (values.length) {\r\n item.values = values\r\n }\r\n if (summaryCells.length) {\r\n item.summaryCells = summaryCells\r\n }\r\n }\r\n },\r\n _getAllItems: function(data) {\r\n var that = this;\r\n var d = new Deferred;\r\n var dataController = this.getController(\"data\");\r\n var footerItems = dataController.footerItems();\r\n var totalItem = footerItems.length && footerItems[0];\r\n var summaryTotalItems = that.option(\"summary.totalItems\");\r\n var summaryCells;\r\n when(data).done((function(data) {\r\n dataController.loadAll(data).done((function(sourceItems, totalAggregates) {\r\n that._updateGroupValuesWithSummaryByColumn(sourceItems);\r\n if (that._hasSummaryGroupFooters()) {\r\n sourceItems = that._getItemsWithSummaryGroupFooters(sourceItems)\r\n }\r\n summaryCells = totalItem && totalItem.summaryCells;\r\n if (isDefined(totalAggregates) && summaryTotalItems) {\r\n summaryCells = that._getSummaryCells(summaryTotalItems, totalAggregates)\r\n }\r\n var summaryItems = totalItem && that._getFooterSummaryItems(summaryCells, true);\r\n if (summaryItems) {\r\n sourceItems = sourceItems.concat(summaryItems)\r\n }\r\n that._processUnExportedItems(sourceItems);\r\n d.resolve(sourceItems)\r\n })).fail(d.reject)\r\n })).fail(d.reject);\r\n return d\r\n },\r\n _getSummaryCells: function(summaryTotalItems, totalAggregates) {\r\n var dataController = this.getController(\"data\");\r\n var columnsController = dataController._columnsController;\r\n return dataController._calculateSummaryCells(summaryTotalItems, totalAggregates, columnsController.getVisibleColumns(null, true), (function(summaryItem, column) {\r\n return dataController._isDataColumn(column) ? column.index : -1\r\n }))\r\n },\r\n _getSelectedItems: function() {\r\n var selectionController = this.getController(\"selection\");\r\n var selectedRowData = selectionController.getSelectedRowsData();\r\n return this._getAllItems(selectedRowData)\r\n },\r\n _getColumnWidths: function(headersView, rowsView) {\r\n return headersView && headersView.isVisible() ? headersView.getColumnWidths() : rowsView.getColumnWidths()\r\n },\r\n init: function() {\r\n this._columnsController = this.getController(\"columns\");\r\n this._rowsView = this.getView(\"rowsView\");\r\n this._headersView = this.getView(\"columnHeadersView\");\r\n this.createAction(\"onExporting\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onExported\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onFileSaving\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n callbackNames: function() {\r\n return [\"selectionOnlyChanged\"]\r\n },\r\n getExportFormat: function() {\r\n return [\"EXCEL\"]\r\n },\r\n getDataProvider: function(selectedRowsOnly) {\r\n var columnWidths = this._getColumnWidths(this._headersView, this._rowsView);\r\n var initialColumnWidthsByColumnIndex;\r\n if (columnWidths && columnWidths.length) {\r\n initialColumnWidthsByColumnIndex = {};\r\n var columnsLastRowVisibleColumns = this._columnsController.getVisibleColumns(this._columnsController.getRowCount(), true);\r\n for (var i = 0; i < columnsLastRowVisibleColumns.length; i++) {\r\n initialColumnWidthsByColumnIndex[columnsLastRowVisibleColumns[i].index] = columnWidths[i]\r\n }\r\n }\r\n return new DataProvider(this, initialColumnWidthsByColumnIndex, selectedRowsOnly)\r\n },\r\n exportToExcel: function(selectionOnly) {\r\n this._selectionOnly = selectionOnly;\r\n clientExport(this.component.getDataProvider(), {\r\n fileName: this.option(\"export.fileName\"),\r\n proxyUrl: this.option(\"export.proxyUrl\"),\r\n format: \"EXCEL\",\r\n autoFilterEnabled: !!this.option(\"export.excelFilterEnabled\"),\r\n rtlEnabled: this.option(\"rtlEnabled\"),\r\n ignoreErrors: this.option(\"export.ignoreExcelErrors\"),\r\n exportingAction: this.getAction(\"onExporting\"),\r\n exportedAction: this.getAction(\"onExported\"),\r\n fileSavingAction: this.getAction(\"onFileSaving\")\r\n }, excel.getData)\r\n },\r\n publicMethods: function() {\r\n return [\"getDataProvider\", \"getExportFormat\", \"exportToExcel\"]\r\n },\r\n selectionOnly: function(value) {\r\n if (isDefined(value)) {\r\n this._isSelectedRows = value;\r\n this.selectionOnlyChanged.fire()\r\n } else {\r\n return this._isSelectedRows\r\n }\r\n }\r\n});\r\ndataGridCore.registerModule(\"export\", {\r\n defaultOptions: function() {\r\n return {\r\n export: {\r\n enabled: false,\r\n fileName: \"DataGrid\",\r\n excelFilterEnabled: false,\r\n excelWrapTextEnabled: void 0,\r\n proxyUrl: void 0,\r\n allowExportSelectedData: false,\r\n ignoreExcelErrors: true,\r\n texts: {\r\n exportTo: messageLocalization.format(\"dxDataGrid-exportTo\"),\r\n exportAll: messageLocalization.format(\"dxDataGrid-exportAll\"),\r\n exportSelectedRows: messageLocalization.format(\"dxDataGrid-exportSelectedRows\")\r\n }\r\n }\r\n }\r\n },\r\n controllers: {\r\n export: ExportController\r\n },\r\n extenders: {\r\n controllers: {\r\n editing: {\r\n callbackNames: function() {\r\n var callbackList = this.callBase();\r\n return isDefined(callbackList) ? callbackList.push(\"editingChanged\") : [\"editingChanged\"]\r\n },\r\n _updateEditButtons: function() {\r\n this.callBase();\r\n this.editingChanged.fire(this.hasChanges())\r\n }\r\n }\r\n },\r\n views: {\r\n headerPanel: {\r\n _getToolbarItems: function() {\r\n var items = this.callBase();\r\n return this._appendExportItems(items)\r\n },\r\n _appendExportItems: function(items) {\r\n var that = this;\r\n var exportOptions = that.option(\"export\");\r\n if (exportOptions.enabled) {\r\n var exportItems = [];\r\n if (exportOptions.allowExportSelectedData) {\r\n exportItems.push({\r\n template: function(data, index, container) {\r\n var $container = $(container);\r\n that._renderButton(data, $container);\r\n that._renderExportMenu($container)\r\n },\r\n menuItemTemplate: function(data, index, container) {\r\n that._renderList(data, $(container))\r\n },\r\n name: \"exportButton\",\r\n allowExportSelected: true,\r\n location: \"after\",\r\n locateInMenu: \"auto\",\r\n sortIndex: 30\r\n })\r\n } else {\r\n exportItems.push({\r\n template: function(data, index, container) {\r\n that._renderButton(data, $(container))\r\n },\r\n menuItemTemplate: function(data, index, container) {\r\n that._renderButton(data, $(container), true)\r\n },\r\n name: \"exportButton\",\r\n location: \"after\",\r\n locateInMenu: \"auto\",\r\n sortIndex: 30\r\n })\r\n }\r\n items = items.concat(exportItems);\r\n that._correctItemsPosition(items)\r\n }\r\n return items\r\n },\r\n _renderButton: function(data, $container, withText) {\r\n var buttonOptions = this._getButtonOptions(data.allowExportSelected);\r\n var $buttonContainer = this._getButtonContainer().addClass(DATAGRID_EXPORT_BUTTON_CLASS).appendTo($container);\r\n if (withText) {\r\n var wrapperNode = $(\"
\").addClass(TOOLBAR_ITEM_AUTO_HIDE_CLASS);\r\n $container.wrapInner(wrapperNode).parent().addClass(\"dx-toolbar-menu-action dx-toolbar-menu-button \" + TOOLBAR_HIDDEN_BUTTON_CLASS);\r\n buttonOptions.text = buttonOptions.hint\r\n }\r\n this._createComponent($buttonContainer, Button, buttonOptions)\r\n },\r\n _renderList: function(data, $container) {\r\n var that = this;\r\n var texts = that.option(\"export.texts\");\r\n var items = [{\r\n template: function(data, index, container) {\r\n that._renderFakeButton(data, $(container), DATAGRID_EXPORT_EXCEL_ICON)\r\n },\r\n text: texts.exportAll\r\n }, {\r\n template: function(data, index, container) {\r\n that._renderFakeButton(data, $(container), DATAGRID_EXPORT_SELECTED_ICON)\r\n },\r\n text: texts.exportSelectedRows,\r\n exportSelected: true\r\n }];\r\n that._createComponent($container, List, {\r\n items: items,\r\n onItemClick: function(e) {\r\n that._exportController.exportToExcel(e.itemData.exportSelected)\r\n },\r\n scrollingEnabled: false\r\n })\r\n },\r\n _renderFakeButton: function(data, $container, iconName) {\r\n var $icon = $(\"
\").addClass(\"dx-icon dx-icon-\" + iconName);\r\n var $text = $(\"\").addClass(\"dx-button-text\").text(data.text);\r\n var $content = $(\"
\").addClass(\"dx-button-content\").append($icon).append($text);\r\n var $button = $(\"
\").addClass(BUTTON_CLASS + \" dx-button-has-text dx-button-has-icon dx-datagrid-toolbar-button\").append($content);\r\n var $toolbarItem = $(\"
\").addClass(TOOLBAR_ITEM_AUTO_HIDE_CLASS).append($button);\r\n $container.append($toolbarItem).parent().addClass(\"dx-toolbar-menu-custom \" + TOOLBAR_HIDDEN_BUTTON_CLASS)\r\n },\r\n _correctItemsPosition: function(items) {\r\n items.sort((function(itemA, itemB) {\r\n return itemA.sortIndex - itemB.sortIndex\r\n }))\r\n },\r\n _renderExportMenu: function($buttonContainer) {\r\n var that = this;\r\n var $button = $buttonContainer.find(\".\" + BUTTON_CLASS);\r\n var texts = that.option(\"export.texts\");\r\n var menuItems = [{\r\n text: texts.exportAll,\r\n icon: DATAGRID_EXPORT_EXCEL_ICON\r\n }, {\r\n text: texts.exportSelectedRows,\r\n exportSelected: true,\r\n icon: DATAGRID_EXPORT_SELECTED_ICON\r\n }];\r\n var $menuContainer = $(\"
\").appendTo($buttonContainer);\r\n that._contextMenu = that._createComponent($menuContainer, ContextMenu, {\r\n showEvent: \"dxclick\",\r\n items: menuItems,\r\n cssClass: DATAGRID_EXPORT_MENU_CLASS,\r\n onItemClick: function(e) {\r\n that._exportController.exportToExcel(e.itemData.exportSelected)\r\n },\r\n target: $button,\r\n position: {\r\n at: \"left bottom\",\r\n my: \"left top\",\r\n offset: \"0 3\",\r\n collision: \"fit\",\r\n boundary: that._$parent,\r\n boundaryOffset: \"1 1\"\r\n }\r\n })\r\n },\r\n _isExportButtonVisible: function() {\r\n return this.option(\"export.enabled\")\r\n },\r\n _getButtonOptions: function(allowExportSelected) {\r\n var that = this;\r\n var texts = that.option(\"export.texts\");\r\n var options;\r\n if (allowExportSelected) {\r\n options = {\r\n hint: texts.exportTo,\r\n icon: DATAGRID_EXPORT_ICON\r\n }\r\n } else {\r\n options = {\r\n hint: texts.exportAll,\r\n icon: DATAGRID_EXPORT_EXCEL_BUTTON_ICON,\r\n onClick: function() {\r\n that._exportController.exportToExcel()\r\n }\r\n }\r\n }\r\n return options\r\n },\r\n optionChanged: function(args) {\r\n this.callBase(args);\r\n if (\"export\" === args.name) {\r\n args.handled = true;\r\n this._invalidate()\r\n }\r\n },\r\n init: function() {\r\n var that = this;\r\n this.callBase();\r\n this._exportController = this.getController(\"export\");\r\n this._editingController = this.getController(\"editing\");\r\n this._editingController.editingChanged.add((function(hasChanges) {\r\n that.setToolbarItemDisabled(\"exportButton\", hasChanges)\r\n }))\r\n },\r\n isVisible: function() {\r\n return this.callBase() || this._isExportButtonVisible()\r\n }\r\n }\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.focus.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 core from \"./ui.grid_core.modules\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isBoolean\r\n} from \"../../core/utils/type\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nvar ROW_FOCUSED_CLASS = \"dx-row-focused\";\r\nvar FOCUSED_ROW_SELECTOR = \".dx-row.\" + ROW_FOCUSED_CLASS;\r\nvar TABLE_POSTFIX_CLASS = \"table\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar FocusController = core.ViewController.inherit({\r\n init: function() {\r\n this._dataController = this.getController(\"data\");\r\n this._keyboardController = this.getController(\"keyboardNavigation\");\r\n this.component._optionsByReference.focusedRowKey = true\r\n },\r\n optionChanged: function(args) {\r\n if (\"focusedRowIndex\" === args.name) {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n this._focusRowByIndex(args.value);\r\n this._triggerFocusedRowChangedIfNeed(focusedRowKey, args.value);\r\n args.handled = true\r\n } else if (\"focusedRowKey\" === args.name) {\r\n args.handled = true;\r\n if (Array.isArray(args.value) && JSON.stringify(args.value) === JSON.stringify(args.previousValue)) {\r\n return\r\n }\r\n var focusedRowIndex = this.option(\"focusedRowIndex\");\r\n this._focusRowByKey(args.value);\r\n this._triggerFocusedRowChangedIfNeed(args.value, focusedRowIndex)\r\n } else if (\"focusedColumnIndex\" === args.name) {\r\n args.handled = true\r\n } else if (\"focusedRowEnabled\" === args.name) {\r\n args.handled = true\r\n } else if (\"autoNavigateToFocusedRow\" === args.name) {\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n },\r\n _triggerFocusedRowChangedIfNeed: function(focusedRowKey, focusedRowIndex) {\r\n var focusedRowIndexByKey = this.getFocusedRowIndexByKey(focusedRowKey);\r\n if (focusedRowIndex === focusedRowIndexByKey) {\r\n var rowIndex = this._dataController.getRowIndexByKey(focusedRowKey);\r\n if (rowIndex >= 0) {\r\n var $rowElement = $(this.getView(\"rowsView\").getRowElement(rowIndex));\r\n this.getController(\"keyboardNavigation\")._fireFocusedRowChanged($rowElement, focusedRowIndex)\r\n }\r\n }\r\n },\r\n isAutoNavigateToFocusedRow: function() {\r\n return \"infinite\" !== this.option(\"scrolling.mode\") && this.option(\"autoNavigateToFocusedRow\")\r\n },\r\n _focusRowByIndex: function(index, operationTypes) {\r\n if (!this.option(\"focusedRowEnabled\")) {\r\n return\r\n }\r\n index = void 0 !== index ? index : this.option(\"focusedRowIndex\");\r\n if (index < 0) {\r\n if (this.isAutoNavigateToFocusedRow()) {\r\n this._resetFocusedRow()\r\n }\r\n } else {\r\n this._focusRowByIndexCore(index, operationTypes)\r\n }\r\n },\r\n _focusRowByIndexCore: function(index, operationTypes) {\r\n var dataController = this.getController(\"data\");\r\n var pageSize = dataController.pageSize();\r\n var setKeyByIndex = () => {\r\n if (this._isValidFocusedRowIndex(index)) {\r\n var rowIndex = index - dataController.getRowIndexOffset(true);\r\n if (!operationTypes || operationTypes.paging && !operationTypes.filtering) {\r\n var lastItemIndex = dataController._getLastItemIndex();\r\n rowIndex = Math.min(rowIndex, lastItemIndex)\r\n }\r\n var focusedRowKey = dataController.getKeyByRowIndex(rowIndex, true);\r\n if (isDefined(focusedRowKey) && !this.isRowFocused(focusedRowKey)) {\r\n this.option(\"focusedRowKey\", focusedRowKey)\r\n }\r\n }\r\n };\r\n if (pageSize >= 0) {\r\n if (!this._isLocalRowIndex(index)) {\r\n var pageIndex = Math.floor(index / dataController.pageSize());\r\n when(dataController.pageIndex(pageIndex), dataController.waitReady()).done(() => {\r\n setKeyByIndex()\r\n })\r\n } else {\r\n setKeyByIndex()\r\n }\r\n }\r\n },\r\n _isLocalRowIndex(index) {\r\n var dataController = this.getController(\"data\");\r\n var isVirtualScrolling = this.getController(\"keyboardNavigation\")._isVirtualScrolling();\r\n if (isVirtualScrolling) {\r\n var pageIndex = Math.floor(index / dataController.pageSize());\r\n var virtualItems = dataController.virtualItemsCount();\r\n var virtualItemsBegin = virtualItems ? virtualItems.begin : -1;\r\n var visibleRowsCount = dataController.getVisibleRows().length + dataController.getRowIndexOffset();\r\n var visiblePagesCount = Math.ceil(visibleRowsCount / dataController.pageSize());\r\n return virtualItemsBegin <= index && visiblePagesCount > pageIndex\r\n }\r\n return true\r\n },\r\n _setFocusedRowKeyByIndex: function(index) {\r\n var dataController = this.getController(\"data\");\r\n if (this._isValidFocusedRowIndex(index)) {\r\n var rowIndex = Math.min(index - dataController.getRowIndexOffset(), dataController.items().length - 1);\r\n var focusedRowKey = dataController.getKeyByRowIndex(rowIndex);\r\n if (isDefined(focusedRowKey) && !this.isRowFocused(focusedRowKey)) {\r\n this.option(\"focusedRowKey\", focusedRowKey)\r\n }\r\n }\r\n },\r\n _focusRowByKey: function(key) {\r\n if (!isDefined(key)) {\r\n this._resetFocusedRow()\r\n } else {\r\n this._navigateToRow(key, true)\r\n }\r\n },\r\n _resetFocusedRow: function() {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var isFocusedRowKeyDefined = isDefined(focusedRowKey);\r\n if (!isFocusedRowKeyDefined && this.option(\"focusedRowIndex\") < 0) {\r\n return\r\n }\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n if (isFocusedRowKeyDefined) {\r\n this.option(\"focusedRowKey\", void 0)\r\n }\r\n keyboardController.setFocusedRowIndex(-1);\r\n this.option(\"focusedRowIndex\", -1);\r\n this.getController(\"data\").updateItems({\r\n changeType: \"updateFocusedRow\",\r\n focusedRowKey: void 0\r\n });\r\n keyboardController._fireFocusedRowChanged(void 0, -1)\r\n },\r\n _isValidFocusedRowIndex: function(rowIndex) {\r\n var dataController = this.getController(\"data\");\r\n var row = dataController.getVisibleRows()[rowIndex];\r\n return !row || \"data\" === row.rowType || \"group\" === row.rowType\r\n },\r\n publicMethods: function() {\r\n return [\"navigateToRow\", \"isRowFocused\"]\r\n },\r\n navigateToRow: function(key) {\r\n if (!this.isAutoNavigateToFocusedRow()) {\r\n this.option(\"focusedRowIndex\", -1)\r\n }\r\n this._navigateToRow(key)\r\n },\r\n _navigateToRow: function(key, needFocusRow) {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n var isAutoNavigate = that.isAutoNavigateToFocusedRow();\r\n var d = new Deferred;\r\n if (void 0 === key || !dataController.dataSource()) {\r\n return d.reject().promise()\r\n }\r\n var rowIndexByKey = that.getFocusedRowIndexByKey(key);\r\n if (!isAutoNavigate && needFocusRow || rowIndexByKey >= 0) {\r\n that._navigateTo(key, d, needFocusRow)\r\n } else {\r\n dataController.getPageIndexByKey(key).done((function(pageIndex) {\r\n if (pageIndex < 0) {\r\n d.resolve(-1);\r\n return\r\n }\r\n if (pageIndex === dataController.pageIndex()) {\r\n dataController.reload().done((function() {\r\n if (that.isRowFocused(key)) {\r\n d.resolve(that.getFocusedRowIndexByKey(key))\r\n } else {\r\n that._navigateTo(key, d, needFocusRow)\r\n }\r\n })).fail(d.reject)\r\n } else {\r\n dataController.pageIndex(pageIndex).done((function() {\r\n that._navigateTo(key, d, needFocusRow)\r\n })).fail(d.reject)\r\n }\r\n })).fail(d.reject)\r\n }\r\n return d.promise()\r\n },\r\n _navigateTo: function(key, deferred, needFocusRow) {\r\n var visibleRowIndex = this.getController(\"data\").getRowIndexByKey(key);\r\n var isVirtualRowRenderingMode = \"virtual\" === this.option(\"scrolling.rowRenderingMode\");\r\n var isAutoNavigate = this.isAutoNavigateToFocusedRow();\r\n if (isAutoNavigate && isVirtualRowRenderingMode && visibleRowIndex < 0) {\r\n this._navigateToVirtualRow(key, deferred, needFocusRow)\r\n } else {\r\n this._navigateToVisibleRow(key, deferred, needFocusRow)\r\n }\r\n },\r\n _navigateToVisibleRow: function(key, deferred, needFocusRow) {\r\n if (needFocusRow) {\r\n this._triggerUpdateFocusedRow(key, deferred)\r\n } else {\r\n this.getView(\"rowsView\").scrollToRowElement(key)\r\n }\r\n },\r\n _navigateToVirtualRow: function(key, deferred, needFocusRow) {\r\n var that = this;\r\n var dataController = this.getController(\"data\");\r\n var rowsScrollController = dataController._rowsScrollController;\r\n var rowIndex = gridCoreUtils.getIndexByKey(key, dataController.items(true));\r\n var scrollable = that.getView(\"rowsView\").getScrollable();\r\n if (rowsScrollController && scrollable && rowIndex >= 0) {\r\n var focusedRowIndex = rowIndex + dataController.getRowIndexOffset(true);\r\n var offset = rowsScrollController.getItemOffset(focusedRowIndex);\r\n if (needFocusRow) {\r\n that.component.on(\"contentReady\", (function triggerUpdateFocusedRow() {\r\n that.component.off(\"contentReady\", triggerUpdateFocusedRow);\r\n that._triggerUpdateFocusedRow(key, deferred)\r\n }))\r\n }\r\n scrollable.scrollTo({\r\n y: offset\r\n })\r\n }\r\n },\r\n _triggerUpdateFocusedRow: function(key, deferred) {\r\n var dataController = this.getController(\"data\");\r\n var focusedRowIndex = this.getFocusedRowIndexByKey(key);\r\n if (this._isValidFocusedRowIndex(focusedRowIndex)) {\r\n if (this.option(\"focusedRowEnabled\")) {\r\n dataController.updateItems({\r\n changeType: \"updateFocusedRow\",\r\n focusedRowKey: key\r\n })\r\n } else {\r\n this.getView(\"rowsView\").scrollToRowElement(key)\r\n }\r\n this.getController(\"keyboardNavigation\").setFocusedRowIndex(focusedRowIndex);\r\n deferred && deferred.resolve(focusedRowIndex)\r\n } else {\r\n deferred && deferred.resolve(-1)\r\n }\r\n },\r\n getFocusedRowIndexByKey: function(key) {\r\n var dataController = this.getController(\"data\");\r\n var loadedRowIndex = dataController.getRowIndexByKey(key, true);\r\n return loadedRowIndex >= 0 ? loadedRowIndex + dataController.getRowIndexOffset(true) : -1\r\n },\r\n _focusRowByKeyOrIndex: function() {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var currentFocusedRowIndex = this.option(\"focusedRowIndex\");\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var dataController = this.getController(\"data\");\r\n if (isDefined(focusedRowKey)) {\r\n var visibleRowIndex = dataController.getRowIndexByKey(focusedRowKey);\r\n if (visibleRowIndex >= 0) {\r\n if (keyboardController._isVirtualScrolling()) {\r\n currentFocusedRowIndex = visibleRowIndex + dataController.getRowIndexOffset()\r\n }\r\n keyboardController.setFocusedRowIndex(currentFocusedRowIndex);\r\n this._triggerUpdateFocusedRow(focusedRowKey)\r\n } else {\r\n this._navigateToRow(focusedRowKey, true).done(focusedRowIndex => {\r\n if (currentFocusedRowIndex >= 0 && focusedRowIndex < 0) {\r\n this._focusRowByIndex()\r\n } else if (currentFocusedRowIndex < 0 && focusedRowIndex >= 0) {\r\n keyboardController.setFocusedRowIndex(focusedRowIndex)\r\n }\r\n })\r\n }\r\n } else if (currentFocusedRowIndex >= 0) {\r\n this.getController(\"focus\")._focusRowByIndex(currentFocusedRowIndex)\r\n }\r\n },\r\n isRowFocused: function(key) {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n if (isDefined(focusedRowKey)) {\r\n return equalByValue(key, this.option(\"focusedRowKey\"))\r\n }\r\n },\r\n updateFocusedRow: function(change) {\r\n var that = this;\r\n var focusedRowIndex = that._dataController.getRowIndexByKey(change.focusedRowKey);\r\n var rowsView = that.getView(\"rowsView\");\r\n var $tableElement;\r\n each(rowsView.getTableElements(), (function(index, element) {\r\n var _change$items;\r\n var isMainTable = 0 === index;\r\n $tableElement = $(element);\r\n that._clearPreviousFocusedRow($tableElement, focusedRowIndex);\r\n that._prepareFocusedRow({\r\n changedItem: null === change || void 0 === change ? void 0 : null === (_change$items = change.items) || void 0 === _change$items ? void 0 : _change$items[focusedRowIndex],\r\n $tableElement: $tableElement,\r\n focusedRowIndex: focusedRowIndex,\r\n isMainTable: isMainTable\r\n })\r\n }))\r\n },\r\n _clearPreviousFocusedRow: function($tableElement, focusedRowIndex) {\r\n var $prevRowFocusedElement = $tableElement.find(FOCUSED_ROW_SELECTOR).filter((_, focusedRow) => {\r\n var $focusedRowTable = $(focusedRow).closest(\".\".concat(this.addWidgetPrefix(TABLE_POSTFIX_CLASS)));\r\n return $tableElement.is($focusedRowTable)\r\n });\r\n $prevRowFocusedElement.removeClass(ROW_FOCUSED_CLASS).removeClass(CELL_FOCUS_DISABLED_CLASS).removeAttr(\"tabindex\");\r\n $prevRowFocusedElement.children(\"td\").removeAttr(\"tabindex\");\r\n if (0 !== focusedRowIndex) {\r\n var $firstRow = $(this.getView(\"rowsView\").getRowElement(0));\r\n $firstRow.removeClass(CELL_FOCUS_DISABLED_CLASS).removeAttr(\"tabIndex\")\r\n }\r\n },\r\n _prepareFocusedRow: function(options) {\r\n var $row;\r\n var changedItem = options.changedItem;\r\n if (changedItem && (\"data\" === changedItem.rowType || \"group\" === changedItem.rowType)) {\r\n var focusedRowIndex = options.focusedRowIndex;\r\n var $tableElement = options.$tableElement;\r\n var isMainTable = options.isMainTable;\r\n var tabIndex = this.option(\"tabindex\") || 0;\r\n var rowsView = this.getView(\"rowsView\");\r\n $row = $(rowsView._getRowElements($tableElement).eq(focusedRowIndex));\r\n $row.addClass(ROW_FOCUSED_CLASS).attr(\"tabindex\", tabIndex);\r\n if (isMainTable) {\r\n rowsView.scrollToElementVertically($row)\r\n }\r\n }\r\n return $row\r\n }\r\n});\r\nexport var focusModule = {\r\n defaultOptions: function() {\r\n return {\r\n focusedRowEnabled: false,\r\n autoNavigateToFocusedRow: true,\r\n focusedRowKey: void 0,\r\n focusedRowIndex: -1,\r\n focusedColumnIndex: -1\r\n }\r\n },\r\n controllers: {\r\n focus: FocusController\r\n },\r\n extenders: {\r\n controllers: {\r\n keyboardNavigation: {\r\n init: function() {\r\n var rowIndex = this.option(\"focusedRowIndex\");\r\n var columnIndex = this.option(\"focusedColumnIndex\");\r\n this.createAction(\"onFocusedRowChanging\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onFocusedRowChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onFocusedCellChanging\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onFocusedCellChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.callBase();\r\n this.setRowFocusType();\r\n this._focusedCellPosition = {};\r\n if (isDefined(rowIndex)) {\r\n this._focusedCellPosition.rowIndex = this.option(\"focusedRowIndex\")\r\n }\r\n if (isDefined(columnIndex)) {\r\n this._focusedCellPosition.columnIndex = this.option(\"focusedColumnIndex\")\r\n }\r\n },\r\n setFocusedRowIndex: function(rowIndex) {\r\n var dataController = this.getController(\"data\");\r\n this.callBase(rowIndex);\r\n var visibleRowIndex = rowIndex - dataController.getRowIndexOffset();\r\n var visibleRow = dataController.getVisibleRows()[visibleRowIndex];\r\n if (!visibleRow || !visibleRow.isNewRow) {\r\n this.option(\"focusedRowIndex\", rowIndex)\r\n }\r\n },\r\n setFocusedColumnIndex: function(columnIndex) {\r\n this.callBase(columnIndex);\r\n this.option(\"focusedColumnIndex\", columnIndex)\r\n },\r\n _escapeKeyHandler: function(eventArgs, isEditing) {\r\n if (isEditing || !this.option(\"focusedRowEnabled\")) {\r\n this.callBase(eventArgs, isEditing);\r\n return\r\n }\r\n if (this.isCellFocusType()) {\r\n this.setRowFocusType();\r\n this._focus(this._getCellElementFromTarget(eventArgs.originalEvent.target), true)\r\n }\r\n },\r\n _updateFocusedCellPosition: function($cell, direction) {\r\n var prevRowIndex = this.option(\"focusedRowIndex\");\r\n var prevColumnIndex = this.option(\"focusedColumnIndex\");\r\n var position = this.callBase($cell, direction);\r\n if (position && position.columnIndex >= 0) {\r\n this._fireFocusedCellChanged($cell, prevColumnIndex, prevRowIndex)\r\n }\r\n }\r\n },\r\n editorFactory: {\r\n renderFocusOverlay: function($element, hideBorder) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var focusedRowEnabled = this.option(\"focusedRowEnabled\");\r\n var editingController = this.getController(\"editing\");\r\n var isRowElement = \"row\" === keyboardController._getElementType($element);\r\n var $cell;\r\n if (!focusedRowEnabled || !keyboardController.isRowFocusType() || editingController.isEditing()) {\r\n this.callBase($element, hideBorder)\r\n } else if (focusedRowEnabled) {\r\n if (isRowElement && !$element.hasClass(ROW_FOCUSED_CLASS)) {\r\n $cell = keyboardController.getFirstValidCellInRow($element);\r\n keyboardController.focus($cell)\r\n }\r\n }\r\n }\r\n },\r\n columns: {\r\n getSortDataSourceParameters: function(_, sortByKey) {\r\n var result = this.callBase.apply(this, arguments);\r\n var dataController = this.getController(\"data\");\r\n var dataSource = dataController._dataSource;\r\n var store = dataController.store();\r\n var key = store && store.key();\r\n var remoteOperations = dataSource && dataSource.remoteOperations() || {};\r\n var isLocalOperations = Object.keys(remoteOperations).every(operationName => !remoteOperations[operationName]);\r\n if (key && (this.option(\"focusedRowEnabled\") && false !== this.getController(\"focus\").isAutoNavigateToFocusedRow() || sortByKey)) {\r\n key = Array.isArray(key) ? key : [key];\r\n var notSortedKeys = key.filter(key => !this.columnOption(key, \"sortOrder\"));\r\n if (notSortedKeys.length) {\r\n result = result || [];\r\n if (isLocalOperations) {\r\n result.push({\r\n selector: dataSource.getDataIndexGetter(),\r\n desc: false\r\n })\r\n } else {\r\n notSortedKeys.forEach(notSortedKey => result.push({\r\n selector: notSortedKey,\r\n desc: false\r\n }))\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n },\r\n data: {\r\n _applyChange: function(change) {\r\n if (change && \"updateFocusedRow\" === change.changeType) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _fireChanged: function(e) {\r\n this.callBase(e);\r\n if (this.option(\"focusedRowEnabled\") && this._dataSource) {\r\n var isPartialUpdate = \"update\" === e.changeType && e.repaintChangesOnly;\r\n var isPartialUpdateWithDeleting = isPartialUpdate && e.changeTypes && e.changeTypes.indexOf(\"remove\") >= 0;\r\n if (\"refresh\" === e.changeType && e.items.length || isPartialUpdateWithDeleting) {\r\n this._updatePageIndexes();\r\n this.processUpdateFocusedRow(e)\r\n } else if (\"append\" === e.changeType || \"prepend\" === e.changeType) {\r\n this._updatePageIndexes()\r\n }\r\n }\r\n },\r\n _updatePageIndexes: function() {\r\n var prevRenderingPageIndex = this._lastRenderingPageIndex || 0;\r\n var renderingPageIndex = this._rowsScrollController ? this._rowsScrollController.pageIndex() : 0;\r\n this._lastRenderingPageIndex = renderingPageIndex;\r\n this._isPagingByRendering = renderingPageIndex !== prevRenderingPageIndex\r\n },\r\n isPagingByRendering: function() {\r\n return this._isPagingByRendering\r\n },\r\n processUpdateFocusedRow: function(e) {\r\n var operationTypes = e.operationTypes || {};\r\n var focusController = this.getController(\"focus\");\r\n var {\r\n reload: reload,\r\n fullReload: fullReload\r\n } = operationTypes;\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var isVirtualScrolling = keyboardController._isVirtualScrolling();\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var isAutoNavigate = focusController.isAutoNavigateToFocusedRow();\r\n if (reload && !fullReload && isDefined(focusedRowKey)) {\r\n focusController._navigateToRow(focusedRowKey, true).done((function(focusedRowIndex) {\r\n if (focusedRowIndex < 0) {\r\n focusController._focusRowByIndex(void 0, operationTypes)\r\n }\r\n }))\r\n } else if (operationTypes.paging && !isVirtualScrolling) {\r\n if (isAutoNavigate) {\r\n var rowIndexByKey = this.getRowIndexByKey(focusedRowKey);\r\n var isValidRowIndexByKey = rowIndexByKey >= 0;\r\n var focusedRowIndex = this.option(\"focusedRowIndex\");\r\n var needFocusRowByIndex = focusedRowIndex >= 0 && (focusedRowIndex === rowIndexByKey || !isValidRowIndexByKey);\r\n if (needFocusRowByIndex) {\r\n focusController._focusRowByIndex(void 0, operationTypes)\r\n }\r\n } else if (this.getRowIndexByKey(focusedRowKey) < 0) {\r\n this.option(\"focusedRowIndex\", -1)\r\n }\r\n } else if (operationTypes.fullReload) {\r\n focusController._focusRowByKeyOrIndex()\r\n }\r\n },\r\n getPageIndexByKey: function(key) {\r\n var that = this;\r\n var d = new Deferred;\r\n that.getGlobalRowIndexByKey(key).done((function(globalIndex) {\r\n d.resolve(globalIndex >= 0 ? Math.floor(globalIndex / that.pageSize()) : -1)\r\n })).fail(d.reject);\r\n return d.promise()\r\n },\r\n getGlobalRowIndexByKey: function(key) {\r\n if (this._dataSource.group()) {\r\n return this._calculateGlobalRowIndexByGroupedData(key)\r\n }\r\n return this._calculateGlobalRowIndexByFlatData(key)\r\n },\r\n _calculateGlobalRowIndexByFlatData: function(key, groupFilter, useGroup) {\r\n var that = this;\r\n var deferred = new Deferred;\r\n var dataSource = that._dataSource;\r\n var filter = that._generateFilterByKey(key);\r\n dataSource.load({\r\n filter: that._concatWithCombinedFilter(filter),\r\n skip: 0,\r\n take: 1\r\n }).done((function(data) {\r\n if (data.length > 0) {\r\n filter = that._generateOperationFilterByKey(key, data[0], useGroup);\r\n dataSource.load({\r\n filter: that._concatWithCombinedFilter(filter, groupFilter),\r\n skip: 0,\r\n take: 1,\r\n requireTotalCount: true\r\n }).done((function(_, extra) {\r\n deferred.resolve(extra.totalCount)\r\n }))\r\n } else {\r\n deferred.resolve(-1)\r\n }\r\n }));\r\n return deferred.promise()\r\n },\r\n _concatWithCombinedFilter: function(filter, groupFilter) {\r\n var combinedFilter = this.getCombinedFilter();\r\n return gridCoreUtils.combineFilters([filter, combinedFilter, groupFilter])\r\n },\r\n _generateBooleanFilter: function(selector, value, sortInfo) {\r\n var result;\r\n if (false === value) {\r\n result = [selector, \"=\", sortInfo.desc ? true : null]\r\n } else if (true === value ? !sortInfo.desc : sortInfo.desc) {\r\n result = [selector, \"<>\", value]\r\n }\r\n return result\r\n },\r\n _generateOperationFilterByKey: function(key, rowData, useGroup) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var filter = that._generateFilterByKey(key, \"<\");\r\n var sort = that._columnsController.getSortDataSourceParameters(!dataSource.remoteOperations().filtering, true);\r\n if (useGroup) {\r\n var group = that._columnsController.getGroupDataSourceParameters(!dataSource.remoteOperations().filtering);\r\n if (group) {\r\n sort = sort ? group.concat(sort) : group\r\n }\r\n }\r\n if (sort) {\r\n sort.slice().reverse().forEach((function(sortInfo) {\r\n var selector = sortInfo.selector;\r\n var getter;\r\n if (\"function\" === typeof selector) {\r\n getter = selector\r\n } else {\r\n getter = that._columnsController.columnOption(selector, \"selector\")\r\n }\r\n var value = getter ? getter(rowData) : rowData[selector];\r\n filter = [\r\n [selector, \"=\", value], \"and\", filter\r\n ];\r\n if (null === value || isBoolean(value)) {\r\n var booleanFilter = that._generateBooleanFilter(selector, value, sortInfo);\r\n if (booleanFilter) {\r\n filter = [booleanFilter, \"or\", filter]\r\n }\r\n } else {\r\n var filterOperation = sortInfo.desc ? \">\" : \"<\";\r\n var sortFilter = [selector, filterOperation, value];\r\n if (!sortInfo.desc) {\r\n sortFilter = [sortFilter, \"or\", [selector, \"=\", null]]\r\n }\r\n filter = [sortFilter, \"or\", filter]\r\n }\r\n }))\r\n }\r\n return filter\r\n },\r\n _generateFilterByKey: function(key, operation) {\r\n var dataSourceKey = this._dataSource.key();\r\n var filter = [];\r\n if (!operation) {\r\n operation = \"=\"\r\n }\r\n if (Array.isArray(dataSourceKey)) {\r\n for (var i = 0; i < dataSourceKey.length; ++i) {\r\n var keyPart = key[dataSourceKey[i]];\r\n if (keyPart) {\r\n if (filter.length > 0) {\r\n filter.push(\"and\")\r\n }\r\n filter.push([dataSourceKey[i], operation, keyPart])\r\n }\r\n }\r\n } else {\r\n filter = [dataSourceKey, operation, key]\r\n }\r\n return filter\r\n },\r\n _getLastItemIndex: function() {\r\n return this.items(true).length - 1\r\n }\r\n },\r\n editing: {\r\n _deleteRowCore: function(rowIndex) {\r\n var deferred = this.callBase.apply(this, arguments);\r\n var dataController = this.getController(\"data\");\r\n var rowKey = dataController.getKeyByRowIndex(rowIndex);\r\n deferred.done(() => {\r\n var rowIndex = dataController.getRowIndexByKey(rowKey);\r\n var visibleRows = dataController.getVisibleRows();\r\n if (-1 === rowIndex && !visibleRows.length) {\r\n this.getController(\"focus\")._resetFocusedRow()\r\n }\r\n })\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n _createRow: function(row) {\r\n var $row = this.callBase(row);\r\n if (this.option(\"focusedRowEnabled\") && row) {\r\n if (this.getController(\"focus\").isRowFocused(row.key)) {\r\n $row.addClass(ROW_FOCUSED_CLASS)\r\n }\r\n }\r\n return $row\r\n },\r\n _checkRowKeys: function(options) {\r\n this.callBase.apply(this, arguments);\r\n if (this.option(\"focusedRowEnabled\") && this.option(\"dataSource\")) {\r\n var store = this._dataController.store();\r\n if (store && !store.key()) {\r\n this._dataController.fireError(\"E1042\", \"Row focusing\")\r\n }\r\n }\r\n },\r\n _update: function(change) {\r\n if (\"updateFocusedRow\" === change.changeType) {\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this.getController(\"focus\").updateFocusedRow(change)\r\n }\r\n } else {\r\n this.callBase(change)\r\n }\r\n },\r\n updateFocusElementTabIndex: function($cellElements, preventScroll) {\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this._setFocusedRowElementTabIndex(preventScroll)\r\n } else {\r\n this.callBase($cellElements)\r\n }\r\n },\r\n _setFocusedRowElementTabIndex: function(preventScroll) {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var tabIndex = this.option(\"tabIndex\") || 0;\r\n var dataController = this._dataController;\r\n var columnsController = this._columnsController;\r\n var rowIndex = dataController.getRowIndexByKey(focusedRowKey);\r\n var columnIndex = this.option(\"focusedColumnIndex\");\r\n var $row = this._findRowElementForTabIndex();\r\n if (!isDefined(this._scrollToFocusOnResize)) {\r\n this._scrollToFocusOnResize = () => {\r\n this.scrollToElementVertically(this._findRowElementForTabIndex());\r\n this.resizeCompleted.remove(this._scrollToFocusOnResize)\r\n }\r\n }\r\n $row.attr(\"tabIndex\", tabIndex);\r\n if (rowIndex >= 0 && !preventScroll) {\r\n if (columnIndex < 0) {\r\n columnIndex = 0\r\n }\r\n rowIndex += dataController.getRowIndexOffset();\r\n columnIndex += columnsController.getColumnIndexOffset();\r\n this.getController(\"keyboardNavigation\").setFocusedCellPosition(rowIndex, columnIndex);\r\n if (this.getController(\"focus\").isAutoNavigateToFocusedRow()) {\r\n var dataSource = dataController.dataSource();\r\n var operationTypes = dataSource && dataSource.operationTypes();\r\n if (operationTypes && !operationTypes.paging && !dataController.isPagingByRendering()) {\r\n this.resizeCompleted.remove(this._scrollToFocusOnResize);\r\n this.resizeCompleted.add(this._scrollToFocusOnResize)\r\n }\r\n }\r\n }\r\n },\r\n _findRowElementForTabIndex: function() {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var rowIndex = this._dataController.getRowIndexByKey(focusedRowKey);\r\n return $(this.getRowElement(rowIndex >= 0 ? rowIndex : 0))\r\n },\r\n scrollToRowElement: function(key) {\r\n var rowIndex = this.getController(\"data\").getRowIndexByKey(key);\r\n var $row = $(this.getRow(rowIndex));\r\n this.scrollToElementVertically($row)\r\n },\r\n scrollToElementVertically: function($row) {\r\n var scrollable = this.getScrollable();\r\n if (scrollable) {\r\n var position = scrollable.getScrollElementPosition($row, \"vertical\");\r\n scrollable.scrollTo({\r\n top: position\r\n })\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.focus.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n focusModule\r\n} from \"../grid_core/ui.grid_core.focus\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport {\r\n createGroupFilter\r\n} from \"./ui.data_grid.utils\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\r\ngridCore.registerModule(\"focus\", extend(true, {}, focusModule, {\r\n extenders: {\r\n controllers: {\r\n data: {\r\n changeRowExpand: function(path, isRowClick) {\r\n if (this.option(\"focusedRowEnabled\") && Array.isArray(path) && this.isRowExpanded(path)) {\r\n var keyboardNavigation = this.getController(\"keyboardNavigation\");\r\n if ((!isRowClick || !keyboardNavigation.isKeyboardEnabled()) && this._isFocusedRowInsideGroup(path)) {\r\n this.option(\"focusedRowKey\", path)\r\n }\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _isFocusedRowInsideGroup: function(path) {\r\n var columnsController = this.getController(\"columns\");\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var rowIndex = this.getRowIndexByKey(focusedRowKey);\r\n var focusedRow = rowIndex >= 0 && this.getVisibleRows()[rowIndex];\r\n var groups = columnsController.getGroupDataSourceParameters(true);\r\n if (focusedRow) {\r\n for (var i = 0; i < path.length; ++i) {\r\n var getter = compileGetter(groups[i] && groups[i].selector);\r\n if (getter(focusedRow.data) !== path[i]) {\r\n return false\r\n }\r\n }\r\n }\r\n return true\r\n },\r\n _getGroupPath: function(group) {\r\n var groupPath = [group.key];\r\n var items = group.items;\r\n while (items && items[0]) {\r\n var item = items[0];\r\n if (void 0 !== item.key) {\r\n groupPath.push(item.key)\r\n }\r\n items = item.items\r\n }\r\n return groupPath\r\n },\r\n _expandGroupByPath: function(that, groupPath, level) {\r\n var d = new Deferred;\r\n level++;\r\n that.expandRow(groupPath.slice(0, level)).done((function() {\r\n if (level === groupPath.length) {\r\n d.resolve()\r\n } else {\r\n that._expandGroupByPath(that, groupPath, level).done(d.resolve).fail(d.reject)\r\n }\r\n })).fail(d.reject);\r\n return d.promise()\r\n },\r\n _calculateGlobalRowIndexByGroupedData: function(key) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var filter = that._generateFilterByKey(key);\r\n var deferred = new Deferred;\r\n var isGroupKey = Array.isArray(key);\r\n var group = dataSource.group();\r\n if (isGroupKey) {\r\n return deferred.resolve(-1).promise()\r\n }\r\n if (!dataSource._grouping._updatePagingOptions) {\r\n that._calculateGlobalRowIndexByFlatData(key, null, true).done(deferred.resolve).fail(deferred.reject);\r\n return deferred\r\n }\r\n dataSource.load({\r\n filter: that._concatWithCombinedFilter(filter),\r\n group: group\r\n }).done((function(data) {\r\n if (!data || 0 === data.length || !isDefined(data[0].key) || -1 === data[0].key) {\r\n return deferred.resolve(-1).promise()\r\n }\r\n var groupPath = that._getGroupPath(data[0]);\r\n that._expandGroupByPath(that, groupPath, 0).done((function() {\r\n that._calculateExpandedRowGlobalIndex(deferred, key, groupPath, group)\r\n })).fail(deferred.reject)\r\n })).fail(deferred.reject);\r\n return deferred.promise()\r\n },\r\n _calculateExpandedRowGlobalIndex: function(deferred, key, groupPath, group) {\r\n var groupFilter = createGroupFilter(groupPath, {\r\n group: group\r\n });\r\n var dataSource = this._dataSource;\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var isVirtualScrolling = \"virtual\" === scrollingMode || \"infinite\" === scrollingMode;\r\n var pageSize = dataSource.pageSize();\r\n var groupOffset;\r\n dataSource._grouping._updatePagingOptions({\r\n skip: 0,\r\n take: MAX_SAFE_INTEGER\r\n }, (function(groupInfo, totalOffset) {\r\n if (equalByValue(groupInfo.path, groupPath)) {\r\n groupOffset = totalOffset\r\n }\r\n }));\r\n this._calculateGlobalRowIndexByFlatData(key, groupFilter).done((function(dataOffset) {\r\n var count;\r\n var groupContinuationCount;\r\n if (dataOffset < 0) {\r\n deferred.resolve(-1);\r\n return\r\n }\r\n var currentPageOffset = groupOffset % pageSize || pageSize;\r\n count = currentPageOffset + dataOffset - groupPath.length;\r\n if (isVirtualScrolling) {\r\n groupContinuationCount = 0\r\n } else {\r\n groupContinuationCount = Math.floor(count / (pageSize - groupPath.length)) * groupPath.length\r\n }\r\n count = groupOffset + dataOffset + groupContinuationCount;\r\n deferred.resolve(count)\r\n })).fail(deferred.reject)\r\n }\r\n }\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.row_dragging.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 Sortable from \"../sortable\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport browser from \"../../core/utils/browser\";\r\nvar COMMAND_HANDLE_CLASS = \"dx-command-drag\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar HANDLE_ICON_CLASS = \"drag-icon\";\r\nvar ROWS_VIEW = \"rowsview\";\r\nvar SORTABLE_WITHOUT_HANDLE_CLASS = \"dx-sortable-without-handle\";\r\nvar RowDraggingExtender = {\r\n init: function() {\r\n this.callBase.apply(this, arguments);\r\n this._updateHandleColumn()\r\n },\r\n _allowReordering: function() {\r\n var rowDragging = this.option(\"rowDragging\");\r\n return !!(rowDragging && (rowDragging.allowReordering || rowDragging.allowDropInsideItem || rowDragging.group))\r\n },\r\n _updateHandleColumn: function() {\r\n var rowDragging = this.option(\"rowDragging\");\r\n var allowReordering = this._allowReordering();\r\n var columnsController = this._columnsController;\r\n var isHandleColumnVisible = allowReordering && rowDragging.showDragIcons;\r\n columnsController && columnsController.addCommandColumn({\r\n type: \"drag\",\r\n command: \"drag\",\r\n visibleIndex: -2,\r\n alignment: \"center\",\r\n cssClass: COMMAND_HANDLE_CLASS,\r\n width: \"auto\",\r\n cellTemplate: this._getHandleTemplate(),\r\n visible: isHandleColumnVisible\r\n });\r\n columnsController.columnOption(\"type:drag\", \"visible\", isHandleColumnVisible)\r\n },\r\n _renderContent: function() {\r\n var rowDragging = this.option(\"rowDragging\");\r\n var allowReordering = this._allowReordering();\r\n var $content = this.callBase.apply(this, arguments);\r\n var isFixedTableRendering = this._isFixedTableRendering;\r\n var sortableName = \"_sortable\";\r\n var sortableFixedName = \"_sortableFixed\";\r\n var currentSortableName = isFixedTableRendering ? sortableFixedName : sortableName;\r\n var anotherSortableName = isFixedTableRendering ? sortableName : sortableFixedName;\r\n var togglePointerEventsStyle = toggle => {\r\n var _this$sortableFixedNa;\r\n null === (_this$sortableFixedNa = this[sortableFixedName]) || void 0 === _this$sortableFixedNa ? void 0 : _this$sortableFixedNa.$element().css(\"pointerEvents\", toggle ? \"auto\" : \"\")\r\n };\r\n if ((allowReordering || this[currentSortableName]) && $content.length) {\r\n this[currentSortableName] = this._createComponent($content, Sortable, extend({\r\n component: this.component,\r\n contentTemplate: null,\r\n filter: \"> table > tbody > .dx-row:not(.dx-freespace-row):not(.dx-virtual-row)\",\r\n dragTemplate: this._getDraggableRowTemplate(),\r\n handle: rowDragging.showDragIcons && \".\".concat(COMMAND_HANDLE_CLASS),\r\n dropFeedbackMode: \"indicate\"\r\n }, rowDragging, {\r\n onDragStart: e => {\r\n var _rowDragging$onDragSt;\r\n var row = e.component.getVisibleRows()[e.fromIndex];\r\n e.itemData = row && row.data;\r\n var isDataRow = row && \"data\" === row.rowType;\r\n e.cancel = !allowReordering || !isDataRow;\r\n null === (_rowDragging$onDragSt = rowDragging.onDragStart) || void 0 === _rowDragging$onDragSt ? void 0 : _rowDragging$onDragSt.call(rowDragging, e)\r\n },\r\n onDragEnter: () => {\r\n togglePointerEventsStyle(true)\r\n },\r\n onDragLeave: () => {\r\n togglePointerEventsStyle(false)\r\n },\r\n onDragEnd: e => {\r\n var _rowDragging$onDragEn;\r\n togglePointerEventsStyle(false);\r\n null === (_rowDragging$onDragEn = rowDragging.onDragEnd) || void 0 === _rowDragging$onDragEn ? void 0 : _rowDragging$onDragEn.call(rowDragging, e)\r\n },\r\n dropFeedbackMode: browser.msie ? \"indicate\" : rowDragging.dropFeedbackMode,\r\n onOptionChanged: e => {\r\n var hasFixedSortable = this[sortableFixedName];\r\n if (hasFixedSortable) {\r\n if (\"fromIndex\" === e.name || \"toIndex\" === e.name) {\r\n this[anotherSortableName].option(e.name, e.value)\r\n }\r\n }\r\n }\r\n }));\r\n $content.toggleClass(\"dx-scrollable-container\", isFixedTableRendering);\r\n $content.toggleClass(SORTABLE_WITHOUT_HANDLE_CLASS, allowReordering && !rowDragging.showDragIcons)\r\n }\r\n return $content\r\n },\r\n _resizeCore: function() {\r\n this.callBase.apply(this, arguments);\r\n var offset = this._dataController.getRowIndexOffset();\r\n [this._sortable, this._sortableFixed].forEach(sortable => {\r\n null === sortable || void 0 === sortable ? void 0 : sortable.option(\"offset\", offset);\r\n null === sortable || void 0 === sortable ? void 0 : sortable.update()\r\n })\r\n },\r\n _getDraggableGridOptions: function(options) {\r\n var gridOptions = this.option();\r\n var columns = this.getColumns();\r\n var $rowElement = $(this.getRowElement(options.rowIndex));\r\n return {\r\n dataSource: [{\r\n id: 1,\r\n parentId: 0\r\n }],\r\n showBorders: true,\r\n showColumnHeaders: false,\r\n scrolling: {\r\n useNative: false,\r\n showScrollbar: false\r\n },\r\n pager: {\r\n visible: false\r\n },\r\n loadingTimeout: void 0,\r\n columnFixing: gridOptions.columnFixing,\r\n columnAutoWidth: gridOptions.columnAutoWidth,\r\n showColumnLines: gridOptions.showColumnLines,\r\n columns: columns.map(column => ({\r\n width: column.width || column.visibleWidth,\r\n fixed: column.fixed,\r\n fixedPosition: column.fixedPosition\r\n })),\r\n onRowPrepared: e => {\r\n var rowsView = e.component.getView(\"rowsView\");\r\n $(e.rowElement).replaceWith($rowElement.eq(rowsView._isFixedTableRendering ? 1 : 0).clone())\r\n }\r\n }\r\n },\r\n _getDraggableRowTemplate: function() {\r\n return options => {\r\n var $rootElement = this.component.$element();\r\n var $dataGridContainer = $(\"
\").width($rootElement.width());\r\n var items = this._dataController.items();\r\n var row = items && items[options.fromIndex];\r\n var gridOptions = this._getDraggableGridOptions(row);\r\n this._createComponent($dataGridContainer, this.component.NAME, gridOptions);\r\n $dataGridContainer.find(\".dx-gridbase-container\").children(\":not(.\".concat(this.addWidgetPrefix(ROWS_VIEW), \")\")).hide();\r\n return $dataGridContainer\r\n }\r\n },\r\n _getHandleTemplate: function() {\r\n return (container, options) => {\r\n if (\"data\" === options.rowType) {\r\n $(container).addClass(CELL_FOCUS_DISABLED_CLASS);\r\n return $(\"\").addClass(this.addWidgetPrefix(HANDLE_ICON_CLASS))\r\n } else {\r\n gridCoreUtils.setEmptyText($(container))\r\n }\r\n }\r\n },\r\n optionChanged: function(args) {\r\n if (\"rowDragging\" === args.name) {\r\n this._updateHandleColumn();\r\n this._invalidate(true, true);\r\n args.handled = true\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n};\r\nexport var rowDraggingModule = {\r\n defaultOptions: function() {\r\n return {\r\n rowDragging: {\r\n showDragIcons: true,\r\n dropFeedbackMode: \"indicate\",\r\n allowReordering: false,\r\n allowDropInsideItem: false\r\n }\r\n }\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: RowDraggingExtender\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.row_dragging.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n rowDraggingModule\r\n} from \"../grid_core/ui.grid_core.row_dragging\";\r\ngridCore.registerModule(\"rowDragging\", rowDraggingModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 DataGrid from \"./ui.data_grid.base\";\r\nexport default DataGrid;\r\nimport \"./ui.data_grid.state_storing\";\r\nimport \"./ui.data_grid.selection\";\r\nimport \"./ui.data_grid.column_chooser\";\r\nimport \"./ui.data_grid.grouping\";\r\nimport \"./ui.data_grid.master_detail\";\r\nimport \"./ui.data_grid.editing\";\r\nimport \"./ui.data_grid.editing_row_based\";\r\nimport \"./ui.data_grid.editing_form_based\";\r\nimport \"./ui.data_grid.editing_cell_based\";\r\nimport \"./ui.data_grid.validating\";\r\nimport \"./ui.data_grid.virtual_scrolling\";\r\nimport \"./ui.data_grid.filter_row\";\r\nimport \"./ui.data_grid.header_filter\";\r\nimport \"./ui.data_grid.filter_sync\";\r\nimport \"./ui.data_grid.filter_builder\";\r\nimport \"./ui.data_grid.filter_panel\";\r\nimport \"./ui.data_grid.search\";\r\nimport \"./ui.data_grid.pager\";\r\nimport \"./ui.data_grid.columns_resizing_reordering\";\r\nimport \"./ui.data_grid.keyboard_navigation\";\r\nimport \"./ui.data_grid.summary\";\r\nimport \"./ui.data_grid.column_fixing\";\r\nimport \"./ui.data_grid.adaptivity\";\r\nimport \"./ui.data_grid.virtual_columns\";\r\nimport \"./ui.data_grid.export\";\r\nimport \"./ui.data_grid.focus\";\r\nimport \"./ui.data_grid.row_dragging\";\r\n","/**\r\n * DevExtreme (esm/ui/data_grid.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 DataGrid from \"./data_grid/ui.data_grid\";\r\nexport default DataGrid;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_utils.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n isDate\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport dateLocalization from \"../../localization/date\";\r\nvar DATE_COMPONENTS = [\"year\", \"day\", \"month\", \"day\"];\r\nvar TIME_COMPONENTS = [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"];\r\nvar ONE_MINUTE = 6e4;\r\nvar ONE_DAY = 60 * ONE_MINUTE * 24;\r\nvar ONE_YEAR = 365 * ONE_DAY;\r\nvar getStringFormat = function(format) {\r\n var formatType = typeof format;\r\n if (\"string\" === formatType) {\r\n return \"format\"\r\n }\r\n if (\"object\" === formatType && void 0 !== format.type) {\r\n return format.type\r\n }\r\n return null\r\n};\r\nvar dateUtils = {\r\n SUPPORTED_FORMATS: [\"date\", \"time\", \"datetime\"],\r\n ONE_MINUTE: ONE_MINUTE,\r\n ONE_DAY: ONE_DAY,\r\n ONE_YEAR: ONE_YEAR,\r\n MIN_DATEVIEW_DEFAULT_DATE: new Date(1900, 0, 1),\r\n MAX_DATEVIEW_DEFAULT_DATE: function() {\r\n var newDate = new Date;\r\n return new Date(newDate.getFullYear() + 50, newDate.getMonth(), newDate.getDate(), 23, 59, 59)\r\n }(),\r\n FORMATS_INFO: {\r\n date: {\r\n getStandardPattern: function() {\r\n return \"yyyy-MM-dd\"\r\n },\r\n components: DATE_COMPONENTS\r\n },\r\n time: {\r\n getStandardPattern: function() {\r\n return \"HH:mm\"\r\n },\r\n components: TIME_COMPONENTS\r\n },\r\n datetime: {\r\n getStandardPattern: function() {\r\n var standardPattern;\r\n ! function() {\r\n var $input = $(\"\").attr(\"type\", \"datetime\");\r\n $input.val(\"2000-01-01T01:01Z\");\r\n if ($input.val()) {\r\n standardPattern = \"yyyy-MM-ddTHH:mmZ\"\r\n }\r\n }();\r\n if (!standardPattern) {\r\n standardPattern = \"yyyy-MM-ddTHH:mm:ssZ\"\r\n }\r\n dateUtils.FORMATS_INFO.datetime.getStandardPattern = function() {\r\n return standardPattern\r\n };\r\n return standardPattern\r\n },\r\n components: [...DATE_COMPONENTS, ...TIME_COMPONENTS]\r\n },\r\n \"datetime-local\": {\r\n getStandardPattern: function() {\r\n return \"yyyy-MM-ddTHH:mm:ss\"\r\n },\r\n components: [...DATE_COMPONENTS, \"hours\", \"minutes\", \"seconds\"]\r\n }\r\n },\r\n FORMATS_MAP: {\r\n date: \"shortdate\",\r\n time: \"shorttime\",\r\n datetime: \"shortdateshorttime\"\r\n },\r\n SUBMIT_FORMATS_MAP: {\r\n date: \"date\",\r\n time: \"time\",\r\n datetime: \"datetime-local\"\r\n },\r\n toStandardDateFormat: function(date, type) {\r\n var pattern = dateUtils.FORMATS_INFO[type].getStandardPattern();\r\n return dateSerialization.serializeDate(date, pattern)\r\n },\r\n fromStandardDateFormat: function(text) {\r\n var date = dateSerialization.dateParser(text);\r\n return isDate(date) ? date : void 0\r\n },\r\n getMaxMonthDay: function(year, month) {\r\n return new Date(year, month + 1, 0).getDate()\r\n },\r\n mergeDates: function(oldValue, newValue, format) {\r\n if (!newValue) {\r\n return newValue || null\r\n }\r\n if (!oldValue || isNaN(oldValue.getTime())) {\r\n var now = new Date(null);\r\n oldValue = new Date(now.getFullYear(), now.getMonth(), now.getDate())\r\n }\r\n var result = new Date(oldValue.valueOf());\r\n var formatInfo = dateUtils.FORMATS_INFO[format];\r\n each(formatInfo.components, (function() {\r\n var componentInfo = dateUtils.DATE_COMPONENTS_INFO[this];\r\n result[componentInfo.setter](newValue[componentInfo.getter]())\r\n }));\r\n return result\r\n },\r\n getLongestCaptionIndex: function(captionArray) {\r\n var longestIndex = 0;\r\n var longestCaptionLength = 0;\r\n var i;\r\n for (i = 0; i < captionArray.length; ++i) {\r\n if (captionArray[i].length > longestCaptionLength) {\r\n longestIndex = i;\r\n longestCaptionLength = captionArray[i].length\r\n }\r\n }\r\n return longestIndex\r\n },\r\n formatUsesMonthName: function(format) {\r\n return dateLocalization.formatUsesMonthName(format)\r\n },\r\n formatUsesDayName: function(format) {\r\n return dateLocalization.formatUsesDayName(format)\r\n },\r\n getLongestDate: function(format, monthNames, dayNames) {\r\n var stringFormat = getStringFormat(format);\r\n var month = 9;\r\n if (!stringFormat || dateUtils.formatUsesMonthName(stringFormat)) {\r\n month = dateUtils.getLongestCaptionIndex(monthNames)\r\n }\r\n var longestDate = new Date(1888, month, 21, 23, 59, 59, 999);\r\n if (!stringFormat || dateUtils.formatUsesDayName(stringFormat)) {\r\n var date = longestDate.getDate() - longestDate.getDay() + dateUtils.getLongestCaptionIndex(dayNames);\r\n longestDate.setDate(date)\r\n }\r\n return longestDate\r\n },\r\n normalizeTime: function(date) {\r\n date.setSeconds(0);\r\n date.setMilliseconds(0)\r\n }\r\n};\r\ndateUtils.DATE_COMPONENTS_INFO = {\r\n year: {\r\n getter: \"getFullYear\",\r\n setter: \"setFullYear\",\r\n formatter: function(value, date) {\r\n var formatDate = new Date(date.getTime());\r\n formatDate.setFullYear(value);\r\n return dateLocalization.format(formatDate, \"yyyy\")\r\n },\r\n startValue: void 0,\r\n endValue: void 0\r\n },\r\n day: {\r\n getter: \"getDate\",\r\n setter: \"setDate\",\r\n formatter: function(value, date) {\r\n var formatDate = new Date(date.getTime());\r\n formatDate.setDate(value);\r\n return dateLocalization.format(formatDate, \"d\")\r\n },\r\n startValue: 1,\r\n endValue: void 0\r\n },\r\n month: {\r\n getter: \"getMonth\",\r\n setter: \"setMonth\",\r\n formatter: function(value) {\r\n return dateLocalization.getMonthNames()[value]\r\n },\r\n startValue: 0,\r\n endValue: 11\r\n },\r\n hours: {\r\n getter: \"getHours\",\r\n setter: \"setHours\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, value), \"hour\")\r\n },\r\n startValue: 0,\r\n endValue: 23\r\n },\r\n minutes: {\r\n getter: \"getMinutes\",\r\n setter: \"setMinutes\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, 0, value), \"minute\")\r\n },\r\n startValue: 0,\r\n endValue: 59\r\n },\r\n seconds: {\r\n getter: \"getSeconds\",\r\n setter: \"setSeconds\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, 0, 0, value), \"second\")\r\n },\r\n startValue: 0,\r\n endValue: 59\r\n },\r\n milliseconds: {\r\n getter: \"getMilliseconds\",\r\n setter: \"setMilliseconds\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, 0, 0, 0, value), \"millisecond\")\r\n },\r\n startValue: 0,\r\n endValue: 999\r\n }\r\n};\r\nexport default dateUtils;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.mask.parts.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 getPatternSetters\r\n} from \"../../localization/ldml/date.parser\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n fitIntoRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar monthGetter = date => date.getMonth() + 1;\r\nvar monthSetter = (date, value) => {\r\n var day = date.getDate();\r\n var monthLimits = getLimits(\"M\", date);\r\n var newValue = fitIntoRange(parseInt(value), monthLimits.min, monthLimits.max);\r\n date.setMonth(newValue - 1, 1);\r\n var {\r\n min: min,\r\n max: max\r\n } = getLimits(\"dM\", date);\r\n var newDay = fitIntoRange(day, min, max);\r\n date.setDate(newDay)\r\n};\r\nvar PATTERN_GETTERS = {\r\n a: date => date.getHours() < 12 ? 0 : 1,\r\n E: \"getDay\",\r\n y: \"getFullYear\",\r\n M: monthGetter,\r\n L: monthGetter,\r\n d: \"getDate\",\r\n H: \"getHours\",\r\n h: \"getHours\",\r\n m: \"getMinutes\",\r\n s: \"getSeconds\",\r\n S: \"getMilliseconds\"\r\n};\r\nvar PATTERN_SETTERS = extend({}, getPatternSetters(), {\r\n a: (date, value) => {\r\n var hours = date.getHours();\r\n var current = hours >= 12;\r\n if (current === !!parseInt(value)) {\r\n return\r\n }\r\n date.setHours((hours + 12) % 24)\r\n },\r\n d: (date, value) => {\r\n var lastDayInMonth = getLimits(\"dM\", date).max;\r\n if (value > lastDayInMonth) {\r\n date.setMonth(date.getMonth() + 1)\r\n }\r\n date.setDate(value)\r\n },\r\n h: (date, value) => {\r\n var isPM = date.getHours() >= 12;\r\n date.setHours(+value % 12 + (isPM ? 12 : 0))\r\n },\r\n M: monthSetter,\r\n L: monthSetter,\r\n E: (date, value) => {\r\n if (value < 0) {\r\n return\r\n }\r\n date.setDate(date.getDate() - date.getDay() + parseInt(value))\r\n },\r\n y: (date, value) => {\r\n var currentYear = date.getFullYear();\r\n var valueLength = String(value).length;\r\n var maxLimitLength = String(getLimits(\"y\", date).max).length;\r\n var newValue = parseInt(String(currentYear).substr(0, maxLimitLength - valueLength) + value);\r\n date.setFullYear(newValue)\r\n }\r\n});\r\nvar getPatternGetter = patternChar => PATTERN_GETTERS[patternChar] || (() => patternChar);\r\nexport var renderDateParts = (text, regExpInfo) => {\r\n var result = regExpInfo.regexp.exec(text);\r\n var start = 0;\r\n var end = 0;\r\n var sections = [];\r\n var _loop = function(i) {\r\n start = end;\r\n end = start + result[i].length;\r\n var pattern = regExpInfo.patterns[i - 1].replace(/^'|'$/g, \"\");\r\n var getter = getPatternGetter(pattern[0]);\r\n sections.push({\r\n index: i - 1,\r\n isStub: pattern === result[i],\r\n caret: {\r\n start: start,\r\n end: end\r\n },\r\n pattern: pattern,\r\n text: result[i],\r\n limits: function() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n return getLimits(pattern[0], ...args)\r\n },\r\n setter: PATTERN_SETTERS[pattern[0]] || noop,\r\n getter: getter\r\n })\r\n };\r\n for (var i = 1; i < result.length; i++) {\r\n _loop(i)\r\n }\r\n return sections\r\n};\r\nvar getLimits = (pattern, date, forcedPattern) => {\r\n var limits = {\r\n y: {\r\n min: 0,\r\n max: 9999\r\n },\r\n M: {\r\n min: 1,\r\n max: 12\r\n },\r\n L: {\r\n min: 1,\r\n max: 12\r\n },\r\n d: {\r\n min: 1,\r\n max: 31\r\n },\r\n dM: {\r\n min: 1,\r\n max: new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate()\r\n },\r\n E: {\r\n min: 0,\r\n max: 6\r\n },\r\n H: {\r\n min: 0,\r\n max: 23\r\n },\r\n h: {\r\n min: 0,\r\n max: 23\r\n },\r\n m: {\r\n min: 0,\r\n max: 59\r\n },\r\n s: {\r\n min: 0,\r\n max: 59\r\n },\r\n S: {\r\n min: 0,\r\n max: 999\r\n },\r\n a: {\r\n min: 0,\r\n max: 1\r\n }\r\n };\r\n return limits[forcedPattern || pattern] || limits.getAmPm\r\n};\r\nexport var getDatePartIndexByPosition = (dateParts, position) => {\r\n for (var i = 0; i < dateParts.length; i++) {\r\n var caretInGroup = dateParts[i].caret.end >= position;\r\n if (!dateParts[i].isStub && caretInGroup) {\r\n return i\r\n }\r\n }\r\n return null\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.navigator.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 Widget from \"../widget/ui.widget\";\r\nimport Button from \"../button\";\r\nvar CALENDAR_NAVIGATOR_CLASS = \"dx-calendar-navigator\";\r\nvar CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS = \"dx-calendar-navigator-previous-month\";\r\nvar CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS = \"dx-calendar-navigator-next-month\";\r\nvar CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS = \"dx-calendar-navigator-previous-view\";\r\nvar CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS = \"dx-calendar-navigator-next-view\";\r\nvar CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS = \"dx-calendar-disabled-navigator-link\";\r\nvar CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS = \"dx-calendar-caption-button\";\r\nvar Navigator = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n onClick: null,\r\n onCaptionClick: null,\r\n text: \"\"\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initActions()\r\n },\r\n _initActions: function() {\r\n this._clickAction = this._createActionByOption(\"onClick\");\r\n this._captionClickAction = this._createActionByOption(\"onCaptionClick\")\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(CALENDAR_NAVIGATOR_CLASS);\r\n this._renderButtons();\r\n this._renderCaption()\r\n },\r\n _renderButtons: function() {\r\n var that = this;\r\n var direction = this.option(\"rtlEnabled\") ? -1 : 1;\r\n this._prevButton = this._createComponent($(\"\"), Button, {\r\n focusStateEnabled: false,\r\n icon: \"chevronleft\",\r\n onClick: function(e) {\r\n that._clickAction({\r\n direction: -direction,\r\n event: e\r\n })\r\n },\r\n integrationOptions: {}\r\n });\r\n var $prevButton = this._prevButton.$element().addClass(CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS).addClass(CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS);\r\n this._nextButton = this._createComponent($(\"\"), Button, {\r\n focusStateEnabled: false,\r\n icon: \"chevronright\",\r\n onClick: function(e) {\r\n that._clickAction({\r\n direction: direction,\r\n event: e\r\n })\r\n },\r\n integrationOptions: {}\r\n });\r\n var $nextButton = this._nextButton.$element().addClass(CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS).addClass(CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS);\r\n this._caption = this._createComponent($(\"\").addClass(CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS), Button, {\r\n focusStateEnabled: false,\r\n onClick: function(e) {\r\n that._captionClickAction({\r\n event: e\r\n })\r\n },\r\n integrationOptions: {}\r\n });\r\n var $caption = this._caption.$element();\r\n this.$element().append($prevButton, $caption, $nextButton)\r\n },\r\n _renderCaption: function() {\r\n this._caption.option(\"text\", this.option(\"text\"))\r\n },\r\n toggleButton: function(buttonPrefix, value) {\r\n var buttonName = \"_\" + buttonPrefix + \"Button\";\r\n var button = this[buttonName];\r\n if (button) {\r\n button.option(\"disabled\", value);\r\n button.$element().toggleClass(CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS, value)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"text\":\r\n this._renderCaption();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default Navigator;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.base_view.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 data as elementData\r\n} from \"../../core/element_data\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport coreDateUtils from \"../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport messageLocalization from \"../../localization/message\";\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 {\r\n abstract: abstract\r\n} = Widget;\r\nvar CALENDAR_OTHER_VIEW_CLASS = \"dx-calendar-other-view\";\r\nvar CALENDAR_CELL_CLASS = \"dx-calendar-cell\";\r\nvar CALENDAR_EMPTY_CELL_CLASS = \"dx-calendar-empty-cell\";\r\nvar CALENDAR_TODAY_CLASS = \"dx-calendar-today\";\r\nvar CALENDAR_SELECTED_DATE_CLASS = \"dx-calendar-selected-date\";\r\nvar CALENDAR_CONTOURED_DATE_CLASS = \"dx-calendar-contoured-date\";\r\nvar CALENDAR_DXCLICK_EVENT_NAME = addNamespace(clickEventName, \"dxCalendar\");\r\nvar CALENDAR_DATE_VALUE_KEY = \"dxDateValueKey\";\r\nvar BaseView = Widget.inherit({\r\n _getViewName: function() {\r\n return \"base\"\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n date: new Date,\r\n focusStateEnabled: false,\r\n cellTemplate: null,\r\n disabledDates: null,\r\n onCellClick: null,\r\n rowCount: 3,\r\n colCount: 4,\r\n allowValueSelection: true,\r\n _todayDate: () => new Date\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderImpl()\r\n },\r\n _renderImpl: function() {\r\n this.$element().append(this._createTable());\r\n this._createDisabledDatesHandler();\r\n this._renderBody();\r\n this._renderContouredDate();\r\n this._renderValue();\r\n this._renderEvents()\r\n },\r\n _createTable: function() {\r\n this._$table = $(\"
\").attr({\r\n colSpan: that.getController(\"columns\").getVisibleColumns().length,\r\n role: \"presentation\"\r\n }).prepend($closeButton).append($errorMessage).appendTo($errorRow);\r\n return $errorRow\r\n }\r\n return $errorMessage\r\n },\r\n _renderErrorMessage: function(error) {\r\n var message = error.url ? error.message.replace(error.url, \"\") : error.message || error;\r\n var $message = $(\"
\").addClass(ERROR_MESSAGE_CLASS).text(message);\r\n if (error.url) {\r\n $(\"\").attr(\"href\", error.url).text(error.url).appendTo($message)\r\n }\r\n return $message\r\n },\r\n renderErrorRow: function(error, rowIndex, $popupContent) {\r\n var that = this;\r\n var $errorMessageElement;\r\n var $firstErrorRow;\r\n if ($popupContent) {\r\n $popupContent.find(\".\" + ERROR_MESSAGE_CLASS).remove();\r\n $errorMessageElement = that._createErrorRow(error);\r\n $popupContent.prepend($errorMessageElement);\r\n return $errorMessageElement\r\n }\r\n var viewElement = rowIndex >= 0 || !that._columnHeadersView.isVisible() ? that._rowsView : that._columnHeadersView;\r\n var $tableElements = viewElement.getTableElements();\r\n each($tableElements, (function(_, tableElement) {\r\n $errorMessageElement = that._createErrorRow(error, $tableElements);\r\n $firstErrorRow = $firstErrorRow || $errorMessageElement;\r\n if (rowIndex >= 0) {\r\n var $row = viewElement._getRowElements($(tableElement)).eq(rowIndex);\r\n that.removeErrorRow($row.next());\r\n $errorMessageElement.insertAfter($row)\r\n } else {\r\n var $tbody = $(tableElement).children(\"tbody\");\r\n var rowElements = $tbody.children(\"tr\");\r\n if (that._columnHeadersView.isVisible()) {\r\n that.removeErrorRow(rowElements.last());\r\n $(tableElement).append($errorMessageElement)\r\n } else {\r\n that.removeErrorRow(rowElements.first());\r\n $tbody.first().prepend($errorMessageElement)\r\n }\r\n }\r\n }));\r\n var resizingController = that.getController(\"resizing\");\r\n resizingController && resizingController.fireContentReadyAction();\r\n return $firstErrorRow\r\n },\r\n removeErrorRow: function($row) {\r\n if (!$row) {\r\n var $columnHeaders = this._columnHeadersView && this._columnHeadersView.element();\r\n $row = $columnHeaders && $columnHeaders.find(\".\" + ERROR_ROW_CLASS);\r\n if (!$row || !$row.length) {\r\n var $rowsViewElement = this._rowsView.element();\r\n $row = $rowsViewElement && $rowsViewElement.find(\".\" + ERROR_ROW_CLASS)\r\n }\r\n }\r\n $row && $row.hasClass(ERROR_ROW_CLASS) && $row.remove()\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"errorRowEnabled\":\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport var errorHandlingModule = {\r\n defaultOptions: function() {\r\n return {\r\n errorRowEnabled: true\r\n }\r\n },\r\n controllers: {\r\n errorHandling: ErrorHandlingController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n init: function() {\r\n var that = this;\r\n var errorHandlingController = that.getController(\"errorHandling\");\r\n that.callBase();\r\n that.dataErrorOccurred.add((function(error, $popupContent) {\r\n if (that.option(\"errorRowEnabled\")) {\r\n errorHandlingController.renderErrorRow(error, void 0, $popupContent)\r\n }\r\n }));\r\n that.changed.add((function(e) {\r\n if (e && \"loadError\" === e.changeType) {\r\n return\r\n }\r\n var errorHandlingController = that.getController(\"errorHandling\");\r\n var editingController = that.getController(\"editing\");\r\n if (editingController && !editingController.hasChanges()) {\r\n errorHandlingController && errorHandlingController.removeErrorRow()\r\n }\r\n }))\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.error_handling.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n errorHandlingModule\r\n} from \"../grid_core/ui.grid_core.error_handling\";\r\ngridCore.registerModule(\"errorHandling\", errorHandlingModule);\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.grid_view.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 modules from \"./ui.grid_core.modules\";\r\nimport {\r\n deferRender,\r\n deferUpdate\r\n} from \"../../core/utils/common\";\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isString,\r\n isDefined,\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport * as accessibility from \"../shared/accessibility\";\r\nvar BORDERS_CLASS = \"borders\";\r\nvar TABLE_FIXED_CLASS = \"table-fixed\";\r\nvar IMPORTANT_MARGIN_CLASS = \"important-margin\";\r\nvar GRIDBASE_CONTAINER_CLASS = \"dx-gridbase-container\";\r\nvar HIDDEN_COLUMNS_WIDTH = \"adaptiveHidden\";\r\nvar VIEW_NAMES = [\"columnsSeparatorView\", \"blockSeparatorView\", \"trackerView\", \"headerPanel\", \"columnHeadersView\", \"rowsView\", \"footerView\", \"columnChooserView\", \"filterPanelView\", \"pagerView\", \"draggingHeaderView\", \"contextMenuView\", \"errorView\", \"headerFilterView\", \"filterBuilderView\"];\r\nvar isPercentWidth = function(width) {\r\n return isString(width) && \"%\" === width.slice(-1)\r\n};\r\nvar isPixelWidth = function(width) {\r\n return isString(width) && \"px\" === width.slice(-2)\r\n};\r\nvar getContainerHeight = function($container) {\r\n var clientHeight = $container.get(0).clientHeight;\r\n var paddingTop = parseFloat($container.css(\"paddingTop\"));\r\n var paddingBottom = parseFloat($container.css(\"paddingBottom\"));\r\n return clientHeight - paddingTop - paddingBottom\r\n};\r\nvar calculateFreeWidth = function(that, widths) {\r\n var contentWidth = that._rowsView.contentWidth();\r\n var totalWidth = that._getTotalWidth(widths, contentWidth);\r\n return contentWidth - totalWidth\r\n};\r\nvar calculateFreeWidthWithCurrentMinWidth = function(that, columnIndex, currentMinWidth, widths) {\r\n return calculateFreeWidth(that, widths.map((function(width, index) {\r\n return index === columnIndex ? currentMinWidth : width\r\n })))\r\n};\r\nvar restoreFocus = function(focusedElement, selectionRange) {\r\n accessibility.hiddenFocus(focusedElement);\r\n gridCoreUtils.setSelectionRange(focusedElement, selectionRange)\r\n};\r\nvar ResizingController = modules.ViewController.inherit({\r\n _initPostRenderHandlers: function() {\r\n var that = this;\r\n var dataController = that._dataController;\r\n if (!that._refreshSizesHandler) {\r\n that._refreshSizesHandler = function(e) {\r\n dataController.changed.remove(that._refreshSizesHandler);\r\n var resizeDeferred;\r\n var changeType = e && e.changeType;\r\n var isDelayed = e && e.isDelayed;\r\n var items = dataController.items();\r\n if (!e || \"refresh\" === changeType || \"prepend\" === changeType || \"append\" === changeType) {\r\n if (!isDelayed) {\r\n resizeDeferred = that.resize()\r\n }\r\n } else if (\"update\" === changeType && e.changeTypes) {\r\n if ((items.length > 1 || \"insert\" !== e.changeTypes[0]) && !(0 === items.length && \"remove\" === e.changeTypes[0]) && !e.needUpdateDimensions) {\r\n deferUpdate((function() {\r\n that._rowsView.resize()\r\n }))\r\n } else {\r\n resizeDeferred = that.resize()\r\n }\r\n }\r\n if (changeType && \"updateSelection\" !== changeType && \"updateFocusedRow\" !== changeType && !isDelayed) {\r\n when(resizeDeferred).done((function() {\r\n that._setAriaRowColCount();\r\n that.fireContentReadyAction()\r\n }))\r\n }\r\n };\r\n that._dataController.changed.add((function() {\r\n that._dataController.changed.add(that._refreshSizesHandler)\r\n }))\r\n }\r\n },\r\n fireContentReadyAction: function() {\r\n this.component._fireContentReadyAction()\r\n },\r\n _setAriaRowColCount: function() {\r\n var component = this.component;\r\n component.setAria({\r\n rowCount: this._dataController.totalItemsCount(),\r\n colCount: component.columnCount()\r\n }, component.$element().children(\".\" + GRIDBASE_CONTAINER_CLASS))\r\n },\r\n _getBestFitWidths: function() {\r\n var _widths;\r\n var rowsView = this._rowsView;\r\n var columnHeadersView = this._columnHeadersView;\r\n var widths = rowsView.getColumnWidths();\r\n if (!(null !== (_widths = widths) && void 0 !== _widths && _widths.length)) {\r\n var _rowsView$getTableEle;\r\n var headersTableElement = columnHeadersView.getTableElement();\r\n columnHeadersView.setTableElement(null === (_rowsView$getTableEle = rowsView.getTableElement()) || void 0 === _rowsView$getTableEle ? void 0 : _rowsView$getTableEle.children(\".dx-header\"));\r\n widths = columnHeadersView.getColumnWidths();\r\n columnHeadersView.setTableElement(headersTableElement)\r\n }\r\n return widths\r\n },\r\n _setVisibleWidths: function(visibleColumns, widths) {\r\n var columnsController = this._columnsController;\r\n columnsController.beginUpdate();\r\n each(visibleColumns, (function(index, column) {\r\n var columnId = columnsController.getColumnId(column);\r\n columnsController.columnOption(columnId, \"visibleWidth\", widths[index])\r\n }));\r\n columnsController.endUpdate()\r\n },\r\n _toggleBestFitModeForView: function(view, className, isBestFit) {\r\n if (!view || !view.isVisible()) {\r\n return\r\n }\r\n var $rowsTables = this._rowsView.getTableElements();\r\n var $viewTables = view.getTableElements();\r\n each($rowsTables, (index, tableElement) => {\r\n var $tableBody;\r\n var $rowsTable = $(tableElement);\r\n var $viewTable = $viewTables.eq(index);\r\n if ($viewTable && $viewTable.length) {\r\n if (isBestFit) {\r\n $tableBody = $viewTable.children(\"tbody\").appendTo($rowsTable)\r\n } else {\r\n $tableBody = $rowsTable.children(\".\" + className).appendTo($viewTable)\r\n }\r\n $tableBody.toggleClass(className, isBestFit);\r\n $tableBody.toggleClass(this.addWidgetPrefix(\"best-fit\"), isBestFit)\r\n }\r\n })\r\n },\r\n _toggleBestFitMode: function(isBestFit) {\r\n var $rowsTable = this._rowsView.getTableElement();\r\n var $rowsFixedTable = this._rowsView.getTableElements().eq(1);\r\n if (!$rowsTable) {\r\n return\r\n }\r\n $rowsTable.css(\"tableLayout\", isBestFit ? \"auto\" : \"fixed\");\r\n $rowsTable.children(\"colgroup\").css(\"display\", isBestFit ? \"none\" : \"\");\r\n $rowsFixedTable.toggleClass(this.addWidgetPrefix(TABLE_FIXED_CLASS), !isBestFit);\r\n this._toggleBestFitModeForView(this._columnHeadersView, \"dx-header\", isBestFit);\r\n this._toggleBestFitModeForView(this._footerView, \"dx-footer\", isBestFit);\r\n if (this._needStretch()) {\r\n $rowsTable.get(0).style.width = isBestFit ? \"auto\" : \"\"\r\n }\r\n if (browser.msie && 11 === parseInt(browser.version)) {\r\n $rowsTable.find(\".\" + this.addWidgetPrefix(TABLE_FIXED_CLASS)).each((function() {\r\n this.style.width = isBestFit ? \"10px\" : \"\"\r\n }))\r\n }\r\n },\r\n _synchronizeColumns: function() {\r\n var columnsController = this._columnsController;\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n var columnAutoWidth = this.option(\"columnAutoWidth\");\r\n var needBestFit = this._needBestFit();\r\n var hasMinWidth = false;\r\n var resetBestFitMode;\r\n var isColumnWidthsCorrected = false;\r\n var resultWidths = [];\r\n var focusedElement;\r\n var selectionRange;\r\n !needBestFit && each(visibleColumns, (function(index, column) {\r\n if (\"auto\" === column.width) {\r\n needBestFit = true;\r\n return false\r\n }\r\n }));\r\n each(visibleColumns, (function(index, column) {\r\n if (column.minWidth) {\r\n hasMinWidth = true;\r\n return false\r\n }\r\n }));\r\n this._setVisibleWidths(visibleColumns, []);\r\n if (needBestFit) {\r\n focusedElement = domAdapter.getActiveElement();\r\n selectionRange = gridCoreUtils.getSelectionRange(focusedElement);\r\n this._toggleBestFitMode(true);\r\n resetBestFitMode = true\r\n }\r\n var $element = this.component.$element();\r\n if ($element && $element[0] && this._maxWidth) {\r\n delete this._maxWidth;\r\n $element[0].style.maxWidth = \"\"\r\n }\r\n deferUpdate(() => {\r\n if (needBestFit) {\r\n resultWidths = this._getBestFitWidths();\r\n each(visibleColumns, (function(index, column) {\r\n var columnId = columnsController.getColumnId(column);\r\n columnsController.columnOption(columnId, \"bestFitWidth\", resultWidths[index], true)\r\n }))\r\n } else if (hasMinWidth) {\r\n resultWidths = this._getBestFitWidths()\r\n }\r\n each(visibleColumns, (function(index) {\r\n var width = this.width;\r\n if (\"auto\" !== width) {\r\n if (isDefined(width)) {\r\n resultWidths[index] = isNumeric(width) || isPixelWidth(width) ? parseFloat(width) : width\r\n } else if (!columnAutoWidth) {\r\n resultWidths[index] = void 0\r\n }\r\n }\r\n }));\r\n if (resetBestFitMode) {\r\n this._toggleBestFitMode(false);\r\n resetBestFitMode = false;\r\n if (focusedElement && focusedElement !== domAdapter.getActiveElement()) {\r\n var isFocusOutsideWindow = getBoundingRect(focusedElement).bottom < 0;\r\n if (!isFocusOutsideWindow) {\r\n if (browser.msie) {\r\n setTimeout((function() {\r\n restoreFocus(focusedElement, selectionRange)\r\n }))\r\n } else {\r\n restoreFocus(focusedElement, selectionRange)\r\n }\r\n }\r\n }\r\n }\r\n isColumnWidthsCorrected = this._correctColumnWidths(resultWidths, visibleColumns);\r\n if (columnAutoWidth) {\r\n ! function() {\r\n var expandColumnWidth;\r\n each(visibleColumns, (function(index, column) {\r\n if (\"groupExpand\" === column.type) {\r\n expandColumnWidth = resultWidths[index]\r\n }\r\n }));\r\n each(visibleColumns, (function(index, column) {\r\n if (\"groupExpand\" === column.type && expandColumnWidth) {\r\n resultWidths[index] = expandColumnWidth\r\n }\r\n }))\r\n }();\r\n if (this._needStretch()) {\r\n this._processStretch(resultWidths, visibleColumns)\r\n }\r\n }\r\n deferRender(() => {\r\n if (needBestFit || isColumnWidthsCorrected) {\r\n this._setVisibleWidths(visibleColumns, resultWidths)\r\n }\r\n })\r\n })\r\n },\r\n _needBestFit: function() {\r\n return this.option(\"columnAutoWidth\")\r\n },\r\n _needStretch: function() {\r\n return this._columnsController.getVisibleColumns().some(c => \"auto\" === c.width && !c.command)\r\n },\r\n _getAverageColumnsWidth: function(resultWidths) {\r\n var freeWidth = calculateFreeWidth(this, resultWidths);\r\n var columnCountWithoutWidth = resultWidths.filter((function(width) {\r\n return void 0 === width\r\n })).length;\r\n return freeWidth / columnCountWithoutWidth\r\n },\r\n _correctColumnWidths: function(resultWidths, visibleColumns) {\r\n var that = this;\r\n var i;\r\n var hasPercentWidth = false;\r\n var hasAutoWidth = false;\r\n var isColumnWidthsCorrected = false;\r\n var $element = that.component.$element();\r\n var hasWidth = that._hasWidth;\r\n var _loop = function() {\r\n var index = i;\r\n var column = visibleColumns[index];\r\n var isHiddenColumn = resultWidths[index] === HIDDEN_COLUMNS_WIDTH;\r\n var width = resultWidths[index];\r\n var minWidth = column.minWidth;\r\n if (minWidth) {\r\n if (void 0 === width) {\r\n var averageColumnsWidth = that._getAverageColumnsWidth(resultWidths);\r\n width = averageColumnsWidth\r\n } else if (isPercentWidth(width)) {\r\n var freeWidth = calculateFreeWidthWithCurrentMinWidth(that, index, minWidth, resultWidths);\r\n if (freeWidth < 0) {\r\n width = -1\r\n }\r\n }\r\n }\r\n var realColumnWidth = that._getRealColumnWidth(index, resultWidths.map((function(columnWidth, columnIndex) {\r\n return index === columnIndex ? width : columnWidth\r\n })));\r\n if (minWidth && !isHiddenColumn && realColumnWidth < minWidth) {\r\n resultWidths[index] = minWidth;\r\n isColumnWidthsCorrected = true;\r\n i = -1\r\n }\r\n if (!isDefined(column.width)) {\r\n hasAutoWidth = true\r\n }\r\n if (isPercentWidth(column.width)) {\r\n hasPercentWidth = true\r\n }\r\n };\r\n for (i = 0; i < visibleColumns.length; i++) {\r\n _loop()\r\n }\r\n if (!hasAutoWidth && resultWidths.length) {\r\n var $rowsViewElement = that._rowsView.element();\r\n var contentWidth = that._rowsView.contentWidth();\r\n var scrollbarWidth = that._rowsView.getScrollbarWidth();\r\n var totalWidth = that._getTotalWidth(resultWidths, contentWidth);\r\n if (totalWidth < contentWidth) {\r\n var lastColumnIndex = gridCoreUtils.getLastResizableColumnIndex(visibleColumns, resultWidths);\r\n if (lastColumnIndex >= 0) {\r\n resultWidths[lastColumnIndex] = \"auto\";\r\n isColumnWidthsCorrected = true;\r\n if (false === hasWidth && !hasPercentWidth) {\r\n var borderWidth = that.option(\"showBorders\") ? Math.ceil($rowsViewElement.outerWidth() - $rowsViewElement.innerWidth()) : 0;\r\n that._maxWidth = totalWidth + scrollbarWidth + borderWidth;\r\n $element.css(\"maxWidth\", that._maxWidth)\r\n }\r\n }\r\n }\r\n }\r\n return isColumnWidthsCorrected\r\n },\r\n _processStretch: function(resultSizes, visibleColumns) {\r\n var groupSize = this._rowsView.contentWidth();\r\n var tableSize = this._getTotalWidth(resultSizes, groupSize);\r\n var unusedIndexes = {\r\n length: 0\r\n };\r\n if (!resultSizes.length) {\r\n return\r\n }\r\n each(visibleColumns, (function(index) {\r\n if (this.width || resultSizes[index] === HIDDEN_COLUMNS_WIDTH) {\r\n unusedIndexes[index] = true;\r\n unusedIndexes.length++\r\n }\r\n }));\r\n var diff = groupSize - tableSize;\r\n var diffElement = Math.floor(diff / (resultSizes.length - unusedIndexes.length));\r\n var onePixelElementsCount = diff - diffElement * (resultSizes.length - unusedIndexes.length);\r\n if (diff >= 0) {\r\n for (var i = 0; i < resultSizes.length; i++) {\r\n if (unusedIndexes[i]) {\r\n continue\r\n }\r\n resultSizes[i] += diffElement;\r\n if (onePixelElementsCount > 0) {\r\n if (onePixelElementsCount < 1) {\r\n resultSizes[i] += onePixelElementsCount;\r\n onePixelElementsCount = 0\r\n } else {\r\n resultSizes[i]++;\r\n onePixelElementsCount--\r\n }\r\n }\r\n }\r\n }\r\n },\r\n _getRealColumnWidth: function(columnIndex, columnWidths, groupWidth) {\r\n var ratio = 1;\r\n var width = columnWidths[columnIndex];\r\n if (!isPercentWidth(width)) {\r\n return parseFloat(width)\r\n }\r\n var percentTotalWidth = columnWidths.reduce((sum, width, index) => {\r\n if (!isPercentWidth(width)) {\r\n return sum\r\n }\r\n return sum + parseFloat(width)\r\n }, 0);\r\n var pixelTotalWidth = columnWidths.reduce((sum, width) => {\r\n if (!width || width === HIDDEN_COLUMNS_WIDTH || isPercentWidth(width)) {\r\n return sum\r\n }\r\n return sum + parseFloat(width)\r\n }, 0);\r\n groupWidth = groupWidth || this._rowsView.contentWidth();\r\n var freeSpace = groupWidth - pixelTotalWidth;\r\n var percentTotalWidthInPixel = percentTotalWidth * groupWidth / 100;\r\n if (pixelTotalWidth > 0 && percentTotalWidthInPixel + pixelTotalWidth >= groupWidth) {\r\n ratio = percentTotalWidthInPixel > freeSpace ? freeSpace / percentTotalWidthInPixel : 1\r\n }\r\n return parseFloat(width) * groupWidth * ratio / 100\r\n },\r\n _getTotalWidth: function(widths, groupWidth) {\r\n var result = 0;\r\n for (var i = 0; i < widths.length; i++) {\r\n var width = widths[i];\r\n if (width && width !== HIDDEN_COLUMNS_WIDTH) {\r\n result += this._getRealColumnWidth(i, widths, groupWidth)\r\n }\r\n }\r\n return Math.ceil(result)\r\n },\r\n updateSize: function(rootElement) {\r\n var $groupElement;\r\n var width;\r\n var $rootElement = $(rootElement);\r\n var importantMarginClass = this.addWidgetPrefix(IMPORTANT_MARGIN_CLASS);\r\n if (void 0 === this._hasHeight && $rootElement && $rootElement.is(\":visible\") && $rootElement.width()) {\r\n $groupElement = $rootElement.children(\".\" + this.getWidgetContainerClass());\r\n if ($groupElement.length) {\r\n $groupElement.detach()\r\n }\r\n this._hasHeight = !!getContainerHeight($rootElement);\r\n width = $rootElement.width();\r\n $rootElement.addClass(importantMarginClass);\r\n this._hasWidth = $rootElement.width() === width;\r\n $rootElement.removeClass(importantMarginClass);\r\n if ($groupElement.length) {\r\n $groupElement.appendTo($rootElement)\r\n }\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"resize\", \"updateDimensions\"]\r\n },\r\n resize: function() {\r\n return !this.component._requireResize && this.updateDimensions()\r\n },\r\n updateDimensions: function(checkSize) {\r\n var that = this;\r\n that._initPostRenderHandlers();\r\n if (!that._checkSize(checkSize)) {\r\n return\r\n }\r\n var prevResult = that._resizeDeferred;\r\n var result = that._resizeDeferred = new Deferred;\r\n when(prevResult).always((function() {\r\n deferRender((function() {\r\n if (that._dataController.isLoaded()) {\r\n that._synchronizeColumns()\r\n }\r\n that._resetGroupElementHeight();\r\n deferUpdate((function() {\r\n deferRender((function() {\r\n deferUpdate((function() {\r\n that._updateDimensionsCore()\r\n }))\r\n }))\r\n }))\r\n })).done(result.resolve).fail(result.reject)\r\n }));\r\n return result.promise()\r\n },\r\n _resetGroupElementHeight: function() {\r\n var groupElement = this.component.$element().children().get(0);\r\n var scrollable = this._rowsView.getScrollable();\r\n if (groupElement && groupElement.style.height && (!scrollable || !scrollable.scrollTop())) {\r\n groupElement.style.height = \"\"\r\n }\r\n },\r\n _checkSize: function(checkSize) {\r\n var $rootElement = this.component.$element();\r\n if (checkSize && (this._lastWidth === $rootElement.width() && this._lastHeight === $rootElement.height() && this._devicePixelRatio === getWindow().devicePixelRatio || !$rootElement.is(\":visible\"))) {\r\n return false\r\n }\r\n return true\r\n },\r\n _setScrollerSpacingCore: function(hasHeight) {\r\n var that = this;\r\n var vScrollbarWidth = hasHeight ? that._rowsView.getScrollbarWidth() : 0;\r\n var hScrollbarWidth = that._rowsView.getScrollbarWidth(true);\r\n deferRender((function() {\r\n that._columnHeadersView && that._columnHeadersView.setScrollerSpacing(vScrollbarWidth);\r\n that._footerView && that._footerView.setScrollerSpacing(vScrollbarWidth);\r\n that._rowsView.setScrollerSpacing(vScrollbarWidth, hScrollbarWidth)\r\n }))\r\n },\r\n _setScrollerSpacing: function(hasHeight) {\r\n if (true === this.option(\"scrolling.useNative\")) {\r\n deferRender(() => {\r\n deferUpdate(() => {\r\n this._setScrollerSpacingCore(hasHeight)\r\n })\r\n })\r\n } else {\r\n this._setScrollerSpacingCore(hasHeight)\r\n }\r\n },\r\n _updateDimensionsCore: function() {\r\n var that = this;\r\n var dataController = that._dataController;\r\n var rowsView = that._rowsView;\r\n var $rootElement = that.component.$element();\r\n var groupElement = $rootElement.children().get(0);\r\n var rootElementHeight = $rootElement && ($rootElement.get(0).clientHeight || $rootElement.height());\r\n var maxHeight = parseInt($rootElement.css(\"maxHeight\"));\r\n var maxHeightHappened = maxHeight && rootElementHeight >= maxHeight;\r\n var height = that.option(\"height\") || $rootElement.get(0).style.height;\r\n var editorFactory = that.getController(\"editorFactory\");\r\n var isMaxHeightApplied = maxHeightHappened && groupElement.scrollHeight === groupElement.offsetHeight;\r\n var $testDiv;\r\n that.updateSize($rootElement);\r\n var hasHeight = that._hasHeight || maxHeightHappened;\r\n if (height && that._hasHeight ^ \"auto\" !== height) {\r\n $testDiv = $(\"
\").height(height).appendTo($rootElement);\r\n that._hasHeight = !!$testDiv.height();\r\n $testDiv.remove()\r\n }\r\n deferRender((function() {\r\n rowsView.height(null, hasHeight);\r\n if (maxHeightHappened && !isMaxHeightApplied) {\r\n $(groupElement).css(\"height\", maxHeight)\r\n }\r\n if (!dataController.isLoaded()) {\r\n rowsView.setLoading(dataController.isLoading());\r\n return\r\n }\r\n deferUpdate((function() {\r\n that._updateLastSizes($rootElement);\r\n that._setScrollerSpacing(hasHeight);\r\n each(VIEW_NAMES, (function(index, viewName) {\r\n var view = that.getView(viewName);\r\n if (view) {\r\n view.resize()\r\n }\r\n }));\r\n editorFactory && editorFactory.resize()\r\n }))\r\n }))\r\n },\r\n _updateLastSizes: function($rootElement) {\r\n this._lastWidth = $rootElement.width();\r\n this._lastHeight = $rootElement.height();\r\n this._devicePixelRatio = getWindow().devicePixelRatio\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n this.component._renderDimensions();\r\n this.resize();\r\n case \"renderAsync\":\r\n args.handled = true;\r\n return;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n init: function() {\r\n this._dataController = this.getController(\"data\");\r\n this._columnsController = this.getController(\"columns\");\r\n this._columnHeadersView = this.getView(\"columnHeadersView\");\r\n this._footerView = this.getView(\"footerView\");\r\n this._rowsView = this.getView(\"rowsView\")\r\n }\r\n});\r\nvar SynchronizeScrollingController = modules.ViewController.inherit({\r\n _scrollChangedHandler: function(views, pos, viewName) {\r\n for (var j = 0; j < views.length; j++) {\r\n if (views[j] && views[j].name !== viewName) {\r\n views[j].scrollTo({\r\n left: pos.left,\r\n top: pos.top\r\n })\r\n }\r\n }\r\n },\r\n init: function() {\r\n var views = [this.getView(\"columnHeadersView\"), this.getView(\"footerView\"), this.getView(\"rowsView\")];\r\n for (var i = 0; i < views.length; i++) {\r\n var view = views[i];\r\n if (view) {\r\n view.scrollChanged.add(this._scrollChangedHandler.bind(this, views))\r\n }\r\n }\r\n }\r\n});\r\nvar GridView = modules.View.inherit({\r\n _endUpdateCore: function() {\r\n if (this.component._requireResize) {\r\n this.component._requireResize = false;\r\n this._resizingController.resize()\r\n }\r\n },\r\n _getWidgetAriaLabel: function() {\r\n return \"dxDataGrid-ariaDataGrid\"\r\n },\r\n init: function() {\r\n this._resizingController = this.getController(\"resizing\");\r\n this._dataController = this.getController(\"data\")\r\n },\r\n getView: function(name) {\r\n return this.component._views[name]\r\n },\r\n element: function() {\r\n return this._groupElement\r\n },\r\n optionChanged: function(args) {\r\n if (isDefined(this._groupElement) && \"showBorders\" === args.name) {\r\n this._groupElement.toggleClass(this.addWidgetPrefix(BORDERS_CLASS), !!args.value);\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n },\r\n _renderViews: function($groupElement) {\r\n var that = this;\r\n each(VIEW_NAMES, (function(index, viewName) {\r\n var view = that.getView(viewName);\r\n if (view) {\r\n view.render($groupElement)\r\n }\r\n }))\r\n },\r\n _getTableRoleName: function() {\r\n return \"grid\"\r\n },\r\n render: function($rootElement) {\r\n var isFirstRender = !this._groupElement;\r\n var $groupElement = this._groupElement || $(\"
\").addClass(this.getWidgetContainerClass());\r\n $groupElement.addClass(GRIDBASE_CONTAINER_CLASS);\r\n $groupElement.toggleClass(this.addWidgetPrefix(BORDERS_CLASS), !!this.option(\"showBorders\"));\r\n this.setAria(\"role\", \"presentation\", $rootElement);\r\n this.component.setAria({\r\n role: this._getTableRoleName(),\r\n label: messageLocalization.format(this._getWidgetAriaLabel())\r\n }, $groupElement);\r\n this._rootElement = $rootElement || this._rootElement;\r\n if (isFirstRender) {\r\n this._groupElement = $groupElement;\r\n hasWindow() && this.getController(\"resizing\").updateSize($rootElement);\r\n $groupElement.appendTo($rootElement)\r\n }\r\n this._renderViews($groupElement)\r\n },\r\n update: function() {\r\n var $rootElement = this._rootElement;\r\n var $groupElement = this._groupElement;\r\n var resizingController = this.getController(\"resizing\");\r\n if ($rootElement && $groupElement) {\r\n resizingController.resize();\r\n if (this._dataController.isLoaded()) {\r\n this._resizingController.fireContentReadyAction()\r\n }\r\n }\r\n }\r\n});\r\nexport var gridViewModule = {\r\n defaultOptions: function() {\r\n return {\r\n showBorders: false,\r\n renderAsync: false\r\n }\r\n },\r\n controllers: {\r\n resizing: ResizingController,\r\n synchronizeScrolling: SynchronizeScrollingController\r\n },\r\n views: {\r\n gridView: GridView\r\n },\r\n VIEW_NAMES: VIEW_NAMES\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.grid_view.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n gridViewModule\r\n} from \"../grid_core/ui.grid_core.grid_view\";\r\ngridCore.registerModule(\"gridView\", gridViewModule);\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.header_panel.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 Toolbar from \"../toolbar\";\r\nimport {\r\n ColumnsView\r\n} from \"./ui.grid_core.columns_view\";\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 triggerResizeEvent\r\n} from \"../../events/visibility_change\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport \"../drop_down_menu\";\r\nvar HEADER_PANEL_CLASS = \"header-panel\";\r\nvar TOOLBAR_BUTTON_CLASS = \"toolbar-button\";\r\nvar TOOLBAR_ARIA_LABEL = \"-ariaToolbar\";\r\nvar HeaderPanel = ColumnsView.inherit({\r\n _getToolbarItems: function() {\r\n return []\r\n },\r\n _getButtonContainer: function() {\r\n return $(\"
\").addClass(this.addWidgetPrefix(TOOLBAR_BUTTON_CLASS))\r\n },\r\n _getToolbarButtonClass: function(specificClass) {\r\n var secondClass = specificClass ? \" \" + specificClass : \"\";\r\n return this.addWidgetPrefix(TOOLBAR_BUTTON_CLASS) + secondClass\r\n },\r\n _getToolbarOptions: function() {\r\n var options = {\r\n toolbarOptions: {\r\n items: this._getToolbarItems(),\r\n onItemRendered: function(e) {\r\n var itemRenderedCallback = e.itemData.onItemRendered;\r\n if (itemRenderedCallback) {\r\n itemRenderedCallback(e)\r\n }\r\n }\r\n }\r\n };\r\n this.executeAction(\"onToolbarPreparing\", options);\r\n if (options.toolbarOptions && !isDefined(options.toolbarOptions.visible)) {\r\n var toolbarItems = options.toolbarOptions.items;\r\n options.toolbarOptions.visible = !!(toolbarItems && toolbarItems.length)\r\n }\r\n return options.toolbarOptions\r\n },\r\n _renderCore: function() {\r\n if (!this._toolbar) {\r\n var $headerPanel = this.element();\r\n $headerPanel.addClass(this.addWidgetPrefix(HEADER_PANEL_CLASS));\r\n var label = messageLocalization.format(this.component.NAME + TOOLBAR_ARIA_LABEL);\r\n var $toolbar = $(\"
\").attr(\"aria-label\", label).appendTo($headerPanel);\r\n this._toolbar = this._createComponent($toolbar, Toolbar, this._toolbarOptions)\r\n } else {\r\n this._toolbar.option(this._toolbarOptions)\r\n }\r\n },\r\n _columnOptionChanged: noop,\r\n _handleDataChanged: function() {\r\n if (this._requireReady) {\r\n this.render()\r\n }\r\n },\r\n init: function() {\r\n this.callBase();\r\n this.createAction(\"onToolbarPreparing\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n render: function() {\r\n this._toolbarOptions = this._getToolbarOptions();\r\n this.callBase.apply(this, arguments)\r\n },\r\n setToolbarItemDisabled: function(name, optionValue) {\r\n var toolbarInstance = this._toolbar;\r\n if (toolbarInstance) {\r\n var items = toolbarInstance.option(\"items\") || [];\r\n var itemIndex = items.indexOf(items.filter((function(item) {\r\n return item.name === name\r\n }))[0]);\r\n if (itemIndex >= 0) {\r\n var itemOptionPrefix = \"items[\" + itemIndex + \"]\";\r\n if (toolbarInstance.option(itemOptionPrefix + \".options\")) {\r\n toolbarInstance.option(itemOptionPrefix + \".options.disabled\", optionValue)\r\n } else {\r\n toolbarInstance.option(itemOptionPrefix + \".disabled\", optionValue)\r\n }\r\n }\r\n }\r\n },\r\n updateToolbarDimensions: function() {\r\n if (this._toolbar) {\r\n triggerResizeEvent(this.getHeaderPanel())\r\n }\r\n },\r\n getHeaderPanel: function() {\r\n return this.element()\r\n },\r\n getHeight: function() {\r\n return this.getElementHeight()\r\n },\r\n optionChanged: function(args) {\r\n if (\"onToolbarPreparing\" === args.name) {\r\n this._invalidate();\r\n args.handled = true\r\n }\r\n this.callBase(args)\r\n },\r\n isVisible: function() {\r\n return this._toolbarOptions && this._toolbarOptions.visible\r\n },\r\n allowDragging: noop\r\n});\r\nexport var headerPanelModule = {\r\n defaultOptions: function() {\r\n return {}\r\n },\r\n views: {\r\n headerPanel: HeaderPanel\r\n },\r\n extenders: {\r\n controllers: {\r\n resizing: {\r\n _updateDimensionsCore: function() {\r\n this.callBase.apply(this, arguments);\r\n this.getView(\"headerPanel\").updateToolbarDimensions()\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.header_panel.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n headerPanelModule\r\n} from \"../grid_core/ui.grid_core.header_panel\";\r\nexport var HeaderPanel = headerPanelModule.views.headerPanel;\r\ngridCore.registerModule(\"headerPanel\", headerPanelModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.base.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 {\r\n deferRender,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n logger\r\n} from \"../../core/utils/console\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n isMaterial\r\n} from \"../themes\";\r\nvar DATAGRID_ROW_SELECTOR = \".dx-row\";\r\nvar DATAGRID_DEPRECATED_TEMPLATE_WARNING = \"Specifying grid templates with the jQuery selector name is now deprecated. Use the DOM Node or the jQuery object that references this selector instead.\";\r\nimport \"./ui.data_grid.column_headers\";\r\nimport \"./ui.data_grid.columns_controller\";\r\nimport \"./ui.data_grid.data_controller\";\r\nimport \"./ui.data_grid.sorting\";\r\nimport \"./ui.data_grid.rows\";\r\nimport \"./ui.data_grid.context_menu\";\r\nimport \"./ui.data_grid.error_handling\";\r\nimport \"./ui.data_grid.grid_view\";\r\nimport \"./ui.data_grid.header_panel\";\r\ngridCore.registerModulesOrder([\"stateStoring\", \"columns\", \"selection\", \"editorFactory\", \"columnChooser\", \"grouping\", \"editing\", \"editingRowBased\", \"editingFormBased\", \"editingCellBased\", \"masterDetail\", \"validating\", \"adaptivity\", \"data\", \"virtualScrolling\", \"columnHeaders\", \"filterRow\", \"headerPanel\", \"headerFilter\", \"sorting\", \"search\", \"rows\", \"pager\", \"columnsResizingReordering\", \"contextMenu\", \"keyboardNavigation\", \"errorHandling\", \"summary\", \"columnFixing\", \"export\", \"gridView\"]);\r\nvar DataGrid = Widget.inherit({\r\n _activeStateUnit: DATAGRID_ROW_SELECTOR,\r\n _getDefaultOptions: function() {\r\n var result = this.callBase();\r\n each(gridCore.modules, (function() {\r\n if (isFunction(this.defaultOptions)) {\r\n extend(true, result, this.defaultOptions())\r\n }\r\n }));\r\n return result\r\n },\r\n _setDeprecatedOptions: function() {\r\n this.callBase();\r\n extend(this._deprecatedOptions, {\r\n useKeyboard: {\r\n since: \"19.2\",\r\n alias: \"keyboardNavigation.enabled\"\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n showRowLines: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n showRowLines: true,\r\n showColumnLines: false,\r\n headerFilter: {\r\n height: 315\r\n },\r\n editing: {\r\n useIcons: true\r\n }\r\n }\r\n }, {\r\n device: function() {\r\n return browser.webkit\r\n },\r\n options: {\r\n loadingTimeout: 30,\r\n loadPanel: {\r\n animation: {\r\n show: {\r\n easing: \"cubic-bezier(1, 0, 1, 0)\",\r\n duration: 500,\r\n from: {\r\n opacity: 0\r\n },\r\n to: {\r\n opacity: 1\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }, {\r\n device: function(_device) {\r\n return \"desktop\" !== _device.deviceType\r\n },\r\n options: {\r\n grouping: {\r\n expandMode: \"rowClick\"\r\n }\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n gridCore.processModules(this, gridCore);\r\n gridCore.callModuleItemsMethod(this, \"init\")\r\n },\r\n _clean: noop,\r\n _optionChanged: function(args) {\r\n gridCore.callModuleItemsMethod(this, \"optionChanged\", [args]);\r\n if (!args.handled) {\r\n this.callBase(args)\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n this.updateDimensions(true)\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this.updateDimensions()\r\n }\r\n },\r\n _initMarkup: function() {\r\n this.callBase.apply(this, arguments);\r\n this.getView(\"gridView\").render(this.$element())\r\n },\r\n _renderContentImpl: function() {\r\n this.getView(\"gridView\").update()\r\n },\r\n _renderContent: function() {\r\n var that = this;\r\n deferRender((function() {\r\n that._renderContentImpl()\r\n }))\r\n },\r\n _getTemplate: function(templateName) {\r\n var template = templateName;\r\n if (isString(template) && \"#\" === template[0]) {\r\n template = $(templateName);\r\n logger.warn(DATAGRID_DEPRECATED_TEMPLATE_WARNING)\r\n }\r\n return this.callBase(template)\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n gridCore.callModuleItemsMethod(this, \"dispose\")\r\n },\r\n isReady: function() {\r\n return this.getController(\"data\").isReady()\r\n },\r\n beginUpdate: function() {\r\n this.callBase();\r\n gridCore.callModuleItemsMethod(this, \"beginUpdate\")\r\n },\r\n endUpdate: function() {\r\n gridCore.callModuleItemsMethod(this, \"endUpdate\");\r\n this.callBase()\r\n },\r\n getController: function(name) {\r\n return this._controllers[name]\r\n },\r\n getView: function(name) {\r\n return this._views[name]\r\n },\r\n focus: function(element) {\r\n this.getController(\"keyboardNavigation\").focus(element)\r\n }\r\n});\r\nDataGrid.registerModule = gridCore.registerModule.bind(gridCore);\r\nregisterComponent(\"dxDataGrid\", DataGrid);\r\nexport default DataGrid;\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.state_storing_core.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 getWindow\r\n} from \"../../core/utils/window\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n sessionStorage\r\n} from \"../../core/utils/storage\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n fromPromise\r\n} from \"../../core/utils/deferred\";\r\nvar DATE_REGEX = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/;\r\nvar parseDates = function parseDates(state) {\r\n if (!state) {\r\n return\r\n }\r\n each(state, (function(key, value) {\r\n if (isPlainObject(value) || Array.isArray(value)) {\r\n parseDates(value)\r\n } else if (\"string\" === typeof value) {\r\n var date = DATE_REGEX.exec(value);\r\n if (date) {\r\n state[key] = new Date(Date.UTC(+date[1], +date[2] - 1, +date[3], +date[4], +date[5], +date[6]))\r\n }\r\n }\r\n }))\r\n};\r\nexport var StateStoringController = modules.ViewController.inherit(function() {\r\n var getStorage = function(options) {\r\n var storage = \"sessionStorage\" === options.type ? sessionStorage() : getWindow().localStorage;\r\n if (!storage) {\r\n if (\"file:\" === getWindow().location.protocol && browser.msie) {\r\n throw new Error(\"E1038\")\r\n } else {\r\n throw new Error(\"E1007\")\r\n }\r\n }\r\n return storage\r\n };\r\n var getUniqueStorageKey = function(options) {\r\n return isDefined(options.storageKey) ? options.storageKey : \"storage\"\r\n };\r\n return {\r\n _loadState: function() {\r\n var options = this.option(\"stateStoring\");\r\n if (\"custom\" === options.type) {\r\n return options.customLoad && options.customLoad()\r\n }\r\n try {\r\n return JSON.parse(getStorage(options).getItem(getUniqueStorageKey(options)))\r\n } catch (e) {\r\n errors.log(e.message)\r\n }\r\n },\r\n _saveState: function(state) {\r\n var options = this.option(\"stateStoring\");\r\n if (\"custom\" === options.type) {\r\n options.customSave && options.customSave(state);\r\n return\r\n }\r\n try {\r\n getStorage(options).setItem(getUniqueStorageKey(options), JSON.stringify(state))\r\n } catch (e) {\r\n errors.log(e.message)\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"state\"]\r\n },\r\n isEnabled: function() {\r\n return this.option(\"stateStoring.enabled\")\r\n },\r\n init: function() {\r\n var that = this;\r\n that._state = {};\r\n that._isLoaded = false;\r\n that._isLoading = false;\r\n that._windowUnloadHandler = function() {\r\n if (void 0 !== that._savingTimeoutID) {\r\n that._saveState(that.state())\r\n }\r\n };\r\n eventsEngine.on(getWindow(), \"unload\", that._windowUnloadHandler);\r\n return that\r\n },\r\n isLoaded: function() {\r\n return this._isLoaded\r\n },\r\n isLoading: function() {\r\n return this._isLoading\r\n },\r\n load: function() {\r\n this._isLoading = true;\r\n var loadResult = fromPromise(this._loadState());\r\n loadResult.always(() => {\r\n this._isLoaded = true;\r\n this._isLoading = false\r\n }).done(state => {\r\n this.state(state)\r\n });\r\n return loadResult\r\n },\r\n state: function(_state) {\r\n var that = this;\r\n if (!arguments.length) {\r\n return extend(true, {}, that._state)\r\n } else {\r\n that._state = extend({}, _state);\r\n parseDates(that._state)\r\n }\r\n },\r\n save: function() {\r\n var that = this;\r\n clearTimeout(that._savingTimeoutID);\r\n that._savingTimeoutID = setTimeout((function() {\r\n that._saveState(that.state());\r\n that._savingTimeoutID = void 0\r\n }), that.option(\"stateStoring.savingTimeout\"))\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"stateStoring\":\r\n if (this.isEnabled() && !this.isLoading()) {\r\n this.load()\r\n }\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n dispose: function() {\r\n clearTimeout(this._savingTimeoutID);\r\n eventsEngine.off(getWindow(), \"unload\", this._windowUnloadHandler)\r\n }\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.state_storing.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 \"../../core/utils/common\";\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 StateStoringController\r\n} from \"./ui.grid_core.state_storing_core\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar getDataState = that => {\r\n var pagerView = that.getView(\"pagerView\");\r\n var dataController = that.getController(\"data\");\r\n var state = {\r\n allowedPageSizes: pagerView ? pagerView.getPageSizes() : void 0,\r\n filterPanel: {\r\n filterEnabled: that.option(\"filterPanel.filterEnabled\")\r\n },\r\n filterValue: that.option(\"filterValue\"),\r\n focusedRowKey: that.option(\"focusedRowEnabled\") ? that.option(\"focusedRowKey\") : void 0\r\n };\r\n return extend(state, dataController.getUserState())\r\n};\r\nvar processLoadState = that => {\r\n var columnsController = that.getController(\"columns\");\r\n var selectionController = that.getController(\"selection\");\r\n var exportController = that.getController(\"export\");\r\n var dataController = that.getController(\"data\");\r\n if (columnsController) {\r\n columnsController.columnsChanged.add((function() {\r\n that.updateState({\r\n columns: columnsController.getUserState()\r\n })\r\n }))\r\n }\r\n if (selectionController) {\r\n selectionController.selectionChanged.add((function(e) {\r\n that.updateState({\r\n selectedRowKeys: e.selectedRowKeys,\r\n selectionFilter: e.selectionFilter\r\n })\r\n }))\r\n }\r\n if (dataController) {\r\n that._initialPageSize = that.option(\"paging.pageSize\");\r\n that._initialFilterValue = that.option(\"filterValue\");\r\n dataController.changed.add((function() {\r\n var state = getDataState(that);\r\n that.updateState(state)\r\n }))\r\n }\r\n if (exportController) {\r\n exportController.selectionOnlyChanged.add((function() {\r\n that.updateState({\r\n exportSelectionOnly: exportController.selectionOnly()\r\n })\r\n }))\r\n }\r\n};\r\nvar DEFAULT_FILTER_VALUE = null;\r\nvar getFilterValue = (that, state) => {\r\n var filterSyncController = that.getController(\"filterSync\");\r\n var columnsController = that.getController(\"columns\");\r\n var hasFilterState = state.columns || void 0 !== state.filterValue;\r\n if (filterSyncController) {\r\n if (hasFilterState) {\r\n return state.filterValue || filterSyncController.getFilterValueFromColumns(state.columns)\r\n } else {\r\n return that._initialFilterValue || filterSyncController.getFilterValueFromColumns(columnsController.getColumns())\r\n }\r\n }\r\n return DEFAULT_FILTER_VALUE\r\n};\r\nexport var stateStoringModule = {\r\n defaultOptions: function() {\r\n return {\r\n stateStoring: {\r\n enabled: false,\r\n storageKey: null,\r\n type: \"localStorage\",\r\n customLoad: null,\r\n customSave: null,\r\n savingTimeout: 2e3\r\n }\r\n }\r\n },\r\n controllers: {\r\n stateStoring: StateStoringController\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: {\r\n init: function() {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n that.callBase();\r\n dataController.stateLoaded.add((function() {\r\n if (dataController.isLoaded() && !dataController.getDataSource()) {\r\n that.setLoading(false);\r\n that.renderNoDataText();\r\n var columnHeadersView = that.component.getView(\"columnHeadersView\");\r\n columnHeadersView && columnHeadersView.render();\r\n that.component._fireContentReadyAction()\r\n }\r\n }))\r\n }\r\n }\r\n },\r\n controllers: {\r\n stateStoring: {\r\n init: function() {\r\n this.callBase.apply(this, arguments);\r\n processLoadState(this)\r\n },\r\n isLoading: function() {\r\n return this.callBase() || this.getController(\"data\").isStateLoading()\r\n },\r\n state: function(_state) {\r\n var result = this.callBase.apply(this, arguments);\r\n if (void 0 !== _state) {\r\n this.applyState(extend({}, _state))\r\n }\r\n return result\r\n },\r\n updateState: function(state) {\r\n if (this.isEnabled()) {\r\n var oldState = this.state();\r\n var newState = extend({}, oldState, state);\r\n var oldStateHash = getKeyHash(oldState);\r\n var newStateHash = getKeyHash(newState);\r\n if (!equalByValue(oldStateHash, newStateHash)) {\r\n extend(this._state, state);\r\n this.save()\r\n }\r\n } else {\r\n extend(this._state, state)\r\n }\r\n },\r\n applyState: function(state) {\r\n var allowedPageSizes = state.allowedPageSizes;\r\n var searchText = state.searchText;\r\n var selectedRowKeys = state.selectedRowKeys;\r\n var selectionFilter = state.selectionFilter;\r\n var exportController = this.getController(\"export\");\r\n var columnsController = this.getController(\"columns\");\r\n var dataController = this.getController(\"data\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var isVirtualScrollingMode = \"virtual\" === scrollingMode || \"infinite\" === scrollingMode;\r\n var showPageSizeSelector = true === this.option(\"pager.visible\") && this.option(\"pager.showPageSizeSelector\");\r\n this.component.beginUpdate();\r\n if (columnsController) {\r\n columnsController.setUserState(state.columns)\r\n }\r\n if (exportController) {\r\n exportController.selectionOnly(state.exportSelectionOnly)\r\n }\r\n if (selectedRowKeys) {\r\n this.option(\"selectedRowKeys\", selectedRowKeys)\r\n }\r\n this.option(\"selectionFilter\", selectionFilter);\r\n if (allowedPageSizes && \"auto\" === this.option(\"pager.allowedPageSizes\")) {\r\n this.option(\"pager\").allowedPageSizes = allowedPageSizes\r\n }\r\n if (this.option(\"focusedRowEnabled\") && void 0 !== state.focusedRowKey) {\r\n this.option(\"focusedRowIndex\", -1);\r\n this.option(\"focusedRowKey\", state.focusedRowKey)\r\n }\r\n this.component.endUpdate();\r\n searchText && this.option(\"searchPanel.text\", searchText);\r\n this.option(\"filterValue\", getFilterValue(this, state));\r\n this.option(\"filterPanel.filterEnabled\", state.filterPanel ? state.filterPanel.filterEnabled : true);\r\n this.option(\"paging.pageSize\", (!isVirtualScrollingMode || showPageSizeSelector) && isDefined(state.pageSize) ? state.pageSize : this._initialPageSize);\r\n this.option(\"paging.pageIndex\", state.pageIndex || 0);\r\n dataController && dataController.reset()\r\n }\r\n },\r\n columns: {\r\n getVisibleColumns: function() {\r\n var visibleColumns = this.callBase.apply(this, arguments);\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n return stateStoringController.isEnabled() && !stateStoringController.isLoaded() ? [] : visibleColumns\r\n }\r\n },\r\n data: {\r\n callbackNames: function() {\r\n return this.callBase().concat([\"stateLoaded\"])\r\n },\r\n _refreshDataSource: function() {\r\n var callBase = this.callBase;\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n if (stateStoringController.isEnabled() && !stateStoringController.isLoaded()) {\r\n clearTimeout(this._restoreStateTimeoutID);\r\n var deferred = new Deferred;\r\n this._restoreStateTimeoutID = setTimeout(() => {\r\n stateStoringController.load().always(() => {\r\n this._restoreStateTimeoutID = null\r\n }).done(() => {\r\n callBase.call(this);\r\n this.stateLoaded.fire();\r\n deferred.resolve()\r\n }).fail(error => {\r\n this.stateLoaded.fire();\r\n this._handleLoadError(error || \"Unknown error\");\r\n deferred.reject()\r\n })\r\n });\r\n return deferred.promise()\r\n } else if (!this.isStateLoading()) {\r\n callBase.call(this)\r\n }\r\n },\r\n isLoading: function() {\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n return this.callBase() || stateStoringController.isLoading()\r\n },\r\n isStateLoading: function() {\r\n return isDefined(this._restoreStateTimeoutID)\r\n },\r\n isLoaded: function() {\r\n return this.callBase() && !this.isStateLoading()\r\n },\r\n dispose: function() {\r\n clearTimeout(this._restoreStateTimeoutID);\r\n this.callBase()\r\n }\r\n },\r\n selection: {\r\n _fireSelectionChanged: function(options) {\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n if (stateStoringController.isLoading() && isDeferredSelection) {\r\n return\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.state_storing.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n stateStoringModule\r\n} from \"../grid_core/ui.grid_core.state_storing\";\r\ngridCore.registerModule(\"stateStoring\", stateStoringModule);\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.selection.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 gridCore from \"../data_grid/ui.data_grid.core\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n touch\r\n} from \"../../core/utils/support\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport holdEvent from \"../../events/hold\";\r\nimport Selection from \"../selection/selection\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport errors from \"../widget/ui.errors\";\r\nvar EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar ROW_SELECTION_CLASS = \"dx-selection\";\r\nvar SELECT_CHECKBOX_CLASS = \"dx-select-checkbox\";\r\nvar CHECKBOXES_HIDDEN_CLASS = \"dx-select-checkboxes-hidden\";\r\nvar COMMAND_SELECT_CLASS = \"dx-command-select\";\r\nvar SELECTION_DISABLED_CLASS = \"dx-selection-disabled\";\r\nvar DATA_ROW_CLASS = \"dx-data-row\";\r\nvar SHOW_CHECKBOXES_MODE = \"selection.showCheckBoxesMode\";\r\nvar SELECTION_MODE = \"selection.mode\";\r\nvar processLongTap = function(that, dxEvent) {\r\n var selectionController = that.getController(\"selection\");\r\n var rowsView = that.getView(\"rowsView\");\r\n var $row = $(dxEvent.target).closest(\".\" + DATA_ROW_CLASS);\r\n var rowIndex = rowsView.getRowIndex($row);\r\n if (rowIndex < 0) {\r\n return\r\n }\r\n if (\"onLongTap\" === that.option(SHOW_CHECKBOXES_MODE)) {\r\n if (selectionController.isSelectionWithCheckboxes()) {\r\n selectionController.stopSelectionWithCheckboxes()\r\n } else {\r\n selectionController.startSelectionWithCheckboxes()\r\n }\r\n } else {\r\n if (\"onClick\" === that.option(SHOW_CHECKBOXES_MODE)) {\r\n selectionController.startSelectionWithCheckboxes()\r\n }\r\n if (\"always\" !== that.option(SHOW_CHECKBOXES_MODE)) {\r\n selectionController.changeItemSelection(rowIndex, {\r\n control: true\r\n })\r\n }\r\n }\r\n};\r\nvar SelectionController = gridCore.Controller.inherit(function() {\r\n var selectionCellTemplate = (container, options) => {\r\n var component = options.component;\r\n var rowsView = component.getView(\"rowsView\");\r\n if (component.option(\"renderAsync\") && !component.option(\"selection.deferred\")) {\r\n options.value = component.isRowSelected(options.row.key)\r\n }\r\n rowsView.renderSelectCheckBoxContainer($(container), options)\r\n };\r\n var selectionHeaderTemplate = (container, options) => {\r\n var column = options.column;\r\n var $cellElement = $(container);\r\n var columnHeadersView = options.component.getView(\"columnHeadersView\");\r\n $cellElement.addClass(EDITOR_CELL_CLASS);\r\n columnHeadersView._renderSelectAllCheckBox($cellElement, column);\r\n columnHeadersView._attachSelectAllCheckBoxClickEvent($cellElement)\r\n };\r\n return {\r\n init: function() {\r\n var {\r\n deferred: deferred,\r\n selectAllMode: selectAllMode,\r\n mode: mode\r\n } = this.option(\"selection\") || {};\r\n if (\"infinite\" === this.option(\"scrolling.mode\") && !deferred && \"multiple\" === mode && \"allPages\" === selectAllMode) {\r\n errors.log(\"W1018\")\r\n }\r\n this._dataController = this.getController(\"data\");\r\n this._selectionMode = mode;\r\n this._isSelectionWithCheckboxes = false;\r\n this._selection = this._createSelection();\r\n this._updateSelectColumn();\r\n this.createAction(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _getSelectionConfig: function() {\r\n var dataController = this._dataController;\r\n var selectionOptions = this.option(\"selection\") || {};\r\n return {\r\n selectedKeys: this.option(\"selectedRowKeys\"),\r\n mode: this._selectionMode,\r\n deferred: selectionOptions.deferred,\r\n maxFilterLengthInRequest: selectionOptions.maxFilterLengthInRequest,\r\n selectionFilter: this.option(\"selectionFilter\"),\r\n key: function() {\r\n return null === dataController || void 0 === dataController ? void 0 : dataController.key()\r\n },\r\n keyOf: function(item) {\r\n return null === dataController || void 0 === dataController ? void 0 : dataController.keyOf(item)\r\n },\r\n dataFields: function() {\r\n var _dataController$dataS;\r\n return null === (_dataController$dataS = dataController.dataSource()) || void 0 === _dataController$dataS ? void 0 : _dataController$dataS.select()\r\n },\r\n load: function(options) {\r\n var _dataController$dataS2;\r\n return (null === (_dataController$dataS2 = dataController.dataSource()) || void 0 === _dataController$dataS2 ? void 0 : _dataController$dataS2.load(options)) || (new Deferred).resolve([])\r\n },\r\n plainItems: function() {\r\n return dataController.items(true)\r\n },\r\n isItemSelected: function(item) {\r\n return item.selected\r\n },\r\n isSelectableItem: function(item) {\r\n return \"data\" === (null === item || void 0 === item ? void 0 : item.rowType) && !item.isNewRow\r\n },\r\n getItemData: function(item) {\r\n return (null === item || void 0 === item ? void 0 : item.oldData) || (null === item || void 0 === item ? void 0 : item.data) || item\r\n },\r\n filter: function() {\r\n return dataController.getCombinedFilter(true)\r\n },\r\n totalCount: () => dataController.totalCount(),\r\n onSelectionChanged: this._updateSelectedItems.bind(this)\r\n }\r\n },\r\n _updateSelectColumn: function() {\r\n var columnsController = this.getController(\"columns\");\r\n var isSelectColumnVisible = this.isSelectColumnVisible();\r\n columnsController.addCommandColumn({\r\n type: \"selection\",\r\n command: \"select\",\r\n visible: isSelectColumnVisible,\r\n visibleIndex: -1,\r\n dataType: \"boolean\",\r\n alignment: \"center\",\r\n cssClass: COMMAND_SELECT_CLASS,\r\n width: \"auto\",\r\n cellTemplate: selectionCellTemplate,\r\n headerCellTemplate: selectionHeaderTemplate\r\n });\r\n columnsController.columnOption(\"command:select\", \"visible\", isSelectColumnVisible)\r\n },\r\n _createSelection: function() {\r\n var options = this._getSelectionConfig();\r\n return new Selection(options)\r\n },\r\n _fireSelectionChanged: function(options) {\r\n if (options) {\r\n this.executeAction(\"onSelectionChanged\", options)\r\n }\r\n var argument = this.option(\"selection.deferred\") ? {\r\n selectionFilter: this.option(\"selectionFilter\")\r\n } : {\r\n selectedRowKeys: this.option(\"selectedRowKeys\")\r\n };\r\n this.selectionChanged.fire(argument)\r\n },\r\n _updateCheckboxesState: function(options) {\r\n var isDeferredMode = options.isDeferredMode;\r\n var selectionFilter = options.selectionFilter;\r\n var selectedItemKeys = options.selectedItemKeys;\r\n var removedItemKeys = options.removedItemKeys;\r\n if (\"onClick\" === this.option(SHOW_CHECKBOXES_MODE)) {\r\n if (isDeferredMode ? selectionFilter && function(that, selectionFilter) {\r\n var keyIndex = 0;\r\n var store = that._dataController.store();\r\n var key = store && store.key();\r\n var isComplexKey = Array.isArray(key);\r\n if (!selectionFilter.length) {\r\n return false\r\n }\r\n if (isComplexKey && Array.isArray(selectionFilter[0]) && \"and\" === selectionFilter[1]) {\r\n for (var i = 0; i < selectionFilter.length; i++) {\r\n if (Array.isArray(selectionFilter[i])) {\r\n if (selectionFilter[i][0] !== key[keyIndex] || \"=\" !== selectionFilter[i][1]) {\r\n return true\r\n }\r\n keyIndex++\r\n }\r\n }\r\n return false\r\n }\r\n return key !== selectionFilter[0]\r\n }(this, selectionFilter) : selectedItemKeys.length > 1) {\r\n this.startSelectionWithCheckboxes()\r\n } else if (isDeferredMode ? selectionFilter && !selectionFilter.length : 0 === selectedItemKeys.length && removedItemKeys.length) {\r\n this.stopSelectionWithCheckboxes()\r\n }\r\n }\r\n },\r\n _updateSelectedItems: function(args) {\r\n var selectionChangedOptions;\r\n var isDeferredMode = this.option(\"selection.deferred\");\r\n var selectionFilter = this._selection.selectionFilter();\r\n var dataController = this._dataController;\r\n var items = dataController.items();\r\n if (!items) {\r\n return\r\n }\r\n var isSelectionWithCheckboxes = this.isSelectionWithCheckboxes();\r\n var changedItemIndexes = this.getChangedItemIndexes(items);\r\n this._updateCheckboxesState({\r\n selectedItemKeys: args.selectedItemKeys,\r\n removedItemKeys: args.removedItemKeys,\r\n selectionFilter: selectionFilter,\r\n isDeferredMode: isDeferredMode\r\n });\r\n if (changedItemIndexes.length || isSelectionWithCheckboxes !== this.isSelectionWithCheckboxes()) {\r\n dataController.updateItems({\r\n changeType: \"updateSelection\",\r\n itemIndexes: changedItemIndexes\r\n })\r\n }\r\n if (isDeferredMode) {\r\n this.option(\"selectionFilter\", selectionFilter);\r\n selectionChangedOptions = {}\r\n } else if (args.addedItemKeys.length || args.removedItemKeys.length) {\r\n this._selectedItemsInternalChange = true;\r\n this.option(\"selectedRowKeys\", args.selectedItemKeys.slice(0));\r\n this._selectedItemsInternalChange = false;\r\n selectionChangedOptions = {\r\n selectedRowsData: args.selectedItems.slice(0),\r\n selectedRowKeys: args.selectedItemKeys.slice(0),\r\n currentSelectedRowKeys: args.addedItemKeys.slice(0),\r\n currentDeselectedRowKeys: args.removedItemKeys.slice(0)\r\n }\r\n }\r\n this._fireSelectionChanged(selectionChangedOptions)\r\n },\r\n getChangedItemIndexes: function(items) {\r\n var itemIndexes = [];\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n for (var i = 0, length = items.length; i < length; i++) {\r\n var row = items[i];\r\n var isItemSelected = this.isRowSelected(isDeferredSelection ? row.data : row.key);\r\n if (this._selection.isDataItem(row) && row.isSelected !== isItemSelected) {\r\n itemIndexes.push(i)\r\n }\r\n }\r\n return itemIndexes\r\n },\r\n callbackNames: function() {\r\n return [\"selectionChanged\"]\r\n },\r\n optionChanged: function(args) {\r\n var that = this;\r\n that.callBase(args);\r\n switch (args.name) {\r\n case \"selection\":\r\n var oldSelectionMode = that._selectionMode;\r\n that.init();\r\n var selectionMode = that._selectionMode;\r\n var selectedRowKeys = that.option(\"selectedRowKeys\");\r\n if (oldSelectionMode !== selectionMode) {\r\n if (\"single\" === selectionMode) {\r\n if (selectedRowKeys.length > 1) {\r\n selectedRowKeys = [selectedRowKeys[0]]\r\n }\r\n } else if (\"multiple\" !== selectionMode) {\r\n selectedRowKeys = []\r\n }\r\n }\r\n that.selectRows(selectedRowKeys).always((function() {\r\n that._fireSelectionChanged()\r\n }));\r\n that.getController(\"columns\").updateColumns();\r\n args.handled = true;\r\n break;\r\n case \"selectionFilter\":\r\n this._selection.selectionFilter(args.value);\r\n args.handled = true;\r\n break;\r\n case \"selectedRowKeys\":\r\n var value = args.value || [];\r\n if (Array.isArray(value) && !that._selectedItemsInternalChange && (that.component.getDataSource() || !value.length)) {\r\n that.selectRows(value)\r\n }\r\n args.handled = true\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"selectRows\", \"deselectRows\", \"selectRowsByIndexes\", \"getSelectedRowKeys\", \"getSelectedRowsData\", \"clearSelection\", \"selectAll\", \"deselectAll\", \"startSelectionWithCheckboxes\", \"stopSelectionWithCheckboxes\", \"isRowSelected\"]\r\n },\r\n isRowSelected: function(arg) {\r\n return this._selection.isItemSelected(arg)\r\n },\r\n isSelectColumnVisible: function() {\r\n return \"multiple\" === this.option(SELECTION_MODE) && (\"always\" === this.option(SHOW_CHECKBOXES_MODE) || \"onClick\" === this.option(SHOW_CHECKBOXES_MODE) || this._isSelectionWithCheckboxes)\r\n },\r\n _isOnePageSelectAll: function() {\r\n return \"page\" === this.option(\"selection.selectAllMode\")\r\n },\r\n isSelectAll: function() {\r\n return this._selection.getSelectAllState(this._isOnePageSelectAll())\r\n },\r\n selectAll: function() {\r\n if (\"onClick\" === this.option(SHOW_CHECKBOXES_MODE)) {\r\n this.startSelectionWithCheckboxes()\r\n }\r\n return this._selection.selectAll(this._isOnePageSelectAll())\r\n },\r\n deselectAll: function() {\r\n return this._selection.deselectAll(this._isOnePageSelectAll())\r\n },\r\n clearSelection: function() {\r\n return this.selectedItemKeys([])\r\n },\r\n refresh: function() {\r\n var selectedRowKeys = this.option(\"selectedRowKeys\") || [];\r\n if (!this.option(\"selection.deferred\") && selectedRowKeys.length) {\r\n return this.selectedItemKeys(selectedRowKeys)\r\n }\r\n return (new Deferred).resolve().promise()\r\n },\r\n selectedItemKeys: function(value, preserve, isDeselect, isSelectAll) {\r\n return this._selection.selectedItemKeys(value, preserve, isDeselect, isSelectAll)\r\n },\r\n getSelectedRowKeys: function() {\r\n return this._selection.getSelectedItemKeys()\r\n },\r\n selectRows: function(keys, preserve) {\r\n return this.selectedItemKeys(keys, preserve)\r\n },\r\n deselectRows: function(keys) {\r\n return this.selectedItemKeys(keys, true, true)\r\n },\r\n selectRowsByIndexes: function(indexes) {\r\n var items = this._dataController.items();\r\n var keys = [];\r\n if (!Array.isArray(indexes)) {\r\n indexes = Array.prototype.slice.call(arguments, 0)\r\n }\r\n each(indexes, (function() {\r\n var item = items[this];\r\n if (item && \"data\" === item.rowType) {\r\n keys.push(item.key)\r\n }\r\n }));\r\n return this.selectRows(keys)\r\n },\r\n getSelectedRowsData: function() {\r\n return this._selection.getSelectedItems()\r\n },\r\n changeItemSelection: function(itemIndex, keys) {\r\n keys = keys || {};\r\n if (this.isSelectionWithCheckboxes()) {\r\n keys.control = true\r\n }\r\n return this._selection.changeItemSelection(this._dataController.getRowIndexDelta() + itemIndex, keys)\r\n },\r\n focusedItemIndex: function(itemIndex) {\r\n if (isDefined(itemIndex)) {\r\n this._selection._focusedItemIndex = itemIndex\r\n } else {\r\n return this._selection._focusedItemIndex\r\n }\r\n },\r\n isSelectionWithCheckboxes: function() {\r\n return \"multiple\" === this.option(SELECTION_MODE) && (\"always\" === this.option(SHOW_CHECKBOXES_MODE) || this._isSelectionWithCheckboxes)\r\n },\r\n startSelectionWithCheckboxes: function() {\r\n if (\"multiple\" === this.option(SELECTION_MODE) && !this.isSelectionWithCheckboxes()) {\r\n this._isSelectionWithCheckboxes = true;\r\n this._updateSelectColumn();\r\n return true\r\n }\r\n return false\r\n },\r\n stopSelectionWithCheckboxes: function() {\r\n if (this._isSelectionWithCheckboxes) {\r\n this._isSelectionWithCheckboxes = false;\r\n this._updateSelectColumn();\r\n return true\r\n }\r\n return false\r\n }\r\n }\r\n}());\r\nexport var selectionModule = {\r\n defaultOptions: function() {\r\n return {\r\n selection: {\r\n mode: \"none\",\r\n showCheckBoxesMode: \"onClick\",\r\n allowSelectAll: true,\r\n selectAllMode: \"allPages\",\r\n maxFilterLengthInRequest: 1500,\r\n deferred: false\r\n },\r\n selectionFilter: [],\r\n selectedRowKeys: []\r\n }\r\n },\r\n controllers: {\r\n selection: SelectionController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n init: function() {\r\n var selectionController = this.getController(\"selection\");\r\n var isDeferredMode = this.option(\"selection.deferred\");\r\n this.callBase.apply(this, arguments);\r\n if (isDeferredMode) {\r\n selectionController._updateCheckboxesState({\r\n isDeferredMode: true,\r\n selectionFilter: this.option(\"selectionFilter\")\r\n })\r\n }\r\n },\r\n _loadDataSource: function() {\r\n var that = this;\r\n return that.callBase().done((function() {\r\n that.getController(\"selection\").refresh()\r\n }))\r\n },\r\n _processDataItem: function(item, options) {\r\n var that = this;\r\n var selectionController = that.getController(\"selection\");\r\n var hasSelectColumn = selectionController.isSelectColumnVisible();\r\n var isDeferredSelection = options.isDeferredSelection = void 0 === options.isDeferredSelection ? this.option(\"selection.deferred\") : options.isDeferredSelection;\r\n var dataItem = this.callBase.apply(this, arguments);\r\n dataItem.isSelected = selectionController.isRowSelected(isDeferredSelection ? dataItem.data : dataItem.key);\r\n if (hasSelectColumn && dataItem.values) {\r\n for (var i = 0; i < options.visibleColumns.length; i++) {\r\n if (\"select\" === options.visibleColumns[i].command) {\r\n dataItem.values[i] = dataItem.isSelected;\r\n break\r\n }\r\n }\r\n }\r\n return dataItem\r\n },\r\n refresh: function(options) {\r\n var that = this;\r\n var d = new Deferred;\r\n this.callBase.apply(this, arguments).done((function() {\r\n if (!options || options.selection) {\r\n that.getController(\"selection\").refresh().done(d.resolve).fail(d.reject)\r\n } else {\r\n d.resolve()\r\n }\r\n })).fail(d.reject);\r\n return d.promise()\r\n },\r\n _handleDataChanged: function(e) {\r\n this.callBase.apply(this, arguments);\r\n if ((!e || \"refresh\" === e.changeType) && !this._repaintChangesOnly) {\r\n this.getController(\"selection\").focusedItemIndex(-1)\r\n }\r\n },\r\n _applyChange: function(change) {\r\n if (change && \"updateSelection\" === change.changeType) {\r\n change.items.forEach((item, index) => {\r\n var currentItem = this._items[index];\r\n if (currentItem) {\r\n currentItem.isSelected = item.isSelected;\r\n currentItem.values = item.values\r\n }\r\n });\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _endUpdateCore: function() {\r\n var changes = this._changes;\r\n var isUpdateSelection = changes.length > 1 && changes.every(change => \"updateSelection\" === change.changeType);\r\n if (isUpdateSelection) {\r\n var itemIndexes = changes.map(change => change.itemIndexes || []).reduce((a, b) => a.concat(b));\r\n this._changes = [{\r\n changeType: \"updateSelection\",\r\n itemIndexes: itemIndexes\r\n }]\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n push: function(changes) {\r\n this.callBase.apply(this, arguments);\r\n var removedKeys = changes.filter(change => \"remove\" === change.type).map(change => change.key);\r\n removedKeys.length && this.getController(\"selection\").deselectRows(removedKeys)\r\n }\r\n },\r\n contextMenu: {\r\n _contextMenuPrepared: function(options) {\r\n var dxEvent = options.event;\r\n if (dxEvent.originalEvent && \"dxhold\" !== dxEvent.originalEvent.type || options.items && options.items.length > 0) {\r\n return\r\n }\r\n processLongTap(this, dxEvent)\r\n }\r\n }\r\n },\r\n views: {\r\n columnHeadersView: {\r\n init: function() {\r\n this.callBase();\r\n this.getController(\"selection\").selectionChanged.add(this._updateSelectAllValue.bind(this))\r\n },\r\n _updateSelectAllValue: function() {\r\n var $element = this.element();\r\n var $editor = $element && $element.find(\".\" + SELECT_CHECKBOX_CLASS);\r\n if ($element && $editor.length && \"multiple\" === this.option(\"selection.mode\")) {\r\n var selectAllValue = this.getController(\"selection\").isSelectAll();\r\n var hasSelection = false !== selectAllValue;\r\n var isVisible = this.option(\"selection.allowSelectAll\") ? !this.getController(\"data\").isEmpty() : hasSelection;\r\n $editor.dxCheckBox(\"instance\").option({\r\n visible: isVisible,\r\n value: selectAllValue\r\n })\r\n }\r\n },\r\n _handleDataChanged: function(e) {\r\n this.callBase(e);\r\n if (!e || \"refresh\" === e.changeType) {\r\n this._updateSelectAllValue()\r\n }\r\n },\r\n _renderSelectAllCheckBox: function($container, column) {\r\n var that = this;\r\n var selectionController = that.getController(\"selection\");\r\n var isEmptyData = that.getController(\"data\").isEmpty();\r\n var groupElement = $(\"
\").appendTo($container).addClass(SELECT_CHECKBOX_CLASS);\r\n that.setAria(\"label\", messageLocalization.format(\"dxDataGrid-ariaSelectAll\"), $container);\r\n that.getController(\"editorFactory\").createEditor(groupElement, extend({}, column, {\r\n parentType: \"headerRow\",\r\n dataType: \"boolean\",\r\n value: selectionController.isSelectAll(),\r\n editorOptions: {\r\n visible: !isEmptyData && (that.option(\"selection.allowSelectAll\") || false !== selectionController.isSelectAll())\r\n },\r\n tabIndex: that.option(\"useLegacyKeyboardNavigation\") ? -1 : that.option(\"tabIndex\") || 0,\r\n setValue: function(value, e) {\r\n var allowSelectAll = that.option(\"selection.allowSelectAll\");\r\n e.component.option(\"visible\", allowSelectAll || false !== e.component.option(\"value\"));\r\n if (!e.event || selectionController.isSelectAll() === value) {\r\n return\r\n }\r\n if (e.value && !allowSelectAll) {\r\n e.component.option(\"value\", false)\r\n } else {\r\n e.value ? selectionController.selectAll() : selectionController.deselectAll()\r\n }\r\n e.event.preventDefault()\r\n }\r\n }));\r\n return groupElement\r\n },\r\n _attachSelectAllCheckBoxClickEvent: function($element) {\r\n eventsEngine.on($element, clickEventName, this.createAction((function(e) {\r\n var event = e.event;\r\n if (!$(event.target).closest(\".\" + SELECT_CHECKBOX_CLASS).length) {\r\n eventsEngine.trigger($(event.currentTarget).children(\".\" + SELECT_CHECKBOX_CLASS), clickEventName)\r\n }\r\n event.preventDefault()\r\n })))\r\n }\r\n },\r\n rowsView: {\r\n renderSelectCheckBoxContainer: function($container, options) {\r\n if (\"data\" === options.rowType && !options.row.isNewRow) {\r\n $container.addClass(EDITOR_CELL_CLASS);\r\n this._attachCheckBoxClickEvent($container);\r\n this.setAria(\"label\", messageLocalization.format(\"dxDataGrid-ariaSelectRow\"), $container);\r\n this._renderSelectCheckBox($container, options)\r\n } else {\r\n gridCoreUtils.setEmptyText($container)\r\n }\r\n },\r\n _renderSelectCheckBox: function(container, options) {\r\n var groupElement = $(\"
\").addClass(SELECT_CHECKBOX_CLASS).appendTo(container);\r\n this.getController(\"editorFactory\").createEditor(groupElement, extend({}, options.column, {\r\n parentType: \"dataRow\",\r\n dataType: \"boolean\",\r\n lookup: null,\r\n value: options.value,\r\n setValue: function(value, e) {\r\n var _e$event;\r\n if (\"keydown\" === (null === e || void 0 === e ? void 0 : null === (_e$event = e.event) || void 0 === _e$event ? void 0 : _e$event.type)) {\r\n eventsEngine.trigger(e.element, clickEventName, e)\r\n }\r\n },\r\n row: options.row\r\n }));\r\n return groupElement\r\n },\r\n _attachCheckBoxClickEvent: function($element) {\r\n eventsEngine.on($element, clickEventName, this.createAction((function(e) {\r\n var selectionController = this.getController(\"selection\");\r\n var event = e.event;\r\n var rowIndex = this.getRowIndex($(event.currentTarget).closest(\".\" + ROW_CLASS));\r\n if (rowIndex >= 0) {\r\n selectionController.startSelectionWithCheckboxes();\r\n selectionController.changeItemSelection(rowIndex, {\r\n shift: event.shiftKey\r\n });\r\n if ($(event.target).closest(\".\" + SELECT_CHECKBOX_CLASS).length) {\r\n this.getController(\"data\").updateItems({\r\n changeType: \"updateSelection\",\r\n itemIndexes: [rowIndex]\r\n })\r\n }\r\n }\r\n })))\r\n },\r\n _update: function(change) {\r\n var that = this;\r\n var tableElements = that.getTableElements();\r\n if (\"updateSelection\" === change.changeType) {\r\n if (tableElements.length > 0) {\r\n each(tableElements, (function(_, tableElement) {\r\n each(change.itemIndexes || [], (function(_, index) {\r\n var $row;\r\n if (change.items[index]) {\r\n $row = that._getRowElements($(tableElement)).eq(index);\r\n if ($row.length) {\r\n var isSelected = change.items[index].isSelected;\r\n $row.toggleClass(ROW_SELECTION_CLASS, void 0 === isSelected ? false : isSelected).find(\".\" + SELECT_CHECKBOX_CLASS).dxCheckBox(\"option\", \"value\", isSelected);\r\n that.setAria(\"selected\", isSelected, $row)\r\n }\r\n }\r\n }))\r\n }));\r\n that._updateCheckboxesClass()\r\n }\r\n } else {\r\n that.callBase(change)\r\n }\r\n },\r\n _createTable: function() {\r\n var that = this;\r\n var selectionMode = that.option(\"selection.mode\");\r\n var $table = that.callBase.apply(that, arguments);\r\n if (\"none\" !== selectionMode) {\r\n if (\"onLongTap\" === that.option(SHOW_CHECKBOXES_MODE) || !touch) {\r\n eventsEngine.on($table, addNamespace(holdEvent.name, \"dxDataGridRowsView\"), \".\" + DATA_ROW_CLASS, that.createAction((function(e) {\r\n processLongTap(that.component, e.event);\r\n e.event.stopPropagation()\r\n })))\r\n }\r\n eventsEngine.on($table, \"mousedown selectstart\", that.createAction((function(e) {\r\n var event = e.event;\r\n if (event.shiftKey) {\r\n event.preventDefault()\r\n }\r\n })))\r\n }\r\n return $table\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase(row);\r\n if (row) {\r\n var isSelected = !!row.isSelected;\r\n if (isSelected) {\r\n $row.addClass(ROW_SELECTION_CLASS)\r\n }\r\n this.setAria(\"selected\", isSelected, $row)\r\n }\r\n return $row\r\n },\r\n _rowClick: function(e) {\r\n var dxEvent = e.event;\r\n var isSelectionDisabled = $(dxEvent.target).closest(\".\" + SELECTION_DISABLED_CLASS).length;\r\n if (!this.isClickableElement($(dxEvent.target))) {\r\n if (!isSelectionDisabled && (\"multiple\" !== this.option(SELECTION_MODE) || \"always\" !== this.option(SHOW_CHECKBOXES_MODE))) {\r\n if (this.getController(\"selection\").changeItemSelection(e.rowIndex, {\r\n control: isCommandKeyPressed(dxEvent),\r\n shift: dxEvent.shiftKey\r\n })) {\r\n dxEvent.preventDefault();\r\n e.handled = true\r\n }\r\n }\r\n this.callBase(e)\r\n }\r\n },\r\n isClickableElement: function($target) {\r\n var isCommandSelect = $target.closest(\".\" + COMMAND_SELECT_CLASS).length;\r\n return !!isCommandSelect\r\n },\r\n _renderCore: function(change) {\r\n this.callBase(change);\r\n this._updateCheckboxesClass()\r\n },\r\n _updateCheckboxesClass: function() {\r\n var tableElements = this.getTableElements();\r\n var selectionController = this.getController(\"selection\");\r\n var isCheckBoxesHidden = selectionController.isSelectColumnVisible() && !selectionController.isSelectionWithCheckboxes();\r\n each(tableElements, (function(_, tableElement) {\r\n $(tableElement).toggleClass(CHECKBOXES_HIDDEN_CLASS, isCheckBoxesHidden)\r\n }))\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.selection.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n selectionModule\r\n} from \"../grid_core/ui.grid_core.selection\";\r\ngridCore.registerModule(\"selection\", selectionModule);\r\n","/**\r\n * DevExtreme (esm/ui/tree_view/ui.tree_view.base.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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\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 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 _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._scrollableContainer.option(\"direction\", 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 if (this._scrollableContainer) {\r\n return this._scrollableContainer.$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 if (!this._scrollableContainer) {\r\n this._renderScrollableContainer()\r\n }\r\n this._scrollableContainer.$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._scrollableContainer.$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 if (this._scrollableContainer && hasWindow()) {\r\n this._scrollableContainer.update()\r\n }\r\n if (!skipContentReadyAction) {\r\n this.callBase()\r\n }\r\n if (this._scrollableContainer && hasWindow()) {\r\n this._scrollableContainer.update()\r\n }\r\n },\r\n _renderScrollableContainer: function() {\r\n this._scrollableContainer = this._createComponent($(\"
\").appendTo(this.$element()), Scrollable, {\r\n direction: this.option(\"scrollDirection\"),\r\n useKeyboard: false\r\n })\r\n },\r\n _renderNodeContainer: function($parent) {\r\n var $container = $(\"
\");\r\n this.setAria({\r\n label: messageLocalization.format(\"dxCalendar-ariaWidgetName\"),\r\n role: \"grid\"\r\n }, this._$table);\r\n return this._$table\r\n },\r\n _renderBody: function() {\r\n this.$body = $(\"\").appendTo(this._$table);\r\n var rowData = {\r\n cellDate: this._getFirstCellData(),\r\n prevCellDate: null\r\n };\r\n for (var rowIndex = 0, rowCount = this.option(\"rowCount\"); rowIndex < rowCount; rowIndex++) {\r\n rowData.row = this._createRow();\r\n for (var colIndex = 0, colCount = this.option(\"colCount\"); colIndex < colCount; colIndex++) {\r\n this._renderCell(rowData, colIndex)\r\n }\r\n }\r\n },\r\n _createRow: function() {\r\n var row = domAdapter.createElement(\"tr\");\r\n this.setAria(\"role\", \"row\", $(row));\r\n this.$body.get(0).appendChild(row);\r\n return row\r\n },\r\n _appendCell: function(row, cell) {\r\n if (!this._appendMethodName) {\r\n this._cacheAppendMethodName()\r\n }\r\n $(row)[this._appendMethodName](cell)\r\n },\r\n _cacheAppendMethodName: function(rtlEnabled) {\r\n this._appendMethodName = (null !== rtlEnabled && void 0 !== rtlEnabled ? rtlEnabled : this.option(\"rtlEnabled\")) ? \"prepend\" : \"append\"\r\n },\r\n _createCell: function(cellDate) {\r\n var cell = domAdapter.createElement(\"td\");\r\n var $cell = $(cell);\r\n cell.className = this._getClassNameByDate(cellDate);\r\n cell.setAttribute(\"data-value\", dateSerialization.serializeDate(cellDate, coreDateUtils.getShortDateFormat()));\r\n elementData(cell, CALENDAR_DATE_VALUE_KEY, cellDate);\r\n this.setAria({\r\n role: \"gridcell\",\r\n label: this.getCellAriaLabel(cellDate)\r\n }, $cell);\r\n return {\r\n cell: cell,\r\n $cell: $cell\r\n }\r\n },\r\n _renderCell: function(params, cellIndex) {\r\n var {\r\n cellDate: cellDate,\r\n prevCellDate: prevCellDate,\r\n row: row\r\n } = params;\r\n if (prevCellDate) {\r\n coreDateUtils.fixTimezoneGap(prevCellDate, cellDate)\r\n }\r\n params.prevCellDate = cellDate;\r\n var {\r\n cell: cell,\r\n $cell: $cell\r\n } = this._createCell(cellDate);\r\n var cellTemplate = this.option(\"cellTemplate\");\r\n this._appendCell(row, cell);\r\n if (cellTemplate) {\r\n cellTemplate.render(this._prepareCellTemplateData(cellDate, cellIndex, $cell))\r\n } else {\r\n cell.innerHTML = this._getCellText(cellDate)\r\n }\r\n params.cellDate = this._getNextCellData(cellDate)\r\n },\r\n _getClassNameByDate: function(cellDate) {\r\n var className = CALENDAR_CELL_CLASS;\r\n if (this._isTodayCell(cellDate)) {\r\n className += \" \".concat(CALENDAR_TODAY_CLASS)\r\n }\r\n if (this._isDateOutOfRange(cellDate) || this.isDateDisabled(cellDate)) {\r\n className += \" \".concat(CALENDAR_EMPTY_CELL_CLASS)\r\n }\r\n if (this._isOtherView(cellDate)) {\r\n className += \" \".concat(CALENDAR_OTHER_VIEW_CLASS)\r\n }\r\n return className\r\n },\r\n _prepareCellTemplateData: function(cellDate, cellIndex, $cell) {\r\n return {\r\n model: {\r\n text: this._getCellText(cellDate),\r\n date: cellDate,\r\n view: this._getViewName()\r\n },\r\n container: getPublicElement($cell),\r\n index: cellIndex\r\n }\r\n },\r\n _renderEvents: function() {\r\n this._createCellClickAction();\r\n eventsEngine.off(this._$table, CALENDAR_DXCLICK_EVENT_NAME);\r\n eventsEngine.on(this._$table, CALENDAR_DXCLICK_EVENT_NAME, \"td\", e => {\r\n if (!$(e.currentTarget).hasClass(CALENDAR_EMPTY_CELL_CLASS)) {\r\n this._cellClickAction({\r\n event: e,\r\n value: $(e.currentTarget).data(CALENDAR_DATE_VALUE_KEY)\r\n })\r\n }\r\n })\r\n },\r\n _createCellClickAction: function() {\r\n this._cellClickAction = this._createActionByOption(\"onCellClick\")\r\n },\r\n _createDisabledDatesHandler: function() {\r\n var disabledDates = this.option(\"disabledDates\");\r\n this._disabledDatesHandler = Array.isArray(disabledDates) ? this._getDefaultDisabledDatesHandler(disabledDates) : disabledDates || noop\r\n },\r\n _getDefaultDisabledDatesHandler: function(disabledDates) {\r\n return noop\r\n },\r\n _isTodayCell: abstract,\r\n _isDateOutOfRange: abstract,\r\n isDateDisabled: function(cellDate) {\r\n var dateParts = {\r\n date: cellDate,\r\n view: this._getViewName()\r\n };\r\n return this._disabledDatesHandler(dateParts)\r\n },\r\n _isOtherView: abstract,\r\n _getCellText: abstract,\r\n _getFirstCellData: abstract,\r\n _getNextCellData: abstract,\r\n _renderContouredDate: function(contouredDate) {\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n contouredDate = contouredDate || this.option(\"contouredDate\");\r\n var $oldContouredCell = this._getContouredCell();\r\n var $newContouredCell = this._getCellByDate(contouredDate);\r\n $oldContouredCell.removeClass(CALENDAR_CONTOURED_DATE_CLASS);\r\n $newContouredCell.addClass(CALENDAR_CONTOURED_DATE_CLASS)\r\n },\r\n _getContouredCell: function() {\r\n return this._$table.find(\".\".concat(CALENDAR_CONTOURED_DATE_CLASS))\r\n },\r\n _changeValue: function(cellDate) {\r\n if (cellDate) {\r\n var value = this.option(\"value\");\r\n var newValue = value ? new Date(value) : new Date;\r\n newValue.setDate(cellDate.getDate());\r\n newValue.setMonth(cellDate.getMonth());\r\n newValue.setFullYear(cellDate.getFullYear());\r\n newValue.setDate(cellDate.getDate());\r\n this.option(\"value\", newValue)\r\n } else {\r\n this.option(\"value\", null)\r\n }\r\n },\r\n _renderValue: function() {\r\n if (!this.option(\"allowValueSelection\")) {\r\n return\r\n }\r\n var value = this.option(\"value\");\r\n var selectedCell = this._getCellByDate(value);\r\n if (this._selectedCell) {\r\n this._selectedCell.removeClass(CALENDAR_SELECTED_DATE_CLASS)\r\n }\r\n selectedCell.addClass(CALENDAR_SELECTED_DATE_CLASS);\r\n this._selectedCell = selectedCell\r\n },\r\n getCellAriaLabel: function(date) {\r\n return this._getCellText(date)\r\n },\r\n _getFirstAvailableDate: function() {\r\n var date = this.option(\"date\");\r\n var min = this.option(\"min\");\r\n date = coreDateUtils.getFirstDateView(this._getViewName(), date);\r\n return new Date(min && date < min ? min : date)\r\n },\r\n _getCellByDate: abstract,\r\n isBoundary: abstract,\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"value\":\r\n this._renderValue();\r\n break;\r\n case \"contouredDate\":\r\n this._renderContouredDate(value);\r\n break;\r\n case \"onCellClick\":\r\n this._createCellClickAction();\r\n break;\r\n case \"disabledDates\":\r\n case \"cellTemplate\":\r\n this._invalidate();\r\n break;\r\n case \"rtlEnabled\":\r\n this._cacheAppendMethodName(value);\r\n this.callBase(args);\r\n break;\r\n case \"_todayDate\":\r\n this._renderBody();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default BaseView;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.views.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 BaseView from \"./ui.calendar.base_view\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nvar CALENDAR_OTHER_MONTH_CLASS = \"dx-calendar-other-month\";\r\nvar CALENDAR_OTHER_VIEW_CLASS = \"dx-calendar-other-view\";\r\nvar Views = {\r\n month: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"month\"\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n firstDayOfWeek: void 0,\r\n rowCount: 6,\r\n colCount: 7\r\n })\r\n },\r\n _renderImpl: function() {\r\n this.callBase();\r\n this._renderHeader()\r\n },\r\n _renderBody: function() {\r\n this.callBase();\r\n this._$table.find(\".\".concat(CALENDAR_OTHER_VIEW_CLASS)).addClass(CALENDAR_OTHER_MONTH_CLASS)\r\n },\r\n _renderFocusTarget: noop,\r\n getCellAriaLabel: function(date) {\r\n return dateLocalization.format(date, \"longdate\")\r\n },\r\n _renderHeader: function() {\r\n var $headerRow = $(\"\");\r\n var $header = $(\"\").append($headerRow);\r\n this._$table.prepend($header);\r\n for (var colIndex = 0, colCount = this.option(\"colCount\"); colIndex < colCount; colIndex++) {\r\n this._renderHeaderCell(colIndex, $headerRow)\r\n }\r\n },\r\n _renderHeaderCell: function(cellIndex, $headerRow) {\r\n var {\r\n full: fullCaption,\r\n abbreviated: abbrCaption\r\n } = this._getDayCaption(this._getFirstDayOfWeek() + cellIndex);\r\n var $cell = $(\"
\").attr({\r\n scope: \"col\",\r\n abbr: fullCaption\r\n }).text(abbrCaption);\r\n this._appendCell($headerRow, $cell)\r\n },\r\n getNavigatorCaption: function() {\r\n return dateLocalization.format(this.option(\"date\"), \"monthandyear\")\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameDate(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n var minDate = this.option(\"min\");\r\n var maxDate = this.option(\"max\");\r\n return !dateUtils.dateInRange(cellDate, minDate, maxDate, \"date\")\r\n },\r\n _isOtherView: function(cellDate) {\r\n return cellDate.getMonth() !== this.option(\"date\").getMonth()\r\n },\r\n _getCellText: function(cellDate) {\r\n return dateLocalization.format(cellDate, \"d\")\r\n },\r\n _getDayCaption: function(day) {\r\n var daysInWeek = this.option(\"colCount\");\r\n var dayIndex = day % daysInWeek;\r\n return {\r\n full: dateLocalization.getDayNames()[dayIndex],\r\n abbreviated: dateLocalization.getDayNames(\"abbreviated\")[dayIndex]\r\n }\r\n },\r\n _getFirstCellData: function() {\r\n var firstDay = dateUtils.getFirstMonthDate(this.option(\"date\"));\r\n var firstMonthDayOffset = this._getFirstDayOfWeek() - firstDay.getDay();\r\n var daysInWeek = this.option(\"colCount\");\r\n if (firstMonthDayOffset >= 0) {\r\n firstMonthDayOffset -= daysInWeek\r\n }\r\n firstDay.setDate(firstDay.getDate() + firstMonthDayOffset);\r\n return firstDay\r\n },\r\n _getNextCellData: function(date) {\r\n date = dateUtils.createDate(date);\r\n date.setDate(date.getDate() + 1);\r\n return date\r\n },\r\n _getFirstDayOfWeek: function() {\r\n return isDefined(this.option(\"firstDayOfWeek\")) ? this.option(\"firstDayOfWeek\") : dateLocalization.firstDayOfWeekIndex()\r\n },\r\n _getCellByDate: function(date) {\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(date, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameMonthAndYear(date, this.option(\"min\")) || dateUtils.sameMonthAndYear(date, this.option(\"max\"))\r\n },\r\n _getDefaultDisabledDatesHandler: function(disabledDates) {\r\n return function(args) {\r\n var isDisabledDate = disabledDates.some((function(item) {\r\n return dateUtils.sameDate(item, args.date)\r\n }));\r\n if (isDisabledDate) {\r\n return true\r\n }\r\n }\r\n }\r\n }),\r\n year: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"year\"\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameMonthAndYear(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n return !dateUtils.dateInRange(cellDate, dateUtils.getFirstMonthDate(this.option(\"min\")), dateUtils.getLastMonthDate(this.option(\"max\")))\r\n },\r\n _isOtherView: function() {\r\n return false\r\n },\r\n _getCellText: function(cellDate) {\r\n return dateLocalization.getMonthNames(\"abbreviated\")[cellDate.getMonth()]\r\n },\r\n _getFirstCellData: function() {\r\n var currentDate = this.option(\"date\");\r\n var data = dateUtils.createDate(currentDate);\r\n data.setDate(1);\r\n data.setMonth(0);\r\n return data\r\n },\r\n _getNextCellData: function(date) {\r\n date = dateUtils.createDate(date);\r\n date.setMonth(date.getMonth() + 1);\r\n return date\r\n },\r\n _getCellByDate: function(date) {\r\n var foundDate = dateUtils.createDate(date);\r\n foundDate.setDate(1);\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n getCellAriaLabel: function(date) {\r\n return dateLocalization.format(date, \"monthandyear\")\r\n },\r\n getNavigatorCaption: function() {\r\n return dateLocalization.format(this.option(\"date\"), \"yyyy\")\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameYear(date, this.option(\"min\")) || dateUtils.sameYear(date, this.option(\"max\"))\r\n }\r\n }),\r\n decade: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"decade\"\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameYear(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n return !dateUtils.dateInRange(cellDate.getFullYear(), min && min.getFullYear(), max && max.getFullYear())\r\n },\r\n _isOtherView: function(cellDate) {\r\n var date = dateUtils.createDate(cellDate);\r\n date.setMonth(1);\r\n return !dateUtils.sameDecade(date, this.option(\"date\"))\r\n },\r\n _getCellText: function(cellDate) {\r\n return dateLocalization.format(cellDate, \"yyyy\")\r\n },\r\n _getFirstCellData: function() {\r\n var year = dateUtils.getFirstYearInDecade(this.option(\"date\")) - 1;\r\n return dateUtils.createDateWithFullYear(year, 0, 1)\r\n },\r\n _getNextCellData: function(date) {\r\n date = dateUtils.createDate(date);\r\n date.setFullYear(date.getFullYear() + 1);\r\n return date\r\n },\r\n getNavigatorCaption: function() {\r\n var currentDate = this.option(\"date\");\r\n var firstYearInDecade = dateUtils.getFirstYearInDecade(currentDate);\r\n var startDate = dateUtils.createDate(currentDate);\r\n var endDate = dateUtils.createDate(currentDate);\r\n startDate.setFullYear(firstYearInDecade);\r\n endDate.setFullYear(firstYearInDecade + 9);\r\n return dateLocalization.format(startDate, \"yyyy\") + \"-\" + dateLocalization.format(endDate, \"yyyy\")\r\n },\r\n _isValueOnCurrentView: function(currentDate, value) {\r\n return dateUtils.sameDecade(currentDate, value)\r\n },\r\n _getCellByDate: function(date) {\r\n var foundDate = dateUtils.createDate(date);\r\n foundDate.setDate(1);\r\n foundDate.setMonth(0);\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameDecade(date, this.option(\"min\")) || dateUtils.sameDecade(date, this.option(\"max\"))\r\n }\r\n }),\r\n century: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"century\"\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameDecade(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n var decade = dateUtils.getFirstYearInDecade(cellDate);\r\n var minDecade = dateUtils.getFirstYearInDecade(this.option(\"min\"));\r\n var maxDecade = dateUtils.getFirstYearInDecade(this.option(\"max\"));\r\n return !dateUtils.dateInRange(decade, minDecade, maxDecade)\r\n },\r\n _isOtherView: function(cellDate) {\r\n var date = dateUtils.createDate(cellDate);\r\n date.setMonth(1);\r\n return !dateUtils.sameCentury(date, this.option(\"date\"))\r\n },\r\n _getCellText: function(cellDate) {\r\n var startDate = dateLocalization.format(cellDate, \"yyyy\");\r\n var endDate = dateUtils.createDate(cellDate);\r\n endDate.setFullYear(endDate.getFullYear() + 9);\r\n return startDate + \" - \" + dateLocalization.format(endDate, \"yyyy\")\r\n },\r\n _getFirstCellData: function() {\r\n var decade = dateUtils.getFirstDecadeInCentury(this.option(\"date\")) - 10;\r\n return dateUtils.createDateWithFullYear(decade, 0, 1)\r\n },\r\n _getNextCellData: function(date) {\r\n date = dateUtils.createDate(date);\r\n date.setFullYear(date.getFullYear() + 10);\r\n return date\r\n },\r\n _getCellByDate: function(date) {\r\n var foundDate = dateUtils.createDate(date);\r\n foundDate.setDate(1);\r\n foundDate.setMonth(0);\r\n foundDate.setFullYear(dateUtils.getFirstYearInDecade(foundDate));\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n getNavigatorCaption: function() {\r\n var currentDate = this.option(\"date\");\r\n var firstDecadeInCentury = dateUtils.getFirstDecadeInCentury(currentDate);\r\n var startDate = dateUtils.createDate(currentDate);\r\n var endDate = dateUtils.createDate(currentDate);\r\n startDate.setFullYear(firstDecadeInCentury);\r\n endDate.setFullYear(firstDecadeInCentury + 99);\r\n return dateLocalization.format(startDate, \"yyyy\") + \"-\" + dateLocalization.format(endDate, \"yyyy\")\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameCentury(date, this.option(\"min\")) || dateUtils.sameCentury(date, this.option(\"max\"))\r\n }\r\n })\r\n};\r\nexport default Views;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 Guid from \"../../core/guid\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isNumeric,\r\n isString,\r\n isFunction,\r\n isDefined,\r\n isDate\r\n} from \"../../core/utils/type\";\r\nimport {\r\n inRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Button from \"../button\";\r\nimport Editor from \"../editor/editor\";\r\nimport Swipeable from \"../../events/gesture/swipeable\";\r\nimport Navigator from \"./ui.calendar.navigator\";\r\nimport Views from \"./ui.calendar.views\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport devices from \"../../core/devices\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n FunctionTemplate\r\n} from \"../../core/templates/function_template\";\r\nimport {\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nvar CALENDAR_CLASS = \"dx-calendar\";\r\nvar CALENDAR_BODY_CLASS = \"dx-calendar-body\";\r\nvar CALENDAR_CELL_CLASS = \"dx-calendar-cell\";\r\nvar CALENDAR_FOOTER_CLASS = \"dx-calendar-footer\";\r\nvar CALENDAR_TODAY_BUTTON_CLASS = \"dx-calendar-today-button\";\r\nvar CALENDAR_HAS_FOOTER_CLASS = \"dx-calendar-with-footer\";\r\nvar CALENDAR_VIEWS_WRAPPER_CLASS = \"dx-calendar-views-wrapper\";\r\nvar CALENDAR_VIEW_CLASS = \"dx-calendar-view\";\r\nvar FOCUSED_STATE_CLASS = \"dx-state-focused\";\r\nvar ANIMATION_DURATION_SHOW_VIEW = 250;\r\nvar POP_ANIMATION_FROM = .6;\r\nvar POP_ANIMATION_TO = 1;\r\nvar CALENDAR_INPUT_STANDARD_PATTERN = \"yyyy-MM-dd\";\r\nvar CALENDAR_DATE_VALUE_KEY = \"dxDateValueKey\";\r\nvar LEVEL_COMPARE_MAP = {\r\n month: 3,\r\n year: 2,\r\n decade: 1,\r\n century: 0\r\n};\r\nvar ZOOM_LEVEL = {\r\n MONTH: \"month\",\r\n YEAR: \"year\",\r\n DECADE: \"decade\",\r\n CENTURY: \"century\"\r\n};\r\nvar isIE11 = browser.msie && parseInt(browser.version) <= 11;\r\nvar Calendar = Editor.inherit({\r\n _activeStateUnit: \".\" + CALENDAR_CELL_CLASS,\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n currentDate: new Date,\r\n value: null,\r\n dateSerializationFormat: void 0,\r\n min: new Date(1e3, 0),\r\n max: new Date(3e3, 0),\r\n firstDayOfWeek: void 0,\r\n zoomLevel: ZOOM_LEVEL.MONTH,\r\n maxZoomLevel: ZOOM_LEVEL.MONTH,\r\n minZoomLevel: ZOOM_LEVEL.CENTURY,\r\n showTodayButton: false,\r\n cellTemplate: \"cell\",\r\n disabledDates: null,\r\n onCellClick: null,\r\n onContouredChanged: null,\r\n hasFocus: function(element) {\r\n return element.hasClass(FOCUSED_STATE_CLASS)\r\n },\r\n _todayDate: () => new Date\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 _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n rightArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._waitRenderView(1)\r\n } else {\r\n this._moveCurrentDateByOffset(1 * this._getRtlCorrection())\r\n }\r\n },\r\n leftArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._waitRenderView(-1)\r\n } else {\r\n this._moveCurrentDateByOffset(-1 * this._getRtlCorrection())\r\n }\r\n },\r\n upArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._navigateUp()\r\n } else {\r\n if (fx.isAnimating(this._view.$element())) {\r\n return\r\n }\r\n this._moveCurrentDateByOffset(-1 * this._view.option(\"colCount\"))\r\n }\r\n },\r\n downArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._navigateDown()\r\n } else {\r\n if (fx.isAnimating(this._view.$element())) {\r\n return\r\n }\r\n this._moveCurrentDateByOffset(1 * this._view.option(\"colCount\"))\r\n }\r\n },\r\n home: function(e) {\r\n e.preventDefault();\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var currentDate = this.option(\"currentDate\");\r\n var min = this._dateOption(\"min\");\r\n if (this._view.isDateDisabled(currentDate)) {\r\n return\r\n }\r\n var date = dateUtils.sameView(zoomLevel, currentDate, min) ? min : dateUtils.getViewFirstCellDate(zoomLevel, currentDate);\r\n this._moveToClosestAvailableDate(date)\r\n },\r\n end: function(e) {\r\n e.preventDefault();\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var currentDate = this.option(\"currentDate\");\r\n var max = this._dateOption(\"max\");\r\n if (this._view.isDateDisabled(currentDate)) {\r\n return\r\n }\r\n var date = dateUtils.sameView(zoomLevel, currentDate, max) ? max : dateUtils.getViewLastCellDate(zoomLevel, currentDate);\r\n this._moveToClosestAvailableDate(date)\r\n },\r\n pageUp: function(e) {\r\n e.preventDefault();\r\n this._waitRenderView(-1 * this._getRtlCorrection())\r\n },\r\n pageDown: function(e) {\r\n e.preventDefault();\r\n this._waitRenderView(1 * this._getRtlCorrection())\r\n },\r\n tab: noop,\r\n enter: function(e) {\r\n if (!this._isMaxZoomLevel()) {\r\n this._navigateDown()\r\n } else if (!this._view.isDateDisabled(this.option(\"currentDate\"))) {\r\n var value = this._updateTimeComponent(this.option(\"currentDate\"));\r\n this._dateValue(value, e)\r\n }\r\n }\r\n })\r\n },\r\n _getSerializationFormat: function(optionName) {\r\n var value = this.option(optionName || \"value\");\r\n if (this.option(\"dateSerializationFormat\")) {\r\n return this.option(\"dateSerializationFormat\")\r\n }\r\n if (isNumeric(value)) {\r\n return \"number\"\r\n }\r\n if (!isString(value)) {\r\n return\r\n }\r\n return dateSerialization.getDateSerializationFormat(value)\r\n },\r\n _convertToDate: function(value, optionName) {\r\n return dateSerialization.deserializeDate(value)\r\n },\r\n _dateValue: function(value, event) {\r\n if (event) {\r\n if (\"keydown\" === event.type) {\r\n var cellElement = this._view._getContouredCell().get(0);\r\n event.target = cellElement\r\n }\r\n this._saveValueChangeEvent(event)\r\n }\r\n this._dateOption(\"value\", value)\r\n },\r\n _dateOption: function(optionName, optionValue) {\r\n if (1 === arguments.length) {\r\n return this._convertToDate(this.option(optionName), optionName)\r\n }\r\n var serializationFormat = this._getSerializationFormat(optionName);\r\n this.option(optionName, dateSerialization.serializeDate(optionValue, serializationFormat))\r\n },\r\n _shiftDate: function(zoomLevel, date, offset, reverse) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n date.setDate(date.getDate() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.YEAR:\r\n date.setMonth(date.getMonth() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.DECADE:\r\n date.setFullYear(date.getFullYear() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.CENTURY:\r\n date.setFullYear(date.getFullYear() + 10 * offset * reverse)\r\n }\r\n },\r\n _moveCurrentDateByOffset: function(offset) {\r\n var baseDate = this.option(\"currentDate\");\r\n var currentDate = new Date(baseDate);\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n this._shiftDate(zoomLevel, currentDate, offset, 1);\r\n var maxDate = this._getMaxDate();\r\n var minDate = this._getMinDate();\r\n var isDateForwardInNeighborView = this._areDatesInNeighborView(zoomLevel, currentDate, baseDate);\r\n var isDateForwardInRange = inRange(currentDate, minDate, maxDate) && isDateForwardInNeighborView;\r\n var dateForward = new Date(currentDate);\r\n while (isDateForwardInRange) {\r\n if (!this._view.isDateDisabled(dateForward)) {\r\n currentDate = dateForward;\r\n break\r\n }\r\n this._shiftDate(zoomLevel, dateForward, offset, 1);\r\n isDateForwardInNeighborView = this._areDatesInNeighborView(zoomLevel, dateForward, baseDate);\r\n isDateForwardInRange = inRange(dateForward, minDate, maxDate) && isDateForwardInNeighborView\r\n }\r\n if (this._view.isDateDisabled(baseDate) || this._view.isDateDisabled(currentDate)) {\r\n this._waitRenderView(offset > 0 ? 1 : -1)\r\n } else {\r\n this.option(\"currentDate\", currentDate)\r\n }\r\n },\r\n _areDatesInSameView(zoomLevel, date1, date2) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n return date1.getMonth() === date2.getMonth();\r\n case ZOOM_LEVEL.YEAR:\r\n return date1.getYear() === date2.getYear();\r\n case ZOOM_LEVEL.DECADE:\r\n return parseInt(date1.getYear() / 10) === parseInt(date2.getYear() / 10);\r\n case ZOOM_LEVEL.CENTURY:\r\n return parseInt(date1.getYear() / 100) === parseInt(date2.getYear() / 100)\r\n }\r\n },\r\n _areDatesInNeighborView(zoomLevel, date1, date2) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n return (a = date1.getMonth(), b = date2.getMonth(), abs = Math.abs(a - b), Math.min(abs, 12 - abs)) <= 1;\r\n case ZOOM_LEVEL.YEAR:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 1;\r\n case ZOOM_LEVEL.DECADE:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 10;\r\n case ZOOM_LEVEL.CENTURY:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 100\r\n }\r\n var a, b, abs\r\n },\r\n _moveToClosestAvailableDate: function() {\r\n var baseDate = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.option(\"currentDate\");\r\n var currentDate = dateUtils.createDate(baseDate);\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var isCurrentDateAvailable = !this._isDateNotAvailable(currentDate);\r\n var isDateForwardAvailable = isCurrentDateAvailable;\r\n var isDateBackwardAvailable = isCurrentDateAvailable;\r\n var isDateForwardInStartView;\r\n var isDateBackwardInStartView;\r\n var dateForward = dateUtils.createDate(currentDate);\r\n var dateBackward = dateUtils.createDate(currentDate);\r\n do {\r\n if (isDateForwardAvailable) {\r\n currentDate = dateForward;\r\n break\r\n }\r\n if (isDateBackwardAvailable) {\r\n currentDate = dateBackward;\r\n break\r\n }\r\n this._shiftDate(zoomLevel, dateForward, 1, 1);\r\n this._shiftDate(zoomLevel, dateBackward, 1, -1);\r\n isDateForwardInStartView = this._areDatesInSameView(zoomLevel, dateForward, baseDate);\r\n isDateBackwardInStartView = this._areDatesInSameView(zoomLevel, dateBackward, baseDate);\r\n isDateForwardAvailable = isDateForwardInStartView && !this._isDateNotAvailable(dateForward);\r\n isDateBackwardAvailable = isDateBackwardInStartView && !this._isDateNotAvailable(dateBackward)\r\n } while (isDateForwardInStartView || isDateBackwardInStartView);\r\n this.option(\"currentDate\", currentDate)\r\n },\r\n _isDateNotAvailable: function(date) {\r\n var maxDate = this._getMaxDate();\r\n var minDate = this._getMinDate();\r\n return !inRange(date, minDate, maxDate) || this._view.isDateDisabled(date)\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._correctZoomLevel();\r\n this._initCurrentDate();\r\n this._initActions()\r\n },\r\n _correctZoomLevel: function() {\r\n var minZoomLevel = this.option(\"minZoomLevel\");\r\n var maxZoomLevel = this.option(\"maxZoomLevel\");\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (LEVEL_COMPARE_MAP[maxZoomLevel] < LEVEL_COMPARE_MAP[minZoomLevel]) {\r\n return\r\n }\r\n if (LEVEL_COMPARE_MAP[zoomLevel] > LEVEL_COMPARE_MAP[maxZoomLevel]) {\r\n this.option(\"zoomLevel\", maxZoomLevel)\r\n } else if (LEVEL_COMPARE_MAP[zoomLevel] < LEVEL_COMPARE_MAP[minZoomLevel]) {\r\n this.option(\"zoomLevel\", minZoomLevel)\r\n }\r\n },\r\n _initCurrentDate: function() {\r\n var currentDate = this._getNormalizedDate(this._dateOption(\"value\")) || this._getNormalizedDate(this.option(\"currentDate\"));\r\n this.option(\"currentDate\", currentDate)\r\n },\r\n _getNormalizedDate: function(date) {\r\n date = dateUtils.normalizeDate(date, this._getMinDate(), this._getMaxDate());\r\n return isDefined(date) ? this._getDate(date) : date\r\n },\r\n _initActions: function() {\r\n this._cellClickAction = this._createActionByOption(\"onCellClick\");\r\n this._onContouredChanged = this._createActionByOption(\"onContouredChanged\")\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n cell: new FunctionTemplate((function(options) {\r\n var data = options.model;\r\n $(options.container).append($(\"\").text(data && data.text || String(data)))\r\n }))\r\n });\r\n this.callBase()\r\n },\r\n _updateCurrentDate: function(date) {\r\n if (fx.isAnimating(this._$viewsWrapper)) {\r\n fx.stop(this._$viewsWrapper, true)\r\n }\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n if (min > max) {\r\n this.option(\"currentDate\", new Date);\r\n return\r\n }\r\n var normalizedDate = this._getNormalizedDate(date);\r\n if (date.getTime() !== normalizedDate.getTime()) {\r\n this.option(\"currentDate\", dateUtils.createDate(normalizedDate));\r\n return\r\n }\r\n var offset = this._getViewsOffset(this._view.option(\"date\"), normalizedDate);\r\n if (0 !== offset && !this._isMaxZoomLevel() && this._isOtherViewCellClicked) {\r\n offset = 0\r\n }\r\n if (this._view && 0 !== offset && !this._suppressNavigation) {\r\n this._navigate(offset, normalizedDate)\r\n } else {\r\n this._renderNavigator();\r\n this._setViewContoured(normalizedDate);\r\n this._updateAriaId(normalizedDate)\r\n }\r\n },\r\n _setViewContoured: function(date) {\r\n if (this.option(\"hasFocus\")(this._focusTarget())) {\r\n this._view.option(\"contouredDate\", date)\r\n }\r\n },\r\n _getMinDate: function() {\r\n if (this.min) {\r\n return this.min\r\n }\r\n this.min = this._dateOption(\"min\") || new Date(1e3, 0);\r\n return this.min\r\n },\r\n _getMaxDate: function() {\r\n if (this.max) {\r\n return this.max\r\n }\r\n this.max = this._dateOption(\"max\") || new Date(3e3, 0);\r\n return this.max\r\n },\r\n _getViewsOffset: function(startDate, endDate) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (zoomLevel === ZOOM_LEVEL.MONTH) {\r\n return this._getMonthsOffset(startDate, endDate)\r\n }\r\n var zoomCorrection;\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.CENTURY:\r\n zoomCorrection = 100;\r\n break;\r\n case ZOOM_LEVEL.DECADE:\r\n zoomCorrection = 10;\r\n break;\r\n default:\r\n zoomCorrection = 1\r\n }\r\n return parseInt(endDate.getFullYear() / zoomCorrection) - parseInt(startDate.getFullYear() / zoomCorrection)\r\n },\r\n _getMonthsOffset: function(startDate, endDate) {\r\n var yearOffset = endDate.getFullYear() - startDate.getFullYear();\r\n var monthOffset = endDate.getMonth() - startDate.getMonth();\r\n return 12 * yearOffset + monthOffset\r\n },\r\n _waitRenderView: function(offset) {\r\n if (this._alreadyViewRender) {\r\n return\r\n }\r\n this._alreadyViewRender = true;\r\n var date = this._getDateByOffset(offset * this._getRtlCorrection());\r\n this._moveToClosestAvailableDate(date);\r\n this._waitRenderViewTimeout = setTimeout(() => {\r\n this._alreadyViewRender = false\r\n })\r\n },\r\n _getRtlCorrection: function() {\r\n return this.option(\"rtlEnabled\") ? -1 : 1\r\n },\r\n _getDateByOffset: function(offset, date) {\r\n var _date;\r\n date = this._getDate(null !== (_date = date) && void 0 !== _date ? _date : this.option(\"currentDate\"));\r\n var currentDay = date.getDate();\r\n var difference = dateUtils.getDifferenceInMonth(this.option(\"zoomLevel\")) * offset;\r\n date.setDate(1);\r\n date.setMonth(date.getMonth() + difference);\r\n var lastDay = dateUtils.getLastMonthDate(date).getDate();\r\n date.setDate(currentDay > lastDay ? lastDay : currentDay);\r\n return date\r\n },\r\n _focusTarget: function() {\r\n return this.$element()\r\n },\r\n _initMarkup: function() {\r\n this._renderSubmitElement();\r\n this.callBase();\r\n var $element = this.$element();\r\n $element.addClass(CALENDAR_CLASS);\r\n this._renderBody();\r\n $element.append(this.$body);\r\n this._renderViews();\r\n this._renderNavigator();\r\n $element.append(this._navigator.$element());\r\n this._renderSwipeable();\r\n this._renderFooter();\r\n this._updateAriaSelected();\r\n this._updateAriaId();\r\n this._moveToClosestAvailableDate()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._setViewContoured(this.option(\"currentDate\"))\r\n },\r\n _renderBody: function() {\r\n if (!this._$viewsWrapper) {\r\n this.$body = $(\"
\").addClass(CALENDAR_BODY_CLASS);\r\n this._$viewsWrapper = $(\"
\").addClass(CALENDAR_VIEWS_WRAPPER_CLASS);\r\n this.$body.append(this._$viewsWrapper)\r\n }\r\n },\r\n _getKeyboardListeners() {\r\n return this.callBase().concat([this._view])\r\n },\r\n _renderViews: function() {\r\n this.$element().addClass(CALENDAR_VIEW_CLASS + \"-\" + this.option(\"zoomLevel\"));\r\n var currentDate = this.option(\"currentDate\");\r\n this._view = this._renderSpecificView(currentDate);\r\n if (hasWindow()) {\r\n var beforeDate = this._getDateByOffset(-1, currentDate);\r\n this._beforeView = this._isViewAvailable(beforeDate) ? this._renderSpecificView(beforeDate) : null;\r\n var afterDate = this._getDateByOffset(1, currentDate);\r\n afterDate.setDate(1);\r\n this._afterView = this._isViewAvailable(afterDate) ? this._renderSpecificView(afterDate) : null\r\n }\r\n this._translateViews()\r\n },\r\n _renderSpecificView: function(date) {\r\n var specificView = Views[this.option(\"zoomLevel\")];\r\n var $view = $(\"
\").appendTo(this._$viewsWrapper);\r\n var config = this._viewConfig(date);\r\n return this._createComponent($view, specificView, config)\r\n },\r\n _viewConfig: function(date) {\r\n var disabledDates = this.option(\"disabledDates\");\r\n disabledDates = isFunction(disabledDates) ? this._injectComponent(disabledDates.bind(this)) : disabledDates;\r\n return {\r\n date: date,\r\n min: this._getMinDate(),\r\n max: this._getMaxDate(),\r\n firstDayOfWeek: this.option(\"firstDayOfWeek\"),\r\n value: this._dateOption(\"value\"),\r\n tabIndex: void 0,\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n disabledDates: disabledDates,\r\n onCellClick: this._cellClickHandler.bind(this),\r\n cellTemplate: this._getTemplateByOption(\"cellTemplate\"),\r\n allowValueSelection: this._isMaxZoomLevel(),\r\n _todayDate: this.option(\"_todayDate\")\r\n }\r\n },\r\n _injectComponent: function(func) {\r\n var that = this;\r\n return function(params) {\r\n extend(params, {\r\n component: that\r\n });\r\n return func(params)\r\n }\r\n },\r\n _isViewAvailable: function(date) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var min = dateUtils.getViewMinBoundaryDate(zoomLevel, this._getMinDate());\r\n var max = dateUtils.getViewMaxBoundaryDate(zoomLevel, this._getMaxDate());\r\n return dateUtils.dateInRange(date, min, max)\r\n },\r\n _translateViews: function() {\r\n move(this._view.$element(), {\r\n left: 0,\r\n top: 0\r\n });\r\n this._beforeView && move(this._beforeView.$element(), {\r\n left: this._getViewPosition(-1),\r\n top: 0\r\n });\r\n this._afterView && move(this._afterView.$element(), {\r\n left: this._getViewPosition(1),\r\n top: 0\r\n })\r\n },\r\n _getViewPosition: function(coefficient) {\r\n var rtlCorrection = this.option(\"rtlEnabled\") && !browser.msie ? -1 : 1;\r\n return 100 * coefficient * rtlCorrection + \"%\"\r\n },\r\n _cellClickHandler: function(e) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var nextView = dateUtils.getViewDown(zoomLevel);\r\n var isMaxZoomLevel = this._isMaxZoomLevel();\r\n if (nextView && !isMaxZoomLevel) {\r\n this._navigateDown(e.event.currentTarget)\r\n } else {\r\n var newValue = this._updateTimeComponent(e.value);\r\n this._dateValue(newValue, e.event);\r\n this._cellClickAction(e)\r\n }\r\n },\r\n _updateTimeComponent: function(date) {\r\n var result = dateUtils.createDate(date);\r\n var currentValue = this._dateOption(\"value\");\r\n if (currentValue) {\r\n result.setHours(currentValue.getHours());\r\n result.setMinutes(currentValue.getMinutes());\r\n result.setSeconds(currentValue.getSeconds());\r\n result.setMilliseconds(currentValue.getMilliseconds())\r\n }\r\n return result\r\n },\r\n _isMaxZoomLevel: function() {\r\n return this.option(\"zoomLevel\") === this.option(\"maxZoomLevel\")\r\n },\r\n _navigateDown: function(cell) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (this._isMaxZoomLevel()) {\r\n return\r\n }\r\n var nextView = dateUtils.getViewDown(zoomLevel);\r\n if (!nextView) {\r\n return\r\n }\r\n var newCurrentDate = this._view.option(\"contouredDate\") || this._view.option(\"date\");\r\n if (cell) {\r\n newCurrentDate = $(cell).data(CALENDAR_DATE_VALUE_KEY)\r\n }\r\n this._isOtherViewCellClicked = true;\r\n this.option(\"currentDate\", newCurrentDate);\r\n this.option(\"zoomLevel\", nextView);\r\n this._isOtherViewCellClicked = false;\r\n this._renderNavigator();\r\n this._animateShowView();\r\n this._moveToClosestAvailableDate();\r\n this._setViewContoured(this._getNormalizedDate(this.option(\"currentDate\")))\r\n },\r\n _renderNavigator: function() {\r\n if (!this._navigator) {\r\n this._navigator = new Navigator($(\"
\"), this._navigatorConfig())\r\n }\r\n this._navigator.option(\"text\", this._view.getNavigatorCaption());\r\n this._updateButtonsVisibility()\r\n },\r\n _navigatorConfig: function() {\r\n return {\r\n text: this._view.getNavigatorCaption(),\r\n onClick: this._navigatorClickHandler.bind(this),\r\n onCaptionClick: this._navigateUp.bind(this),\r\n rtlEnabled: this.option(\"rtlEnabled\")\r\n }\r\n },\r\n _navigatorClickHandler: function(e) {\r\n var currentDate = this._getDateByOffset(e.direction, this.option(\"currentDate\"));\r\n this._moveToClosestAvailableDate(currentDate)\r\n },\r\n _navigateUp: function() {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var nextView = dateUtils.getViewUp(zoomLevel);\r\n if (!nextView || this._isMinZoomLevel(zoomLevel)) {\r\n return\r\n }\r\n this.option(\"zoomLevel\", nextView);\r\n this._renderNavigator();\r\n this._animateShowView();\r\n this._moveToClosestAvailableDate();\r\n this._setViewContoured(this._getNormalizedDate(this.option(\"currentDate\")))\r\n },\r\n _isMinZoomLevel: function(zoomLevel) {\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n return dateUtils.sameView(zoomLevel, min, max) || this.option(\"minZoomLevel\") === zoomLevel\r\n },\r\n _updateButtonsVisibility: function() {\r\n this._navigator.toggleButton(\"next\", !isDefined(this._getRequiredView(\"next\")));\r\n this._navigator.toggleButton(\"prev\", !isDefined(this._getRequiredView(\"prev\")))\r\n },\r\n _renderSwipeable: function() {\r\n if (!this._swipeable) {\r\n this._swipeable = this._createComponent(this.$element(), Swipeable, {\r\n onStart: this._swipeStartHandler.bind(this),\r\n onUpdated: this._swipeUpdateHandler.bind(this),\r\n onEnd: this._swipeEndHandler.bind(this),\r\n itemSizeFunc: this._viewWidth.bind(this)\r\n })\r\n }\r\n },\r\n _swipeStartHandler: function(e) {\r\n fx.stop(this._$viewsWrapper, true);\r\n e.event.maxLeftOffset = this._getRequiredView(\"next\") ? 1 : 0;\r\n e.event.maxRightOffset = this._getRequiredView(\"prev\") ? 1 : 0\r\n },\r\n _getRequiredView: function(name) {\r\n var view;\r\n var isRtl = this.option(\"rtlEnabled\");\r\n if (\"next\" === name) {\r\n view = isRtl ? this._beforeView : this._afterView\r\n } else if (\"prev\" === name) {\r\n view = isRtl ? this._afterView : this._beforeView\r\n }\r\n return view\r\n },\r\n _swipeUpdateHandler: function(e) {\r\n var offset = e.event.offset;\r\n move(this._$viewsWrapper, {\r\n left: offset * this._viewWidth(),\r\n top: 0\r\n });\r\n this._updateNavigatorCaption(offset)\r\n },\r\n _swipeEndHandler: function(e) {\r\n var targetOffset = e.event.targetOffset;\r\n var moveOffset = !targetOffset ? 0 : targetOffset / Math.abs(targetOffset);\r\n if (0 === moveOffset) {\r\n this._animateWrapper(0, ANIMATION_DURATION_SHOW_VIEW);\r\n return\r\n }\r\n var date = this._getDateByOffset(-moveOffset * this._getRtlCorrection());\r\n if (this._isDateInInvalidRange(date)) {\r\n if (moveOffset >= 0) {\r\n date = new Date(this._getMinDate())\r\n } else {\r\n date = new Date(this._getMaxDate())\r\n }\r\n }\r\n this.option(\"currentDate\", date)\r\n },\r\n _viewWidth: function() {\r\n if (!this._viewWidthValue) {\r\n this._viewWidthValue = this.$element().width()\r\n }\r\n return this._viewWidthValue\r\n },\r\n _updateNavigatorCaption: function(offset) {\r\n offset *= this._getRtlCorrection();\r\n var view = this._view;\r\n if (offset > .5 && this._beforeView) {\r\n view = this._beforeView\r\n } else if (offset < -.5 && this._afterView) {\r\n view = this._afterView\r\n }\r\n this._navigator.option(\"text\", view.getNavigatorCaption())\r\n },\r\n _isDateInInvalidRange: function(date) {\r\n if (this._view.isBoundary(date)) {\r\n return\r\n }\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n var normalizedDate = dateUtils.normalizeDate(date, min, max);\r\n return normalizedDate === min || normalizedDate === max\r\n },\r\n _renderFooter: function() {\r\n var showTodayButton = this.option(\"showTodayButton\");\r\n if (showTodayButton) {\r\n var $todayButton = this._createComponent($(\"\"), Button, {\r\n focusStateEnabled: false,\r\n text: messageLocalization.format(\"dxCalendar-todayButtonText\"),\r\n onClick: function(args) {\r\n this._toTodayView(args)\r\n }.bind(this),\r\n integrationOptions: {}\r\n }).$element().addClass(CALENDAR_TODAY_BUTTON_CLASS);\r\n this._$footer = $(\"
\").addClass(CALENDAR_FOOTER_CLASS).append($todayButton);\r\n this.$element().append(this._$footer)\r\n }\r\n this.$element().toggleClass(CALENDAR_HAS_FOOTER_CLASS, showTodayButton)\r\n },\r\n _renderSubmitElement: function() {\r\n this._$submitElement = $(\"\").attr(\"type\", \"hidden\").appendTo(this.$element());\r\n this._setSubmitValue(this.option(\"value\"))\r\n },\r\n _setSubmitValue: function(value) {\r\n var dateValue = this._convertToDate(value);\r\n this._getSubmitElement().val(dateSerialization.serializeDate(dateValue, CALENDAR_INPUT_STANDARD_PATTERN))\r\n },\r\n _getSubmitElement: function() {\r\n return this._$submitElement\r\n },\r\n _animateShowView: function() {\r\n fx.stop(this._view.$element(), true);\r\n return this._popAnimationView(this._view, POP_ANIMATION_FROM, POP_ANIMATION_TO, ANIMATION_DURATION_SHOW_VIEW).promise()\r\n },\r\n _popAnimationView: function(view, from, to, duration) {\r\n return fx.animate(view.$element(), {\r\n type: \"pop\",\r\n from: {\r\n scale: from,\r\n opacity: from\r\n },\r\n to: {\r\n scale: to,\r\n opacity: to\r\n },\r\n duration: duration\r\n })\r\n },\r\n _navigate: function(offset, value) {\r\n if (0 !== offset && 1 !== Math.abs(offset) && this._isViewAvailable(value)) {\r\n var newView = this._renderSpecificView(value);\r\n if (offset > 0) {\r\n this._afterView && this._afterView.$element().remove();\r\n this._afterView = newView\r\n } else {\r\n this._beforeView && this._beforeView.$element().remove();\r\n this._beforeView = newView\r\n }\r\n this._translateViews()\r\n }\r\n var rtlCorrection = this._getRtlCorrection();\r\n var offsetSign = offset > 0 ? 1 : offset < 0 ? -1 : 0;\r\n var endPosition = -rtlCorrection * offsetSign * this._viewWidth();\r\n var viewsWrapperPosition = this._$viewsWrapper.position().left;\r\n if (viewsWrapperPosition !== endPosition) {\r\n if (this._preventViewChangeAnimation) {\r\n this._wrapperAnimationEndHandler(offset, value)\r\n } else {\r\n this._animateWrapper(endPosition, ANIMATION_DURATION_SHOW_VIEW).done(this._wrapperAnimationEndHandler.bind(this, offset, value))\r\n }\r\n }\r\n },\r\n _animateWrapper: function(to, duration) {\r\n return fx.animate(this._$viewsWrapper, {\r\n type: \"slide\",\r\n from: {\r\n left: this._$viewsWrapper.position().left\r\n },\r\n to: {\r\n left: to\r\n },\r\n duration: duration\r\n })\r\n },\r\n _getDate(value) {\r\n var result = dateUtils.createDate(value);\r\n if (isIE11 && isDate(value)) {\r\n result.setMilliseconds(0)\r\n }\r\n return result\r\n },\r\n _toTodayView: function(args) {\r\n this._saveValueChangeEvent(args.event);\r\n var today = new Date;\r\n if (this._isMaxZoomLevel()) {\r\n this._dateOption(\"value\", today);\r\n return\r\n }\r\n this._preventViewChangeAnimation = true;\r\n this.option(\"zoomLevel\", this.option(\"maxZoomLevel\"));\r\n this._dateOption(\"value\", today);\r\n this._animateShowView();\r\n this._preventViewChangeAnimation = false\r\n },\r\n _wrapperAnimationEndHandler: function(offset, newDate) {\r\n this._rearrangeViews(offset);\r\n this._translateViews();\r\n this._resetLocation();\r\n this._renderNavigator();\r\n this._setViewContoured(newDate);\r\n this._updateAriaId(newDate)\r\n },\r\n _rearrangeViews: function(offset) {\r\n if (0 === offset) {\r\n return\r\n }\r\n var viewOffset;\r\n var viewToCreateKey;\r\n var viewToRemoveKey;\r\n if (offset < 0) {\r\n viewOffset = 1;\r\n viewToCreateKey = \"_beforeView\";\r\n viewToRemoveKey = \"_afterView\"\r\n } else {\r\n viewOffset = -1;\r\n viewToCreateKey = \"_afterView\";\r\n viewToRemoveKey = \"_beforeView\"\r\n }\r\n if (!this[viewToCreateKey]) {\r\n return\r\n }\r\n var destinationDate = this[viewToCreateKey].option(\"date\");\r\n if (this[viewToRemoveKey]) {\r\n this[viewToRemoveKey].$element().remove()\r\n }\r\n if (offset === viewOffset) {\r\n this[viewToRemoveKey] = this._view\r\n } else {\r\n this[viewToRemoveKey] = this._renderSpecificView(this._getDateByOffset(viewOffset, destinationDate));\r\n this._view.$element().remove()\r\n }\r\n this._view = this[viewToCreateKey];\r\n var dateByOffset = this._getDateByOffset(-viewOffset, destinationDate);\r\n this[viewToCreateKey] = this._isViewAvailable(dateByOffset) ? this._renderSpecificView(dateByOffset) : null\r\n },\r\n _resetLocation: function() {\r\n move(this._$viewsWrapper, {\r\n left: 0,\r\n top: 0\r\n })\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._clearViewWidthCache();\r\n delete this._$viewsWrapper;\r\n delete this._navigator;\r\n delete this._$footer\r\n },\r\n _clearViewWidthCache: function() {\r\n delete this._viewWidthValue\r\n },\r\n _disposeViews: function() {\r\n this._view.$element().remove();\r\n this._beforeView && this._beforeView.$element().remove();\r\n this._afterView && this._afterView.$element().remove();\r\n delete this._view;\r\n delete this._beforeView;\r\n delete this._afterView\r\n },\r\n _dispose: function() {\r\n clearTimeout(this._waitRenderViewTimeout);\r\n this.callBase()\r\n },\r\n _refreshViews: function() {\r\n this._disposeViews();\r\n this._renderViews()\r\n },\r\n _visibilityChanged: function() {\r\n this._translateViews()\r\n },\r\n _focusInHandler: function() {\r\n this.callBase.apply(this, arguments);\r\n this._view.option(\"contouredDate\", this.option(\"currentDate\"))\r\n },\r\n _focusOutHandler: function() {\r\n this.callBase.apply(this, arguments);\r\n this._view.option(\"contouredDate\", null)\r\n },\r\n _updateViewsValue: function(value) {\r\n var newValue = value ? new Date(value) : null;\r\n this._view.option(\"value\", newValue);\r\n this._beforeView && this._beforeView.option(\"value\", newValue);\r\n this._afterView && this._afterView.option(\"value\", newValue)\r\n },\r\n _updateAriaSelected: function(value, previousValue) {\r\n var _value;\r\n value = null !== (_value = value) && void 0 !== _value ? _value : this._dateOption(\"value\");\r\n var $prevSelectedCell = this._view._getCellByDate(previousValue);\r\n var $selectedCell = this._view._getCellByDate(value);\r\n this.setAria(\"selected\", void 0, $prevSelectedCell);\r\n this.setAria(\"selected\", true, $selectedCell);\r\n if (value && this.option(\"currentDate\").getTime() === value.getTime()) {\r\n this._updateAriaId(value)\r\n }\r\n },\r\n _updateAriaId: function(value) {\r\n var _value2;\r\n value = null !== (_value2 = value) && void 0 !== _value2 ? _value2 : this.option(\"currentDate\");\r\n var ariaId = \"dx-\" + new Guid;\r\n var $newCell = this._view._getCellByDate(value);\r\n this.setAria(\"id\", ariaId, $newCell);\r\n this.setAria(\"activedescendant\", ariaId);\r\n this._onContouredChanged(ariaId)\r\n },\r\n _suppressingNavigation: function(callback, args) {\r\n this._suppressNavigation = true;\r\n callback.apply(this, args);\r\n delete this._suppressNavigation\r\n },\r\n _optionChanged: function(args) {\r\n var value = args.value;\r\n var previousValue = args.previousValue;\r\n switch (args.name) {\r\n case \"width\":\r\n this.callBase(args);\r\n this._clearViewWidthCache();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this.min = void 0;\r\n this.max = void 0;\r\n this._suppressingNavigation(this._updateCurrentDate, [this.option(\"currentDate\")]);\r\n this._refreshViews();\r\n this._renderNavigator();\r\n break;\r\n case \"firstDayOfWeek\":\r\n this._refreshViews();\r\n this._updateButtonsVisibility();\r\n break;\r\n case \"currentDate\":\r\n this.setAria(\"id\", void 0, this._view._getCellByDate(previousValue));\r\n this._updateCurrentDate(value);\r\n break;\r\n case \"zoomLevel\":\r\n this.$element().removeClass(CALENDAR_VIEW_CLASS + \"-\" + previousValue);\r\n this._correctZoomLevel();\r\n this._refreshViews();\r\n this._renderNavigator();\r\n this._updateAriaId();\r\n break;\r\n case \"minZoomLevel\":\r\n case \"maxZoomLevel\":\r\n this._correctZoomLevel();\r\n this._updateButtonsVisibility();\r\n break;\r\n case \"value\":\r\n value = this._convertToDate(value);\r\n previousValue = this._convertToDate(previousValue);\r\n this._updateAriaSelected(value, previousValue);\r\n this.option(\"currentDate\", isDefined(value) ? dateUtils.createDate(value) : new Date);\r\n this._updateViewsValue(value);\r\n this._setSubmitValue(value);\r\n this.callBase(args);\r\n break;\r\n case \"onCellClick\":\r\n this._view.option(\"onCellClick\", value);\r\n break;\r\n case \"onContouredChanged\":\r\n this._onContouredChanged = this._createActionByOption(\"onContouredChanged\");\r\n break;\r\n case \"disabledDates\":\r\n case \"dateSerializationFormat\":\r\n case \"cellTemplate\":\r\n case \"showTodayButton\":\r\n this._invalidate();\r\n break;\r\n case \"hasFocus\":\r\n break;\r\n case \"_todayDate\":\r\n this._refreshViews();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxCalendar\", Calendar);\r\nexport default Calendar;\r\n","/**\r\n * DevExtreme (esm/ui/calendar.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 Calendar from \"./calendar/ui.calendar\";\r\nexport default Calendar;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nimport dateLocalization from \"../../localization/date\";\r\nvar abstract = Class.abstract;\r\nvar DateBoxStrategy = Class.inherit({\r\n ctor: function(dateBox) {\r\n this.dateBox = dateBox\r\n },\r\n widgetOption: function() {\r\n return this._widget && this._widget.option.apply(this._widget, arguments)\r\n },\r\n _renderWidget: function(element) {\r\n element = element || $(\"
\");\r\n this._widget = this._createWidget(element);\r\n this._widget.$element().appendTo(this._getWidgetContainer())\r\n },\r\n _createWidget: function(element) {\r\n var widgetName = this._getWidgetName();\r\n var widgetOptions = this._getWidgetOptions();\r\n return this.dateBox._createComponent(element, widgetName, widgetOptions)\r\n },\r\n _getWidgetOptions: abstract,\r\n _getWidgetName: abstract,\r\n getDefaultOptions: function() {\r\n return {\r\n mode: \"text\"\r\n }\r\n },\r\n getDisplayFormat: abstract,\r\n supportedKeys: noop,\r\n getKeyboardListener: noop,\r\n customizeButtons: noop,\r\n getParsedText: function(text, format) {\r\n var value = dateLocalization.parse(text, format);\r\n return value ? value : dateLocalization.parse(text)\r\n },\r\n renderInputMinMax: noop,\r\n renderOpenedState: function() {\r\n this._updateValue()\r\n },\r\n popupConfig: abstract,\r\n _dimensionChanged: function() {\r\n var _this$_getPopup;\r\n null === (_this$_getPopup = this._getPopup()) || void 0 === _this$_getPopup ? void 0 : _this$_getPopup.repaint()\r\n },\r\n renderPopupContent: function() {\r\n var popup = this._getPopup();\r\n this._renderWidget();\r\n var $popupContent = popup.$content().parent();\r\n eventsEngine.off($popupContent, \"mousedown\");\r\n eventsEngine.on($popupContent, \"mousedown\", this._preventFocusOnPopup.bind(this))\r\n },\r\n getFirstPopupElement: noop,\r\n getLastPopupElement: noop,\r\n _preventFocusOnPopup: function(e) {\r\n e.preventDefault()\r\n },\r\n _getWidgetContainer: function() {\r\n return this._getPopup().$content()\r\n },\r\n _getPopup: function() {\r\n return this.dateBox._popup\r\n },\r\n popupShowingHandler: noop,\r\n popupHiddenHandler: noop,\r\n _updateValue: function() {\r\n this._widget && this._widget.option(\"value\", this.dateBoxValue())\r\n },\r\n useCurrentDateByDefault: noop,\r\n getDefaultDate: function() {\r\n return new Date\r\n },\r\n textChangedHandler: noop,\r\n renderValue: function() {\r\n if (this.dateBox.option(\"opened\")) {\r\n this._updateValue()\r\n }\r\n },\r\n getValue: function() {\r\n return this._widget.option(\"value\")\r\n },\r\n isAdaptivityChanged: function() {\r\n return false\r\n },\r\n dispose: function() {\r\n var popup = this._getPopup();\r\n if (popup) {\r\n popup.$content().empty()\r\n }\r\n },\r\n dateBoxValue: function() {\r\n if (arguments.length) {\r\n return this.dateBox.dateValue.apply(this.dateBox, arguments)\r\n } else {\r\n return this.dateBox.dateOption.apply(this.dateBox, [\"value\"])\r\n }\r\n }\r\n});\r\nexport default DateBoxStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.calendar.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 Calendar from \"../calendar\";\r\nimport DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n splitPair\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isFunction,\r\n isEmptyObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport messageLocalization from \"../../localization/message\";\r\nvar CalendarStrategy = DateBoxStrategy.inherit({\r\n NAME: \"Calendar\",\r\n supportedKeys: function() {\r\n var homeEndHandler = function(e) {\r\n if (this.option(\"opened\")) {\r\n e.preventDefault();\r\n return true\r\n }\r\n return false\r\n };\r\n return {\r\n rightArrow: function() {\r\n if (this.option(\"opened\")) {\r\n return true\r\n }\r\n },\r\n leftArrow: function() {\r\n if (this.option(\"opened\")) {\r\n return true\r\n }\r\n },\r\n enter: function(e) {\r\n if (this.dateBox.option(\"opened\")) {\r\n e.preventDefault();\r\n if (this._widget.option(\"zoomLevel\") === this._widget.option(\"maxZoomLevel\")) {\r\n var viewValue = this._getContouredValue();\r\n var lastActionElement = this._lastActionElement;\r\n var shouldCloseDropDown = this._closeDropDownByEnter();\r\n if (shouldCloseDropDown && viewValue && \"calendar\" === lastActionElement) {\r\n this.dateBoxValue(viewValue, e)\r\n }\r\n shouldCloseDropDown && this.dateBox.close();\r\n this.dateBox._valueChangeEventHandler(e);\r\n return !shouldCloseDropDown\r\n } else {\r\n return true\r\n }\r\n } else {\r\n this.dateBox._valueChangeEventHandler(e)\r\n }\r\n }.bind(this),\r\n home: homeEndHandler,\r\n end: homeEndHandler\r\n }\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || \"shortdate\"\r\n },\r\n _closeDropDownByEnter: () => true,\r\n _getWidgetName: function() {\r\n return Calendar\r\n },\r\n _getContouredValue: function() {\r\n return this._widget._view.option(\"contouredDate\")\r\n },\r\n getKeyboardListener() {\r\n return this._widget\r\n },\r\n _getWidgetOptions: function() {\r\n var disabledDates = this.dateBox.option(\"disabledDates\");\r\n return extend(this.dateBox.option(\"calendarOptions\"), {\r\n value: this.dateBoxValue() || null,\r\n dateSerializationFormat: null,\r\n min: this.dateBox.dateOption(\"min\"),\r\n max: this.dateBox.dateOption(\"max\"),\r\n onValueChanged: this._valueChangedHandler.bind(this),\r\n onCellClick: this._cellClickHandler.bind(this),\r\n tabIndex: null,\r\n disabledDates: isFunction(disabledDates) ? this._injectComponent(disabledDates.bind(this.dateBox)) : disabledDates,\r\n onContouredChanged: this._refreshActiveDescendant.bind(this),\r\n hasFocus: function() {\r\n return true\r\n }\r\n })\r\n },\r\n _injectComponent: function(func) {\r\n var that = this;\r\n return function(params) {\r\n extend(params, {\r\n component: that.dateBox\r\n });\r\n return func(params)\r\n }\r\n },\r\n _refreshActiveDescendant: function(e) {\r\n this._lastActionElement = \"calendar\";\r\n this.dateBox.setAria(\"activedescendant\", e.actionValue)\r\n },\r\n popupConfig: function(_popupConfig) {\r\n var toolbarItems = _popupConfig.toolbarItems;\r\n var buttonsLocation = this.dateBox.option(\"buttonsLocation\");\r\n var position = [];\r\n if (\"default\" !== buttonsLocation) {\r\n position = splitPair(buttonsLocation)\r\n } else {\r\n position = [\"bottom\", \"center\"]\r\n }\r\n if (\"useButtons\" === this.dateBox.option(\"applyValueMode\") && this._isCalendarVisible()) {\r\n toolbarItems.unshift({\r\n widget: \"dxButton\",\r\n toolbar: position[0],\r\n location: \"after\" === position[1] ? \"before\" : position[1],\r\n options: {\r\n onInitialized: function(e) {\r\n e.component.registerKeyHandler(\"escape\", this._escapeHandler.bind(this))\r\n }.bind(this),\r\n onClick: args => {\r\n this._widget._toTodayView(args)\r\n },\r\n text: messageLocalization.format(\"dxCalendar-todayButtonText\"),\r\n type: \"today\"\r\n }\r\n })\r\n }\r\n return extend(true, _popupConfig, {\r\n toolbarItems: toolbarItems,\r\n position: {\r\n collision: \"flipfit flip\"\r\n },\r\n width: \"auto\"\r\n })\r\n },\r\n _isCalendarVisible: function() {\r\n return isEmptyObject(this.dateBox.option(\"calendarOptions\")) || false !== this.dateBox.option(\"calendarOptions.visible\")\r\n },\r\n _escapeHandler: function() {\r\n this.dateBox.close();\r\n this.dateBox.focus()\r\n },\r\n _valueChangedHandler: function(e) {\r\n var dateBox = this.dateBox;\r\n var value = e.value;\r\n var prevValue = e.previousValue;\r\n if (dateUtils.sameDate(value, prevValue)) {\r\n return\r\n }\r\n if (\"instantly\" === dateBox.option(\"applyValueMode\")) {\r\n this.dateBoxValue(this.getValue(), e.event)\r\n }\r\n },\r\n _updateValue: function() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._widget.option(\"value\", this.dateBoxValue())\r\n },\r\n textChangedHandler: function() {\r\n this._lastActionElement = \"input\";\r\n if (this.dateBox.option(\"opened\") && this._widget) {\r\n this._updateValue(true)\r\n }\r\n },\r\n _cellClickHandler: function(e) {\r\n var dateBox = this.dateBox;\r\n if (\"instantly\" === dateBox.option(\"applyValueMode\")) {\r\n dateBox.option(\"opened\", false);\r\n this.dateBoxValue(this.getValue(), e.event)\r\n }\r\n }\r\n});\r\nexport default CalendarStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_view_roller.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport Scrollable from \"../scroll_view/ui.scrollable\";\r\nimport devices from \"../../core/devices\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n resetPosition\r\n} from \"../../animation/translator\";\r\nvar DATEVIEW_ROLLER_CLASS = \"dx-dateviewroller\";\r\nvar DATEVIEW_ROLLER_ACTIVE_CLASS = \"dx-state-active\";\r\nvar DATEVIEW_ROLLER_CURRENT_CLASS = \"dx-dateviewroller-current\";\r\nvar DATEVIEW_ROLLER_ITEM_CLASS = \"dx-dateview-item\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_CLASS = \"dx-dateview-item-selected\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS = \"dx-dateview-item-selected-frame\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS = \"dx-dateview-item-selected-border\";\r\nvar DateViewRoller = Scrollable.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n showScrollbar: false,\r\n useNative: false,\r\n selectedIndex: 0,\r\n bounceEnabled: false,\r\n items: [],\r\n showOnClick: false,\r\n onClick: null,\r\n onSelectedIndexChanged: null\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n scrollByContent: true\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._renderSelectedItemFrame()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(DATEVIEW_ROLLER_CLASS);\r\n this._renderContainerClick();\r\n this._renderItems();\r\n this._renderSelectedValue();\r\n this._renderItemsClick();\r\n this._renderWheelEvent();\r\n this._wrapAction(\"_endAction\", this._endActionHandler.bind(this));\r\n this._renderSelectedIndexChanged()\r\n },\r\n _renderSelectedIndexChanged: function() {\r\n this._selectedIndexChanged = this._createActionByOption(\"onSelectedIndexChanged\")\r\n },\r\n _renderWheelEvent: function() {\r\n eventsEngine.on(this._$container, \"dxmousewheel\", e => {\r\n this._isWheelScrolled = true\r\n })\r\n },\r\n _renderContainerClick: function() {\r\n if (!this.option(\"showOnClick\")) {\r\n return\r\n }\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var clickAction = this._createActionByOption(\"onClick\");\r\n eventsEngine.off(this._$container, eventName);\r\n eventsEngine.on(this._$container, eventName, (function(e) {\r\n clickAction({\r\n event: e\r\n })\r\n }))\r\n },\r\n _wrapAction: function(actionName, callback) {\r\n var strategy = this._strategy;\r\n var originalAction = strategy[actionName];\r\n strategy[actionName] = function() {\r\n callback.apply(this, arguments);\r\n return originalAction.apply(this, arguments)\r\n }\r\n },\r\n _renderItems: function() {\r\n var items = this.option(\"items\") || [];\r\n var $items = $();\r\n this._$content.empty();\r\n items.forEach((function(item) {\r\n $items = $items.add($(\"
\").addClass(DATEVIEW_ROLLER_ITEM_CLASS).append(item))\r\n }));\r\n this._$content.append($items);\r\n this._$items = $items;\r\n this.update()\r\n },\r\n _renderSelectedItemFrame: function() {\r\n $(\"
\").addClass(DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS).append($(\"
\").addClass(DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS)).appendTo(this._$container)\r\n },\r\n _renderSelectedValue: function(selectedIndex) {\r\n var index = this._fitIndex(null !== selectedIndex && void 0 !== selectedIndex ? selectedIndex : this.option(\"selectedIndex\"));\r\n this._moveTo({\r\n top: this._getItemPosition(index)\r\n });\r\n this._renderActiveStateItem()\r\n },\r\n _fitIndex: function(index) {\r\n var items = this.option(\"items\") || [];\r\n var itemCount = items.length;\r\n if (index >= itemCount) {\r\n return itemCount - 1\r\n }\r\n if (index < 0) {\r\n return 0\r\n }\r\n return index\r\n },\r\n _getItemPosition: function(index) {\r\n return Math.round(this._itemHeight() * index)\r\n },\r\n _renderItemsClick: function() {\r\n var itemSelector = this._getItemSelector();\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n eventsEngine.off(this.$element(), eventName, itemSelector);\r\n eventsEngine.on(this.$element(), eventName, itemSelector, this._itemClickHandler.bind(this))\r\n },\r\n _getItemSelector: function() {\r\n return \".\" + DATEVIEW_ROLLER_ITEM_CLASS\r\n },\r\n _itemClickHandler: function(e) {\r\n this.option(\"selectedIndex\", this._itemElementIndex(e.currentTarget))\r\n },\r\n _itemElementIndex: function(itemElement) {\r\n return this._itemElements().index(itemElement)\r\n },\r\n _itemElements: function() {\r\n return this.$element().find(this._getItemSelector())\r\n },\r\n _renderActiveStateItem: function() {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n each(this._$items, (function(index) {\r\n $(this).toggleClass(DATEVIEW_ROLLER_ITEM_SELECTED_CLASS, selectedIndex === index)\r\n }))\r\n },\r\n _shouldScrollToNeighborItem: function() {\r\n return \"desktop\" === devices.real().deviceType && this._isWheelScrolled\r\n },\r\n _moveTo: function(targetLocation) {\r\n targetLocation = this._normalizeLocation(targetLocation);\r\n var location = this._location();\r\n var delta = {\r\n x: -(location.left - targetLocation.left),\r\n y: -(location.top - targetLocation.top)\r\n };\r\n if (this._isVisible() && (delta.x || delta.y)) {\r\n this._strategy._prepareDirections(true);\r\n if (this._animation && !this._shouldScrollToNeighborItem()) {\r\n var that = this;\r\n fx.stop(this._$content);\r\n fx.animate(this._$content, {\r\n duration: 200,\r\n type: \"slide\",\r\n to: {\r\n top: Math.floor(delta.y)\r\n },\r\n complete: function() {\r\n resetPosition(that._$content);\r\n that._strategy.handleMove({\r\n delta: delta\r\n })\r\n }\r\n });\r\n delete this._animation\r\n } else {\r\n this._strategy.handleMove({\r\n delta: delta\r\n })\r\n }\r\n }\r\n },\r\n _validate: function(e) {\r\n return this._strategy.validate(e)\r\n },\r\n _fitSelectedIndexInRange: function(index) {\r\n var itemsCount = this.option(\"items\").length;\r\n return Math.max(Math.min(index, itemsCount - 1), 0)\r\n },\r\n _isInNullNeighborhood: function(x) {\r\n return -.1 <= x && x <= .1\r\n },\r\n _getSelectedIndexAfterScroll: function(currentSelectedIndex) {\r\n var locationTop = -this._location().top;\r\n var currentSelectedIndexPosition = currentSelectedIndex * this._itemHeight();\r\n var dy = locationTop - currentSelectedIndexPosition;\r\n if (this._isInNullNeighborhood(dy)) {\r\n return currentSelectedIndex\r\n }\r\n var direction = dy > 0 ? 1 : -1;\r\n var newSelectedIndex = this._fitSelectedIndexInRange(currentSelectedIndex + direction);\r\n return newSelectedIndex\r\n },\r\n _getNewSelectedIndex: function(currentSelectedIndex) {\r\n if (this._shouldScrollToNeighborItem()) {\r\n return this._getSelectedIndexAfterScroll(currentSelectedIndex)\r\n }\r\n this._animation = true;\r\n var ratio = -this._location().top / this._itemHeight();\r\n return Math.round(ratio)\r\n },\r\n _endActionHandler: function() {\r\n var currentSelectedIndex = this.option(\"selectedIndex\");\r\n var newSelectedIndex = this._getNewSelectedIndex(currentSelectedIndex);\r\n if (newSelectedIndex === currentSelectedIndex) {\r\n this._renderSelectedValue(newSelectedIndex)\r\n } else {\r\n this.option(\"selectedIndex\", newSelectedIndex)\r\n }\r\n this._isWheelScrolled = false\r\n },\r\n _itemHeight: function() {\r\n var $item = this._$items.first();\r\n return $item.height()\r\n },\r\n _toggleActive: function(state) {\r\n this.$element().toggleClass(DATEVIEW_ROLLER_ACTIVE_CLASS, state)\r\n },\r\n _isVisible: function() {\r\n return this._$container.is(\":visible\")\r\n },\r\n _fireSelectedIndexChanged: function(value, previousValue) {\r\n this._selectedIndexChanged({\r\n value: value,\r\n previousValue: previousValue,\r\n event: void 0\r\n })\r\n },\r\n _visibilityChanged: function(visible) {\r\n this.callBase(visible);\r\n if (visible) {\r\n this._renderSelectedValue(this.option(\"selectedIndex\"))\r\n }\r\n this.toggleActiveState(false)\r\n },\r\n toggleActiveState: function(state) {\r\n this.$element().toggleClass(DATEVIEW_ROLLER_CURRENT_CLASS, state)\r\n },\r\n _refreshSelectedIndex: function() {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var fitIndex = this._fitIndex(selectedIndex);\r\n if (fitIndex === selectedIndex) {\r\n this._renderActiveStateItem()\r\n } else {\r\n this.option(\"selectedIndex\", fitIndex)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"selectedIndex\":\r\n this._fireSelectedIndexChanged(args.value, args.previousValue);\r\n this._renderSelectedValue(args.value);\r\n break;\r\n case \"items\":\r\n this._renderItems();\r\n this._refreshSelectedIndex();\r\n break;\r\n case \"onClick\":\r\n case \"showOnClick\":\r\n this._renderContainerClick();\r\n break;\r\n case \"onSelectedIndexChanged\":\r\n this._renderSelectedIndexChanged();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxDateViewRoller\", DateViewRoller);\r\nexport default DateViewRoller;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_view.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 Editor from \"../editor/editor\";\r\nimport DateViewRoller from \"./ui.date_view_roller\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport uiDateUtils from \"./ui.date_utils\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport dateLocalization from \"../../localization/date\";\r\nvar DATEVIEW_CLASS = \"dx-dateview\";\r\nvar DATEVIEW_COMPACT_CLASS = \"dx-dateview-compact\";\r\nvar DATEVIEW_WRAPPER_CLASS = \"dx-dateview-wrapper\";\r\nvar DATEVIEW_ROLLER_CONTAINER_CLASS = \"dx-dateview-rollers\";\r\nvar DATEVIEW_ROLLER_CLASS = \"dx-dateviewroller\";\r\nvar TYPE = {\r\n date: \"date\",\r\n datetime: \"datetime\",\r\n time: \"time\"\r\n};\r\nvar ROLLER_TYPE = {\r\n year: \"year\",\r\n month: \"month\",\r\n day: \"day\",\r\n hours: \"hours\"\r\n};\r\nvar DateView = Editor.inherit({\r\n _valueOption: function() {\r\n var value = this.option(\"value\");\r\n var date = new Date(value);\r\n return !value || isNaN(date) ? this._getDefaultDate() : date\r\n },\r\n _getDefaultDate: function() {\r\n var date = new Date;\r\n if (this.option(\"type\") === TYPE.date) {\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate())\r\n }\r\n return date\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n minDate: uiDateUtils.MIN_DATEVIEW_DEFAULT_DATE,\r\n maxDate: uiDateUtils.MAX_DATEVIEW_DEFAULT_DATE,\r\n type: TYPE.date,\r\n value: new Date,\r\n applyCompactClass: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function(_device) {\r\n return \"desktop\" !== _device.deviceType\r\n },\r\n options: {\r\n applyCompactClass: true\r\n }\r\n }])\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(DATEVIEW_CLASS);\r\n this._toggleFormatClasses(this.option(\"type\"));\r\n this._toggleCompactClass()\r\n },\r\n _toggleFormatClasses: function(currentFormat, previousFormat) {\r\n this.$element().addClass(DATEVIEW_CLASS + \"-\" + currentFormat);\r\n previousFormat && this.$element().removeClass(DATEVIEW_CLASS + \"-\" + previousFormat)\r\n },\r\n _toggleCompactClass: function() {\r\n this.$element().toggleClass(DATEVIEW_COMPACT_CLASS, this.option(\"applyCompactClass\"))\r\n },\r\n _wrapper: function() {\r\n return this._$wrapper\r\n },\r\n _renderContentImpl: function() {\r\n this._$wrapper = $(\"
\").addClass(DATEVIEW_WRAPPER_CLASS);\r\n this._renderRollers();\r\n this._$wrapper.appendTo(this.$element())\r\n },\r\n _renderRollers: function() {\r\n if (!this._$rollersContainer) {\r\n this._$rollersContainer = $(\"
\").addClass(DATEVIEW_ROLLER_CONTAINER_CLASS)\r\n }\r\n this._$rollersContainer.empty();\r\n this._createRollerConfigs();\r\n this._rollers = {};\r\n var that = this;\r\n each(that._rollerConfigs, (function(name) {\r\n var $roller = $(\"
\").appendTo(that._$rollersContainer).addClass(DATEVIEW_ROLLER_CLASS + \"-\" + that._rollerConfigs[name].type);\r\n that._rollers[that._rollerConfigs[name].type] = that._createComponent($roller, DateViewRoller, {\r\n items: that._rollerConfigs[name].displayItems,\r\n selectedIndex: that._rollerConfigs[name].selectedIndex,\r\n showScrollbar: false,\r\n onStart: function(e) {\r\n var roller = e.component;\r\n roller._toggleActive(true);\r\n that._setActiveRoller(that._rollerConfigs[name], roller.option(\"selectedIndex\"))\r\n },\r\n onEnd: function(e) {\r\n var roller = e.component;\r\n roller._toggleActive(false)\r\n },\r\n onClick: function(e) {\r\n var roller = e.component;\r\n roller._toggleActive(true);\r\n that._setActiveRoller(that._rollerConfigs[name], roller.option(\"selectedIndex\"));\r\n that._setRollerState(that._rollerConfigs[name], roller.option(\"selectedIndex\"));\r\n roller._toggleActive(false)\r\n },\r\n onSelectedIndexChanged: function(e) {\r\n var roller = e.component;\r\n that._setRollerState(that._rollerConfigs[name], roller.option(\"selectedIndex\"))\r\n }\r\n })\r\n }));\r\n that._$rollersContainer.appendTo(that._wrapper())\r\n },\r\n _createRollerConfigs: function(type) {\r\n var that = this;\r\n type = type || that.option(\"type\");\r\n that._rollerConfigs = {};\r\n dateLocalization.getFormatParts(uiDateUtils.FORMATS_MAP[type]).forEach((function(partName) {\r\n that._createRollerConfig(partName)\r\n }))\r\n },\r\n _createRollerConfig: function(componentName) {\r\n var componentInfo = uiDateUtils.DATE_COMPONENTS_INFO[componentName];\r\n var valueRange = this._calculateRollerConfigValueRange(componentName);\r\n var startValue = valueRange.startValue;\r\n var endValue = valueRange.endValue;\r\n var formatter = componentInfo.formatter;\r\n var curDate = this._getCurrentDate();\r\n var config = {\r\n type: componentName,\r\n setValue: componentInfo.setter,\r\n valueItems: [],\r\n displayItems: [],\r\n getIndex: function(value) {\r\n return value[componentInfo.getter]() - startValue\r\n }\r\n };\r\n for (var i = startValue; i <= endValue; i++) {\r\n config.valueItems.push(i);\r\n config.displayItems.push(formatter(i, curDate))\r\n }\r\n config.selectedIndex = config.getIndex(curDate);\r\n this._rollerConfigs[componentName] = config\r\n },\r\n _setActiveRoller: function(currentRoller) {\r\n var activeRoller = currentRoller && this._rollers[currentRoller.type];\r\n each(this._rollers, (function() {\r\n this.toggleActiveState(this === activeRoller)\r\n }))\r\n },\r\n _updateRollersPosition: function() {\r\n var that = this;\r\n each(this._rollers, (function(type) {\r\n var correctIndex = that._rollerConfigs[type].getIndex(that._getCurrentDate());\r\n this.option(\"selectedIndex\", correctIndex)\r\n }))\r\n },\r\n _setRollerState: function(roller, selectedIndex) {\r\n if (selectedIndex !== roller.selectedIndex) {\r\n var rollerValue = roller.valueItems[selectedIndex];\r\n var setValue = roller.setValue;\r\n var currentValue = new Date(this._getCurrentDate());\r\n var currentDate = currentValue.getDate();\r\n var minDate = this.option(\"minDate\");\r\n var maxDate = this.option(\"maxDate\");\r\n if (roller.type === ROLLER_TYPE.month) {\r\n currentDate = Math.min(currentDate, uiDateUtils.getMaxMonthDay(currentValue.getFullYear(), rollerValue))\r\n } else if (roller.type === ROLLER_TYPE.year) {\r\n currentDate = Math.min(currentDate, uiDateUtils.getMaxMonthDay(rollerValue, currentValue.getMonth()))\r\n }\r\n currentValue.setDate(currentDate);\r\n currentValue[setValue](rollerValue);\r\n var normalizedDate = dateUtils.normalizeDate(currentValue, minDate, maxDate);\r\n currentValue = uiDateUtils.mergeDates(normalizedDate, currentValue, \"time\");\r\n currentValue = dateUtils.normalizeDate(currentValue, minDate, maxDate);\r\n this.option(\"value\", currentValue);\r\n roller.selectedIndex = selectedIndex\r\n }\r\n if (roller.type === ROLLER_TYPE.year) {\r\n this._refreshRollers()\r\n }\r\n if (roller.type === ROLLER_TYPE.month) {\r\n this._refreshRoller(ROLLER_TYPE.day);\r\n this._refreshRoller(ROLLER_TYPE.hours)\r\n }\r\n },\r\n _refreshRoller: function(rollerType) {\r\n var roller = this._rollers[rollerType];\r\n if (roller) {\r\n this._createRollerConfig(rollerType);\r\n var rollerConfig = this._rollerConfigs[rollerType];\r\n if (rollerType === ROLLER_TYPE.day || rollerConfig.displayItems.toString() !== roller.option(\"items\").toString()) {\r\n roller.option({\r\n items: rollerConfig.displayItems,\r\n selectedIndex: rollerConfig.selectedIndex\r\n })\r\n }\r\n }\r\n },\r\n _getCurrentDate: function() {\r\n var curDate = this._valueOption();\r\n var minDate = this.option(\"minDate\");\r\n var maxDate = this.option(\"maxDate\");\r\n return dateUtils.normalizeDate(curDate, minDate, maxDate)\r\n },\r\n _calculateRollerConfigValueRange: function(componentName) {\r\n var curDate = this._getCurrentDate();\r\n var minDate = this.option(\"minDate\");\r\n var maxDate = this.option(\"maxDate\");\r\n var minYear = dateUtils.sameYear(curDate, minDate);\r\n var minMonth = minYear && curDate.getMonth() === minDate.getMonth();\r\n var maxYear = dateUtils.sameYear(curDate, maxDate);\r\n var maxMonth = maxYear && curDate.getMonth() === maxDate.getMonth();\r\n var minHour = minMonth && curDate.getDate() === minDate.getDate();\r\n var maxHour = maxMonth && curDate.getDate() === maxDate.getDate();\r\n var componentInfo = uiDateUtils.DATE_COMPONENTS_INFO[componentName];\r\n var startValue = componentInfo.startValue;\r\n var endValue = componentInfo.endValue;\r\n if (componentName === ROLLER_TYPE.year) {\r\n startValue = minDate.getFullYear();\r\n endValue = maxDate.getFullYear()\r\n }\r\n if (componentName === ROLLER_TYPE.month) {\r\n if (minYear) {\r\n startValue = minDate.getMonth()\r\n }\r\n if (maxYear) {\r\n endValue = maxDate.getMonth()\r\n }\r\n }\r\n if (componentName === ROLLER_TYPE.day) {\r\n endValue = uiDateUtils.getMaxMonthDay(curDate.getFullYear(), curDate.getMonth());\r\n if (minYear && minMonth) {\r\n startValue = minDate.getDate()\r\n }\r\n if (maxYear && maxMonth) {\r\n endValue = maxDate.getDate()\r\n }\r\n }\r\n if (componentName === ROLLER_TYPE.hours) {\r\n startValue = minHour ? minDate.getHours() : startValue;\r\n endValue = maxHour ? maxDate.getHours() : endValue\r\n }\r\n return {\r\n startValue: startValue,\r\n endValue: endValue\r\n }\r\n },\r\n _refreshRollers: function() {\r\n this._refreshRoller(ROLLER_TYPE.month);\r\n this._refreshRoller(ROLLER_TYPE.day);\r\n this._refreshRoller(ROLLER_TYPE.hours)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"minDate\":\r\n case \"maxDate\":\r\n case \"type\":\r\n this._renderRollers();\r\n this._toggleFormatClasses(args.value, args.previousValue);\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n if (args.value) {\r\n this._renderRollers()\r\n }\r\n break;\r\n case \"value\":\r\n this.option(\"value\", this._valueOption());\r\n this._refreshRollers();\r\n this._updateRollersPosition();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n delete this._$rollersContainer\r\n }\r\n});\r\nregisterComponent(\"dxDateView\", DateView);\r\nexport default DateView;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.date_view.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 DateView from \"./ui.date_view\";\r\nimport DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport {\r\n inputType\r\n} from \"../../core/utils/support\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nimport messageLocalization from \"../../localization/message\";\r\nvar DateViewStrategy = DateBoxStrategy.inherit({\r\n NAME: \"DateView\",\r\n getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n openOnFieldClick: true,\r\n applyButtonText: messageLocalization.format(\"OK\"),\r\n \"dropDownOptions.showTitle\": true\r\n })\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || dateUtils.FORMATS_MAP[this.dateBox.option(\"type\")]\r\n },\r\n popupConfig: function(config) {\r\n return {\r\n toolbarItems: this.dateBox._popupToolbarItemsConfig(),\r\n onInitialized: config.onInitialized,\r\n defaultOptionsRules: [{\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n width: 333,\r\n height: 331\r\n }\r\n }, {\r\n device: function(_device) {\r\n var platform = _device.platform;\r\n return \"generic\" === platform || \"ios\" === platform\r\n },\r\n options: {\r\n width: \"auto\",\r\n height: \"auto\"\r\n }\r\n }, {\r\n device: function(_device2) {\r\n var platform = _device2.platform;\r\n var phone = _device2.phone;\r\n return \"generic\" === platform && phone\r\n },\r\n options: {\r\n width: 333,\r\n maxWidth: \"100%\",\r\n maxHeight: \"100%\",\r\n height: \"auto\",\r\n position: {\r\n collision: \"flipfit flip\"\r\n }\r\n }\r\n }, {\r\n device: {\r\n platform: \"ios\",\r\n phone: true\r\n },\r\n options: {\r\n width: \"100%\",\r\n position: {\r\n my: \"bottom\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n }\r\n }]\r\n }\r\n },\r\n _renderWidget: function() {\r\n if (inputType(this.dateBox.option(\"mode\")) && this.dateBox._isNativeType() || this.dateBox.option(\"readOnly\")) {\r\n if (this._widget) {\r\n this._widget.$element().remove();\r\n this._widget = null\r\n }\r\n return\r\n }\r\n var popup = this._getPopup();\r\n if (this._widget) {\r\n this._widget.option(this._getWidgetOptions())\r\n } else {\r\n var element = $(\"
\").appendTo(popup.$content());\r\n this._widget = this._createWidget(element)\r\n }\r\n this._widget.$element().appendTo(this._getWidgetContainer())\r\n },\r\n _getWidgetName: function() {\r\n return DateView\r\n },\r\n renderOpenedState: function() {\r\n this.callBase();\r\n if (this._widget) {\r\n this._widget.option(\"value\", this._widget._getCurrentDate())\r\n }\r\n },\r\n _getWidgetOptions: function() {\r\n return {\r\n value: this.dateBoxValue() || new Date,\r\n type: this.dateBox.option(\"type\"),\r\n minDate: this.dateBox.dateOption(\"min\") || new Date(1900, 0, 1),\r\n maxDate: this.dateBox.dateOption(\"max\") || new Date(Date.now() + 50 * dateUtils.ONE_YEAR),\r\n onDisposing: function() {\r\n this._widget = null\r\n }.bind(this)\r\n }\r\n }\r\n});\r\nexport default DateViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.native.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport {\r\n inputType\r\n} from \"../../core/utils/support\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport devices from \"../../core/devices\";\r\nvar NativeStrategy = DateBoxStrategy.inherit({\r\n NAME: \"Native\",\r\n popupConfig: function(_popupConfig) {\r\n return extend({}, _popupConfig, {\r\n width: \"auto\"\r\n })\r\n },\r\n getParsedText: function(text, format) {\r\n if (!text) {\r\n return null\r\n }\r\n if (\"datetime\" === this.dateBox.option(\"type\")) {\r\n return new Date(text.replace(/-/g, \"/\").replace(\"T\", \" \").split(\".\")[0])\r\n }\r\n if (this._isTextInput()) {\r\n return this.callBase(text, format)\r\n } else {\r\n return dateUtils.fromStandardDateFormat(text)\r\n }\r\n },\r\n _isTextInput: function() {\r\n return \"text\" === this.dateBox._input().prop(\"type\")\r\n },\r\n renderPopupContent: noop,\r\n _getWidgetName: noop,\r\n _getWidgetOptions: noop,\r\n _getDateBoxType: function() {\r\n var type = this.dateBox.option(\"type\");\r\n if (-1 === inArray(type, dateUtils.SUPPORTED_FORMATS)) {\r\n type = \"date\"\r\n } else if (\"datetime\" === type && !inputType(type)) {\r\n type = \"datetime-local\"\r\n }\r\n return type\r\n },\r\n customizeButtons: function() {\r\n var dropDownButton = this.dateBox.getButton(\"dropDown\");\r\n if (devices.real().android && dropDownButton) {\r\n dropDownButton.on(\"click\", function() {\r\n this.dateBox._input().get(0).click()\r\n }.bind(this))\r\n }\r\n },\r\n getDefaultOptions: function() {\r\n return {\r\n mode: this._getDateBoxType()\r\n }\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n var type = this._getDateBoxType();\r\n return displayFormat || dateUtils.FORMATS_MAP[type]\r\n },\r\n renderInputMinMax: function($input) {\r\n $input.attr({\r\n min: dateSerialization.serializeDate(this.dateBox.dateOption(\"min\"), \"yyyy-MM-dd\"),\r\n max: dateSerialization.serializeDate(this.dateBox.dateOption(\"max\"), \"yyyy-MM-dd\")\r\n })\r\n }\r\n});\r\nexport default NativeStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.time_view.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 Editor from \"../editor/editor\";\r\nimport NumberBox from \"../number_box\";\r\nimport SelectBox from \"../select_box\";\r\nimport Box from \"../box\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nvar TIMEVIEW_CLASS = \"dx-timeview\";\r\nvar TIMEVIEW_CLOCK_CLASS = \"dx-timeview-clock\";\r\nvar TIMEVIEW_FIELD_CLASS = \"dx-timeview-field\";\r\nvar TIMEVIEW_HOURARROW_CLASS = \"dx-timeview-hourarrow\";\r\nvar TIMEVIEW_TIME_SEPARATOR_CLASS = \"dx-timeview-time-separator\";\r\nvar TIMEVIEW_FORMAT12_CLASS = \"dx-timeview-format12\";\r\nvar TIMEVIEW_FORMAT12_AM = -1;\r\nvar TIMEVIEW_FORMAT12_PM = 1;\r\nvar TIMEVIEW_MINUTEARROW_CLASS = \"dx-timeview-minutearrow\";\r\nvar rotateArrow = function($arrow, angle, offset) {\r\n cssRotate($arrow, angle, offset)\r\n};\r\nvar cssRotate = function($arrow, angle, offset) {\r\n $arrow.css(\"transform\", \"rotate(\" + angle + \"deg) translate(0,\" + offset + \"px)\")\r\n};\r\nvar TimeView = Editor.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: new Date(Date.now()),\r\n use24HourFormat: true,\r\n _showClock: true,\r\n _arrowOffset: 0,\r\n stylingMode: void 0\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n _arrowOffset: 15\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n _arrowOffset: 5\r\n }\r\n }])\r\n },\r\n _getValue: function() {\r\n return this.option(\"value\") || new Date\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(TIMEVIEW_CLASS)\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderBox();\r\n this._updateTime()\r\n },\r\n _renderBox: function() {\r\n var $box = $(\"
\").appendTo(this.$element());\r\n var items = [];\r\n if (this.option(\"_showClock\")) {\r\n items.push({\r\n ratio: 1,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: this._renderClock.bind(this)\r\n })\r\n }\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: 50,\r\n template: this._renderField.bind(this)\r\n });\r\n this._createComponent($box, Box, {\r\n height: \"100%\",\r\n width: \"100%\",\r\n direction: \"col\",\r\n items: items\r\n })\r\n },\r\n _renderClock: function(_, __, container) {\r\n this._$hourArrow = $(\"
\").addClass(TIMEVIEW_HOURARROW_CLASS);\r\n this._$minuteArrow = $(\"
\").addClass(TIMEVIEW_MINUTEARROW_CLASS);\r\n var $container = $(container);\r\n $container.addClass(TIMEVIEW_CLOCK_CLASS).append(this._$hourArrow).append(this._$minuteArrow);\r\n this.setAria(\"role\", \"presentation\", $container)\r\n },\r\n _updateClock: function() {\r\n var time = this._getValue();\r\n var hourArrowAngle = time.getHours() / 12 * 360 + time.getMinutes() / 60 * 30;\r\n var minuteArrowAngle = time.getMinutes() / 60 * 360;\r\n rotateArrow(this._$hourArrow, hourArrowAngle, this.option(\"_arrowOffset\"));\r\n rotateArrow(this._$minuteArrow, minuteArrowAngle, this.option(\"_arrowOffset\"))\r\n },\r\n _getBoxItems: function(is12HourFormat) {\r\n var items = [{\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: () => this._hourBox.$element()\r\n }, {\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: $(\"
\").addClass(TIMEVIEW_TIME_SEPARATOR_CLASS).text(dateLocalization.getTimeSeparator())\r\n }, {\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: () => this._minuteBox.$element()\r\n }];\r\n if (is12HourFormat) {\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: () => this._format12.$element()\r\n })\r\n }\r\n return items\r\n },\r\n _renderField: function() {\r\n var is12HourFormat = !this.option(\"use24HourFormat\");\r\n this._createHourBox(is12HourFormat);\r\n this._createMinuteBox();\r\n if (is12HourFormat) {\r\n this._createFormat12Box()\r\n }\r\n return this._createComponent($(\"
\").addClass(TIMEVIEW_FIELD_CLASS), Box, {\r\n direction: \"row\",\r\n align: \"center\",\r\n crossAlign: \"center\",\r\n items: this._getBoxItems(is12HourFormat)\r\n }).$element()\r\n },\r\n _createHourBox: function(is12HourFormat) {\r\n var editor = this._hourBox = this._createComponent($(\"
\"), NumberBox, extend({\r\n min: -1,\r\n max: is12HourFormat ? 13 : 24,\r\n value: this._getValue().getHours(),\r\n onValueChanged: this._onHourBoxValueChanged.bind(this),\r\n onKeyboardHandled: opts => this._keyboardHandler(opts)\r\n }, this._getNumberBoxConfig()));\r\n editor.setAria(\"label\", \"hours\")\r\n },\r\n _isPM: function() {\r\n return !this.option(\"use24HourFormat\") && 1 === this._format12.option(\"value\")\r\n },\r\n _onHourBoxValueChanged: function(_ref) {\r\n var {\r\n value: value,\r\n component: component\r\n } = _ref;\r\n var currentValue = this._getValue();\r\n var newValue = new Date(currentValue);\r\n var newHours = this._convertMaxHourToMin(value);\r\n component.option(\"value\", newHours);\r\n if (this._isPM()) {\r\n newHours += 12\r\n }\r\n newValue.setHours(newHours);\r\n dateUtils.normalizeTime(newValue);\r\n this.option(\"value\", newValue)\r\n },\r\n _convertMaxHourToMin: function(hours) {\r\n var maxHoursValue = this.option(\"use24HourFormat\") ? 24 : 12;\r\n return (maxHoursValue + hours) % maxHoursValue\r\n },\r\n _createMinuteBox: function() {\r\n var editor = this._minuteBox = this._createComponent($(\"
\"), NumberBox, extend({\r\n min: -1,\r\n max: 60,\r\n value: this._getValue().getMinutes(),\r\n onKeyboardHandled: opts => this._keyboardHandler(opts),\r\n onValueChanged: _ref2 => {\r\n var {\r\n value: value,\r\n component: component\r\n } = _ref2;\r\n var newMinutes = (60 + value) % 60;\r\n component.option(\"value\", newMinutes);\r\n var time = new Date(this._getValue());\r\n time.setMinutes(newMinutes);\r\n dateUtils.normalizeTime(time);\r\n this.option(\"value\", time)\r\n }\r\n }, this._getNumberBoxConfig()));\r\n editor.setAria(\"label\", \"minutes\")\r\n },\r\n _createFormat12Box: function() {\r\n var periodNames = dateLocalization.getPeriodNames();\r\n var editor = this._format12 = this._createComponent($(\"
\").addClass(TIMEVIEW_FORMAT12_CLASS), SelectBox, {\r\n items: [{\r\n value: TIMEVIEW_FORMAT12_AM,\r\n text: periodNames[0]\r\n }, {\r\n value: TIMEVIEW_FORMAT12_PM,\r\n text: periodNames[1]\r\n }],\r\n valueExpr: \"value\",\r\n displayExpr: \"text\",\r\n onKeyboardHandled: opts => this._keyboardHandler(opts),\r\n onValueChanged: _ref3 => {\r\n var {\r\n value: value\r\n } = _ref3;\r\n var hours = this._getValue().getHours();\r\n var time = new Date(this._getValue());\r\n var newHours = (hours + 12 * value) % 24;\r\n time.setHours(newHours);\r\n this.option(\"value\", time)\r\n },\r\n value: this._getValue().getHours() >= 12 ? TIMEVIEW_FORMAT12_PM : TIMEVIEW_FORMAT12_AM,\r\n stylingMode: this.option(\"stylingMode\")\r\n });\r\n editor.setAria(\"label\", \"type\")\r\n },\r\n _refreshFormat12: function() {\r\n if (this.option(\"use24HourFormat\")) {\r\n return\r\n }\r\n var value = this._getValue();\r\n var hours = value.getHours();\r\n var isPM = hours >= 12;\r\n var newValue = isPM ? TIMEVIEW_FORMAT12_PM : TIMEVIEW_FORMAT12_AM;\r\n this._silentEditorValueUpdate(this._format12, newValue)\r\n },\r\n _silentEditorValueUpdate: function(editor, value) {\r\n if (editor) {\r\n editor._suppressValueChangeAction();\r\n editor.option(\"value\", value);\r\n editor._resumeValueChangeAction()\r\n }\r\n },\r\n _getNumberBoxConfig: function() {\r\n return {\r\n showSpinButtons: true,\r\n displayValueFormatter: function(value) {\r\n return (value < 10 ? \"0\" : \"\") + value\r\n },\r\n stylingMode: this.option(\"stylingMode\")\r\n }\r\n },\r\n _normalizeHours: function(hours) {\r\n return this.option(\"use24HourFormat\") ? hours : hours % 12 || 12\r\n },\r\n _updateField: function() {\r\n var hours = this._normalizeHours(this._getValue().getHours());\r\n this._silentEditorValueUpdate(this._hourBox, hours);\r\n this._silentEditorValueUpdate(this._minuteBox, this._getValue().getMinutes());\r\n this._refreshFormat12()\r\n },\r\n _updateTime: function() {\r\n if (this.option(\"_showClock\")) {\r\n this._updateClock()\r\n }\r\n this._updateField()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._updateTime()\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._updateTime();\r\n this.callBase(args);\r\n break;\r\n case \"_arrowOffset\":\r\n break;\r\n case \"use24HourFormat\":\r\n case \"_showClock\":\r\n case \"stylingMode\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxTimeView\", TimeView);\r\nexport default TimeView;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.calendar_with_time.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 CalendarStrategy from \"./ui.date_box.strategy.calendar\";\r\nimport TimeView from \"./ui.time_view\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport Box from \"../box\";\r\nimport uiDateUtils from \"./ui.date_utils\";\r\nvar SHRINK_VIEW_SCREEN_WIDTH = 573;\r\nvar DATEBOX_ADAPTIVITY_MODE_CLASS = \"dx-datebox-adaptivity-mode\";\r\nvar CalendarWithTimeStrategy = CalendarStrategy.inherit({\r\n NAME: \"CalendarWithTime\",\r\n getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n applyValueMode: \"useButtons\",\r\n buttonsLocation: \"bottom after\",\r\n \"dropDownOptions.showTitle\": false\r\n })\r\n },\r\n _closeDropDownByEnter: function() {\r\n return dateUtils.sameDate(this._getContouredValue(), this.widgetOption(\"value\"))\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || \"shortdateshorttime\"\r\n },\r\n _is24HourFormat: function() {\r\n return dateLocalization.is24HourFormat(this.getDisplayFormat(this.dateBox.option(\"displayFormat\")))\r\n },\r\n _getContouredValue: function() {\r\n var viewDate = this.callBase();\r\n return this._updateDateTime(viewDate)\r\n },\r\n _renderWidget: function() {\r\n this.callBase();\r\n this._timeView = this.dateBox._createComponent($(\"
\"), TimeView, {\r\n value: this.dateBoxValue(),\r\n _showClock: !this._isShrinkView(),\r\n use24HourFormat: this._is24HourFormat(),\r\n onValueChanged: this._valueChangedHandler.bind(this),\r\n stylingMode: this.dateBox.option(\"stylingMode\")\r\n });\r\n this._timeView.registerKeyHandler(\"escape\", this._escapeHandler.bind(this))\r\n },\r\n renderOpenedState: function() {\r\n this.callBase();\r\n var popup = this._getPopup();\r\n if (popup) {\r\n popup.$wrapper().toggleClass(DATEBOX_ADAPTIVITY_MODE_CLASS, this._isSmallScreen())\r\n }\r\n clearTimeout(this._repaintTimer);\r\n this._repaintTimer = setTimeout(function() {\r\n this._getPopup() && this._getPopup().repaint()\r\n }.bind(this), 0)\r\n },\r\n isAdaptivityChanged: function() {\r\n var isAdaptiveMode = this._isShrinkView();\r\n var currentAdaptiveMode = this._currentAdaptiveMode;\r\n if (isAdaptiveMode !== currentAdaptiveMode) {\r\n this._currentAdaptiveMode = isAdaptiveMode;\r\n return void 0 !== currentAdaptiveMode\r\n }\r\n return this.callBase()\r\n },\r\n _updateValue: function(preventDefaultValue) {\r\n var date = this.dateBoxValue();\r\n if (!date && !preventDefaultValue) {\r\n date = new Date;\r\n uiDateUtils.normalizeTime(date)\r\n }\r\n this.callBase();\r\n if (this._timeView) {\r\n date && this._timeView.option(\"value\", date);\r\n this._timeView.option(\"use24HourFormat\", this._is24HourFormat())\r\n }\r\n },\r\n _isSmallScreen: function() {\r\n return $(window).width() <= SHRINK_VIEW_SCREEN_WIDTH\r\n },\r\n _isShrinkView: function() {\r\n return !this.dateBox.option(\"showAnalogClock\") || this.dateBox.option(\"adaptivityEnabled\") && this._isSmallScreen()\r\n },\r\n _getBoxItems: function() {\r\n var items = [{\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n name: \"calendar\"\r\n }];\r\n if (!this._isShrinkView()) {\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n name: \"time\"\r\n })\r\n }\r\n return items\r\n },\r\n renderPopupContent: function() {\r\n this.callBase();\r\n this._currentAdaptiveMode = this._isShrinkView();\r\n var $popupContent = this._getPopup().$content();\r\n this._box = this.dateBox._createComponent($(\"
\").appendTo($popupContent), Box, {\r\n direction: \"row\",\r\n crossAlign: \"start\",\r\n items: this._getBoxItems(),\r\n itemTemplate: function(data) {\r\n var $container = $(\"
\");\r\n switch (data.name) {\r\n case \"calendar\":\r\n $container.append(this._widget.$element());\r\n if (this._isShrinkView()) {\r\n $container.append(this._timeView.$element())\r\n }\r\n break;\r\n case \"time\":\r\n $container.append(this._timeView.$element())\r\n }\r\n return $container\r\n }.bind(this)\r\n });\r\n this._attachTabHandler()\r\n },\r\n popupConfig: function(_popupConfig) {\r\n var calendarPopupConfig = this.callBase(_popupConfig);\r\n var result = extend(calendarPopupConfig, {\r\n width: \"auto\",\r\n onShowing: function() {\r\n if (\"fallback\" === this._box.option(\"_layoutStrategy\")) {\r\n var clockMinWidth = this._getPopup().$content().find(\".dx-timeview-clock\").css(\"minWidth\");\r\n this._timeView.$element().css(\"maxWidth\", clockMinWidth)\r\n }\r\n }.bind(this)\r\n });\r\n return result\r\n },\r\n getFirstPopupElement: function() {\r\n return this._timeView._hourBox.$element().find(\"input\")\r\n },\r\n _attachTabHandler: function() {\r\n var dateBox = this.dateBox;\r\n this._timeView._hourBox.registerKeyHandler(\"tab\", (function(e) {\r\n if (e.shiftKey) {\r\n e.preventDefault();\r\n dateBox.focus()\r\n }\r\n }))\r\n },\r\n _preventFocusOnPopup: function(e) {\r\n if (!$(e.target).hasClass(\"dx-texteditor-input\")) {\r\n this.callBase.apply(this, arguments);\r\n if (!this.dateBox._hasFocusClass()) {\r\n this.dateBox.focus()\r\n }\r\n }\r\n },\r\n _updateDateTime: function(date) {\r\n var time = this._timeView.option(\"value\");\r\n date.setHours(time.getHours(), time.getMinutes(), time.getSeconds(), time.getMilliseconds());\r\n return date\r\n },\r\n getValue: function() {\r\n var date = this._widget.option(\"value\");\r\n date = date ? new Date(date) : new Date;\r\n return this._updateDateTime(date)\r\n },\r\n dispose: function() {\r\n clearTimeout(this._removeMinWidthTimer);\r\n clearTimeout(this._repaintTimer);\r\n this.callBase()\r\n }\r\n});\r\nexport default CalendarWithTimeStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.list.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 List from \"../list\";\r\nimport DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport {\r\n noop,\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDate\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n getSizeValue\r\n} from \"../drop_down_editor/utils\";\r\nvar DATE_FORMAT = \"date\";\r\nvar BOUNDARY_VALUES = {\r\n min: new Date(0, 0, 0, 0, 0),\r\n max: new Date(0, 0, 0, 23, 59)\r\n};\r\nvar ListStrategy = DateBoxStrategy.inherit({\r\n NAME: \"List\",\r\n supportedKeys: function() {\r\n return {\r\n tab: function() {\r\n if (this.option(\"opened\")) {\r\n this.close()\r\n }\r\n },\r\n space: noop,\r\n home: noop,\r\n end: noop\r\n }\r\n },\r\n getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n applyValueMode: \"instantly\"\r\n })\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || \"shorttime\"\r\n },\r\n popupConfig: function(_popupConfig) {\r\n return _popupConfig\r\n },\r\n useCurrentDateByDefault: function() {\r\n return true\r\n },\r\n getDefaultDate: function() {\r\n return new Date(null)\r\n },\r\n popupShowingHandler: function() {\r\n this.dateBox._dimensionChanged()\r\n },\r\n _renderWidget: function() {\r\n this.callBase();\r\n this._refreshItems()\r\n },\r\n _getWidgetName: function() {\r\n return List\r\n },\r\n _getWidgetOptions: function() {\r\n return {\r\n itemTemplate: this._timeListItemTemplate.bind(this),\r\n onItemClick: this._listItemClickHandler.bind(this),\r\n tabIndex: -1,\r\n onFocusedItemChanged: this._refreshActiveDescendant.bind(this),\r\n selectionMode: \"single\"\r\n }\r\n },\r\n _refreshActiveDescendant: function(e) {\r\n this.dateBox.setAria(\"activedescendant\", \"\");\r\n this.dateBox.setAria(\"activedescendant\", e.actionValue)\r\n },\r\n _refreshItems: function() {\r\n this._widgetItems = this._getTimeListItems();\r\n this._widget.option(\"items\", this._widgetItems)\r\n },\r\n renderOpenedState: function() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._widget.option(\"focusedElement\", null);\r\n this._setSelectedItemsByValue();\r\n if (this._widget.option(\"templatesRenderAsynchronously\")) {\r\n this._asyncScrollTimeout = setTimeout(this._scrollToSelectedItem.bind(this))\r\n } else {\r\n this._scrollToSelectedItem()\r\n }\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._asyncScrollTimeout)\r\n },\r\n _updateValue: function() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._refreshItems();\r\n this._setSelectedItemsByValue();\r\n this._scrollToSelectedItem()\r\n },\r\n _setSelectedItemsByValue: function() {\r\n var value = this.dateBoxValue();\r\n var dateIndex = this._getDateIndex(value);\r\n if (-1 === dateIndex) {\r\n this._widget.option(\"selectedItems\", [])\r\n } else {\r\n this._widget.option(\"selectedIndex\", dateIndex)\r\n }\r\n },\r\n _scrollToSelectedItem: function() {\r\n this._widget.scrollToItem(this._widget.option(\"selectedIndex\"))\r\n },\r\n _getDateIndex: function(date) {\r\n var result = -1;\r\n for (var i = 0, n = this._widgetItems.length; i < n; i++) {\r\n if (this._areDatesEqual(date, this._widgetItems[i])) {\r\n result = i;\r\n break\r\n }\r\n }\r\n return result\r\n },\r\n _areDatesEqual: function(first, second) {\r\n return isDate(first) && isDate(second) && first.getHours() === second.getHours() && first.getMinutes() === second.getMinutes()\r\n },\r\n _getTimeListItems: function() {\r\n var min = this.dateBox.dateOption(\"min\") || this._getBoundaryDate(\"min\");\r\n var max = this.dateBox.dateOption(\"max\") || this._getBoundaryDate(\"max\");\r\n var value = this.dateBox.dateOption(\"value\") || null;\r\n var delta = max - min;\r\n var minutes = min.getMinutes() % this.dateBox.option(\"interval\");\r\n if (delta < 0) {\r\n return []\r\n }\r\n if (delta > dateUtils.ONE_DAY) {\r\n delta = dateUtils.ONE_DAY\r\n }\r\n if (value - min < dateUtils.ONE_DAY) {\r\n return this._getRangeItems(min, new Date(min), delta)\r\n }\r\n min = this._getBoundaryDate(\"min\");\r\n min.setMinutes(minutes);\r\n if (value && Math.abs(value - max) < dateUtils.ONE_DAY) {\r\n delta = (60 * max.getHours() + Math.abs(max.getMinutes() - minutes)) * dateUtils.ONE_MINUTE\r\n }\r\n return this._getRangeItems(min, new Date(min), delta)\r\n },\r\n _getRangeItems: function(startValue, currentValue, rangeDuration) {\r\n var rangeItems = [];\r\n var interval = this.dateBox.option(\"interval\");\r\n while (currentValue - startValue <= rangeDuration) {\r\n rangeItems.push(new Date(currentValue));\r\n currentValue.setMinutes(currentValue.getMinutes() + interval)\r\n }\r\n return rangeItems\r\n },\r\n _getBoundaryDate: function(boundary) {\r\n var boundaryValue = BOUNDARY_VALUES[boundary];\r\n var currentValue = new Date(ensureDefined(this.dateBox.dateOption(\"value\"), 0));\r\n return new Date(currentValue.getFullYear(), currentValue.getMonth(), currentValue.getDate(), boundaryValue.getHours(), boundaryValue.getMinutes())\r\n },\r\n _timeListItemTemplate: function(itemData) {\r\n var displayFormat = this.dateBox.option(\"displayFormat\");\r\n return dateLocalization.format(itemData, this.getDisplayFormat(displayFormat))\r\n },\r\n _listItemClickHandler: function(e) {\r\n this.dateBox.option(\"opened\", false);\r\n var date = this.dateBox.option(\"value\");\r\n var {\r\n itemData: itemData\r\n } = e;\r\n var hours = itemData.getHours();\r\n var minutes = itemData.getMinutes();\r\n var seconds = itemData.getSeconds();\r\n var year = itemData.getFullYear();\r\n var month = itemData.getMonth();\r\n var day = itemData.getDate();\r\n if (date) {\r\n if (this.dateBox.option(\"dateSerializationFormat\")) {\r\n date = dateSerialization.deserializeDate(date)\r\n } else {\r\n date = new Date(date)\r\n }\r\n date.setHours(hours);\r\n date.setMinutes(minutes);\r\n date.setSeconds(seconds);\r\n date.setFullYear(year);\r\n date.setMonth(month);\r\n date.setDate(day)\r\n } else {\r\n date = new Date(year, month, day, hours, minutes, 0, 0)\r\n }\r\n this.dateBoxValue(date, e.event)\r\n },\r\n getKeyboardListener() {\r\n return this._widget\r\n },\r\n _updatePopupHeight: function() {\r\n var dropDownOptionsHeight = getSizeValue(this.dateBox.option(\"dropDownOptions.height\"));\r\n if (void 0 === dropDownOptionsHeight || \"auto\" === dropDownOptionsHeight) {\r\n this.dateBox._setPopupOption(\"height\", \"auto\");\r\n var popupHeight = this._widget.$element().outerHeight();\r\n var maxHeight = .45 * $(window).height();\r\n this.dateBox._setPopupOption(\"height\", Math.min(popupHeight, maxHeight))\r\n }\r\n this.dateBox._timeList && this.dateBox._timeList.updateDimensions()\r\n },\r\n getParsedText: function(text, format) {\r\n var value = this.callBase(text, format);\r\n if (value) {\r\n value = dateUtils.mergeDates(value, new Date(null), DATE_FORMAT)\r\n }\r\n return value\r\n }\r\n});\r\nexport default ListStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.base.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 hasWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n isDate as isDateType,\r\n isString,\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nimport {\r\n createTextElementHiddenCopy\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n compare as compareVersions\r\n} from \"../../core/utils/version\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n inputType\r\n} from \"../../core/utils/support\";\r\nimport devices from \"../../core/devices\";\r\nimport config from \"../../core/config\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport uiDateUtils from \"./ui.date_utils\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport DropDownEditor from \"../drop_down_editor/ui.drop_down_editor\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport Calendar from \"./ui.date_box.strategy.calendar\";\r\nimport DateView from \"./ui.date_box.strategy.date_view\";\r\nimport Native from \"./ui.date_box.strategy.native\";\r\nimport CalendarWithTime from \"./ui.date_box.strategy.calendar_with_time\";\r\nimport List from \"./ui.date_box.strategy.list\";\r\nvar DATEBOX_CLASS = \"dx-datebox\";\r\nvar DX_AUTO_WIDTH_CLASS = \"dx-auto-width\";\r\nvar DX_INVALID_BADGE_CLASS = \"dx-show-invalid-badge\";\r\nvar DX_CLEAR_BUTTON_CLASS = \"dx-clear-button-area\";\r\nvar DATEBOX_WRAPPER_CLASS = \"dx-datebox-wrapper\";\r\nvar PICKER_TYPE = {\r\n calendar: \"calendar\",\r\n rollers: \"rollers\",\r\n list: \"list\",\r\n native: \"native\"\r\n};\r\nvar TYPE = {\r\n date: \"date\",\r\n datetime: \"datetime\",\r\n time: \"time\"\r\n};\r\nvar STRATEGY_NAME = {\r\n calendar: \"Calendar\",\r\n dateView: \"DateView\",\r\n native: \"Native\",\r\n calendarWithTime: \"CalendarWithTime\",\r\n list: \"List\"\r\n};\r\nvar STRATEGY_CLASSES = {\r\n Calendar: Calendar,\r\n DateView: DateView,\r\n Native: Native,\r\n CalendarWithTime: CalendarWithTime,\r\n List: List\r\n};\r\nvar DateBox = DropDownEditor.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), this._strategy.supportedKeys())\r\n },\r\n _renderButtonContainers: function() {\r\n this.callBase.apply(this, arguments);\r\n this._strategy.customizeButtons()\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n type: \"date\",\r\n showAnalogClock: true,\r\n value: null,\r\n dateSerializationFormat: void 0,\r\n min: void 0,\r\n max: void 0,\r\n displayFormat: null,\r\n interval: 30,\r\n disabledDates: null,\r\n pickerType: PICKER_TYPE.calendar,\r\n invalidDateMessage: messageLocalization.format(\"dxDateBox-validation-datetime\"),\r\n dateOutOfRangeMessage: messageLocalization.format(\"validation-range\"),\r\n applyButtonText: messageLocalization.format(\"OK\"),\r\n adaptivityEnabled: false,\r\n calendarOptions: {},\r\n useHiddenSubmitElement: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n \"dropDownOptions.showTitle\": true\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n buttonsLocation: \"bottom after\"\r\n }\r\n }, {\r\n device: function() {\r\n var realDevice = devices.real();\r\n var platform = realDevice.platform;\r\n return \"ios\" === platform || \"android\" === platform\r\n },\r\n options: {\r\n pickerType: PICKER_TYPE.native\r\n }\r\n }, {\r\n device: function(currentDevice) {\r\n var realDevice = devices.real();\r\n var platform = realDevice.platform;\r\n var version = realDevice.version;\r\n return \"generic\" === platform && \"desktop\" !== currentDevice.deviceType || \"android\" === platform && compareVersions(version, [4, 4]) < 0\r\n },\r\n options: {\r\n pickerType: PICKER_TYPE.rollers\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\",\r\n deviceType: \"desktop\"\r\n },\r\n options: {\r\n buttonsLocation: \"bottom after\"\r\n }\r\n }])\r\n },\r\n _initOptions: function(options) {\r\n this._userOptions = extend({}, options);\r\n this.callBase(options);\r\n this._updatePickerOptions()\r\n },\r\n _updatePickerOptions: function() {\r\n var pickerType = this.option(\"pickerType\");\r\n var type = this.option(\"type\");\r\n if (pickerType === PICKER_TYPE.list && (type === TYPE.datetime || type === TYPE.date)) {\r\n pickerType = PICKER_TYPE.calendar\r\n }\r\n if (type === TYPE.time && pickerType === PICKER_TYPE.calendar) {\r\n pickerType = PICKER_TYPE.list\r\n }\r\n this.option(\"showDropDownButton\", \"generic\" !== devices.real().platform || pickerType !== PICKER_TYPE.native);\r\n this._pickerType = pickerType\r\n },\r\n _init: function() {\r\n this._initStrategy();\r\n this.option(extend({}, this._strategy.getDefaultOptions(), this._userOptions));\r\n delete this._userOptions;\r\n this.callBase()\r\n },\r\n _toLowerCaseFirstLetter: function(string) {\r\n return string.charAt(0).toLowerCase() + string.substr(1)\r\n },\r\n _initStrategy: function() {\r\n var strategyName = this._getStrategyName(this._getFormatType());\r\n var strategy = STRATEGY_CLASSES[strategyName];\r\n if (!(this._strategy && this._strategy.NAME === strategyName)) {\r\n this._strategy = new strategy(this)\r\n }\r\n },\r\n _getFormatType: function() {\r\n var currentType = this.option(\"type\");\r\n var isTime = /h|m|s/g.test(currentType);\r\n var isDate = /d|M|Y/g.test(currentType);\r\n var type = \"\";\r\n if (isDate) {\r\n type += TYPE.date\r\n }\r\n if (isTime) {\r\n type += TYPE.time\r\n }\r\n return type\r\n },\r\n _getStrategyName: function(type) {\r\n var pickerType = this._pickerType;\r\n if (pickerType === PICKER_TYPE.rollers) {\r\n return STRATEGY_NAME.dateView\r\n } else if (pickerType === PICKER_TYPE.native) {\r\n return STRATEGY_NAME.native\r\n }\r\n if (type === TYPE.date) {\r\n return STRATEGY_NAME.calendar\r\n }\r\n if (type === TYPE.datetime) {\r\n return STRATEGY_NAME.calendarWithTime\r\n }\r\n return STRATEGY_NAME.list\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(DATEBOX_CLASS);\r\n this.callBase();\r\n this._refreshFormatClass();\r\n this._refreshPickerTypeClass();\r\n this._strategy.renderInputMinMax(this._input())\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._formatValidationIcon()\r\n },\r\n _renderDimensions: function() {\r\n this.callBase();\r\n this.$element().toggleClass(DX_AUTO_WIDTH_CLASS, !this.option(\"width\"));\r\n this._dimensionChanged()\r\n },\r\n _dimensionChanged: function() {\r\n this.callBase(arguments);\r\n if (this._popup) {\r\n var _this$_strategy$_upda, _this$_strategy;\r\n null === (_this$_strategy$_upda = (_this$_strategy = this._strategy)._updatePopupHeight) || void 0 === _this$_strategy$_upda ? void 0 : _this$_strategy$_upda.call(_this$_strategy)\r\n }\r\n },\r\n _refreshFormatClass: function() {\r\n var $element = this.$element();\r\n each(TYPE, (function(_, item) {\r\n $element.removeClass(DATEBOX_CLASS + \"-\" + item)\r\n }));\r\n $element.addClass(DATEBOX_CLASS + \"-\" + this.option(\"type\"))\r\n },\r\n _refreshPickerTypeClass: function() {\r\n var $element = this.$element();\r\n each(PICKER_TYPE, (function(_, item) {\r\n $element.removeClass(DATEBOX_CLASS + \"-\" + item)\r\n }));\r\n $element.addClass(DATEBOX_CLASS + \"-\" + this._pickerType)\r\n },\r\n _formatValidationIcon: function() {\r\n if (!hasWindow()) {\r\n return\r\n }\r\n var inputElement = this._input().get(0);\r\n var isRtlEnabled = this.option(\"rtlEnabled\");\r\n var clearButtonWidth = this._getClearButtonWidth();\r\n var longestElementDimensions = this._getLongestElementDimensions();\r\n var curWidth = parseFloat(window.getComputedStyle(inputElement).width) - clearButtonWidth;\r\n var shouldHideValidationIcon = longestElementDimensions.width > curWidth;\r\n var style = inputElement.style;\r\n this.$element().toggleClass(DX_INVALID_BADGE_CLASS, !shouldHideValidationIcon);\r\n if (shouldHideValidationIcon) {\r\n if (void 0 === this._storedPadding) {\r\n this._storedPadding = isRtlEnabled ? longestElementDimensions.leftPadding : longestElementDimensions.rightPadding\r\n }\r\n isRtlEnabled ? style.paddingLeft = 0 : style.paddingRight = 0\r\n } else {\r\n isRtlEnabled ? style.paddingLeft = this._storedPadding + \"px\" : style.paddingRight = this._storedPadding + \"px\"\r\n }\r\n },\r\n _getClearButtonWidth: function() {\r\n var clearButtonWidth = 0;\r\n if (this._isClearButtonVisible() && \"\" === this._input().val()) {\r\n var clearButtonElement = this.$element().find(\".\" + DX_CLEAR_BUTTON_CLASS).get(0);\r\n clearButtonWidth = parseFloat(window.getComputedStyle(clearButtonElement).width)\r\n }\r\n return clearButtonWidth\r\n },\r\n _getLongestElementDimensions: function() {\r\n var format = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var longestValue = dateLocalization.format(uiDateUtils.getLongestDate(format, dateLocalization.getMonthNames(), dateLocalization.getDayNames()), format);\r\n var $input = this._input();\r\n var inputElement = $input.get(0);\r\n var $longestValueElement = createTextElementHiddenCopy($input, longestValue);\r\n var isPaddingStored = void 0 !== this._storedPadding;\r\n var storedPadding = !isPaddingStored ? 0 : this._storedPadding;\r\n $longestValueElement.appendTo(this.$element());\r\n var elementWidth = parseFloat(window.getComputedStyle($longestValueElement.get(0)).width);\r\n var rightPadding = parseFloat(window.getComputedStyle(inputElement).paddingRight);\r\n var leftPadding = parseFloat(window.getComputedStyle(inputElement).paddingLeft);\r\n var necessaryWidth = elementWidth + leftPadding + rightPadding + storedPadding;\r\n $longestValueElement.remove();\r\n return {\r\n width: necessaryWidth,\r\n leftPadding: leftPadding,\r\n rightPadding: rightPadding\r\n }\r\n },\r\n _getKeyboardListeners() {\r\n return this.callBase().concat([this._strategy && this._strategy.getKeyboardListener()])\r\n },\r\n _renderPopup: function() {\r\n this.callBase();\r\n this._popup.$wrapper().addClass(DATEBOX_WRAPPER_CLASS);\r\n this._renderPopupWrapper()\r\n },\r\n _popupConfig: function() {\r\n var popupConfig = this.callBase();\r\n return extend(this._strategy.popupConfig(popupConfig), {\r\n title: this._getPopupTitle(),\r\n dragEnabled: false\r\n })\r\n },\r\n _renderPopupWrapper: function() {\r\n if (!this._popup) {\r\n return\r\n }\r\n var $element = this.$element();\r\n var classPostfixes = extend({}, TYPE, PICKER_TYPE);\r\n each(classPostfixes, function(_, item) {\r\n $element.removeClass(DATEBOX_WRAPPER_CLASS + \"-\" + item)\r\n }.bind(this));\r\n this._popup.$wrapper().addClass(DATEBOX_WRAPPER_CLASS + \"-\" + this.option(\"type\")).addClass(DATEBOX_WRAPPER_CLASS + \"-\" + this._pickerType)\r\n },\r\n _renderPopupContent: function() {\r\n this.callBase();\r\n this._strategy.renderPopupContent()\r\n },\r\n _getFirstPopupElement: function() {\r\n return this._strategy.getFirstPopupElement() || this.callBase()\r\n },\r\n _getLastPopupElement: function() {\r\n return this._strategy.getLastPopupElement() || this.callBase()\r\n },\r\n _popupShowingHandler: function() {\r\n this.callBase();\r\n this._strategy.popupShowingHandler()\r\n },\r\n _popupShownHandler: function() {\r\n this.callBase();\r\n this._strategy.renderOpenedState()\r\n },\r\n _popupHiddenHandler: function() {\r\n this.callBase();\r\n this._strategy.renderOpenedState();\r\n this._strategy.popupHiddenHandler()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._formatValidationIcon()\r\n }\r\n },\r\n _clearValueHandler: function(e) {\r\n this.option(\"text\", \"\");\r\n this.callBase(e)\r\n },\r\n _readOnlyPropValue: function() {\r\n if (this._pickerType === PICKER_TYPE.rollers) {\r\n return true\r\n }\r\n var platform = devices.real().platform;\r\n var isCustomValueDisabled = this._isNativeType() && (\"ios\" === platform || \"android\" === platform);\r\n if (isCustomValueDisabled) {\r\n return this.option(\"readOnly\")\r\n }\r\n return this.callBase()\r\n },\r\n _isClearButtonVisible: function() {\r\n return this.callBase() && !this._isNativeType()\r\n },\r\n _renderValue: function() {\r\n var value = this.dateOption(\"value\");\r\n this.option(\"text\", this._getDisplayedText(value));\r\n this._strategy.renderValue();\r\n return this.callBase()\r\n },\r\n _setSubmitValue: function() {\r\n var value = this.dateOption(\"value\");\r\n var dateSerializationFormat = this.option(\"dateSerializationFormat\");\r\n var submitFormat = uiDateUtils.SUBMIT_FORMATS_MAP[this.option(\"type\")];\r\n var submitValue = dateSerializationFormat ? dateSerialization.serializeDate(value, dateSerializationFormat) : uiDateUtils.toStandardDateFormat(value, submitFormat);\r\n this._getSubmitElement().val(submitValue)\r\n },\r\n _getDisplayedText: function(value) {\r\n var mode = this.option(\"mode\");\r\n var displayedText;\r\n if (\"text\" === mode) {\r\n var displayFormat = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n displayedText = dateLocalization.format(value, displayFormat)\r\n } else {\r\n var format = this._getFormatByMode(mode);\r\n if (format) {\r\n displayedText = dateLocalization.format(value, format)\r\n } else {\r\n displayedText = uiDateUtils.toStandardDateFormat(value, mode)\r\n }\r\n }\r\n return displayedText\r\n },\r\n _getFormatByMode: function(mode) {\r\n return inputType(mode) ? null : uiDateUtils.FORMATS_MAP[mode]\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n var text = this.option(\"text\");\r\n var currentValue = this.dateOption(\"value\");\r\n if (text === this._getDisplayedText(currentValue)) {\r\n this._applyInternalValidation(currentValue);\r\n return\r\n }\r\n var parsedDate = this._getParsedDate(text);\r\n var value = null !== currentValue && void 0 !== currentValue ? currentValue : this._getDateByDefault();\r\n var type = this.option(\"type\");\r\n var newValue = uiDateUtils.mergeDates(value, parsedDate, type);\r\n var date = parsedDate && \"time\" === type ? newValue : parsedDate;\r\n if (this._applyInternalValidation(date).isValid) {\r\n var displayedText = this._getDisplayedText(newValue);\r\n if (value && newValue && value.getTime() === newValue.getTime() && displayedText !== text) {\r\n this._renderValue()\r\n } else {\r\n this.dateValue(newValue, e)\r\n }\r\n }\r\n },\r\n _getDateByDefault: function() {\r\n return this._strategy.useCurrentDateByDefault() && this._strategy.getDefaultDate()\r\n },\r\n _getParsedDate: function(text) {\r\n var displayFormat = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var parsedText = this._strategy.getParsedText(text, displayFormat);\r\n return null !== parsedText && void 0 !== parsedText ? parsedText : void 0\r\n },\r\n _applyInternalValidation(value) {\r\n var text = this.option(\"text\");\r\n var hasText = !!text && null !== value;\r\n var isDate = !!value && isDateType(value) && !isNaN(value.getTime());\r\n var isDateInRange = isDate && dateUtils.dateInRange(value, this.dateOption(\"min\"), this.dateOption(\"max\"), this.option(\"type\"));\r\n var isValid = !hasText && !value || isDateInRange;\r\n var validationMessage = \"\";\r\n if (!isDate) {\r\n validationMessage = this.option(\"invalidDateMessage\")\r\n } else if (!isDateInRange) {\r\n validationMessage = this.option(\"dateOutOfRangeMessage\")\r\n }\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n editorSpecific: true,\r\n message: validationMessage\r\n }\r\n });\r\n return {\r\n isValid: isValid,\r\n isDate: isDate\r\n }\r\n },\r\n _applyCustomValidation: function(value) {\r\n this.validationRequest.fire({\r\n editor: this,\r\n value: this._serializeDate(value)\r\n })\r\n },\r\n _isValueChanged: function(newValue) {\r\n var oldValue = this.dateOption(\"value\");\r\n var oldTime = oldValue && oldValue.getTime();\r\n var newTime = newValue && newValue.getTime();\r\n return oldTime !== newTime\r\n },\r\n _isTextChanged: function(newValue) {\r\n var oldText = this.option(\"text\");\r\n var newText = newValue && this._getDisplayedText(newValue) || \"\";\r\n return oldText !== newText\r\n },\r\n _renderProps: function() {\r\n this.callBase();\r\n this._input().attr(\"autocomplete\", \"off\")\r\n },\r\n _renderOpenedState: function() {\r\n if (!this._isNativeType()) {\r\n this.callBase()\r\n }\r\n if (this._strategy.isAdaptivityChanged()) {\r\n this._refreshStrategy()\r\n }\r\n },\r\n _getPopupTitle: function() {\r\n var placeholder = this.option(\"placeholder\");\r\n if (placeholder) {\r\n return placeholder\r\n }\r\n var type = this.option(\"type\");\r\n if (type === TYPE.time) {\r\n return messageLocalization.format(\"dxDateBox-simulatedDataPickerTitleTime\")\r\n }\r\n if (type === TYPE.date || type === TYPE.datetime) {\r\n return messageLocalization.format(\"dxDateBox-simulatedDataPickerTitleDate\")\r\n }\r\n return \"\"\r\n },\r\n _renderPlaceholder: function() {\r\n this._popup && this._popup.option(\"title\", this._getPopupTitle());\r\n this.callBase()\r\n },\r\n _refreshStrategy: function() {\r\n this._strategy.dispose();\r\n this._initStrategy();\r\n this.option(this._strategy.getDefaultOptions());\r\n this._refresh()\r\n },\r\n _applyButtonHandler: function(e) {\r\n var value = this._strategy.getValue();\r\n var {\r\n isValid: isValid,\r\n isDate: isDate\r\n } = this._applyInternalValidation(value);\r\n if (isValid) {\r\n this.dateValue(value, e.event)\r\n } else if (isDate) {\r\n var displayedText = this._getDisplayedText(value);\r\n this.option(\"text\", displayedText);\r\n this._renderDisplayText(displayedText)\r\n }\r\n this.callBase()\r\n },\r\n _dispose: function() {\r\n var _this$_strategy2;\r\n this.callBase();\r\n null === (_this$_strategy2 = this._strategy) || void 0 === _this$_strategy2 ? void 0 : _this$_strategy2.dispose()\r\n },\r\n _isNativeType: function() {\r\n return this._pickerType === PICKER_TYPE.native\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"showClearButton\":\r\n case \"buttons\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"pickerType\":\r\n this._updatePickerOptions({\r\n pickerType: args.value\r\n });\r\n this._refreshStrategy();\r\n this._refreshPickerTypeClass();\r\n this._invalidate();\r\n break;\r\n case \"type\":\r\n this._updatePickerOptions({\r\n format: args.value\r\n });\r\n this._refreshStrategy();\r\n this._refreshFormatClass();\r\n this._renderPopupWrapper();\r\n this._formatValidationIcon();\r\n this._updateValue();\r\n break;\r\n case \"placeholder\":\r\n this._renderPlaceholder();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n var isValid = this.option(\"isValid\");\r\n this._applyInternalValidation(this.dateOption(\"value\"));\r\n if (!isValid) {\r\n this._applyCustomValidation(this.dateOption(\"value\"))\r\n }\r\n this._invalidate();\r\n break;\r\n case \"dateSerializationFormat\":\r\n case \"interval\":\r\n case \"disabledDates\":\r\n case \"calendarOptions\":\r\n this._invalidate();\r\n break;\r\n case \"displayFormat\":\r\n this.option(\"text\", this._getDisplayedText(this.dateOption(\"value\")));\r\n this._renderInputValue();\r\n break;\r\n case \"text\":\r\n this._strategy.textChangedHandler(args.value);\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"isValid\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"showDropDownButton\":\r\n this._formatValidationIcon();\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"readOnly\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"invalidDateMessage\":\r\n case \"dateOutOfRangeMessage\":\r\n case \"adaptivityEnabled\":\r\n case \"showAnalogClock\":\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _getSerializationFormat: function() {\r\n var value = this.option(\"value\");\r\n if (this.option(\"dateSerializationFormat\") && config().forceIsoDateParsing) {\r\n return this.option(\"dateSerializationFormat\")\r\n }\r\n if (isNumeric(value)) {\r\n return \"number\"\r\n }\r\n if (!isString(value)) {\r\n return\r\n }\r\n return dateSerialization.getDateSerializationFormat(value)\r\n },\r\n _updateValue: function(value) {\r\n this.callBase();\r\n this._applyInternalValidation(null !== value && void 0 !== value ? value : this.dateOption(\"value\"))\r\n },\r\n dateValue: function(value, dxEvent) {\r\n var isValueChanged = this._isValueChanged(value);\r\n if (isValueChanged && dxEvent) {\r\n this._saveValueChangeEvent(dxEvent)\r\n }\r\n if (!isValueChanged) {\r\n if (this._isTextChanged(value)) {\r\n this._updateValue(value)\r\n } else if (\"\" === this.option(\"text\")) {\r\n this._applyCustomValidation(value)\r\n }\r\n }\r\n return this.dateOption(\"value\", value)\r\n },\r\n dateOption: function(optionName, value) {\r\n if (1 === arguments.length) {\r\n return dateSerialization.deserializeDate(this.option(optionName))\r\n }\r\n this.option(optionName, this._serializeDate(value))\r\n },\r\n _serializeDate: function(date) {\r\n var serializationFormat = this._getSerializationFormat();\r\n return dateSerialization.serializeDate(date, serializationFormat)\r\n },\r\n _clearValue: function() {\r\n var value = this.option(\"value\");\r\n this.callBase();\r\n if (null === value) {\r\n this._applyCustomValidation(null)\r\n }\r\n },\r\n reset: function() {\r\n var value = this.option(\"value\");\r\n this.callBase();\r\n if (null === value) {\r\n this._applyInternalValidation(null)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxDateBox\", DateBox);\r\nexport default DateBox;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.mask.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 addNamespace,\r\n normalizeKeyName,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport {\r\n isFunction,\r\n isString,\r\n isDate,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n clipboardText\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n fitIntoRange,\r\n inRange,\r\n sign\r\n} from \"../../core/utils/math\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n getDatePartIndexByPosition,\r\n renderDateParts\r\n} from \"./ui.date_box.mask.parts\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport {\r\n getRegExpInfo\r\n} from \"../../localization/ldml/date.parser\";\r\nimport {\r\n getFormat\r\n} from \"../../localization/ldml/date.format\";\r\nimport DateBoxBase from \"./ui.date_box.base\";\r\nimport numberLocalization from \"../../localization/number\";\r\nimport devices from \"../../core/devices\";\r\nimport browser from \"../../core/utils/browser\";\r\nvar MASK_EVENT_NAMESPACE = \"dateBoxMask\";\r\nvar FORWARD = 1;\r\nvar BACKWARD = -1;\r\nvar DateBoxMask = DateBoxBase.inherit({\r\n _supportedKeys(e) {\r\n var originalHandlers = this.callBase(e);\r\n var callOriginalHandler = e => {\r\n var originalHandler = originalHandlers[normalizeKeyName(e)];\r\n return originalHandler && originalHandler.apply(this, [e])\r\n };\r\n var applyHandler = (e, maskHandler) => {\r\n if (this._shouldUseOriginalHandler(e)) {\r\n return callOriginalHandler.apply(this, [e])\r\n } else {\r\n return maskHandler.apply(this, [e])\r\n }\r\n };\r\n return extend({}, originalHandlers, {\r\n del: e => applyHandler(e, event => {\r\n this._revertPart(FORWARD);\r\n this._isAllSelected() || event.preventDefault()\r\n }),\r\n backspace: e => applyHandler(e, event => {\r\n this._revertPart(BACKWARD);\r\n this._isAllSelected() || event.preventDefault()\r\n }),\r\n home: e => applyHandler(e, event => {\r\n this._selectFirstPart();\r\n event.preventDefault()\r\n }),\r\n end: e => applyHandler(e, event => {\r\n this._selectLastPart();\r\n event.preventDefault()\r\n }),\r\n escape: e => applyHandler(e, event => {\r\n this._revertChanges(event)\r\n }),\r\n enter: e => applyHandler(e, event => {\r\n this._enterHandler(event)\r\n }),\r\n leftArrow: e => applyHandler(e, event => {\r\n this._selectNextPart(BACKWARD);\r\n event.preventDefault()\r\n }),\r\n rightArrow: e => applyHandler(e, event => {\r\n this._selectNextPart(FORWARD);\r\n event.preventDefault()\r\n }),\r\n upArrow: e => applyHandler(e, event => {\r\n this._upDownArrowHandler(FORWARD);\r\n event.preventDefault()\r\n }),\r\n downArrow: e => applyHandler(e, event => {\r\n this._upDownArrowHandler(BACKWARD);\r\n event.preventDefault()\r\n })\r\n })\r\n },\r\n _shouldUseOriginalHandler(e) {\r\n var isNotDeletingInCalendar = this.option(\"opened\") && e && -1 === [\"backspace\", \"del\"].indexOf(normalizeKeyName(e));\r\n return !this._useMaskBehavior() || isNotDeletingInCalendar || e && e.altKey\r\n },\r\n _upDownArrowHandler(step) {\r\n this._setNewDateIfEmpty();\r\n var originalValue = this._getActivePartValue(this._initialMaskValue);\r\n var currentValue = this._getActivePartValue();\r\n var delta = currentValue - originalValue;\r\n this._loadMaskValue(this._initialMaskValue);\r\n this._partIncrease(delta + step, true)\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n useMaskBehavior: false,\r\n emptyDateValue: new Date(2e3, 0, 1, 0, 0, 0)\r\n })\r\n },\r\n _isSingleCharKey(_ref) {\r\n var {\r\n originalEvent: originalEvent,\r\n alt: alt\r\n } = _ref;\r\n var key = originalEvent.data || (\"space\" === normalizeKeyName(originalEvent) ? \" \" : originalEvent.key);\r\n return \"string\" === typeof key && 1 === key.length && !alt && !isCommandKeyPressed(originalEvent)\r\n },\r\n _isSingleDigitKey(e) {\r\n var _e$originalEvent;\r\n var data = null === (_e$originalEvent = e.originalEvent) || void 0 === _e$originalEvent ? void 0 : _e$originalEvent.data;\r\n return 1 === (null === data || void 0 === data ? void 0 : data.length) && parseInt(data, 10)\r\n },\r\n _useBeforeInputEvent: function() {\r\n var device = devices.real();\r\n return device.android && device.version[0] > 4\r\n },\r\n _keyboardHandler(e) {\r\n var key = e.originalEvent.key;\r\n var result = this.callBase(e);\r\n if (!this._useMaskBehavior() || this._useBeforeInputEvent()) {\r\n return result\r\n }\r\n if (browser.chrome && \"Process\" === e.key && 0 === e.code.indexOf(\"Digit\")) {\r\n key = e.code.replace(\"Digit\", \"\");\r\n this._processInputKey(key);\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n } else if (this._isSingleCharKey(e)) {\r\n this._processInputKey(key);\r\n e.originalEvent.preventDefault()\r\n }\r\n return result\r\n },\r\n _maskBeforeInputHandler(e) {\r\n this._maskInputHandler = null;\r\n var {\r\n inputType: inputType\r\n } = e.originalEvent;\r\n if (\"insertCompositionText\" === inputType) {\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n }\r\n var isBackwardDeletion = \"deleteContentBackward\" === inputType;\r\n var isForwardDeletion = \"deleteContentForward\" === inputType;\r\n if (isBackwardDeletion || isForwardDeletion) {\r\n var direction = isBackwardDeletion ? BACKWARD : FORWARD;\r\n this._maskInputHandler = () => {\r\n this._revertPart();\r\n this._selectNextPart(direction)\r\n }\r\n }\r\n if (!this._useMaskBehavior() || !this._isSingleCharKey(e)) {\r\n return\r\n }\r\n var key = e.originalEvent.data;\r\n this._processInputKey(key);\r\n e.preventDefault();\r\n return true\r\n },\r\n _keyPressHandler(e) {\r\n var {\r\n originalEvent: event\r\n } = e;\r\n if (\"insertCompositionText\" === (null === event || void 0 === event ? void 0 : event.inputType) && this._isSingleDigitKey(e)) {\r\n this._processInputKey(event.data);\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart()\r\n }\r\n this.callBase(e);\r\n if (this._maskInputHandler) {\r\n this._maskInputHandler();\r\n this._maskInputHandler = null\r\n }\r\n },\r\n _processInputKey(key) {\r\n if (this._isAllSelected()) {\r\n this._activePartIndex = 0\r\n }\r\n this._setNewDateIfEmpty();\r\n if (isNaN(parseInt(key))) {\r\n this._searchString(key)\r\n } else {\r\n this._searchNumber(key)\r\n }\r\n },\r\n _isAllSelected() {\r\n var caret = this._caret();\r\n return caret.end - caret.start === this.option(\"text\").length\r\n },\r\n _getFormatPattern() {\r\n if (this._formatPattern) {\r\n return this._formatPattern\r\n }\r\n var format = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var isLDMLPattern = isString(format) && !dateLocalization._getPatternByFormat(format);\r\n if (isLDMLPattern) {\r\n this._formatPattern = format\r\n } else {\r\n this._formatPattern = getFormat((function(value) {\r\n return dateLocalization.format(value, format)\r\n }))\r\n }\r\n return this._formatPattern\r\n },\r\n _setNewDateIfEmpty() {\r\n if (!this._maskValue) {\r\n var value = \"time\" === this.option(\"type\") ? new Date(null) : new Date;\r\n this._maskValue = value;\r\n this._initialMaskValue = value;\r\n this._renderDateParts()\r\n }\r\n },\r\n _partLimitsReached(max) {\r\n var maxLimitLength = String(max).length;\r\n var formatLength = this._getActivePartProp(\"pattern\").length;\r\n var isShortFormat = 1 === formatLength;\r\n var maxSearchLength = isShortFormat ? maxLimitLength : Math.min(formatLength, maxLimitLength);\r\n var isLengthExceeded = this._searchValue.length === maxSearchLength;\r\n var isValueOverflowed = parseInt(this._searchValue + \"0\") > max;\r\n return isLengthExceeded || isValueOverflowed\r\n },\r\n _searchNumber(char) {\r\n var {\r\n max: max\r\n } = this._getActivePartLimits();\r\n var maxLimitLength = String(max).length;\r\n this._searchValue = (this._searchValue + char).substr(-maxLimitLength);\r\n if (isNaN(this._searchValue)) {\r\n this._searchValue = char\r\n }\r\n this._setActivePartValue(this._searchValue);\r\n if (this._partLimitsReached(max)) {\r\n this._selectNextPart(FORWARD)\r\n }\r\n },\r\n _searchString(char) {\r\n if (!isNaN(parseInt(this._getActivePartProp(\"text\")))) {\r\n return\r\n }\r\n var limits = this._getActivePartProp(\"limits\")(this._maskValue);\r\n var startString = this._searchValue + char.toLowerCase();\r\n var endLimit = limits.max - limits.min;\r\n for (var i = 0; i <= endLimit; i++) {\r\n this._loadMaskValue(this._initialMaskValue);\r\n this._partIncrease(i + 1);\r\n if (0 === this._getActivePartProp(\"text\").toLowerCase().indexOf(startString)) {\r\n this._searchValue = startString;\r\n return\r\n }\r\n }\r\n this._setNewDateIfEmpty();\r\n if (this._searchValue) {\r\n this._clearSearchValue();\r\n this._searchString(char)\r\n }\r\n },\r\n _clearSearchValue() {\r\n this._searchValue = \"\"\r\n },\r\n _revertPart: function(direction) {\r\n if (!this._isAllSelected()) {\r\n var actual = this._getActivePartValue(this.option(\"emptyDateValue\"));\r\n this._setActivePartValue(actual);\r\n this._selectNextPart(direction)\r\n }\r\n this._clearSearchValue()\r\n },\r\n _useMaskBehavior() {\r\n return this.option(\"useMaskBehavior\") && \"text\" === this.option(\"mode\")\r\n },\r\n _prepareRegExpInfo() {\r\n this._regExpInfo = getRegExpInfo(this._getFormatPattern(), dateLocalization);\r\n var regExp = this._regExpInfo.regexp;\r\n var flags = regExp.flags;\r\n var convertedRegExp = numberLocalization.convertDigits(this._regExpInfo.regexp.source, false);\r\n this._regExpInfo.regexp = RegExp(convertedRegExp, flags)\r\n },\r\n _initMaskState() {\r\n this._activePartIndex = 0;\r\n this._formatPattern = null;\r\n this._prepareRegExpInfo();\r\n this._loadMaskValue()\r\n },\r\n _renderMask() {\r\n this.callBase();\r\n this._detachMaskEvents();\r\n this._clearMaskState();\r\n if (this._useMaskBehavior()) {\r\n this._attachMaskEvents();\r\n this._initMaskState();\r\n this._renderDateParts()\r\n }\r\n },\r\n _renderDateParts() {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var text = this.option(\"text\") || this._getDisplayedText(this._maskValue);\r\n if (text) {\r\n this._dateParts = renderDateParts(text, this._regExpInfo);\r\n if (!this._input().is(\":hidden\")) {\r\n this._selectNextPart()\r\n }\r\n }\r\n },\r\n _detachMaskEvents() {\r\n eventsEngine.off(this._input(), \".\" + MASK_EVENT_NAMESPACE)\r\n },\r\n _attachMaskEvents() {\r\n eventsEngine.on(this._input(), addNamespace(\"dxclick\", MASK_EVENT_NAMESPACE), this._maskClickHandler.bind(this));\r\n eventsEngine.on(this._input(), addNamespace(\"paste\", MASK_EVENT_NAMESPACE), this._maskPasteHandler.bind(this));\r\n eventsEngine.on(this._input(), addNamespace(\"drop\", MASK_EVENT_NAMESPACE), () => {\r\n this._renderSelectedPart()\r\n });\r\n eventsEngine.on(this._input(), addNamespace(\"compositionend\", MASK_EVENT_NAMESPACE), this._maskCompositionEndHandler.bind(this));\r\n if (this._useBeforeInputEvent()) {\r\n eventsEngine.on(this._input(), addNamespace(\"beforeinput\", MASK_EVENT_NAMESPACE), this._maskBeforeInputHandler.bind(this))\r\n }\r\n },\r\n _renderSelectedPart() {\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart()\r\n },\r\n _selectLastPart() {\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = this._dateParts.length;\r\n this._selectNextPart(BACKWARD)\r\n }\r\n },\r\n _selectFirstPart() {\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = -1;\r\n this._selectNextPart(FORWARD)\r\n }\r\n },\r\n _onMouseWheel(e) {\r\n if (this._useMaskBehavior()) {\r\n this._partIncrease(e.delta > 0 ? FORWARD : BACKWARD, e)\r\n }\r\n },\r\n _selectNextPart() {\r\n var step = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0;\r\n if (!this.option(\"text\") || this._disposed) {\r\n return\r\n }\r\n if (step) {\r\n this._initialMaskValue = new Date(this._maskValue)\r\n }\r\n var index = fitIntoRange(this._activePartIndex + step, 0, this._dateParts.length - 1);\r\n if (this._dateParts[index].isStub) {\r\n var isBoundaryIndex = 0 === index && step < 0 || index === this._dateParts.length - 1 && step > 0;\r\n if (!isBoundaryIndex) {\r\n this._selectNextPart(step >= 0 ? step + 1 : step - 1);\r\n return\r\n } else {\r\n index = this._activePartIndex\r\n }\r\n }\r\n if (this._activePartIndex !== index) {\r\n this._clearSearchValue()\r\n }\r\n this._activePartIndex = index;\r\n this._caret(this._getActivePartProp(\"caret\"))\r\n },\r\n _getRealLimitsPattern() {\r\n if (\"d\" === this._getActivePartProp(\"pattern\")[0]) {\r\n return \"dM\"\r\n }\r\n },\r\n _getActivePartLimits(lockOtherParts) {\r\n var limitFunction = this._getActivePartProp(\"limits\");\r\n return limitFunction(this._maskValue, lockOtherParts && this._getRealLimitsPattern())\r\n },\r\n _getActivePartValue(dateValue) {\r\n dateValue = dateValue || this._maskValue;\r\n var getter = this._getActivePartProp(\"getter\");\r\n return isFunction(getter) ? getter(dateValue) : dateValue[getter]()\r\n },\r\n _addLeadingZeroes(value) {\r\n var zeroes = this._searchValue.match(/^0+/);\r\n var limits = this._getActivePartLimits();\r\n var maxLimitLength = String(limits.max).length;\r\n return ((zeroes && zeroes[0] || \"\") + String(value)).substr(-maxLimitLength)\r\n },\r\n _setActivePartValue(value, dateValue) {\r\n dateValue = dateValue || this._maskValue;\r\n var setter = this._getActivePartProp(\"setter\");\r\n var limits = this._getActivePartLimits();\r\n value = inRange(value, limits.min, limits.max) ? value : value % 10;\r\n value = this._addLeadingZeroes(fitIntoRange(value, limits.min, limits.max));\r\n isFunction(setter) ? setter(dateValue, value) : dateValue[setter](value);\r\n this._renderDisplayText(this._getDisplayedText(dateValue));\r\n this._renderDateParts()\r\n },\r\n _getActivePartProp(property) {\r\n if (!this._dateParts || !this._dateParts[this._activePartIndex]) {\r\n return\r\n }\r\n return this._dateParts[this._activePartIndex][property]\r\n },\r\n _loadMaskValue() {\r\n var value = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.dateOption(\"value\");\r\n this._maskValue = value && new Date(value);\r\n this._initialMaskValue = value && new Date(value)\r\n },\r\n _saveMaskValue() {\r\n var value = this._maskValue && new Date(this._maskValue);\r\n if (value && \"date\" === this.option(\"type\")) {\r\n value.setHours(0, 0, 0, 0)\r\n }\r\n this._initialMaskValue = new Date(value);\r\n this.dateOption(\"value\", value)\r\n },\r\n _revertChanges() {\r\n this._loadMaskValue();\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._renderDateParts()\r\n },\r\n _renderDisplayText(text) {\r\n this.callBase(text);\r\n if (this._useMaskBehavior()) {\r\n this.option(\"text\", text)\r\n }\r\n },\r\n _partIncrease(step, lockOtherParts) {\r\n this._setNewDateIfEmpty();\r\n var {\r\n max: max,\r\n min: min\r\n } = this._getActivePartLimits(lockOtherParts);\r\n var limitDelta = max - min;\r\n if (1 === limitDelta) {\r\n limitDelta++\r\n }\r\n var newValue = step + this._getActivePartValue();\r\n if (newValue > max) {\r\n newValue = this._applyLimits(newValue, {\r\n limitBase: min,\r\n limitClosest: max,\r\n limitDelta: limitDelta\r\n })\r\n } else if (newValue < min) {\r\n newValue = this._applyLimits(newValue, {\r\n limitBase: max,\r\n limitClosest: min,\r\n limitDelta: limitDelta\r\n })\r\n }\r\n this._setActivePartValue(newValue)\r\n },\r\n _applyLimits(newValue, _ref2) {\r\n var {\r\n limitBase: limitBase,\r\n limitClosest: limitClosest,\r\n limitDelta: limitDelta\r\n } = _ref2;\r\n var delta = (newValue - limitClosest) % limitDelta;\r\n return delta ? limitBase + delta - 1 * sign(delta) : limitClosest\r\n },\r\n _maskClickHandler() {\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = getDatePartIndexByPosition(this._dateParts, this._caret().start);\r\n if (isDefined(this._activePartIndex)) {\r\n this._caret(this._getActivePartProp(\"caret\"))\r\n } else {\r\n this._selectLastPart()\r\n }\r\n }\r\n },\r\n _maskCompositionEndHandler(e) {\r\n if (browser.msie && this._isSingleDigitKey(e)) {\r\n var key = e.originalEvent.data;\r\n this._processInputKey(key)\r\n } else {\r\n this._input().val(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart();\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n }\r\n },\r\n _maskPasteHandler(e) {\r\n var newText = this._replaceSelectedText(this.option(\"text\"), this._caret(), clipboardText(e));\r\n var date = dateLocalization.parse(newText, this._getFormatPattern());\r\n if (date && this._isDateValid(date)) {\r\n this._maskValue = date;\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._renderDateParts();\r\n this._selectNextPart()\r\n }\r\n e.preventDefault()\r\n },\r\n _isDateValid: date => isDate(date) && !isNaN(date),\r\n _isValueDirty() {\r\n var value = this.dateOption(\"value\");\r\n return (this._maskValue && this._maskValue.getTime()) !== (value && value.getTime())\r\n },\r\n _fireChangeEvent() {\r\n this._clearSearchValue();\r\n if (this._isValueDirty()) {\r\n eventsEngine.trigger(this._input(), \"change\")\r\n }\r\n },\r\n _enterHandler(e) {\r\n this._fireChangeEvent();\r\n this._selectNextPart(FORWARD);\r\n e.preventDefault()\r\n },\r\n _focusOutHandler(e) {\r\n this.callBase(e);\r\n if (this._useMaskBehavior() && !e.isDefaultPrevented()) {\r\n this._fireChangeEvent();\r\n this._selectFirstPart(e)\r\n }\r\n },\r\n _valueChangeEventHandler(e) {\r\n var text = this.option(\"text\");\r\n if (this._useMaskBehavior()) {\r\n this._saveValueChangeEvent(e);\r\n if (!text) {\r\n this._maskValue = null\r\n } else if (null === this._maskValue) {\r\n this._loadMaskValue(text)\r\n }\r\n this._saveMaskValue()\r\n } else {\r\n this.callBase(e)\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"useMaskBehavior\":\r\n this._renderMask();\r\n break;\r\n case \"displayFormat\":\r\n case \"mode\":\r\n this.callBase(args);\r\n this._renderMask();\r\n break;\r\n case \"value\":\r\n this._loadMaskValue();\r\n this.callBase(args);\r\n this._renderDateParts();\r\n break;\r\n case \"emptyDateValue\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearMaskState() {\r\n this._clearSearchValue();\r\n delete this._dateParts;\r\n delete this._activePartIndex;\r\n delete this._maskValue\r\n },\r\n reset() {\r\n this.callBase();\r\n this._clearMaskState();\r\n this._activePartIndex = 0\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._detachMaskEvents();\r\n this._clearMaskState()\r\n }\r\n});\r\nexport default DateBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 DateBoxMask from \"./ui.date_box.mask\";\r\nregisterComponent(\"dxDateBox\", DateBoxMask);\r\nexport default DateBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/date_box.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 DateBox from \"./date_box/ui.date_box\";\r\nexport default DateBox;\r\n","/**\r\n * DevExtreme (esm/ui/drop_down_menu.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 devices from \"../core/devices\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport Widget from \"./widget/ui.widget\";\r\nimport Button from \"./button\";\r\nimport Popover from \"./popover\";\r\nimport DataHelperMixin from \"../data_helper\";\r\nimport List from \"./list\";\r\nimport {\r\n isMaterial\r\n} from \"./themes\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../core/templates/child_default_template\";\r\nvar DROP_DOWN_MENU_CLASS = \"dx-dropdownmenu\";\r\nvar DROP_DOWN_MENU_POPUP_CLASS = \"dx-dropdownmenu-popup\";\r\nvar DROP_DOWN_MENU_POPUP_WRAPPER_CLASS = \"dx-dropdownmenu-popup-wrapper\";\r\nvar DROP_DOWN_MENU_LIST_CLASS = \"dx-dropdownmenu-list\";\r\nvar DROP_DOWN_MENU_BUTTON_CLASS = \"dx-dropdownmenu-button\";\r\nvar POPUP_OPTION_MAP = {\r\n popupWidth: \"width\",\r\n popupHeight: \"height\",\r\n popupMaxHeight: \"maxHeight\",\r\n popupAutoResizeEnabled: \"autoResizeEnabled\"\r\n};\r\nvar BUTTON_OPTION_MAP = {\r\n buttonIcon: \"icon\",\r\n buttonText: \"text\",\r\n buttonWidth: \"width\",\r\n buttonHeight: \"height\",\r\n buttonTemplate: \"template\"\r\n};\r\nvar DropDownMenu = Widget.inherit({\r\n _supportedKeys: function() {\r\n var extension = {};\r\n if (!this.option(\"opened\") || !this._list.option(\"focusedElement\")) {\r\n extension = this._button._supportedKeys()\r\n }\r\n return extend(this.callBase(), extension, {\r\n tab: function() {\r\n this._popup && this._popup.hide()\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n items: [],\r\n onItemClick: null,\r\n dataSource: null,\r\n itemTemplate: \"item\",\r\n buttonText: \"\",\r\n buttonIcon: \"overflow\",\r\n buttonWidth: void 0,\r\n buttonHeight: void 0,\r\n buttonTemplate: \"content\",\r\n onButtonClick: null,\r\n usePopover: false,\r\n popupWidth: \"auto\",\r\n popupHeight: \"auto\",\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n opened: false,\r\n selectionMode: \"none\",\r\n selectedItemKeys: [],\r\n deferRendering: false,\r\n popupPosition: {\r\n my: \"top center\",\r\n at: \"bottom center\",\r\n collision: \"fit flip\",\r\n offset: {\r\n v: 1\r\n }\r\n },\r\n popupAnimation: void 0,\r\n onItemRendered: null,\r\n menuWidget: List,\r\n popupMaxHeight: void 0,\r\n closeOnClick: true,\r\n useInkRipple: false,\r\n container: void 0,\r\n popupAutoResizeEnabled: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n usePopover: true\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n popupPosition: {\r\n offset: {\r\n v: 4\r\n }\r\n }\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n popupPosition: {\r\n my: \"top \" + (this.option(\"rtlEnabled\") ? \"left\" : \"right\"),\r\n at: \"top \" + (this.option(\"rtlEnabled\") ? \"left\" : \"right\"),\r\n collision: \"flipfit\"\r\n },\r\n popupAnimation: {\r\n show: {\r\n type: \"pop\",\r\n duration: 200,\r\n from: {\r\n scale: 0\r\n },\r\n to: {\r\n scale: 1\r\n }\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 200,\r\n from: {\r\n scale: 1\r\n },\r\n to: {\r\n scale: 0\r\n }\r\n }\r\n }\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n useInkRipple: true\r\n }\r\n }])\r\n },\r\n _initOptions: function(options) {\r\n if (\"android\" === devices.current().platform) {\r\n if (!options.popupPosition) {\r\n options.popupPosition = {\r\n at: (options.usePopover ? \"bottom \" : \"top \") + (options.rtlEnabled ? \"left\" : \"right\")\r\n }\r\n }\r\n }\r\n this.callBase(options)\r\n },\r\n _dataSourceOptions: function() {\r\n return {\r\n paginate: false\r\n }\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(DROP_DOWN_MENU_CLASS);\r\n this._initDataSource();\r\n this._initItemClickAction();\r\n this._initButtonClickAction()\r\n },\r\n _initItemClickAction: function() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n },\r\n _initButtonClickAction: function() {\r\n this._buttonClickAction = this._createActionByOption(\"onButtonClick\")\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n content: new ChildDefaultTemplate(\"content\")\r\n });\r\n this.callBase()\r\n },\r\n _initMarkup: function() {\r\n this._renderButton();\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.setAria({\r\n role: \"menubar\",\r\n haspopup: true,\r\n expanded: this.option(\"opened\")\r\n })\r\n },\r\n _renderContentImpl: function() {\r\n if (this.option(\"opened\")) {\r\n this._renderPopup()\r\n }\r\n },\r\n _clean: function() {\r\n this._cleanFocusState();\r\n if (this._popup) {\r\n this._popup.$element().remove();\r\n delete this._$popup\r\n }\r\n },\r\n _renderButton: function() {\r\n var $button = this.$element().addClass(DROP_DOWN_MENU_BUTTON_CLASS);\r\n var config = this._buttonOptions();\r\n this._button = this._createComponent($button, Button, config)\r\n },\r\n _toggleActiveState: function($element, value, e) {\r\n this._button._toggleActiveState($element, value, e)\r\n },\r\n _buttonOptions: function() {\r\n return {\r\n text: this.option(\"buttonText\"),\r\n icon: this.option(\"buttonIcon\"),\r\n width: this.option(\"buttonWidth\"),\r\n height: this.option(\"buttonHeight\"),\r\n useInkRipple: this.option(\"useInkRipple\"),\r\n template: this.option(\"buttonTemplate\"),\r\n focusStateEnabled: false,\r\n onClick: function(e) {\r\n this.option(\"opened\", !this.option(\"opened\"));\r\n this._buttonClickAction(e)\r\n }.bind(this)\r\n }\r\n },\r\n _toggleMenuVisibility: function(opened) {\r\n var state = void 0 === opened ? !this._popup.option(\"visible\") : opened;\r\n if (opened) {\r\n this._renderPopup()\r\n }\r\n this._popup.toggle(state);\r\n this.setAria(\"expanded\", state)\r\n },\r\n _renderPopup: function() {\r\n if (this._$popup) {\r\n return\r\n }\r\n var $popup = this._$popup = $(\"
\").appendTo(this.$element());\r\n var config = this._popupOptions();\r\n this._popup = this._createComponent($popup, Popover, config)\r\n },\r\n _popupOptions: function() {\r\n var usePopup = !this.option(\"usePopover\");\r\n return {\r\n onInitialized: function(args) {\r\n args.component.$wrapper().addClass(DROP_DOWN_MENU_POPUP_WRAPPER_CLASS).toggleClass(DROP_DOWN_MENU_POPUP_CLASS, usePopup)\r\n },\r\n visible: this.option(\"opened\"),\r\n deferRendering: false,\r\n contentTemplate: function(contentElement) {\r\n this._renderList(contentElement)\r\n }.bind(this),\r\n position: this.option(\"popupPosition\"),\r\n animation: this.option(\"popupAnimation\"),\r\n onOptionChanged: function(args) {\r\n if (\"visible\" === args.name) {\r\n this.option(\"opened\", args.value)\r\n }\r\n }.bind(this),\r\n target: this.$element(),\r\n height: this.option(\"popupHeight\"),\r\n width: this.option(\"popupWidth\"),\r\n maxHeight: this.option(\"popupMaxHeight\"),\r\n container: this.option(\"container\"),\r\n autoResizeEnabled: this.option(\"popupAutoResizeEnabled\")\r\n }\r\n },\r\n _renderList: function(contentElement) {\r\n var $content = $(contentElement);\r\n var listConfig = this._listOptions();\r\n $content.addClass(DROP_DOWN_MENU_LIST_CLASS);\r\n this._list = this._createComponent($content, this.option(\"menuWidget\"), listConfig);\r\n this._list._getAriaTarget = function() {\r\n return this.$element()\r\n }.bind(this);\r\n this._setListDataSource();\r\n var listMaxHeight = .5 * $(window).height();\r\n if ($content.height() > listMaxHeight) {\r\n $content.height(listMaxHeight)\r\n }\r\n },\r\n _listOptions: function() {\r\n return {\r\n pageLoadMode: \"scrollBottom\",\r\n indicateLoading: false,\r\n noDataText: \"\",\r\n selectionMode: this.option(\"selectionMode\"),\r\n selectedItemKeys: this.option(\"selectedItemKeys\"),\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n onItemClick: function(e) {\r\n if (this.option(\"closeOnClick\")) {\r\n this.option(\"opened\", false)\r\n }\r\n this._itemClickAction(e)\r\n }.bind(this),\r\n tabIndex: -1,\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n activeStateEnabled: this.option(\"activeStateEnabled\"),\r\n onItemRendered: this.option(\"onItemRendered\"),\r\n _itemAttributes: {\r\n role: \"menuitem\"\r\n }\r\n }\r\n },\r\n _setListDataSource: function() {\r\n if (this._list) {\r\n this._list.option(\"dataSource\", this._dataSource || this.option(\"items\"))\r\n }\r\n delete this._deferRendering\r\n },\r\n _getKeyboardListeners() {\r\n return this.callBase().concat([this._list])\r\n },\r\n _toggleVisibility: function(visible) {\r\n this.callBase(visible);\r\n this._button.option(\"visible\", visible)\r\n },\r\n _optionChanged: function(args) {\r\n var name = args.name;\r\n var value = args.value;\r\n switch (name) {\r\n case \"items\":\r\n case \"dataSource\":\r\n if (this.option(\"deferRendering\") && !this.option(\"opened\")) {\r\n this._deferRendering = true\r\n } else {\r\n this._refreshDataSource();\r\n this._setListDataSource()\r\n }\r\n break;\r\n case \"itemTemplate\":\r\n if (this._list) {\r\n this._list.option(name, this._getTemplate(value))\r\n }\r\n break;\r\n case \"onItemClick\":\r\n this._initItemClickAction();\r\n break;\r\n case \"onButtonClick\":\r\n this._buttonClickAction();\r\n break;\r\n case \"buttonIcon\":\r\n case \"buttonText\":\r\n case \"buttonWidth\":\r\n case \"buttonHeight\":\r\n case \"buttonTemplate\":\r\n this._button.option(BUTTON_OPTION_MAP[name], value);\r\n this._renderPopup();\r\n break;\r\n case \"popupWidth\":\r\n case \"popupHeight\":\r\n case \"popupMaxHeight\":\r\n case \"popupAutoResizeEnabled\":\r\n this._popup.option(POPUP_OPTION_MAP[name], value);\r\n break;\r\n case \"usePopover\":\r\n case \"menuWidget\":\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"focusStateEnabled\":\r\n case \"activeStateEnabled\":\r\n if (this._list) {\r\n this._list.option(name, value)\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"selectionMode\":\r\n case \"selectedItemKeys\":\r\n case \"onItemRendered\":\r\n if (this._list) {\r\n this._list.option(name, value)\r\n }\r\n break;\r\n case \"opened\":\r\n if (this._deferRendering) {\r\n this._refreshDataSource();\r\n this._setListDataSource()\r\n }\r\n this._toggleMenuVisibility(value);\r\n break;\r\n case \"deferRendering\":\r\n case \"popupPosition\":\r\n case \"closeOnClick\":\r\n break;\r\n case \"container\":\r\n this._popup && this._popup.option(args.name, args.value);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n open: function() {\r\n this.option(\"opened\", true)\r\n },\r\n close: function() {\r\n this.option(\"opened\", false)\r\n }\r\n}).include(DataHelperMixin);\r\nregisterComponent(\"dxDropDownMenu\", DropDownMenu);\r\nexport default DropDownMenu;\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.items_runtime_info.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 Guid from \"../../core/guid\";\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 isString\r\n} from \"../../core/utils/type\";\r\nexport default class FormItemsRunTimeInfo {\r\n constructor() {\r\n this._map = {}\r\n }\r\n _findWidgetInstance(condition) {\r\n var result;\r\n each(this._map, (function(guid, _ref) {\r\n var {\r\n widgetInstance: widgetInstance,\r\n item: item\r\n } = _ref;\r\n if (condition(item)) {\r\n result = widgetInstance;\r\n return false\r\n }\r\n }));\r\n return result\r\n }\r\n _findFieldByCondition(callback, valueExpr) {\r\n var result;\r\n each(this._map, (function(key, value) {\r\n if (callback(value)) {\r\n result = \"guid\" === valueExpr ? key : value[valueExpr];\r\n return false\r\n }\r\n }));\r\n return result\r\n }\r\n clear() {\r\n this._map = {}\r\n }\r\n removeItemsByItems(itemsRunTimeInfo) {\r\n each(itemsRunTimeInfo.getItems(), guid => this.removeItemByKey(guid))\r\n }\r\n removeItemByKey(key) {\r\n delete this._map[key]\r\n }\r\n add(options) {\r\n var key = options.guid || new Guid;\r\n this._map[key] = options;\r\n return key\r\n }\r\n addItemsOrExtendFrom(itemsRunTimeInfo) {\r\n itemsRunTimeInfo.each((key, itemRunTimeInfo) => {\r\n if (this._map[key]) {\r\n if (itemRunTimeInfo.widgetInstance) {\r\n this._map[key].widgetInstance = itemRunTimeInfo.widgetInstance\r\n }\r\n this._map[key].$itemContainer = itemRunTimeInfo.$itemContainer\r\n } else {\r\n this.add({\r\n item: itemRunTimeInfo.item,\r\n widgetInstance: itemRunTimeInfo.widgetInstance,\r\n guid: key,\r\n $itemContainer: itemRunTimeInfo.$itemContainer\r\n })\r\n }\r\n })\r\n }\r\n extendRunTimeItemInfoByKey(key, options) {\r\n if (this._map[key]) {\r\n this._map[key] = extend(this._map[key], options)\r\n }\r\n }\r\n findWidgetInstanceByItem(item) {\r\n return this._findWidgetInstance(storedItem => storedItem === item)\r\n }\r\n getGroupOrTabLayoutManagerByPath(targetPath) {\r\n return this._findFieldByCondition(_ref2 => {\r\n var {\r\n path: path\r\n } = _ref2;\r\n return path === targetPath\r\n }, \"layoutManager\")\r\n }\r\n getKeyByPath(targetPath) {\r\n return this._findFieldByCondition(_ref3 => {\r\n var {\r\n path: path\r\n } = _ref3;\r\n return path === targetPath\r\n }, \"guid\")\r\n }\r\n findWidgetInstanceByName(name) {\r\n return this._findWidgetInstance(item => name === item.name)\r\n }\r\n findWidgetInstanceByDataField(dataField) {\r\n return this._findWidgetInstance(item => dataField === (isString(item) ? item : item.dataField))\r\n }\r\n findItemContainerByItem(item) {\r\n for (var key in this._map) {\r\n if (this._map[key].item === item) {\r\n return this._map[key].$itemContainer\r\n }\r\n }\r\n return null\r\n }\r\n findItemIndexByItem(targetItem) {\r\n return this._findFieldByCondition(_ref4 => {\r\n var {\r\n item: item\r\n } = _ref4;\r\n return item === targetItem\r\n }, \"itemIndex\")\r\n }\r\n getItems() {\r\n return this._map\r\n }\r\n each(handler) {\r\n each(this._map, (function(key, itemRunTimeInfo) {\r\n handler(key, itemRunTimeInfo)\r\n }))\r\n }\r\n removeItemsByPathStartWith(path) {\r\n var keys = Object.keys(this._map);\r\n var filteredKeys = keys.filter(key => this._map[key].path.indexOf(path, 0) > -1);\r\n filteredKeys.forEach(key => this.removeItemByKey(key))\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.item_option_action.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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\nexport default class ItemOptionAction {\r\n constructor(options) {\r\n this._options = options;\r\n this._itemsRunTimeInfo = this._options.itemsRunTimeInfo\r\n }\r\n findInstance() {\r\n return this._itemsRunTimeInfo.findWidgetInstanceByItem(this._options.item)\r\n }\r\n findItemContainer() {\r\n return this._itemsRunTimeInfo.findItemContainerByItem(this._options.item)\r\n }\r\n tryExecute() {\r\n Class.abstract()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.utils.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 isDefined\r\n} from \"../../core/utils/type\";\r\nexport var createItemPathByIndex = (index, isTabs) => \"\".concat(isTabs ? \"tabs\" : \"items\", \"[\").concat(index, \"]\");\r\nexport var concatPaths = (path1, path2) => {\r\n if (isDefined(path1) && isDefined(path2)) {\r\n return \"\".concat(path1, \".\").concat(path2)\r\n }\r\n return path1 || path2\r\n};\r\nexport var getTextWithoutSpaces = text => text ? text.replace(/\\s/g, \"\") : void 0;\r\nexport var isExpectedItem = (item, fieldName) => item && (item.dataField === fieldName || item.name === fieldName || getTextWithoutSpaces(item.title) === fieldName || \"group\" === item.itemType && getTextWithoutSpaces(item.caption) === fieldName);\r\nexport var getFullOptionName = (path, optionName) => \"\".concat(path, \".\").concat(optionName);\r\nexport var getOptionNameFromFullName = fullName => {\r\n var parts = fullName.split(\".\");\r\n return parts[parts.length - 1].replace(/\\[\\d+]/, \"\")\r\n};\r\nexport var tryGetTabPath = fullPath => {\r\n var pathParts = fullPath.split(\".\");\r\n var resultPathParts = [...pathParts];\r\n for (var i = pathParts.length - 1; i >= 0; i--) {\r\n if (isFullPathContainsTabs(pathParts[i])) {\r\n return resultPathParts.join(\".\")\r\n }\r\n resultPathParts.splice(i, 1)\r\n }\r\n return \"\"\r\n};\r\nexport var isFullPathContainsTabs = fullPath => fullPath.indexOf(\"tabs\") > -1;\r\nexport var getItemPath = (items, item, isTabs) => {\r\n var index = items.indexOf(item);\r\n if (index > -1) {\r\n return createItemPathByIndex(index, isTabs)\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var targetItem = items[i];\r\n var tabOrGroupItems = targetItem.tabs || targetItem.items;\r\n if (tabOrGroupItems) {\r\n var itemPath = getItemPath(tabOrGroupItems, item, targetItem.tabs);\r\n if (itemPath) {\r\n return concatPaths(createItemPathByIndex(i, isTabs), itemPath)\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.item_options_actions.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 ItemOptionAction from \"./ui.form.item_option_action\";\r\nimport {\r\n data\r\n} from \"../../core/element_data\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getFullOptionName\r\n} from \"./ui.form.utils\";\r\nclass WidgetOptionItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var {\r\n value: value\r\n } = this._options;\r\n var instance = this.findInstance();\r\n if (instance) {\r\n instance.option(value);\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nclass TabOptionItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var tabPanel = this.findInstance();\r\n if (tabPanel) {\r\n var {\r\n optionName: optionName,\r\n item: item,\r\n value: value\r\n } = this._options;\r\n var itemIndex = this._itemsRunTimeInfo.findItemIndexByItem(item);\r\n if (itemIndex >= 0) {\r\n tabPanel.option(getFullOptionName(\"items[\".concat(itemIndex, \"]\"), optionName), value);\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n}\r\nclass TabsOptionItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var tabPanel = this.findInstance();\r\n if (tabPanel) {\r\n var {\r\n value: value\r\n } = this._options;\r\n tabPanel.option(\"dataSource\", value);\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nclass ValidationRulesItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var {\r\n item: item\r\n } = this._options;\r\n var instance = this.findInstance();\r\n var validator = instance && data(instance.$element()[0], \"dxValidator\");\r\n if (validator && item) {\r\n var filterRequired = item => \"required\" === item.type;\r\n var oldContainsRequired = (validator.option(\"validationRules\") || []).some(filterRequired);\r\n var newContainsRequired = (item.validationRules || []).some(filterRequired);\r\n if (!oldContainsRequired && !newContainsRequired || oldContainsRequired && newContainsRequired) {\r\n validator.option(\"validationRules\", item.validationRules);\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n}\r\nclass CssClassItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var $itemContainer = this.findItemContainer();\r\n var {\r\n previousValue: previousValue,\r\n value: value\r\n } = this._options;\r\n if ($itemContainer) {\r\n $itemContainer.removeClass(previousValue).addClass(value);\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nvar tryCreateItemOptionAction = (optionName, itemActionOptions) => {\r\n switch (optionName) {\r\n case \"editorOptions\":\r\n case \"buttonOptions\":\r\n return new WidgetOptionItemOptionAction(itemActionOptions);\r\n case \"validationRules\":\r\n return new ValidationRulesItemOptionAction(itemActionOptions);\r\n case \"cssClass\":\r\n return new CssClassItemOptionAction(itemActionOptions);\r\n case \"badge\":\r\n case \"disabled\":\r\n case \"icon\":\r\n case \"template\":\r\n case \"tabTemplate\":\r\n case \"title\":\r\n return new TabOptionItemOptionAction(extend(itemActionOptions, {\r\n optionName: optionName\r\n }));\r\n case \"tabs\":\r\n return new TabsOptionItemOptionAction(itemActionOptions);\r\n default:\r\n return null\r\n }\r\n};\r\nexport default tryCreateItemOptionAction;\r\n","/**\r\n * DevExtreme (esm/ui/responsive_box.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 grep,\r\n noop\r\n} from \"../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isPlainObject,\r\n isEmptyObject\r\n} from \"../core/utils/type\";\r\nimport errors from \"./widget/ui.errors\";\r\nimport {\r\n getWindow,\r\n defaultScreenFactorFunc,\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n each,\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport Box from \"./box\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.edit\";\r\nvar RESPONSIVE_BOX_CLASS = \"dx-responsivebox\";\r\nvar SCREEN_SIZE_CLASS_PREFIX = RESPONSIVE_BOX_CLASS + \"-screen-\";\r\nvar BOX_ITEM_CLASS = \"dx-box-item\";\r\nvar BOX_ITEM_DATA_KEY = \"dxBoxItemData\";\r\nvar HD_SCREEN_WIDTH = 1920;\r\nvar ResponsiveBox = CollectionWidget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n rows: [],\r\n cols: [],\r\n screenByWidth: null,\r\n singleColumnScreen: \"\",\r\n height: \"100%\",\r\n width: \"100%\",\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n onItemStateChanged: void 0,\r\n onLayoutChanged: null,\r\n currentScreenFactor: void 0,\r\n _layoutStrategy: void 0\r\n })\r\n },\r\n _init: function() {\r\n if (!this.option(\"screenByWidth\")) {\r\n this._options.silent(\"screenByWidth\", defaultScreenFactorFunc)\r\n }\r\n this.callBase();\r\n this._initLayoutChangedAction()\r\n },\r\n _initLayoutChangedAction: function() {\r\n this._layoutChangedAction = this._createActionByOption(\"onLayoutChanged\", {\r\n excludeValidators: [\"disabled\", \"readonly\"]\r\n })\r\n },\r\n _itemClass: function() {\r\n return BOX_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return BOX_ITEM_DATA_KEY\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(RESPONSIVE_BOX_CLASS);\r\n this._updateRootBox()\r\n },\r\n _updateRootBox: function() {\r\n clearTimeout(this._updateTimer);\r\n this._updateTimer = setTimeout(function() {\r\n if (this._$root) {\r\n eventsEngine.triggerHandler(this._$root, \"dxupdate\")\r\n }\r\n }.bind(this))\r\n },\r\n _renderItems: function() {\r\n this._setScreenSize();\r\n this._screenItems = this._itemsByScreen();\r\n this._prepareGrid();\r\n this._spreadItems();\r\n this._layoutItems();\r\n this._linkNodeToItem()\r\n },\r\n _itemOptionChanged: function(item) {\r\n var $item = this._findItemElementByItem(item);\r\n if (!$item.length) {\r\n return\r\n }\r\n this._refreshItem($item, item);\r\n this._clearItemNodeTemplates();\r\n this._update(true)\r\n },\r\n _setScreenSize: function() {\r\n var currentScreen = this._getCurrentScreen();\r\n this._removeScreenSizeClass();\r\n this.$element().addClass(SCREEN_SIZE_CLASS_PREFIX + currentScreen);\r\n this.option(\"currentScreenFactor\", currentScreen)\r\n },\r\n _removeScreenSizeClass: function() {\r\n var currentScreenFactor = this.option(\"currentScreenFactor\");\r\n currentScreenFactor && this.$element().removeClass(SCREEN_SIZE_CLASS_PREFIX + currentScreenFactor)\r\n },\r\n _prepareGrid: function() {\r\n var grid = this._grid = [];\r\n this._prepareRowsAndCols();\r\n each(this._rows, function() {\r\n var row = [];\r\n grid.push(row);\r\n each(this._cols, function() {\r\n row.push(this._createEmptyCell())\r\n }.bind(this))\r\n }.bind(this))\r\n },\r\n getSingleColumnRows: function() {\r\n var rows = this.option(\"rows\");\r\n var screenItemsLength = this._screenItems.length;\r\n if (rows.length) {\r\n var filteredRows = this._filterByScreen(rows);\r\n var result = [];\r\n for (var i = 0; i < screenItemsLength; i++) {\r\n var sizeConfig = this._defaultSizeConfig();\r\n if (i < filteredRows.length && isDefined(filteredRows[i].shrink)) {\r\n sizeConfig.shrink = filteredRows[i].shrink\r\n }\r\n result.push(sizeConfig)\r\n }\r\n return result\r\n } else {\r\n return this._defaultSizeConfig(screenItemsLength)\r\n }\r\n },\r\n _prepareRowsAndCols: function() {\r\n if (this._isSingleColumnScreen()) {\r\n this._prepareSingleColumnScreenItems();\r\n this._rows = this.getSingleColumnRows();\r\n this._cols = this._defaultSizeConfig(1)\r\n } else {\r\n this._rows = this._sizesByScreen(this.option(\"rows\"));\r\n this._cols = this._sizesByScreen(this.option(\"cols\"))\r\n }\r\n },\r\n _isSingleColumnScreen: function() {\r\n return this._screenRegExp().test(this.option(\"singleColumnScreen\")) || !this.option(\"rows\").length || !this.option(\"cols\").length\r\n },\r\n _prepareSingleColumnScreenItems: function() {\r\n this._screenItems.sort((function(item1, item2) {\r\n return item1.location.row - item2.location.row || item1.location.col - item2.location.col\r\n }));\r\n each(this._screenItems, (function(index, item) {\r\n extend(item.location, {\r\n row: index,\r\n col: 0,\r\n rowspan: 1,\r\n colspan: 1\r\n })\r\n }))\r\n },\r\n _sizesByScreen: function(sizeConfigs) {\r\n return map(this._filterByScreen(sizeConfigs), function(sizeConfig) {\r\n return extend(this._defaultSizeConfig(), sizeConfig)\r\n }.bind(this))\r\n },\r\n _createDefaultSizeConfig: function() {\r\n return {\r\n ratio: 1,\r\n baseSize: 0,\r\n minSize: 0,\r\n maxSize: 0\r\n }\r\n },\r\n _defaultSizeConfig: function(size) {\r\n var defaultSizeConfig = this._createDefaultSizeConfig();\r\n if (!arguments.length) {\r\n return defaultSizeConfig\r\n }\r\n var result = [];\r\n for (var i = 0; i < size; i++) {\r\n result.push(defaultSizeConfig)\r\n }\r\n return result\r\n },\r\n _filterByScreen: function(items) {\r\n var screenRegExp = this._screenRegExp();\r\n return grep(items, (function(item) {\r\n return !item.screen || screenRegExp.test(item.screen)\r\n }))\r\n },\r\n _screenRegExp: function() {\r\n var screen = this._getCurrentScreen();\r\n return new RegExp(\"(^|\\\\s)\" + screen + \"($|\\\\s)\", \"i\")\r\n },\r\n _getCurrentScreen: function() {\r\n var width = this._screenWidth();\r\n return this.option(\"screenByWidth\")(width)\r\n },\r\n _screenWidth: function() {\r\n return hasWindow() ? $(window).width() : HD_SCREEN_WIDTH\r\n },\r\n _createEmptyCell: function() {\r\n return {\r\n item: {},\r\n location: {\r\n colspan: 1,\r\n rowspan: 1\r\n }\r\n }\r\n },\r\n _spreadItems: function() {\r\n each(this._screenItems, function(_, itemInfo) {\r\n var location = itemInfo.location || {};\r\n var itemCol = location.col;\r\n var itemRow = location.row;\r\n var row = this._grid[itemRow];\r\n var itemCell = row && row[itemCol];\r\n this._occupyCells(itemCell, itemInfo)\r\n }.bind(this))\r\n },\r\n _itemsByScreen: function() {\r\n return this.option(\"items\").reduce((result, item) => {\r\n var locations = item.location || {};\r\n locations = isPlainObject(locations) ? [locations] : locations;\r\n this._filterByScreen(locations).forEach(location => {\r\n result.push({\r\n item: item,\r\n location: extend({\r\n rowspan: 1,\r\n colspan: 1\r\n }, location)\r\n })\r\n });\r\n return result\r\n }, [])\r\n },\r\n _occupyCells: function(itemCell, itemInfo) {\r\n if (!itemCell || this._isItemCellOccupied(itemCell, itemInfo)) {\r\n return\r\n }\r\n extend(itemCell, itemInfo);\r\n this._markSpanningCell(itemCell)\r\n },\r\n _isItemCellOccupied: function(itemCell, itemInfo) {\r\n if (!isEmptyObject(itemCell.item)) {\r\n return true\r\n }\r\n var result = false;\r\n this._loopOverSpanning(itemInfo.location, (function(cell) {\r\n result = result || !isEmptyObject(cell.item)\r\n }));\r\n return result\r\n },\r\n _loopOverSpanning: function(location, callback) {\r\n var rowEnd = location.row + location.rowspan - 1;\r\n var colEnd = location.col + location.colspan - 1;\r\n var boundRowEnd = Math.min(rowEnd, this._rows.length - 1);\r\n var boundColEnd = Math.min(colEnd, this._cols.length - 1);\r\n location.rowspan -= rowEnd - boundRowEnd;\r\n location.colspan -= colEnd - boundColEnd;\r\n for (var rowIndex = location.row; rowIndex <= boundRowEnd; rowIndex++) {\r\n for (var colIndex = location.col; colIndex <= boundColEnd; colIndex++) {\r\n if (rowIndex !== location.row || colIndex !== location.col) {\r\n callback(this._grid[rowIndex][colIndex])\r\n }\r\n }\r\n }\r\n },\r\n _markSpanningCell: function(itemCell) {\r\n this._loopOverSpanning(itemCell.location, (function(cell) {\r\n extend(cell, {\r\n item: itemCell.item,\r\n spanningCell: itemCell\r\n })\r\n }))\r\n },\r\n _linkNodeToItem: function() {\r\n each(this._itemElements(), (function(_, itemNode) {\r\n var $item = $(itemNode);\r\n var item = $item.data(BOX_ITEM_DATA_KEY);\r\n if (!item.box) {\r\n item.node = $item.children()\r\n }\r\n }))\r\n },\r\n _layoutItems: function() {\r\n var rowsCount = this._grid.length;\r\n var colsCount = rowsCount && this._grid[0].length;\r\n if (!rowsCount && !colsCount) {\r\n return\r\n }\r\n var result = this._layoutBlock({\r\n direction: \"col\",\r\n row: {\r\n start: 0,\r\n end: rowsCount - 1\r\n },\r\n col: {\r\n start: 0,\r\n end: colsCount - 1\r\n }\r\n });\r\n var rootBox = this._prepareBoxConfig(result.box || {\r\n direction: \"row\",\r\n items: [extend(result, {\r\n ratio: 1\r\n })]\r\n });\r\n extend(rootBox, this._rootBoxConfig(rootBox.items));\r\n this._$root = $(\"
\").appendTo(this._itemContainer());\r\n this._createComponent(this._$root, Box, rootBox)\r\n },\r\n _rootBoxConfig: function(items) {\r\n var rootItems = each(items, function(index, item) {\r\n this._needApplyAutoBaseSize(item) && extend(item, {\r\n baseSize: \"auto\"\r\n })\r\n }.bind(this));\r\n return extend({\r\n width: \"100%\",\r\n height: \"100%\",\r\n items: rootItems,\r\n itemTemplate: this._getTemplateByOption(\"itemTemplate\"),\r\n itemHoldTimeout: this.option(\"itemHoldTimeout\"),\r\n onItemHold: this._createActionByOption(\"onItemHold\"),\r\n onItemClick: this._createActionByOption(\"onItemClick\"),\r\n onItemContextMenu: this._createActionByOption(\"onItemContextMenu\"),\r\n onItemRendered: this._createActionByOption(\"onItemRendered\")\r\n }, {\r\n _layoutStrategy: this.option(\"_layoutStrategy\")\r\n })\r\n },\r\n _needApplyAutoBaseSize: function(item) {\r\n return !item.baseSize && (!item.minSize || \"auto\" === item.minSize) && (!item.maxSize || \"auto\" === item.maxSize)\r\n },\r\n _prepareBoxConfig: function(config) {\r\n return extend(config || {}, {\r\n crossAlign: \"stretch\",\r\n onItemStateChanged: this.option(\"onItemStateChanged\")\r\n })\r\n },\r\n _layoutBlock: function(options) {\r\n if (this._isSingleItem(options)) {\r\n return this._itemByCell(options.row.start, options.col.start)\r\n }\r\n return this._layoutDirection(options)\r\n },\r\n _isSingleItem: function(options) {\r\n var firstCellLocation = this._grid[options.row.start][options.col.start].location;\r\n var isItemRowSpanned = options.row.end - options.row.start === firstCellLocation.rowspan - 1;\r\n var isItemColSpanned = options.col.end - options.col.start === firstCellLocation.colspan - 1;\r\n return isItemRowSpanned && isItemColSpanned\r\n },\r\n _itemByCell: function(rowIndex, colIndex) {\r\n var itemCell = this._grid[rowIndex][colIndex];\r\n return itemCell.spanningCell ? null : itemCell.item\r\n },\r\n _layoutDirection: function(options) {\r\n var items = [];\r\n var direction = options.direction;\r\n var crossDirection = this._crossDirection(direction);\r\n var block;\r\n while (block = this._nextBlock(options)) {\r\n if (this._isBlockIndivisible(options.prevBlockOptions, block)) {\r\n throw errors.Error(\"E1025\")\r\n }\r\n var item = this._layoutBlock({\r\n direction: crossDirection,\r\n row: block.row,\r\n col: block.col,\r\n prevBlockOptions: options\r\n });\r\n if (item) {\r\n extend(item, this._blockSize(block, crossDirection));\r\n items.push(item)\r\n }\r\n options[crossDirection].start = block[crossDirection].end + 1\r\n }\r\n return {\r\n box: this._prepareBoxConfig({\r\n direction: direction,\r\n items: items\r\n })\r\n }\r\n },\r\n _isBlockIndivisible: function(options, block) {\r\n return options && options.col.start === block.col.start && options.col.end === block.col.end && options.row.start === block.row.start && options.row.end === block.row.end\r\n },\r\n _crossDirection: function(direction) {\r\n return \"col\" === direction ? \"row\" : \"col\"\r\n },\r\n _nextBlock: function(options) {\r\n var direction = options.direction;\r\n var crossDirection = this._crossDirection(direction);\r\n var startIndex = options[direction].start;\r\n var endIndex = options[direction].end;\r\n var crossStartIndex = options[crossDirection].start;\r\n if (crossStartIndex > options[crossDirection].end) {\r\n return null\r\n }\r\n var crossSpan = 1;\r\n for (var crossIndex = crossStartIndex; crossIndex < crossStartIndex + crossSpan; crossIndex++) {\r\n var lineCrossSpan = 1;\r\n for (var index = startIndex; index <= endIndex; index++) {\r\n var cell = this._cellByDirection(direction, index, crossIndex);\r\n lineCrossSpan = Math.max(lineCrossSpan, cell.location[crossDirection + \"span\"])\r\n }\r\n var lineCrossEndIndex = crossIndex + lineCrossSpan;\r\n var crossEndIndex = crossStartIndex + crossSpan;\r\n if (lineCrossEndIndex > crossEndIndex) {\r\n crossSpan += lineCrossEndIndex - crossEndIndex\r\n }\r\n }\r\n var result = {};\r\n result[direction] = {\r\n start: startIndex,\r\n end: endIndex\r\n };\r\n result[crossDirection] = {\r\n start: crossStartIndex,\r\n end: crossStartIndex + crossSpan - 1\r\n };\r\n return result\r\n },\r\n _cellByDirection: function(direction, index, crossIndex) {\r\n return \"col\" === direction ? this._grid[crossIndex][index] : this._grid[index][crossIndex]\r\n },\r\n _blockSize: function(block, direction) {\r\n var defaultMinSize = \"row\" === direction ? \"auto\" : 0;\r\n var sizeConfigs = \"row\" === direction ? this._rows : this._cols;\r\n var result = extend(this._createDefaultSizeConfig(), {\r\n ratio: 0\r\n });\r\n for (var index = block[direction].start; index <= block[direction].end; index++) {\r\n var sizeConfig = sizeConfigs[index];\r\n result.ratio += sizeConfig.ratio;\r\n result.baseSize += sizeConfig.baseSize;\r\n result.minSize += sizeConfig.minSize;\r\n result.maxSize += sizeConfig.maxSize;\r\n if (isDefined(sizeConfig.shrink)) {\r\n result.shrink = sizeConfig.shrink\r\n }\r\n }\r\n result.minSize = result.minSize ? result.minSize : defaultMinSize;\r\n result.maxSize = result.maxSize ? result.maxSize : \"auto\";\r\n this._isSingleColumnScreen() && (result.baseSize = \"auto\");\r\n return result\r\n },\r\n _update: function(forceRemoveRoot) {\r\n var $existingRoot = this._$root;\r\n this._renderItems();\r\n if ($existingRoot) {\r\n if (forceRemoveRoot) {\r\n $existingRoot.remove()\r\n } else {\r\n $existingRoot.detach();\r\n this._saveAssistantRoot($existingRoot)\r\n }\r\n }\r\n this._layoutChangedAction();\r\n this._updateRootBox()\r\n },\r\n _saveAssistantRoot: function($root) {\r\n this._assistantRoots = this._assistantRoots || [];\r\n this._assistantRoots.push($root)\r\n },\r\n _dispose: function() {\r\n clearTimeout(this._updateTimer);\r\n this._clearItemNodeTemplates();\r\n this._cleanUnusedRoots();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _cleanUnusedRoots: function() {\r\n if (!this._assistantRoots) {\r\n return\r\n }\r\n each(this._assistantRoots, (function(_, item) {\r\n $(item).remove()\r\n }))\r\n },\r\n _clearItemNodeTemplates: function() {\r\n each(this.option(\"items\"), (function() {\r\n delete this.node\r\n }))\r\n },\r\n _toggleVisibility: function(visible) {\r\n this.callBase(visible);\r\n if (visible) {\r\n this._updateRootBox()\r\n }\r\n },\r\n _attachClickEvent: noop,\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"rows\":\r\n case \"cols\":\r\n case \"screenByWidth\":\r\n case \"_layoutStrategy\":\r\n case \"singleColumnScreen\":\r\n this._clearItemNodeTemplates();\r\n this._invalidate();\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n this._update();\r\n break;\r\n case \"onLayoutChanged\":\r\n this._initLayoutChangedAction();\r\n break;\r\n case \"itemTemplate\":\r\n this._clearItemNodeTemplates();\r\n this.callBase(args);\r\n break;\r\n case \"currentScreenFactor\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n if (this._getCurrentScreen() !== this.option(\"currentScreenFactor\")) {\r\n this._update()\r\n }\r\n },\r\n repaint: function() {\r\n this._update()\r\n }\r\n});\r\nregisterComponent(\"dxResponsiveBox\", ResponsiveBox);\r\nexport default ResponsiveBox;\r\n","/**\r\n * DevExtreme (esm/ui/form/constants.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 FORM_CLASS = \"dx-form\";\r\nexport var FORM_GROUP_CLASS = \"dx-form-group\";\r\nexport var FORM_GROUP_CAPTION_CLASS = \"dx-form-group-caption\";\r\nexport var FORM_FIELD_ITEM_COL_CLASS = \"dx-col-\";\r\nexport var FIELD_ITEM_CLASS = \"dx-field-item\";\r\nexport var FLEX_LAYOUT_CLASS = \"dx-flex-layout\";\r\nexport var LAYOUT_MANAGER_ONE_COLUMN = \"dx-layout-manager-one-col\";\r\nexport var FIELD_ITEM_OPTIONAL_MARK_CLASS = \"dx-field-item-optional-mark\";\r\nexport var FIELD_ITEM_REQUIRED_MARK_CLASS = \"dx-field-item-required-mark\";\r\nexport var FIELD_ITEM_OPTIONAL_CLASS = \"dx-field-item-optional\";\r\nexport var FIELD_ITEM_REQUIRED_CLASS = \"dx-field-item-required\";\r\nexport var FIELD_ITEM_LABEL_TEXT_CLASS = \"dx-field-item-label-text\";\r\nexport var FIELD_ITEM_LABEL_CONTENT_CLASS = \"dx-field-item-label-content\";\r\nexport var FIELD_ITEM_HELP_TEXT_CLASS = \"dx-field-item-help-text\";\r\nexport var FIELD_ITEM_CONTENT_WRAPPER_CLASS = \"dx-field-item-content-wrapper\";\r\nexport var FORM_LAYOUT_MANAGER_CLASS = \"dx-layout-manager\";\r\nexport var LABEL_VERTICAL_ALIGNMENT_CLASS = \"dx-label-v-align\";\r\nexport var LABEL_HORIZONTAL_ALIGNMENT_CLASS = \"dx-label-h-align\";\r\nexport var FIELD_ITEM_LABEL_LOCATION_CLASS = \"dx-field-item-label-location-\";\r\nexport var FIELD_ITEM_LABEL_ALIGN_CLASS = \"dx-field-item-label-align\";\r\nexport var FIELD_ITEM_LABEL_CLASS = \"dx-field-item-label\";\r\nexport var FIELD_ITEM_CONTENT_LOCATION_CLASS = \"dx-field-item-content-location-\";\r\nexport var FIELD_ITEM_CONTENT_CLASS = \"dx-field-item-content\";\r\nexport var FIELD_EMPTY_ITEM_CLASS = \"dx-field-empty-item\";\r\nexport var FIELD_BUTTON_ITEM_CLASS = \"dx-field-button-item\";\r\nexport var SINGLE_COLUMN_ITEM_CONTENT = \"dx-single-column-item-content\";\r\nexport var ROOT_SIMPLE_ITEM_CLASS = \"dx-root-simple-item\";\r\nexport var FORM_GROUP_CONTENT_CLASS = \"dx-form-group-content\";\r\nexport var FIELD_ITEM_CONTENT_HAS_GROUP_CLASS = \"dx-field-item-has-group\";\r\nexport var FIELD_ITEM_CONTENT_HAS_TABS_CLASS = \"dx-field-item-has-tabs\";\r\nexport var FORM_GROUP_WITH_CAPTION_CLASS = \"dx-form-group-with-caption\";\r\nexport var HIDDEN_LABEL_CLASS = \"dx-layout-manager-hidden-label\";\r\nexport var FIELD_ITEM_TAB_CLASS = \"dx-field-item-tab\";\r\nexport var GROUP_COL_COUNT_CLASS = \"dx-group-colcount-\";\r\nexport var GROUP_COL_COUNT_ATTR = \"group-col-count\";\r\nexport var FORM_VALIDATION_SUMMARY = \"dx-form-validation-summary\";\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.layout_manager.js)\r\n * Version: 21.1.4\r\n * Build date: Mon Jun 21 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 Guid from \"../../core/guid\";\r\nimport {\r\n default as FormItemsRunTimeInfo\r\n} from \"./ui.form.items_runtime_info\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isFunction,\r\n isObject,\r\n type\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport variableWrapper from \"../../core/utils/variable_wrapper\";\r\nimport {\r\n getCurrentScreenFactor,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n format\r\n} from \"../../core/utils/string\";\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 inArray,\r\n normalizeIndexes\r\n} from \"../../core/utils/array\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n removeEvent\r\n} from \"../../core/remove_event\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n styleProp\r\n} from \"../../core/utils/style\";\r\nimport {\r\n captionize\r\n} from \"../../core/utils/inflector\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport Validator from \"../validator\";\r\nimport ResponsiveBox from \"../responsive_box\";\r\nimport {\r\n isMaterial\r\n} from \"../themes\";\r\nimport {\r\n FIELD_ITEM_CLASS,\r\n FLEX_LAYOUT_CLASS,\r\n LAYOUT_MANAGER_ONE_COLUMN,\r\n FIELD_ITEM_OPTIONAL_MARK_CLASS,\r\n FIELD_ITEM_REQUIRED_MARK_CLASS,\r\n FIELD_ITEM_OPTIONAL_CLASS,\r\n FIELD_ITEM_REQUIRED_CLASS,\r\n FIELD_ITEM_LABEL_TEXT_CLASS,\r\n FIELD_ITEM_LABEL_CONTENT_CLASS,\r\n FIELD_ITEM_HELP_TEXT_CLASS,\r\n FIELD_ITEM_CONTENT_WRAPPER_CLASS,\r\n FORM_LAYOUT_MANAGER_CLASS,\r\n LABEL_VERTICAL_ALIGNMENT_CLASS,\r\n LABEL_HORIZONTAL_ALIGNMENT_CLASS,\r\n FIELD_ITEM_LABEL_LOCATION_CLASS,\r\n FIELD_ITEM_LABEL_ALIGN_CLASS,\r\n FIELD_ITEM_LABEL_CLASS,\r\n FIELD_ITEM_CONTENT_LOCATION_CLASS,\r\n FIELD_ITEM_CONTENT_CLASS,\r\n FIELD_EMPTY_ITEM_CLASS,\r\n FIELD_BUTTON_ITEM_CLASS,\r\n SINGLE_COLUMN_ITEM_CONTENT,\r\n ROOT_SIMPLE_ITEM_CLASS\r\n} from \"./constants\";\r\nimport \"../text_box\";\r\nimport \"../number_box\";\r\nimport \"../check_box\";\r\nimport \"../date_box\";\r\nimport \"../button\";\r\nvar FORM_EDITOR_BY_DEFAULT = \"dxTextBox\";\r\nvar LAYOUT_MANAGER_FIRST_ROW_CLASS = \"dx-first-row\";\r\nvar LAYOUT_MANAGER_LAST_ROW_CLASS = \"dx-last-row\";\r\nvar LAYOUT_MANAGER_FIRST_COL_CLASS = \"dx-first-col\";\r\nvar LAYOUT_MANAGER_LAST_COL_CLASS = \"dx-last-col\";\r\nvar INVALID_CLASS = \"dx-invalid\";\r\nvar LAYOUT_STRATEGY_FLEX = \"flex\";\r\nvar LAYOUT_STRATEGY_FALLBACK = \"fallback\";\r\nvar SIMPLE_ITEM_TYPE = \"simple\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar DATA_OPTIONS = [\"dataSource\", \"items\"];\r\nvar EDITORS_WITH_ARRAY_VALUE = [\"dxTagBox\", \"dxRangeSlider\"];\r\nvar LayoutManager = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n layoutData: {},\r\n readOnly: false,\r\n colCount: 1,\r\n colCountByScreen: void 0,\r\n labelLocation: \"left\",\r\n onFieldDataChanged: null,\r\n onEditorEnterKey: null,\r\n customizeItem: null,\r\n alignItemLabels: true,\r\n minColWidth: 200,\r\n showRequiredMark: true,\r\n screenByWidth: null,\r\n showOptionalMark: false,\r\n requiredMark: \"*\",\r\n optionalMark: messageLocalization.format(\"dxForm-optionalMark\"),\r\n requiredMessage: messageLocalization.getFormatter(\"dxForm-requiredMessage\")\r\n })\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n layoutData: true,\r\n validationGroup: true\r\n })\r\n },\r\n _init: function() {\r\n var layoutData = this.option(\"layoutData\");\r\n this.callBase();\r\n this._itemWatchers = [];\r\n this._itemsRunTimeInfo = new FormItemsRunTimeInfo;\r\n this._updateReferencedOptions(layoutData);\r\n this._initDataAndItems(layoutData)\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n this._cleanItemWatchers()\r\n },\r\n _initDataAndItems: function(initialData) {\r\n this._syncDataWithItems();\r\n this._updateItems(initialData)\r\n },\r\n _syncDataWithItems: function() {\r\n var layoutData = this.option(\"layoutData\");\r\n var userItems = this.option(\"items\");\r\n if (isDefined(userItems)) {\r\n userItems.forEach(item => {\r\n if (item.dataField && void 0 === this._getDataByField(item.dataField)) {\r\n var value;\r\n if (item.editorOptions) {\r\n value = item.editorOptions.value\r\n }\r\n if (isDefined(value) || item.dataField in layoutData) {\r\n this._updateFieldValue(item.dataField, value)\r\n }\r\n }\r\n })\r\n }\r\n },\r\n _getDataByField: function(dataField) {\r\n return dataField ? this.option(\"layoutData.\" + dataField) : null\r\n },\r\n _isCheckboxUndefinedStateEnabled: function(editorOption) {\r\n if (true === editorOption.allowIndeterminateState && \"dxCheckBox\" === editorOption.editorType) {\r\n var nameParts = [\"layoutData\", ...editorOption.dataField.split(\".\")];\r\n var propertyName = nameParts.pop();\r\n var layoutData = this.option(nameParts.join(\".\"));\r\n return layoutData && propertyName in layoutData\r\n }\r\n return false\r\n },\r\n _updateFieldValue: function(dataField, value) {\r\n var layoutData = this.option(\"layoutData\");\r\n var newValue = value;\r\n if (!variableWrapper.isWrapped(layoutData[dataField]) && isDefined(dataField)) {\r\n this.option(\"layoutData.\" + dataField, newValue)\r\n } else if (variableWrapper.isWritableWrapped(layoutData[dataField])) {\r\n newValue = isFunction(newValue) ? newValue() : newValue;\r\n layoutData[dataField](newValue)\r\n }\r\n this._triggerOnFieldDataChanged({\r\n dataField: dataField,\r\n value: newValue\r\n })\r\n },\r\n _triggerOnFieldDataChanged: function(args) {\r\n this._createActionByOption(\"onFieldDataChanged\")(args)\r\n },\r\n _updateItems: function(layoutData) {\r\n var that = this;\r\n var userItems = this.option(\"items\");\r\n var isUserItemsExist = isDefined(userItems);\r\n var customizeItem = that.option(\"customizeItem\");\r\n var items = isUserItemsExist ? userItems : this._generateItemsByData(layoutData);\r\n if (isDefined(items)) {\r\n var processedItems = [];\r\n each(items, (function(index, item) {\r\n if (that._isAcceptableItem(item)) {\r\n item = that._processItem(item);\r\n customizeItem && customizeItem(item);\r\n if (isObject(item) && false !== variableWrapper.unwrap(item.visible)) {\r\n processedItems.push(item)\r\n }\r\n }\r\n }));\r\n if (!that._itemWatchers.length || !isUserItemsExist) {\r\n that._updateItemWatchers(items)\r\n }\r\n this._setItems(processedItems);\r\n this._sortItems()\r\n }\r\n },\r\n _cleanItemWatchers: function() {\r\n this._itemWatchers.forEach((function(dispose) {\r\n dispose()\r\n }));\r\n this._itemWatchers = []\r\n },\r\n _updateItemWatchers: function(items) {\r\n var that = this;\r\n var watch = that._getWatch();\r\n items.forEach((function(item) {\r\n if (isObject(item) && isDefined(item.visible) && isFunction(watch)) {\r\n that._itemWatchers.push(watch((function() {\r\n return variableWrapper.unwrap(item.visible)\r\n }), (function() {\r\n that._updateItems(that.option(\"layoutData\"));\r\n that.repaint()\r\n }), {\r\n skipImmediate: true\r\n }))\r\n }\r\n }))\r\n },\r\n _generateItemsByData: function(layoutData) {\r\n var result = [];\r\n if (isDefined(layoutData)) {\r\n each(layoutData, (function(dataField) {\r\n result.push({\r\n dataField: dataField\r\n })\r\n }))\r\n }\r\n return result\r\n },\r\n _isAcceptableItem: function(item) {\r\n var itemField = item.dataField || item;\r\n var itemData = this._getDataByField(itemField);\r\n return !(isFunction(itemData) && !variableWrapper.isWrapped(itemData))\r\n },\r\n _processItem: function(item) {\r\n if (\"string\" === typeof item) {\r\n item = {\r\n dataField: item\r\n }\r\n }\r\n if (\"object\" === typeof item && !item.itemType) {\r\n item.itemType = SIMPLE_ITEM_TYPE\r\n }\r\n if (!isDefined(item.editorType) && isDefined(item.dataField)) {\r\n var value = this._getDataByField(item.dataField);\r\n item.editorType = isDefined(value) ? this._getEditorTypeByDataType(type(value)) : FORM_EDITOR_BY_DEFAULT\r\n }\r\n if (\"dxCheckBox\" === item.editorType) {\r\n var _item$allowIndetermin;\r\n item.allowIndeterminateState = null !== (_item$allowIndetermin = item.allowIndeterminateState) && void 0 !== _item$allowIndetermin ? _item$allowIndetermin : true\r\n }\r\n return item\r\n },\r\n _getEditorTypeByDataType: function(dataType) {\r\n switch (dataType) {\r\n case \"number\":\r\n return \"dxNumberBox\";\r\n case \"date\":\r\n return \"dxDateBox\";\r\n case \"boolean\":\r\n return \"dxCheckBox\";\r\n default:\r\n return \"dxTextBox\"\r\n }\r\n },\r\n _sortItems: function() {\r\n normalizeIndexes(this._items, \"visibleIndex\");\r\n this._sortIndexes()\r\n },\r\n _sortIndexes: function() {\r\n this._items.sort((function(itemA, itemB) {\r\n var indexA = itemA.visibleIndex;\r\n var indexB = itemB.visibleIndex;\r\n var result;\r\n if (indexA > indexB) {\r\n result = 1\r\n } else if (indexA < indexB) {\r\n result = -1\r\n } else {\r\n result = 0\r\n }\r\n return result\r\n }))\r\n },\r\n _initMarkup: function() {\r\n this._itemsRunTimeInfo.clear();\r\n this.$element().addClass(FORM_LAYOUT_MANAGER_CLASS);\r\n this.callBase();\r\n this._renderResponsiveBox()\r\n },\r\n _hasBrowserFlex: function() {\r\n return styleProp(LAYOUT_STRATEGY_FLEX) === LAYOUT_STRATEGY_FLEX\r\n },\r\n _renderResponsiveBox: function() {\r\n var templatesInfo = [];\r\n if (this._items && this._items.length) {\r\n var colCount = this._getColCount();\r\n var $container = $(\"
\").appendTo(this.$element());\r\n this._prepareItemsWithMerging(colCount);\r\n var layoutItems = this._generateLayoutItems();\r\n this._responsiveBox = this._createComponent($container, ResponsiveBox, this._getResponsiveBoxConfig(layoutItems, colCount, templatesInfo));\r\n if (!hasWindow()) {\r\n this._renderTemplates(templatesInfo)\r\n }\r\n }\r\n },\r\n _itemStateChangedHandler: function(e) {\r\n this._refresh()\r\n },\r\n _renderTemplate: function($container, item) {\r\n switch (item.itemType) {\r\n case \"empty\":\r\n this._renderEmptyItem($container);\r\n break;\r\n case \"button\":\r\n this._renderButtonItem(item, $container);\r\n break;\r\n default:\r\n this._renderFieldItem(item, $container)\r\n }\r\n },\r\n _renderTemplates: function(templatesInfo) {\r\n var that = this;\r\n each(templatesInfo, (function(index, info) {\r\n that._renderTemplate(info.container, info.formItem)\r\n }))\r\n },\r\n _getResponsiveBoxConfig: function(layoutItems, colCount, templatesInfo) {\r\n var that = this;\r\n var colCountByScreen = that.option(\"colCountByScreen\");\r\n var xsColCount = colCountByScreen && colCountByScreen.xs;\r\n return {\r\n onItemStateChanged: this._itemStateChangedHandler.bind(this),\r\n _layoutStrategy: that._hasBrowserFlex() ? LAYOUT_STRATEGY_FLEX : LAYOUT_STRATEGY_FALLBACK,\r\n onLayoutChanged: function() {\r\n var onLayoutChanged = that.option(\"onLayoutChanged\");\r\n var isSingleColumnMode = that.isSingleColumnMode();\r\n if (onLayoutChanged) {\r\n that.$element().toggleClass(LAYOUT_MANAGER_ONE_COLUMN, isSingleColumnMode);\r\n onLayoutChanged(isSingleColumnMode)\r\n }\r\n },\r\n onContentReady: function(e) {\r\n if (hasWindow()) {\r\n that._renderTemplates(templatesInfo)\r\n }\r\n if (that.option(\"onLayoutChanged\")) {\r\n that.$element().toggleClass(LAYOUT_MANAGER_ONE_COLUMN, that.isSingleColumnMode(e.component))\r\n }\r\n },\r\n itemTemplate: function(e, itemData, itemElement) {\r\n if (!e.location) {\r\n return\r\n }\r\n var $itemElement = $(itemElement);\r\n var itemRenderedCountInPreviousRows = e.location.row * colCount;\r\n var item = that._items[e.location.col + itemRenderedCountInPreviousRows];\r\n var $fieldItem = $(\"
\").addClass(item.cssClass).appendTo($itemElement);\r\n templatesInfo.push({\r\n container: $fieldItem,\r\n formItem: item\r\n });\r\n $itemElement.toggleClass(SINGLE_COLUMN_ITEM_CONTENT, that.isSingleColumnMode(this));\r\n if (0 === e.location.row) {\r\n $fieldItem.addClass(LAYOUT_MANAGER_FIRST_ROW_CLASS)\r\n }\r\n if (0 === e.location.col) {\r\n $fieldItem.addClass(LAYOUT_MANAGER_FIRST_COL_CLASS)\r\n }\r\n if (item.itemType === SIMPLE_ITEM_TYPE && that.option(\"isRoot\")) {\r\n $itemElement.addClass(ROOT_SIMPLE_ITEM_CLASS)\r\n }\r\n var isLastColumn = e.location.col === colCount - 1 || e.location.col + e.location.colspan === colCount;\r\n var rowsCount = that._getRowsCount();\r\n var isLastRow = e.location.row === rowsCount - 1;\r\n if (isLastColumn) {\r\n $fieldItem.addClass(LAYOUT_MANAGER_LAST_COL_CLASS)\r\n }\r\n if (isLastRow) {\r\n $fieldItem.addClass(LAYOUT_MANAGER_LAST_ROW_CLASS)\r\n }\r\n },\r\n cols: that._generateRatio(colCount),\r\n rows: that._generateRatio(that._getRowsCount(), true),\r\n dataSource: layoutItems,\r\n screenByWidth: that.option(\"screenByWidth\"),\r\n singleColumnScreen: xsColCount ? false : \"xs\"\r\n }\r\n },\r\n _getColCount: function() {\r\n var colCount = this.option(\"colCount\");\r\n var colCountByScreen = this.option(\"colCountByScreen\");\r\n if (colCountByScreen) {\r\n var screenFactor = this.option(\"form\").getTargetScreenFactor();\r\n if (!screenFactor) {\r\n screenFactor = hasWindow() ? getCurrentScreenFactor(this.option(\"screenByWidth\")) : \"lg\"\r\n }\r\n colCount = colCountByScreen[screenFactor] || colCount\r\n }\r\n if (\"auto\" === colCount) {\r\n if (this._cashedColCount) {\r\n return this._cashedColCount\r\n }\r\n this._cashedColCount = colCount = this._getMaxColCount()\r\n }\r\n return colCount < 1 ? 1 : colCount\r\n },\r\n _getMaxColCount: function() {\r\n if (!hasWindow()) {\r\n return 1\r\n }\r\n var minColWidth = this.option(\"minColWidth\");\r\n var width = this.$element().width();\r\n var itemsCount = this._items.length;\r\n var maxColCount = Math.floor(width / minColWidth) || 1;\r\n return itemsCount < maxColCount ? itemsCount : maxColCount\r\n },\r\n isCachedColCountObsolete: function() {\r\n return this._cashedColCount && this._getMaxColCount() !== this._cashedColCount\r\n },\r\n _prepareItemsWithMerging: function(colCount) {\r\n var items = this._items.slice(0);\r\n var item;\r\n var itemsMergedByCol;\r\n var result = [];\r\n var j;\r\n var i;\r\n for (i = 0; i < items.length; i++) {\r\n item = items[i];\r\n result.push(item);\r\n if (this.option(\"alignItemLabels\") || item.alignItemLabels || item.colSpan) {\r\n item.col = this._getColByIndex(result.length - 1, colCount)\r\n }\r\n if (item.colSpan > 1 && item.col + item.colSpan <= colCount) {\r\n itemsMergedByCol = [];\r\n for (j = 0; j < item.colSpan - 1; j++) {\r\n itemsMergedByCol.push({\r\n merged: true\r\n })\r\n }\r\n result = result.concat(itemsMergedByCol)\r\n } else {\r\n delete item.colSpan\r\n }\r\n }\r\n this._setItems(result)\r\n },\r\n _getColByIndex: function(index, colCount) {\r\n return index % colCount\r\n },\r\n _setItems: function(items) {\r\n this._items = items;\r\n this._cashedColCount = null\r\n },\r\n _generateLayoutItems: function() {\r\n var items = this._items;\r\n var colCount = this._getColCount();\r\n var result = [];\r\n var item;\r\n var i;\r\n for (i = 0; i < items.length; i++) {\r\n item = items[i];\r\n if (!item.merged) {\r\n var generatedItem = {\r\n location: {\r\n row: parseInt(i / colCount),\r\n col: this._getColByIndex(i, colCount)\r\n }\r\n };\r\n if (isDefined(item.disabled)) {\r\n generatedItem.disabled = item.disabled\r\n }\r\n if (isDefined(item.visible)) {\r\n generatedItem.visible = item.visible\r\n }\r\n if (isDefined(item.colSpan)) {\r\n generatedItem.location.colspan = item.colSpan\r\n }\r\n if (isDefined(item.rowSpan)) {\r\n generatedItem.location.rowspan = item.rowSpan\r\n }\r\n result.push(generatedItem)\r\n }\r\n }\r\n return result\r\n },\r\n _renderEmptyItem: function($container) {\r\n return $container.addClass(FIELD_EMPTY_ITEM_CLASS).html(\" \")\r\n },\r\n _getButtonHorizontalAlignment: function(item) {\r\n if (isDefined(item.horizontalAlignment)) {\r\n return item.horizontalAlignment\r\n }\r\n return \"right\"\r\n },\r\n _getButtonVerticalAlignment: function(item) {\r\n switch (item.verticalAlignment) {\r\n case \"center\":\r\n return \"center\";\r\n case \"bottom\":\r\n return \"flex-end\";\r\n default:\r\n return \"flex-start\"\r\n }\r\n },\r\n _renderButtonItem: function(item, $container) {\r\n var $button = $(\"
\").appendTo($container);\r\n var defaultOptions = {\r\n validationGroup: this.option(\"validationGroup\")\r\n };\r\n $container.addClass(FIELD_BUTTON_ITEM_CLASS).css(\"textAlign\", this._getButtonHorizontalAlignment(item));\r\n $container.parent().css(\"justifyContent\", this._getButtonVerticalAlignment(item));\r\n var instance = this._createComponent($button, \"dxButton\", extend(defaultOptions, item.buttonOptions));\r\n this._itemsRunTimeInfo.add({\r\n item: item,\r\n widgetInstance: instance,\r\n guid: item.guid,\r\n $itemContainer: $container\r\n });\r\n this._addItemClasses($container, item.col);\r\n return $button\r\n },\r\n _addItemClasses: function($item, column) {\r\n $item.addClass(FIELD_ITEM_CLASS).addClass(this.option(\"cssItemClass\")).addClass(isDefined(column) ? \"dx-col-\" + column : \"\")\r\n },\r\n _renderFieldItem: function(item, $container) {\r\n var name = this._getName(item);\r\n var id = this.getItemID(name);\r\n var isRequired = isDefined(item.isRequired) ? item.isRequired : !!this._hasRequiredRuleInSet(item.validationRules);\r\n var labelOptions = this._getLabelOptions(item, id, isRequired);\r\n var $editor = $(\"
\");\r\n var helpID = item.helpText ? \"dx-\" + new Guid : null;\r\n var $label;\r\n this._addItemClasses($container, item.col);\r\n $container.addClass(isRequired ? FIELD_ITEM_REQUIRED_CLASS : FIELD_ITEM_OPTIONAL_CLASS);\r\n if (labelOptions.visible && labelOptions.text) {\r\n $label = this._renderLabel(labelOptions).appendTo($container)\r\n }\r\n if (item.itemType === SIMPLE_ITEM_TYPE) {\r\n if (this._isLabelNeedBaselineAlign(item) && \"top\" !== labelOptions.location) {\r\n $container.addClass(FIELD_ITEM_LABEL_ALIGN_CLASS)\r\n }\r\n this._hasBrowserFlex() && $container.addClass(FLEX_LAYOUT_CLASS)\r\n }\r\n $editor.data(\"dx-form-item\", item);\r\n this._appendEditorToField({\r\n $fieldItem: $container,\r\n $label: $label,\r\n $editor: $editor,\r\n labelOptions: labelOptions\r\n });\r\n var instance = this._renderEditor({\r\n $container: $editor,\r\n dataField: item.dataField,\r\n name: item.name,\r\n editorType: item.editorType,\r\n editorOptions: item.editorOptions,\r\n template: this._getTemplateByFieldItem(item),\r\n isRequired: isRequired,\r\n helpID: helpID,\r\n labelID: labelOptions.labelID,\r\n id: id,\r\n validationBoundary: this.option(\"validationBoundary\"),\r\n allowIndeterminateState: item.allowIndeterminateState\r\n });\r\n this._itemsRunTimeInfo.add({\r\n item: item,\r\n widgetInstance: instance,\r\n guid: item.guid,\r\n $itemContainer: $container\r\n });\r\n var editorElem = $editor.children().first();\r\n var $validationTarget = editorElem.hasClass(TEMPLATE_WRAPPER_CLASS) ? editorElem.children().first() : editorElem;\r\n var validationTargetInstance = $validationTarget && $validationTarget.data(\"dx-validation-target\");\r\n if (validationTargetInstance) {\r\n this._renderValidator($validationTarget, item);\r\n if (isMaterial()) {\r\n this._addWrapperInvalidClass(validationTargetInstance)\r\n }\r\n }\r\n this._renderHelpText(item, $editor, helpID);\r\n this._attachClickHandler($label, $editor, item.editorType)\r\n },\r\n _hasRequiredRuleInSet: function(rules) {\r\n var hasRequiredRule;\r\n if (rules && rules.length) {\r\n each(rules, (function(index, rule) {\r\n if (\"required\" === rule.type) {\r\n hasRequiredRule = true;\r\n return false\r\n }\r\n }))\r\n }\r\n return hasRequiredRule\r\n },\r\n _getName: function(item) {\r\n return item.dataField || item.name\r\n },\r\n _isLabelNeedBaselineAlign: function(item) {\r\n return !!item.helpText && !this._hasBrowserFlex() || -1 !== inArray(item.editorType, [\"dxTextArea\", \"dxRadioGroup\", \"dxCalendar\", \"dxHtmlEditor\"])\r\n },\r\n _isLabelNeedId: function(item) {\r\n return -1 !== inArray(item.editorType, [\"dxRadioGroup\", \"dxCheckBox\", \"dxLookup\", \"dxSlider\", \"dxRangeSlider\", \"dxSwitch\", \"dxHtmlEditor\"])\r\n },\r\n _getLabelOptions: function(item, id, isRequired) {\r\n var labelOptions = extend({\r\n showColon: this.option(\"showColonAfterLabel\"),\r\n location: this.option(\"labelLocation\"),\r\n id: id,\r\n visible: true,\r\n isRequired: isRequired\r\n }, item ? item.label : {});\r\n if (this._isLabelNeedId(item)) {\r\n labelOptions.labelID = \"dx-label-\".concat(new Guid)\r\n }\r\n if (!labelOptions.text && item.dataField) {\r\n labelOptions.text = captionize(item.dataField)\r\n }\r\n if (labelOptions.text) {\r\n labelOptions.text += labelOptions.showColon ? \":\" : \"\"\r\n }\r\n return labelOptions\r\n },\r\n _renderLabel: function(options) {\r\n var {\r\n text: text,\r\n id: id,\r\n location: location,\r\n alignment: alignment,\r\n isRequired: isRequired,\r\n labelID: labelID = null\r\n } = options;\r\n if (isDefined(text) && text.length > 0) {\r\n var labelClasses = FIELD_ITEM_LABEL_CLASS + \" \" + FIELD_ITEM_LABEL_LOCATION_CLASS + location;\r\n var $label = $(\"