{"version":3,"sources":["webpack:///./node_modules/devextreme/esm/localization/language_codes.js","webpack:///./node_modules/devextreme/esm/localization/cldr-data/first_day_of_week_data.js","webpack:///./node_modules/devextreme/esm/localization/intl/date.js","webpack:///./node_modules/devextreme/esm/localization/date.js","webpack:///./src/views/modules/revert-BDC/revert-BDC.vue?314a","webpack:///./src/api/booking.js","webpack:///./node_modules/devextreme/esm/localization/ldml/date.formatter.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.utils.js","webpack:///./node_modules/devextreme/esm/localization/ldml/date.format.js","webpack:///./node_modules/devextreme/esm/localization/default_date_names.js","webpack:///./node_modules/devextreme/esm/format_helper.js","webpack:///./src/views/modules/revert-BDC/revert-BDC.vue?797c","webpack:///./src/views/modules/revert-BDC/revert-BDC.js","webpack:///./src/views/modules/revert-BDC/revert-BDC.js?c513","webpack:///./src/views/modules/revert-BDC/revert-BDC.vue","webpack:///./node_modules/devextreme/esm/ui/shared/filtering.js","webpack:///./node_modules/devextreme/esm/localization/ldml/date.parser.js","webpack:///./node_modules/jszip/dist/jszip.min.js","webpack:///./node_modules/devextreme-vue/data-grid.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.modules.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.core.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.column_state_mixin.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.columns_view.js","webpack:///./node_modules/devextreme/esm/ui/shared/accessibility.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.accessibility.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.column_headers.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.column_headers.js","webpack:///./node_modules/devextreme/esm/core/utils/date_serialization.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.columns_controller.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.columns_controller.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.data_source_adapter.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.data_source_adapter.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.data_controller.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.data_controller.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.sorting_mixin.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.sorting.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.sorting.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.rows.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.rows.js","webpack:///./node_modules/devextreme/esm/ui/context_menu/ui.menu_base.edit.strategy.js","webpack:///./node_modules/devextreme/esm/ui/context_menu/ui.menu_base.js","webpack:///./node_modules/devextreme/esm/ui/context_menu/ui.context_menu.js","webpack:///./node_modules/devextreme/esm/ui/context_menu.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.context_menu.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.context_menu.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.error_handling.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.error_handling.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.grid_view.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.grid_view.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/ui.toolbar.menu.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/ui.toolbar.utils.js","webpack:///./node_modules/devextreme/esm/ui/drop_down_menu.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/ui.toolbar.drop_down_menu.js","webpack:///./node_modules/devextreme/esm/ui/toolbar.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.header_panel.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.header_panel.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.base.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.state_storing_core.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.state_storing.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.state_storing.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.selection.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.selection.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.column_chooser.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.column_chooser.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.grouping.core.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.utils.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.grouping.expanded.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.grouping.collapsed.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.grouping.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.master_detail.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.master_detail.js","webpack:///./node_modules/devextreme/esm/ui/number_box/utils.js","webpack:///./node_modules/devextreme/esm/ui/number_box/number_box.caret.js","webpack:///./node_modules/devextreme/esm/ui/number_box/number_box.spin.js","webpack:///./node_modules/devextreme/esm/ui/number_box/number_box.spins.js","webpack:///./node_modules/devextreme/esm/ui/number_box/number_box.base.js","webpack:///./node_modules/devextreme/esm/ui/number_box/number_box.mask.js","webpack:///./node_modules/devextreme/esm/ui/number_box/number_box.js","webpack:///./node_modules/devextreme/esm/ui/number_box.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.mask.parts.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_utils.js","webpack:///./node_modules/devextreme/esm/events/gesture/swipeable.js","webpack:///./node_modules/devextreme/esm/ui/calendar/ui.calendar.navigator.js","webpack:///./node_modules/devextreme/esm/ui/calendar/ui.calendar.base_view.js","webpack:///./node_modules/devextreme/esm/ui/calendar/ui.calendar.views.js","webpack:///./node_modules/devextreme/esm/ui/calendar/ui.calendar.js","webpack:///./node_modules/devextreme/esm/ui/calendar.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.calendar.js","webpack:///./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/scroll_direction.js","webpack:///./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/convert_location.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_view_roller.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_view.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.date_view.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.native.js","webpack:///./node_modules/devextreme/esm/ui/box.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.time_view.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.calendar_with_time.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.list.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.base.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.mask.js","webpack:///./node_modules/devextreme/esm/ui/date_box/ui.date_box.js","webpack:///./node_modules/devextreme/esm/ui/shared/ui.editor_factory_mixin.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.editor_factory.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.editor_factory.js","webpack:///./node_modules/devextreme/esm/ui/dialog.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.editing_constants.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.editing.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.editing.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.editing_row_based.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.editing_row_based.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.items_runtime_info.js","webpack:///./node_modules/devextreme/esm/ui/multi_view/ui.multi_view.animation.js","webpack:///./node_modules/devextreme/esm/ui/multi_view.js","webpack:///./node_modules/devextreme/esm/ui/tabs/item.js","webpack:///./node_modules/devextreme/esm/ui/tabs/constants.js","webpack:///./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_scroll_left_max.js","webpack:///./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_boundary_props.js","webpack:///./node_modules/devextreme/esm/ui/tabs.js","webpack:///./node_modules/devextreme/esm/ui/tab_panel/item.js","webpack:///./node_modules/devextreme/esm/ui/tab_panel.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.item_option_action.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.utils.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.item_options_actions.js","webpack:///./node_modules/devextreme/esm/ui/responsive_box.js","webpack:///./node_modules/devextreme/esm/ui/form/constants.js","webpack:///./node_modules/devextreme/esm/ui/validation/default_adapter.js","webpack:///./node_modules/devextreme/esm/ui/validator.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.layout_manager.utils.js","webpack:///./node_modules/devextreme/esm/ui/form/components/label.js","webpack:///./node_modules/devextreme/esm/ui/form/components/field_item.js","webpack:///./node_modules/devextreme/esm/ui/form/components/button_item.js","webpack:///./node_modules/devextreme/esm/ui/form/components/empty_item.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.layout_manager.js","webpack:///./node_modules/devextreme/esm/ui/validation_summary.js","webpack:///./node_modules/devextreme/esm/ui/validation_group.js","webpack:///./node_modules/devextreme/esm/ui/form/ui.form.js","webpack:///./node_modules/devextreme/esm/ui/form.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.editing_form_based.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.editing_form_based.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.editing_cell_based.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.editing_cell_based.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.validating.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.validating.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid.core.virtual_data_loader.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.virtual_scrolling_core.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.virtual_scrolling.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.virtual_scrolling.js","webpack:///./node_modules/devextreme/esm/ui/overlay/utils.js","webpack:///./node_modules/devextreme/esm/ui/menu/ui.submenu.js","webpack:///./node_modules/devextreme/esm/ui/menu/ui.menu.js","webpack:///./node_modules/devextreme/esm/ui/menu.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.filter_row.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.filter_row.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.header_filter_core.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.header_filter.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.header_filter.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder/between.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder/ui.filter_operations_dictionary.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder/utils.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.filter_custom_operations.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.filter_sync.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.filter_sync.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder/filter_builder.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.filter_builder.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.filter_builder.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.filter_panel.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.filter_panel.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.search.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.search.js","webpack:///./node_modules/devextreme/esm/renovation/component_wrapper/grid_pager.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/utils/get_element_width.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/resizable_container.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/base_pager_props.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/pager_props.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/info.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/keyboard_action_context.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/light_button.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/consts.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pages/page.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pages/large.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/common/editor_state_props.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/common/editor_label_props.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/number_box.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/utils/calculate_values_fitted_width.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pages/small.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pages/page_index_selector.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/drop_down_editors/select_box.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/page_size/small.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/page_size/large.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/page_size/selector.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/content.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pager.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pager.j.js","webpack:///./node_modules/devextreme/esm/ui/pager.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.pager.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.pager.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.columns_resizing_reordering.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.columns_resizing_reordering.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.keyboard_navigation.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/aggregate_calculator.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.keyboard_navigation.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.summary.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.column_fixing.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.column_fixing.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.adaptivity.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.virtual_columns_core.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.adaptivity.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.virtual_columns.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.export.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.virtual_columns.js","webpack:///./node_modules/devextreme/esm/exporter/file_saver.js","webpack:///./node_modules/devextreme/esm/exporter/excel_format_converter.js","webpack:///./node_modules/devextreme/esm/exporter/excel/excel.tag_helper.js","webpack:///./node_modules/devextreme/esm/exporter/excel/excel.cell_alignment_helper.js","webpack:///./node_modules/devextreme/esm/exporter/excel/excel.color_helper.js","webpack:///./node_modules/devextreme/esm/exporter/excel/excel.pattern_fill_helper.js","webpack:///./node_modules/devextreme/esm/exporter/excel/excel.fill_helper.js","webpack:///./node_modules/devextreme/esm/exporter/excel/excel.font_helper.js","webpack:///./node_modules/devextreme/esm/exporter/excel/excel.cell_format_helper.js","webpack:///./node_modules/devextreme/esm/exporter/excel/excel.number_format_helper.js","webpack:///./node_modules/devextreme/esm/exporter/excel/excel.file.js","webpack:///./node_modules/devextreme/esm/exporter/excel_creator.js","webpack:///./node_modules/devextreme/esm/color.js","webpack:///./node_modules/devextreme/esm/core/utils/svg.js","webpack:///./node_modules/devextreme/esm/exporter/image_creator.js","webpack:///./node_modules/devextreme/esm/exporter/svg_creator.js","webpack:///./node_modules/devextreme/esm/exporter/pdf_creator.js","webpack:///./node_modules/devextreme/esm/exporter.js","webpack:///./node_modules/devextreme/esm/ui/button_group.js","webpack:///./node_modules/devextreme/esm/ui/drop_down_button.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.export.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.focus.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.focus.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.row_dragging.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.row_dragging.js","webpack:///./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.js","webpack:///./node_modules/devextreme/esm/ui/data_grid.js","webpack:///./node_modules/devextreme/esm/exporter/common/export_load_panel.js","webpack:///./node_modules/devextreme/esm/exporter/exceljs/export_format.js","webpack:///./node_modules/devextreme/esm/exporter/exceljs/export_merged_ranges_manager.js","webpack:///./node_modules/devextreme/esm/exporter/exceljs/export.js","webpack:///./node_modules/devextreme/esm/exporter/exceljs/export_data_grid.js","webpack:///./node_modules/devextreme/esm/exporter/exceljs/export_pivot_grid.js","webpack:///./node_modules/devextreme/esm/core/utils/date.js"],"names":["LANGUAGE_CODES","ar","bg","ca","cs","da","de","el","en","es","fi","fr","he","hu","is","it","ja","ko","nl","no","pl","pt","rm","ro","ru","hr","sk","sq","sv","th","tr","ur","id","uk","be","sl","et","lv","lt","tg","fa","vi","hy","az","eu","hsb","mk","tn","xh","zu","af","ka","fo","hi","mt","se","ga","ms","kk","ky","sw","tk","uz","tt","bn","pa","gu","or","ta","te","kn","ml","as","mr","sa","mn","bo","cy","km","lo","gl","kok","syr","si","iu","am","tzm","ne","fy","ps","fil","dv","ha","yo","quz","nso","ba","lb","kl","ig","ii","arn","moh","br","ug","mi","oc","co","gsw","sah","qut","rw","wo","prs","gd","smn","sms","zh","nn","bs","sma","nb","sr","dsb","smj","getLanguageId","locale","agq","ak","asa","ast","bas","bem","bez","bm","ce","cgg","ckb","dje","dua","dyo","ee","eo","ewo","ff","fur","gv","ia","jgo","jmc","kab","kde","kea","khq","kkj","ksb","ksf","ksh","ku","kw","lag","lg","ln","lrc","lu","mfe","mg","mgo","mua","mzn","naq","nds","nmg","nnh","nus","nyn","os","pcm","rn","rof","rwk","sbp","sc","ses","sg","shi","so","teo","to","twq","vai","vun","wae","xog","yav","yi","zgh","SYMBOLS_TO_REMOVE_REGEX","getIntlFormatter","format","date","timeZoneName","year","getFullYear","recognizableAsTwentyCentury","String","length","temporaryYearValue","utcDate","Date","UTC","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","setFullYear","utcFormat","extend","timeZone","formatDateTime","formattersCache","getFormatter","key","JSON","stringify","Intl","DateTimeFormat","replace","formatNumber","number","NumberFormat","getAlternativeNumeralsMap","numeralsMapCache","i","normalizeNumerals","dateString","alternativeNumeralsMap","split","map","sign","join","removeLeadingZeroes","str","dateStringEquals","actual","expected","normalizeMonth","text","intlFormats","day","dayofweek","weekday","longdate","month","longdatelongtime","hour","minute","second","longtime","monthandday","monthandyear","shortdate","shorttime","shortyear","Object","defineProperty","get","defaultOptions","resolvedOptions","getIntlFormat","toLowerCase","monthNameStrategies","standalone","monthIndex","monthFormat","parts","filter","part","indexOf","engine","getMonthNames","type","wide","abbreviated","narrow","Array","apply","_","getDayNames","result","dayIndex","short","getPeriodNames","hour12Formatter","hour12","hours","hourNumberText","timeParts","biggerPart","trim","_format","formatter","intlFormat","formatType","this","callBase","arguments","parse","parser","_parseDateBySimpleFormat","formatParts","getFormatParts","dateParts","dateArgs","_generateDateArgs","constructValidDate","ampmShift","parsedDate","hoursShift","minutes","seconds","currentDate","forEach","formatPart","index","datePart","parsed","parseInt","formatUsesMonthName","formatUsesDayName","getTimeSeparator","formattedDate","name","value","sort","a","b","DEFAULT_DAY_OF_WEEK_INDEX","hasIntl","FORMATS_TO_PATTERN_MAP","quarterandyear","shortdateshorttime","quarter","millisecond","possiblePartPatterns","milliseconds","dateLocalization","_getPatternByFormat","_expandPattern","pattern","partName","possiblePatterns","includes","push","getQuarterNames","is24HourFormat","amTime","pmTime","amTimeFormatted","pmTimeFormatted","isNaN","convertDigits","ldmlFormat","that","e","errors","log","getTime","firstDayOfWeekIndex","getValueByClosestLocale","inject","api_UBK17","data","fetch","ROOT","API_UBK17","requestOptions","postBody","then","handleResponse","api_RBK13","API_RBK13","api_RBK15","API_RBK15","api_UBK16","API_UBK16","api_IBKR01","API_IBKR01","api_DBKR01","API_DBKR01","api_RBKR01","API_RBKR01","getListTeeTimeBooking","GET_LIST_TEE_BOOKING_API","api_UBKWL1","API_UBKWL1","api_RBKWL1","API_RBKWL1","api_DBKWL1","API_DBKWL1","api_RPM01F","API_RPM01F","api_RCL03","API_RCL03","getListNational","GET_LIST_NATIONAL_API","getListGroup","GET_LIST_GROUP_API","getListBooking","GET_LIST_BOOKING_API","getGolfClasses","GOLF_CLASSES_API","getListResources","RESOURCES_API","createBooking","CREATE_BOOKING_API","addMember","ADD_MEMBER_API","getDetailBooking2A","DETAIL_BOOKING_2A_API","getDetailBooking2B","DETAIL_BOOKING_2B_API","getDetailBooking2C","DETAIL_BOOKING_2C_API","getRateCode","RATE_CODE_API","checkIn","CHECK_IN","combineGroup","COMBINE_GROUP_API","getListSources","SOURCES_LIST_API","updateRateCode","UPDATE_RATE_CODE_API","SplitGroup","SPLITGROUP_API","updateCaddy","BOOKING_UPDATE_CADDY","getListCaddy","LIST_CADDY","getListServices","LIST_SERVICES_API","updateBookingInfo","UPDATE_BOOKING_INFO","getConfigInfo","GET_CONFIG_API","noShow","NO_SHOW","getRBK02C","CHECK_OUT","api_RBK02D","API_RBK02D","getRPM01","GET_LIST_PAYMENT","createPayment","CREATE_PAYMENT_API","createPaymentDetail","CREATE_PAYMENT_DETAIL_API","getListPaymentMethod","GET_LIST_PAYMENT_METHOD","getListPaymentDetail","GET_LIST_PAYMENT_DETAIL","updateBookingService","UPDATE_BOOKING_SERVICE","deletePaymentDetail","DELETE_PAYMENT_DETAIL","deletePayment","DELETE_PAYMENT","getListServicesFee","GET_LIST_SERVICES","getListReasonDiscount","GET_LIST_REASON_DISCOUNT","updateTeeTimeForBooking","UPDATE_TEE_TIME_FOR_BOOKING","updateNoteAndLockerForBooking","UPDATE_LOCKER_AND_NOTE_FOR_BOOKING","api_UBK09","API_UBK09","getBookingRetail","GET_BOOKING_RETAIL","api_RBK09","API_RBK09","api_RCS01","API_RCS01","api_RME05","API_RME05","api_UBK04","API_UBK04","api_UBK07","API_UBK07","api_DBK01","API_DBK01","api_DBK02","API_DBK02","api_UPM02","API_UPM02","api_ICI02","API_ICI02","api_RPM02D","API_RPM02D","api_IPM02D","API_IPM02D","api_DPM02D","API_DPM02D","api_UPM02D","API_UPM02D","api_RPF02","API_RPF02","api_RHS01","API_RHS01","api_RIV01","API_RIV01","api_UPM01","API_UPM01","api_UBK12","API_UBK12","api_UBK13","API_UBK13","api_RTE03","API_RTE03","api_RTB02","API_RTB02","api_RBK10","API_RBK10","api_DPM06","API_DPM06","api_RPM02M","API_RPM02M","api_IPM02R","API_IPM02R","api_IEM01","API_IEM01","api_IEM02","API_IEM02","api_DPM07","API_DPM07","api_UBK11","API_UBK11","api_RME01F","API_RME01F","api_DPM09","API_DPM09","api_RRA05","API_RRA05","api_ICI03","API_ICI03","api_VC_RV03","API_VC_RV03","api_VC_RV04","API_VC_RV04","api_VC_RV05","API_VC_RV05","api_UBK10","API_UBK10","api_UPM06","API_UPM06","api_RRPDF","API_RRPDF","api_RBK06","API_RBK06","api_VC_RV06","API_VC_RV06","api_RRA04A","API_RRA04A","api_UBK15","API_UBK15","api_RBK12","API_RBK12","api_UPM07","API_UPM07","booking","leftPad","FORMAT_TYPES","3","4","5","LDML_FORMATTERS","y","count","useUtc","toString","M","Math","min","L","Q","floor","E","period","d","H","h","m","s","S","substr","x","timezoneOffset","getTimezoneOffset","signPart","timezoneOffsetAbs","abs","hoursPart","minutesPart","X","Z","charIndex","char","isCurrentCharEqualsNext","charCount","isEscaping","slice","DATAGRID_SELECTION_DISABLED_CLASS","DATAGRID_GROUP_OPENED_CLASS","DATAGRID_GROUP_CLOSED_CLASS","DATAGRID_EXPAND_CLASS","NO_DATA_CLASS","SCROLLING_MODE_INFINITE","SCROLLING_MODE_VIRTUAL","LEGACY_SCROLLING_MODE","SCROLLING_MODE_OPTION","ROW_RENDERING_MODE_OPTION","DATE_INTERVAL_SELECTORS","getIntervalSelector","calculateCellValue","isDateType","dataType","nameIntervalSelector","groupInterval","Number","equalSelectors","selector1","selector2","originalCallback","columnIndex","setEmptyText","$container","textContent","normalizeSortingInfo","isExpanded","formatValue","options","valueText","formatObject","getDisplayFormat","target","customizeText","call","getSummaryText","summaryItem","summaryTexts","displayFormat","columnCaption","summaryType","valueFormat","getWidgetInstance","$element","editorData","dxComponents","widgetName","equalFilterParameters","filter1","filter2","isArray","filterValue","normalizeGroupingLoadOptions","group","item","selector","renderNoDataText","element","noDataClass","addWidgetPrefix","noDataElement","find","last","isVisible","_dataController","isEmpty","isLoading","addClass","appendTo","removeClass","_getNoDataText","renderLoadPanel","isLocalStore","loadPanelOptions","_loadPanel","remove","option","enabled","shading","message","container","_createComponent","$window","of","boundary","collision","getIndexByKey","items","keyName","combineFilters","filters","operation","resultFilter","_filters$i","checkChanges","changes","changeNames","changesWithChangeNamesCount","proxyMethod","instance","methodName","defaultResult","dataSource","_dataSource","getFormatOptionsByColumn","column","trueText","falseText","getDisplayValue","rowType","displayValueMap","calculateDisplayValue","lookup","calculateGroupValue","getGroupRowSummaryText","summaryItems","getFormatByDataType","getHeaderFilterGroupParameters","remoteGrouping","dataField","getGroupInterval","interval","bind","sortingMethod","compare","sortParameters1","sortParameters2","ignoreIsExpanded","desc","Boolean","getPointsByColumns","pointCreated","isVertical","startColumnIndex","offset","rtlEnabled","cellsLength","notCreatePoint","eq","css","point","left","width","top","height","prevItemOffset","getExpandCellTemplate","allowRenderToDetachedContainer","render","isContinuation","row","isNewRow","rowsView","component","getView","setAria","localize","getSelectionRange","focusedElement","selectionStart","selectionEnd","setSelectionRange","selectionRange","focusAndSelectElement","isFocused","trigger","isSelectTextOnEditingStart","editor","closest","_loadItemDeferred","done","select","getLastResizableColumnIndex","columns","resultWidths","lastColumnIndex","hasResizableColumns","some","command","fixed","allowResizing","isElementInCurrentGrid","controller","$grid","getWidgetContainerClass","parent","isVirtualRowRendering","rowRenderingMode","isVirtualMode","isAppendMode","getPixelRatio","window","devicePixelRatio","browser","mozilla","lookupDataSourceOptions","isWrapped","normalizeLookupDataSource","defaultCalculateCellValue","cachedUniqueRelevantItems","hasGroupPaging","remoteOperations","groupPaging","hasLookupOptimization","displayField","lookupDataSource","load","loadOptions","resolve","take","skip","fail","newDataSource","lookupItems","_column$displayValueM","valueExpr","displayExpr","store","_filter","flatMap","on","storeLoadOptions","arr","promise","ARABIC_COMMA","FORMAT_SEPARATORS","AM_PM_PATTERN","checkDigit","code","charCodeAt","zeroCode","checkPatternContinue","patterns","isDigit","nextChar","isDigitChanged","getPatternStartIndex","defaultPattern","getDifference","processedIndexes","patternsFilter","unshift","replaceCharsCore","indexes","patternPositions","baseCharIndex","patternIndex","replaceChars","letterCount","max","pop","ESCAPE_CHARS_REGEXP","escapeChars","escapeIndexes","match","isCurrentCharEscaped","isPrevCharEscaped","isNextCharEscaped","getFormat","replacedPatterns","datePatterns","test","diff","MONTHS","DAYS","PERIODS","QUARTERS","cutCaptions","captions","lengthByFormat","caption","formatIsValid","valueIsValid","getTimeFormat","showSecond","_normalizeFormat","getDateFormatByDifferences","dateDifferences","intervalFormat","resultFormat","needSpecialSecondFormatter","getDateFormatByTicks","ticks","maxDiff","currentDiff","getDatesDifferences","getDateFormatByTickInterval","startValue","endValue","tickInterval","dateUnitInterval","correctDateDifferences","differences","minDate","maxDate","getDateUnitInterval","week","_vm","_h","$createElement","_c","_self","attrs","ref","daysOfWeek","monthNames","firstDay","model","search","callback","$$v","$set","expression","staticClass","scopedSlots","_u","fn","searching","_v","_s","staticStyle","listAction","KeyCode","listSale","_e","$event","getListBDCRevert","$t","listBDC","listKeyCodeAction","addAction","optionPerPage","perPage","proxy","exportExcel","heightTable","ListBDCRevert","convertUTC","CreateDate","UpdateDate","Action","KeyValue","IsDeleted","deleteBDCRevert","_l","field","alignment","cellTemplate","editorOptions","band","j","customText","staticRenderFns","dataGridRef","components","DxDataGrid","DxColumn","DxEditing","DxFilterRow","DxHeaderFilter","DxGroupPanel","DxGrouping","DxScrolling","DxPaging","DxPager","DxSummary","DxLookup","DxTotalItem","DxGroupItem","DxMasterDetail","DxStringLengthRule","DxRequiredRule","DxRangeRule","DxValueFormat","DxColumnChooser","DxColumnFixing","DxSelection","DxExport","currentPage","configTable","isShow","FromDate","getUTC","ToDate","BDC","CashierCode","windowHeight","created","getConfig_RCOM01","getListCashier_RCS01","computed","dataGrid","$refs","watch","methods","_this","_asyncToGenerator","_regeneratorRuntime","mark","_callee","responseBooking_Config","listActionConfig","responseTransaction_Config","wrap","_context","prev","next","KeyGroup","sent","Data","Status","stop","_this2","_callee2","body","response","_context2","BookingDetailId","showResToast","_this3","_callee3","_context3","BookingDetailRevert","_this4","_callee4","_context4","BookingDetailRevertId","Id","_this5","_callee5","_context5","_response$Data","Cashier","label","CashierName","_this6","workbook","Workbook","worksheet","addWorksheet","listActionTemp","localStorage","getItem","exportDataGrid","autoFilterEnabled","PrintSelectedRowsOnly","topLeftCell","customizeCell","gridCell","excelCell","cellRange","headerRow","getRow","mergeCells","getCell","concat","font","size","horizontal","footerRowIndex","footerRow","color","argb","italic","xlsx","writeBuffer","buffer","saveAs","Blob","DEFAULT_DATE_INTERVAL","DEFAULT_DATETIME_INTERVAL","dateIntervals","headerFilter","getFilterSelector","getFilterExpressionByRange","endFilterValue","startFilterExpression","endFilterExpression","setDate","getFilterExpressionForDate","selectedFilterOperation","dateStart","dateEnd","dateInterval","values","dateValue","getFilterExpressionForNumber","startFilterValue","condition","defaultCalculateFilterExpression","isSearchByDisplayValue","monthRegExpGenerator","keys","PATTERN_REGEXPS","countSuffix","timeSeparator","w","parseNumber","caseInsensitiveIndexOf","array","monthPatternParser","reduce","PATTERN_PARSERS","dayNames","periodNames","ORDERED_PATTERNS","PATTERN_SETTERS","datePartValues","hourPartValue","setHours","getSameCharCount","createPattern","getRegExpInfo","regexpText","stubText","addPreviousStub","isEscapeChar","regexpPart","isPossibleForParsingFormat","warn","regexp","RegExp","digitFieldSymbols","isDigitPattern","possibleForParsing","ambiguousDigitPatternsCount","every","getPatternSetters","setPatternPart","patternChar","partSetter","partParser","setPatternPartFromNow","now","setterName","getterName","getShortPatterns","fullPatterns","getMaxOrderedPatternIndex","getOrderedFormatPatterns","formatPatterns","otherPatterns","getParser","regExpInfo","regExpResult","exec","maxPatternIndex","orderedFormatPatterns","regExpPattern","regExpText","module","exports","o","u","r","t","require","l","n","Error","1","c","p","encode","f","getTypeOf","charAt","decode","uint8array","Uint8Array","2","compressedSize","uncompressedSize","crc32","compression","compressedContent","prototype","getContentWorker","Promise","pipe","uncompressWorker","streamInfo","data_length","getCompressedWorker","withStreamInfo","createWorkerFrom","compressWorker","STORE","magic","DEFLATE","base64","binary","dir","createFolders","compressionOptions","comment","unixPermissions","dosPermissions","6","lie","7","Uint16Array","Uint32Array","_pako","_pakoAction","_pakoOptions","meta","inherits","processChunk","_createPako","transformTo","flush","cleanUp","raw","level","onData","pako","8","A","fromCharCode","file","O","utf8encode","I","g","v","k","z","C","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCFullYear","getUTCMonth","getUTCDate","B","fileRecord","R","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","bytesWritten","zipComment","zipPlatform","encodeFileName","streamFiles","accumulate","contentBuffer","dirRecords","currentSourceOffset","entriesCount","currentFile","_sources","percent","openedSource","closedSource","DATA_DESCRIPTOR","shift","CENTRAL_DIRECTORY_END","prepareNextSource","previous","isPaused","pause","resume","registerPrevious","end","error","generatedError","lock","9","generateWorker","platform","_compressWorker","10","files","create","root","clone","loadAsync","support","defaults","version","external","11","decompressed","checkCRC32","optimizedBinaryString","decodeFileName","utf8decode","isNode","isStream","reject","prepareContent","all","fileNameStr","fileCommentStr","unsafeOriginalName","12","_upstreamEnded","_bindStream","_stream","13","Readable","_helper","emit","_read","14","Buffer","newBufferFrom","from","allocBuffer","alloc","fill","isBuffer","15","toUpperCase","substring","lastIndexOf","folder","generate","generateInternalStream","mimeType","checkSupport","generateAsync","generateNodeStream","toNodejsStream","16","stream","17","byteAt","zero","lastIndexOfSignature","readAndCheckSignature","readData","checkOffset","18","checkIndex","setIndex","readInt","readString","readDate","19","20","21","subarray","22","23","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","24","destType","25","26","propName","27","dataIsReady","_tickScheduled","_tickAndRepeat","delay","isFinished","_tick","28","extraStreamInfo","isLocked","_listeners","mergeStreamInfo","hasOwnProperty","29","nodestream","_internalType","_outputType","_mimeType","newBlob","set","_worker","objectMode","30","string","arraybuffer","ArrayBuffer","nodebuffer","blob","self","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","append","getBlob","31","leftOver","applyFromCharCode","Utf8DecodeWorker","Utf8EncodeWorker","32","stringifyByChunk","stringifyByChar","applyCanBeUsed","byteLength","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","setImmediate","FileReader","onload","onerror","readAsArrayBuffer","setimmediate","33","checkSignature","reader","isSignature","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","zip64ExtensibleData","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","processAttributes","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","34","isEncrypted","bitFlag","useUTF8","fileNameLength","fileName","compressionMethod","versionMadeBy","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","fileComment","extraFields","findExtraFieldUnicodePath","findExtraFieldUnicodeComment","35","_data","_dataBinary","internalStream","_decompressWorker","async","nodeStream","36","MutationObserver","WebKitMutationObserver","document","createTextNode","observe","characterData","MessageChannel","createElement","onreadystatechange","parentNode","removeChild","documentElement","appendChild","setTimeout","port1","onmessage","port2","postMessage","global","37","TypeError","state","queue","outcome","onFulfilled","callFulfilled","otherCallFulfilled","onRejected","callRejected","otherCallRejected","status","finally","constructor","catch","race","immediate","38","assign","39","method","chunkSize","windowBits","memLevel","strategy","gzip","err","msg","ended","chunks","strm","avail_out","deflateInit2","header","deflateSetHeader","dictionary","string2buf","deflateSetDictionary","_dict_set","input","next_in","avail_in","output","Buf8","next_out","deflate","onEnd","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","Deflate","deflateRaw","40","inflateInit2","Z_OK","inflateGetHeader","Z_FINISH","Z_NO_FLUSH","binstring2buf","inflate","Z_NEED_DICT","inflateSetDictionary","Z_BUF_ERROR","Z_STREAM_END","Z_SYNC_FLUSH","utf8border","buf2string","arraySet","inflateEnd","Inflate","inflateRaw","ungzip","41","Int32Array","setTyped","Buf16","Buf32","42","43","44","Z_PARTIAL_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","45","46","T","D","F","pending","pending_buf","pending_out","total_out","N","_tr_flush_block","block_start","strstart","U","P","max_chain_length","prev_length","nice_match","w_size","w_mask","good_match","lookahead","match_start","window_size","hash_size","head","adler","total_in","insert","ins_h","hash_shift","hash_mask","match_length","_tr_tally","max_lazy_match","last_lit","W","prev_match","match_available","good_length","max_lazy","nice_length","max_chain","func","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","heap","heap_len","heap_max","depth","l_buf","lit_bufsize","d_buf","opt_len","static_len","matches","bi_buf","bi_valid","G","data_type","_tr_init","K","Y","deflateInit","deflateReset","deflateResetKeep","hcrc","extra","time","_tr_align","_tr_stored_block","deflateInfo","47","xflags","extra_len","48","dmax","wsize","whave","wnext","hold","bits","lencode","distcode","lenbits","distbits","mode","sane","49","havedict","flags","check","total","wbits","ncode","nlen","ndist","have","lens","work","lendyn","distdyn","back","was","inflateReset","inflateReset2","inflateResetKeep","inflateInit","inflateInfo","50","51","0","52","static_tree","extra_bits","extra_base","elems","max_length","has_stree","dyn_tree","max_code","stat_desc","V","q","J","53","54","getPrototypeOf","process","nextTick","importScripts","random","addEventListener","attachEvent","Function","args","clearImmediate","source","__importDefault","mod","__esModule","DxLoadPanel","DxLabel","DxKeyboardNavigation","DxItem","DxHide","DxGroupOperationDescriptions","DxGroupingTexts","DxFrom","DxFormItem","DxFormat","DxForm","DxFilterPanelTexts","DxFilterPanel","DxFilterOperationDescriptions","DxFilterBuilderPopup","DxFilterBuilder","DxFieldLookup","DxField","DxExportTexts","DxEmailRule","DxEditingTexts","DxDataGridHeaderFilterTexts","DxDataGridHeaderFilter","DxCustomRule","DxCustomOperation","DxCursorOffset","DxCompareRule","DxColumnLookup","DxColumnHeaderFilter","DxColumnFixingTexts","DxCollision","DxColCountByScreen","DxChange","DxButton","DxBoundaryOffset","DxAt","DxAsyncRule","DxAnimation","DxValidationRule","DxToolbarItem","DxToolbar","DxTo","DxTexts","DxSummaryTexts","DxStateStoring","DxSorting","DxSortByGroupSummaryInfo","DxShow","DxSearchPanel","DxRowDragging","DxRemoteOperations","DxPosition","DxPopup","DxPatternRule","DxOperationDescriptions","DxOffset","DxNumericRule","DxMy","data_grid_1","index_1","index_2","createComponent","props","accessKey","activeStateEnabled","allowColumnReordering","allowColumnResizing","autoNavigateToFocusedRow","cacheEnabled","cellHintEnabled","columnAutoWidth","columnChooser","columnFixing","columnHidingEnabled","columnMinWidth","columnResizingMode","columnWidth","customizeColumns","customizeExportData","dataRowTemplate","dateSerializationFormat","disabled","editing","elementAttr","errorRowEnabled","export","filterBuilder","filterBuilderPopup","filterPanel","filterRow","filterSyncEnabled","focusedColumnIndex","focusedRowEnabled","focusedRowIndex","focusedRowKey","focusStateEnabled","grouping","groupPanel","highlightChanges","hint","hoverStateEnabled","keyboardNavigation","keyExpr","loadPanel","masterDetail","noDataText","onAdaptiveDetailRowPreparing","onCellClick","onCellDblClick","onCellHoverChanged","onCellPrepared","onContentReady","onContextMenuPreparing","onDataErrorOccurred","onDisposing","onEditCanceled","onEditCanceling","onEditingStart","onEditorPrepared","onEditorPreparing","onExported","onExporting","onFileSaving","onFocusedCellChanged","onFocusedCellChanging","onFocusedRowChanged","onFocusedRowChanging","onInitialized","onInitNewRow","onKeyDown","onOptionChanged","onRowClick","onRowCollapsed","onRowCollapsing","onRowDblClick","onRowExpanded","onRowExpanding","onRowInserted","onRowInserting","onRowPrepared","onRowRemoved","onRowRemoving","onRowUpdated","onRowUpdating","onRowValidating","onSaved","onSaving","onSelectionChanged","onToolbarPreparing","pager","paging","renderAsync","repaintChangesOnly","rowAlternationEnabled","rowDragging","rowTemplate","scrolling","searchPanel","selectedRowKeys","selection","selectionFilter","showBorders","showColumnHeaders","showColumnLines","showRowLines","sortByGroupSummaryInfo","sorting","stateStoring","summary","syncLookupFilterValues","tabIndex","toolbar","twoWayBindingEnabled","visible","wordWrapEnabled","emits","$_instance","beforeCreate","$_WidgetClass","default","$_hasAsyncTemplate","$_expectedChildren","isCollectionItem","optionName","dataGridHeaderFilter","createConfigurationComponent","hide","show","$_optionName","ignoreEmptyValue","reevaluate","validationCallback","$_isCollectionItem","$_predefinedProps","cssClass","icon","onClick","template","insertAfterKey","insertBeforeKey","md","sm","xs","allowEditing","allowExporting","allowFiltering","allowFixing","allowGrouping","allowHeaderFiltering","allowHiding","allowReordering","allowSearch","allowSorting","autoExpandGroup","buttons","calculateFilterExpression","calculateSortValue","editCellTemplate","encodeHtml","filterOperations","filterType","filterValues","fixedPosition","formItem","groupCellTemplate","grouped","groupIndex","headerCellTemplate","hidingPriority","isBand","minWidth","ownerBand","resized","setCellValue","showEditorAlways","showInColumnChooser","showWhenGrouped","sortIndex","sortOrder","validationRules","visibleIndex","AsyncRule","button","columnHeaderFilter","columnLookup","CompareRule","CustomRule","EmailRule","NumericRule","PatternRule","RangeRule","RequiredRule","StringLengthRule","validationRule","emptyPanelText","searchTimeout","title","texts","columnFixingTexts","fix","leftPosition","rightPosition","unfix","searchMode","allowClearing","comparisonTarget","comparisonType","dataTypes","editorTemplate","hasValue","dataGridHeaderFilterTexts","cancel","emptyValue","ok","allowAdding","allowDeleting","allowUpdating","confirmDelete","editColumnName","editRowKey","form","newRowPosition","popup","refreshMode","selectTextOnEditStart","startEditAction","useIcons","change","editingTexts","addRow","cancelAllChanges","cancelRowChanges","confirmDeleteMessage","confirmDeleteTitle","deleteRow","editRow","saveAllChanges","saveRowChanges","undeleteRow","validationCancelChanges","allowExportSelectedData","customizeExcelCell","excelFilterEnabled","excelWrapTextEnabled","formats","ignoreExcelErrors","proxyUrl","exportTexts","exportAll","exportSelectedRows","exportTo","defaultFilterOperation","fieldLookup","allowHierarchicalFields","bindingOptions","customOperations","fields","filterOperationDescriptions","groupOperationDescriptions","groupOperations","maxGroupLevel","onFocusIn","onFocusOut","onValueChanged","customOperation","animation","closeOnOutsideClick","contentTemplate","copyRootClassesToWrapper","deferRendering","dragAndResizeArea","dragEnabled","dragOutsideBoundary","fullScreen","hideOnOutsideClick","hideOnParentScroll","maxHeight","maxWidth","minHeight","onHidden","onHiding","onResize","onResizeEnd","onResizeStart","onShowing","onShown","onTitleRendered","position","resizeEnabled","restorePosition","shadingColor","showCloseButton","showTitle","titleTemplate","toolbarItems","wrapperAttr","between","contains","endsWith","equal","greaterThan","greaterThanOrEqual","isBlank","isNotBlank","lessThan","lessThanOrEqual","notContains","notEqual","startsWith","filterEnabled","filterPanelTexts","clearFilter","createFilter","filterEnabledHint","applyFilter","applyFilterText","betweenEndText","betweenStartText","operationDescriptions","resetOperationText","showAllText","showOperationChooser","alignItemLabels","alignItemLabelsInAllGroups","colCount","colCountByScreen","customizeItem","formData","labelLocation","labelMode","minColWidth","onEditorEnterKey","onFieldDataChanged","optionalMark","readOnly","requiredMark","requiredMessage","screenByWidth","scrollingEnabled","showColonAfterLabel","showOptionalMark","showRequiredMark","showValidationSummary","validationGroup","currency","precision","useCurrencyAccountingStyle","colSpan","editorType","helpText","isRequired","itemType","opacity","scale","allowCollapsing","autoExpandAll","contextMenuEnabled","expandMode","groupingTexts","groupByThisColumn","groupContinuedMessage","groupContinuesMessage","ungroup","ungroupAll","alignByColumn","showInColumn","showInGroupFooter","skipEmptyValues","and","notAnd","notOr","allowColumnDragging","complete","direction","duration","easing","staggerDelay","start","html","locateInMenu","location","menuItemTemplate","showText","widget","editOnKeyPress","enterKeyAction","enterKeyDirection","showColon","indicatorSrc","showIndicator","showPane","allowedPageSizes","displayMode","infoText","showInfo","showNavigationButtons","showPageSizeSelector","pageIndex","pageSize","toolbarItem","at","boundaryOffset","my","filtering","allowDropInsideItem","autoScroll","cursorOffset","dragDirection","dragTemplate","dropFeedbackMode","handle","onAdd","onDragChange","onDragEnd","onDragMove","onDragStart","onRemove","onReorder","scrollSensitivity","scrollSpeed","showDragIcons","columnRenderingMode","preloadEnabled","scrollByContent","scrollByThumb","showScrollbar","useNative","highlightCaseSensitive","highlightSearchText","placeholder","searchVisibleColumnsOnly","allowSelectAll","deferred","maxFilterLengthInRequest","selectAllMode","showCheckBoxesMode","groupColumn","ascendingText","clearText","descendingText","showSortIndexes","customLoad","customSave","savingTimeout","storageKey","calculateCustomSummary","groupItems","recalculateWhileEditing","totalItems","groupItem","totalItem","avg","avgOtherColumn","maxOtherColumn","minOtherColumn","sum","sumOtherColumn","WIDGET_WITH_LEGACY_CONTAINER_NAME","ModuleItem","inherit","_endUpdateCore","ctor","_updateLockCount","_actions","_actionConfigs","callbackNames","callbackFlags","unique","syncStrategy","init","publicMethods","beginUpdate","endUpdate","optionCache","_optionCache","_silentOption","_setOptionWithoutOptionChange","off","optionChanged","createAction","handled","getAction","actionName","$target","prefix","setAttribute","attr","getController","_controllers","config","action","_createAction","event","_createActionByOption","executeAction","dispose","empty","className","componentName","NAME","containerName","elementIsInsideGrid","$gridElement","Controller","ViewController","_views","getViews","View","_isReady","isReady","_requireReady","_requireRender","_requireResize","_$parent","_invalidate","requireResize","requireReady","_renderCore","_resizeCore","_parentElement","renderCompleted","resizeCompleted","_$element","getElementHeight","marginTop","parseFloat","marginBottom","offsetHeight","getTemplate","_getTemplate","$parent","toggleClass","fire","resize","isResizing","focus","preventScroll","MODULES_ORDER_MAX_INDEX","processModules","componentClass","modules","modulesOrder","controllerTypes","viewTypes","module1","module2","orderIndex1","orderIndex2","controllers","moduleName","views","subclassOf","extenders","extender","createModuleItems","moduleTypes","moduleItems","moduleType","moduleItem","callModuleItemsMethod","registerModule","registerModulesOrder","moduleNames","unregisterModule","COLUMN_INDICATORS_CLASS","GROUP_PANEL_ITEM_CLASS","_applyColumnState","_that$component","columnAlignment","_getColumnAlignment","parameters","isGroupPanelItem","rootElement","hasClass","$indicatorsContainer","_createIndicatorContainer","$span","_getIndicatorClassName","columnsController","indicatorAlignment","getHeaderContentAlignment","indicator","_renderIndicator","ignoreIndicatorAlignment","_getIndicatorContainer","$cell","_getIndicatorElements","$indicatorContainer","children","$indicator","_updateIndicators","indicatorName","getColumns","$cells","getColumnElements","_updateIndicator","rowOptions","cells","SCROLL_CONTAINER_CLASS","SCROLLABLE_SIMULATED_CLASS","GROUP_SPACE_CLASS","CONTENT_CLASS","TABLE_CLASS","TABLE_FIXED_CLASS","CONTENT_FIXED_CLASS","ROW_CLASS","GROUP_ROW_CLASS","GROUP_CELL_CLASS","DETAIL_ROW_CLASS","FILTER_ROW_CLASS","ERROR_ROW_CLASS","CELL_UPDATED_ANIMATION_CLASS","HIDDEN_COLUMNS_WIDTH","CELL_HINT_VISIBLE","FORM_FIELD_ITEM_CONTENT_CLASS","appendElementTemplate","content","subscribeToRowEvents","$table","touchTarget","touchCurrentTarget","timeoutId","clearTouchTargets","timeout","clearTimeout","currentTarget","pointer","down","rowIndex","getRowIndex","rowElement","_rowPointerDown","_rowClick","_rowDblClick","getWidthStyle","setCellWidth","cell","style","copyAttributes","newElement","oldAttributes","attributes","newAttributes","nodeName","hasAttribute","removeAttribute","nodeValue","ColumnsView","_createScrollableOptions","scrollingOptions","useNativeScrolling","bounceEnabled","useKeyboard","useSimulatedScrollbar","_updateCell","_cellPrepared","_createCell","textAlign","headerId","colspan","visibleWidth","_createRow","rowObject","tagName","_isAltRow","dataIndex","_createTable","isAppend","_createColGroup","safari","ctrlKey","preventDefault","$row","visibleColumns","_columnsController","getVisibleColumns","cellOptions","isHeaderRow","isDataRow","isMasterDetailRow","isGroupRow","isFilterRow","isDataRowWithTemplate","isEditorShown","isEditing","isHeaderRowWithTemplate","isGroupCellWithTemplate","shouldShowHint","removeAttr","difference","scrollWidth","clientWidth","getOptions","$fieldItemContent","delegateTarget","resultOptions","cellElement","eventType","formItemOptions","getVisibleIndex","colgroupElement","_createCol","col","renderDelayedTemplates","delayedTemplates","_delayedTemplates","syncTemplates","asyncTemplates","_renderDelayedTemplatesCore","_renderDelayedTemplatesCoreAsync","templates","isAsync","templateParameters","doc","getDocument","_processTemplate","renderingTemplate","renderedTemplate","nodeType","templateID","_templatesCache","renderTemplate","templateDeferred","templateOptions","onRendered","templateDeferreds","_getBodies","tableElement","not","_needWrapRow","$tableElement","_this$_getBodies","hasRowTemplate","_wrapRowIfNeed","isRefreshing","_tableElement","needWrapRow","$tbody","_appendRow","appendTemplate","scrollLeft","_scrollLeft","scrollTo","$root","_renderTable","changeType","_renderRows","rows","_getRows","columnIndices","changeTypes","_renderRow","$wrappedRow","_renderCells","_addWatchMethod","_rowPrepared","_needRenderCell","_renderCell","oldValue","oldValues","_updateCells","$rowElement","$newRowElement","$newCells","cellUpdatedClass","$newCell","replaceWith","_setCellAriaAttributes","columnIndexOffset","getColumnIndexOffset","ariaColIndex","_getCellOptions","cellIndex","findIndex","_renderCellContent","renderOptions","_getCellTemplate","isAltRow","watchers","getter","updateValueFunc","updateRowFunc","watcher","newValue","splice","update","keepRow","_columnOptionChanged","optionNames","widths","iterator","setColumnWidths","getCellIndex","getTableElements","getTableElement","setTableElement","excludeValidators","category","afterExecute","_afterRowPrepared","columnsChanged","add","changed","_handleDataChanged","_updateScrollLeftPosition","pos","$scrollContainer","_wrapTableInScrollContainer","scrollChanged","_updateContent","$newTableElement","_findContentElement","_getWidths","$cellElements","offsetWidth","getBoundingClientRect","clientRect","getColumnWidths","$rows","isRowVisible","display","getVisibleColumnIndex","_ref","$cols","classList","querySelector","toFixed","getCellElements","_getCellElementsCore","_getRowElements","_getCellElement","columnIdentifier","columnVisibleIndex","_getVisibleColumnIndex","_getRowElement","$tableElements","getCellElement","getRowElement","elements","columnOption","cellPosition","getRowsCount","_getRowElementsCore","tBodies","getBoundingRect","getName","setScrollerSpacing","paddingLeft","paddingRight","isScrollbarVisible","isHorizontal","FOCUS_STATE_CLASS","FOCUS_DISABLED_CLASS","FOCUSED_ROW_SELECTOR","GRID_ROW_SELECTOR","GRID_CELL_SELECTOR","TREELIST_ROW_SELECTOR","TREELIST_CELL_SELECTOR","viewItemSelectorMap","columnHeaders","footer","isMouseDown","isHiddenFocusing","focusedElementInfo","processKeyDown","viewName","$mainElement","executeKeyDown","isHandled","fireKeyDownEvent","originalEvent","saveFocusedElementInfo","selectView","ariaLabel","$activeElements","getActiveAccessibleElements","targetIndex","viewInstance","viewElement","$viewElement","findFocusedViewElement","viewSelectors","$focusViewElement","first","onDocumentVisibilityChange","visibilityState","subscribeVisibilityChange","unsubscribeVisibilityChange","hiddenFocus","registerKeyboardAction","getMainElement","keyDownHandler","mouseDownHandler","focusinHandler","needShowOverlay","$targetElement","viewNames","viewItemIndex","_viewName","setTabIndex","keyboardController","isKeyboardEnabled","CELL_CONTENT_CLASS","HEADERS_CLASS","NOWRAP_CLASS","ROW_CLASS_SELECTOR","HEADER_ROW_CLASS","COLUMN_LINES_CLASS","CONTEXT_MENU_SORT_ASC_ICON","CONTEXT_MENU_SORT_DESC_ICON","CONTEXT_MENU_SORT_NONE_ICON","CELL_FOCUS_DISABLED_CLASS","VISIBILITY_HIDDEN_CLASS","TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX","SORT_INDICATOR_CLASS","SORT_INDEX_INDICATOR_CLASS","HEADER_FILTER_CLASS_SELECTOR","HEADER_FILTER_INDICATOR_CLASS","MULTI_ROW_HEADER_CLASS","columnHeadersModule","columnHeadersView","createCellContent","$cellContent","addCssClassesToCellContent","contentAlignment","$indicatorElements","$visibleIndicatorElements","indicatorCount","sortIndicatorClassName","sortIndexIndicatorClassName","$sortIndicator","$sortIndexIndicator","shiftKey","_getDefaultTemplate","$content","_getHeaderTemplate","resultTemplate","_isGroupingChanged","_isLegacyKeyboardNavigation","_handleActionKeyDown","_lastActionElement","headerFilterController","$column","getColumnIndexByElement","showHeaderFilterMenu","_processHeaderAction","isLoaded","_hasRowElements","getRowCount","_getRowVisibleColumns","$cellElement","rowspan","rowCount","groupExpanding","_isElementVisible","elementOptions","_alignCaptionByCenter","insertBefore","$indicatorElement","returnAll","_isSortableElement","getHeadersRowHeight","$headerRows","toArray","getHeaderElement","columnElements","bandColumnIndex","getChildrenByBandColumn","$columnElements","allowDragging","sourceLocation","draggingPanels","draggableColumnCount","canHideColumn","allowDrag","isColumnOptionUsed","draggingPanel","getColumnCount","getHeight","getContextMenuItems","sortingOptions","onItemClick","params","changeSortOrder","itemData","setRowsOpacity","columnID","setColumnOpacity","NUMBER_SERIALIZATION_FORMAT","DATE_SERIALIZATION_FORMAT","DATETIME_SERIALIZATION_FORMAT","ISO8601_PATTERN","ISO8601_TIME_PATTERN","ISO8601_PATTERN_PARTS","DATE_SERIALIZATION_PATTERN","MILLISECOND_LENGHT","dateParser","skipISO8601Parsing","parseISO8601String","parseDate","getTimePart","isDefaultSerializationFormat","getDateSerializationFormat","parsedValue","newDate","setMonth","timeZoneHour","timeZoneMinute","correctYear","pow","getIso8601Format","deserializeDate","forceIsoDateParsing","serializeDate","serializationFormat","valueOf","USER_STATE_FIELD_NAMES_15_1","USER_STATE_FIELD_NAMES","IGNORE_COLUMN_OPTION_NAMES","bestFitWidth","bufferedFilterValue","COMMAND_EXPAND_CLASS","MAX_SAFE_INTEGER","GROUP_COMMAND_COLUMN_NAME","globalColumnId","columnsControllerModule","commonColumnSettings","adaptColumnWidthByRatio","regenerateColumnsByVisibleItems","DEFAULT_COLUMN_OPTIONS","DATATYPE_OPERATIONS","datetime","COLUMN_INDEX_OPTIONS","setFilterOperationsAsDefaultValues","defaultFilterOperations","createColumn","columnOptions","userStateColumnOptions","bandColumn","commonColumnOptions","setName","getCommonSettings","calculatedColumnOptions","_createCalculatedColumnOptions","createColumnsFromOptions","columnsOptions","_columnsUserState","checkUserStateColumn","hasColumns","getParentBandColumns","columnParentByIndex","_getChildrenByBandColumn","columnChildrenByIndex","recursive","getColumnFullPath","bandColumnsCache","getBandColumnsCache","callbackFilter","isPlain","_columns","calculateColspan","getValueDataType","getSerializationFormat","updateSerializers","deserializeValue","serializeValue","customizeTextForBooleanDataType","getCustomizeTextByDataType","updateColumnIndexes","_commandColumns","updateColumnGroupIndexes","currentColumn","getColumnIndexByVisibleIndex","getGroupColumns","getChooserColumns","userStateColumn","applyUserState","userStateColumnIndex","columnsUserState","ignoreColumnOptionNames","_ignoreColumnOptionNames","columnCountById","resultColumns","allColumnsHaveState","userStateColumnIndexes","applyFieldsState","fieldName","defaultSelectedFilterOperation","findUserStateColumn","_hasUserState","initialIndex","hasAddedBands","columnUserState","added","assignColumns","updateIndexes","isSortOrderValid","resetBandColumnsCache","bandedColumns","parentBandColumns","resetColumnsCache","updateColumnDataTypes","updateColumnChanges","columnChanges","_columnChanges","fireColumnsChanged","onColumnsChanging","reinitOptionNames","isInitialized","reinit","updateSortOrderWhenGrouping","prevGroupIndex","columnWasGrouped","lastSortOrder","sortMode","sortedByAnotherColumn","fireOptionChanged","prevValue","fullOptionName","fullOptionPath","_skipProcessingColumnsChange","_notifyOptionChanged","columnOptionCore","notFireEvent","initialColumn","optionGetter","functionsAsIs","optionSetter","_checkColumns","getColumnByPath","defaultSetCellValue","path","dotCount","isCustomCommandColumn","commandColumn","getFixedPosition","processExpandColumns","expandColumns","customColumnIndex","expandColumnsByType","expandColumn","numberToString","digitsCount","mergeColumns","commandColumns","needToExtend","commandColumnIndex","isColumnFixing","_isColumnFixing","defaultCommandColumns","getCommandColumnIndex","columnType","isColumnFixed","_bandColumnsCache","findColumn","identifier","identifierOptionName","_getExpandColumnOptions","_getFirstItems","groupsCount","getFirstItemsCore","childItems","collapsedItems","isApplyingUserState","_isColumnsFromOptions","addCommandColumn","_dataSourceApplied","applyDataSource","columnIndexes","needUpdateRequireResize","previousValue","fullName","_updateRequireResize","columnOptionValue","columnOptionName","forceApplying","isDataSourceLoaded","_dataSourceColumnsCount","columnsFromDataSource","firstItems","processedFields","updateColumns","isAllDataTypesDefined","reset","_visibleColumns","_fixedColumns","_rowCount","getUserState","isDataSourceApplied","groupingOptions","groupPanelOptions","checkSerializers","isBandColumnsUsed","_shouldReturnVisibleColumns","_compileVisibleColumns","_compileVisibleColumnsCore","getFixedColumns","_getFixedColumnsCore","getFilteringColumns","notFixedColumnCount","transparentColumnIndex","lastFixedPosition","transparentColumn","transparentColspan","prevColumn","newColumn","_getExpandColumnsCore","getExpandColumns","firstGroupColumn","isFixedFirstGroupColumn","parentIndex","_isColumnVisible","isParentColumnVisible","isFixedToEnd","rowspanGroupColumns","rowspanExpandColumns","positiveIndexedColumns","negativeIndexedColumns","notGroupedColumnsCount","columnDigitsCount","indexedColumns","firstPositiveIndexColumn","columnsByFixing","columnsByVisibleIndex","getDataColumns","bandColumnID","getInvisibleColumns","hiddenColumnsByBand","getAllColumns","columnChooserColumns","column1","column2","caption1","caption2","localeCompare","allowMoveColumn","fromVisibleIndex","toVisibleIndex","targetLocation","sourceColumn","moveColumn","targetGroupIndex","fromIndex","toIndex","groupColumns","targetColumn","sortingMode","needResetSorting","getSortDataSourceParameters","useLocalSelector","sortColumns","sortItem","getGroupDataSourceParameters","refresh","updateNewLookupsOnly","deferreds","valueMap","_updateColumnOptions","calculateCallbackName","calculateCallback","context","isRTL","isColumnDataTypesUpdated","lookupDataType","valueDataType","_customizeColumns","hasOwnerBand","updateSortingGrouping","sortParameters","groupParameters","filterParameters","lastLoadOptions","always","_updateChanges","equalSortParameters","dataController","getCombinedFilter","fromDataSource","isColumnsChanged","updateSortGroupParameterIndexes","indexParameterName","columnsGroupParameters","columnsSortParameters","groupingChanged","groupExpandingChanged","updateFilter","remoteFiltering","columnCount","clearSorting","clearGrouping","getVisibleIndexByColumn","visibleColumn","addColumn","deleteColumn","childIndexes","handleStateField","setUserState","isFilterPanelHidden","usedNames","hasEditableColumnWithoutName","duplicatedNames","_column$columns","isEditable","skipDeserialization","parseValue","formattedValue","formattedValueWithDefaultFormat","createFilterExpression","userDataType","updateValueMap","calculateValue","displayValue","dataSourceOptions","paginate","resizedCallbacks","defaultOptionName","parents","invisibleParents","alwaysGetRowIndex","onlyVisibleDirectChildren","isParentBandColumn","bandColumns","getColumnId","cloneItems","groupCount","calculateOperationTypes","isFullReload","operationTypes","reload","fullReload","groupExpand","getPageDataFromCache","updatePaging","fillItemsFromCache","cacheItemsFromBegin","cacheItemBeginCount","cacheItemsFromEnd","_options$skip2","_options$take2","cacheItemEndCount","cachedDataPartBegin","cachedDataPartEnd","reverse","fromEnd","_options$take","_options$cachedData","cachedItems","cachedData","_ref2","_options$skip","localIndex","cacheItemIndex","cacheItem","getItemFromCache","skips","takes","getGroupItemFromCache","isContinuationOnNextPage","childCacheItem","isLast","getCacheItem","loadedItem","globalIndex","childSkips","_remoteOperations","_isLastPage","isLastPage","_hasLastPage","_currentTotalCount","_cachedData","_lastOperationTypes","_eventsStrategy","_totalCountCorrection","_isLoadingAll","loadingChanged","loadError","customizeStoreLoadOptions","changing","pushed","_dataChangedHandler","_customizeStoreLoadOptionsHandler","_handleCustomizeStoreLoadOptions","_dataLoadedHandler","_handleDataLoaded","_loadingChangedHandler","_handleLoadingChanged","_loadErrorHandler","_handleLoadError","_pushHandler","_handlePush","_changingHandler","_handleChanging","memberName","member","isSharedDataSource","resetCurrentTotalCount","resetCache","_cachedStoreData","_cachedPagingData","resetPagesCache","_needClearStoreDataCache","_lastLoadOptions","isLocalOperations","operationName","fromStore","keyInfo","_applyBatch","getDataIndexGetter","_dataIndexGetter","indexByKey","storeData","isCacheUpdated","keyOf","_getKeyInfo","totalCount","isReshapeMode","isLegacyMode","getItemCount","itemsCount","oldItemCount","_items","useInsertIndex","needUpdateTotalCountCorrection","_ref5","_needCleanCacheByOperation","operationType","operationTypesByOrder","operationTypeIndex","currentOperationTypes","_customizeRemoteOperations","cachedStoreData","cachedPagingData","isCustomLoading","_options$data","_handleDataLoading","originalStoreLoadOptions","_isRefreshing","_loadingOperationTypes","_isRefreshed","_lastOperationId","operationId","_handleDataLoadingCore","cachedExtra","localLoadOptionNames","requireTotalCount","optionValue","localPaging","needCache","needPageCache","needPagingCache","needStoreCache","mergeStoreLoadData","_handleDataLoadedCore","_ref3","_options$skip3","_ref4","_options$take3","cacheItems","_loadPageSize","currentTotalCount","isDataLoading","pageCount","_operationTypes","_scheduleCustomLoadCallbacks","_isCustomLoading","loadingOperationTypes","_dataSourceTotalCount","totalCountCorrection","totalItemsCount","ceil","hasKnownLastPage","loadFromStore","dataSourceLoadOptions","loadResult","_customLoadOptions","isLoadingAll","_scheduleLoadCallbacks","fireEvent","full","getCachedStoreData","dataSourceAdapterType","dataControllerModule","loadingTimeout","include","changePaging","_getPagingOptionValue","_skipProcessingPagingChange","_isPaging","pageChanged","members","_cachedProcessedItems","_currentOperationTypes","_columnsChangedHandler","_handleColumnsChanged","_dataPushedHandler","_handleDataPushed","_isLoading","_repaintChangesOnly","_changes","dataErrorOccurred","_refreshDataSource","stopOnFalse","isValueChanged","_array","needToRefreshOnDataSourceChange","changedPagingOptions","_handleDataSourceChange","_setPagingOptions","isPageIndexChanged","_useSortingGroupingFromColumns","getDataSource","returnDataField","combinedFilter","additionalFilter","_calculateAdditionalFilter","waitReady","_readyDeferred","updateItems","_storeLoadOptions$fil","_columnsUpdating","filterApplied","_applyFilter","_needApplyFilter","updateItemsHandler","_change$changeTypes","virtualColumnsScrolling","isAsyncDataSourceApplying","_isDataSourceApplying","isDelayed","needApplyFilter","_isAllDataTypesDefined","_fireLoadingChanged","fireError","pagingEnabled","scrollingMode","appendMode","virtualMode","isPaginateChanged","isPageSizeChanged","_getSpecificDataSourceOption","_initDataSource","oldDataSource","setDataSource","_loadDataSource","_beforeProcessItems","getRowIndexDelta","_processItems","rowIndexDelta","visibleItems","lastVisibleItem","_processItem","_generateDataItem","_processDataItem","dataItem","generateDataValues","isModified","_applyChange","_applyChangeUpdate","_applyChangesOnly","_applyChangeFull","_getRowIndices","rowIndices","correctedRowIndex","allowInvisibleRowIndices","prevIndex","rowIndexCorrection","equalItems","item1","item2","strict","oldItem","oldNextItem","newItem","newNextItem","isFullUpdate","_partialUpdateRow","_isCellChanged","oldRow","newRow","visibleRowIndex","isLiveUpdate","isCellModified","modifiedValues","_getChangedColumnIndices","_cell$column","_changedColumnIndices","changedColumnIndices","isCellChanged","_isItemEquals","_item1$data","_item2$data","_item1$data2","_item2$data2","expandedMatch","summaryCellsMatch","summaryCells","continuationMatch","_change$isLiveUpdate","newIndexByKey","getRowKey","currentItems","oldItems","_correctRowIndices","oldRowIndexOffset","_rowIndexOffset","rowIndexOffset","getRowIndexOffset","newVisibleRowIndex","_afterProcessItems","_updateItemsCore","cachedProcessedItems","useProcessedItemsCache","loadIndex","getVisibleRows","isDataChanged","_change$repaintChange","needUpdateDimensions","_needUpdateDimensions","_fireChanged","_loadingText","_isFilterApplying","resetFilterApplying","filterExpr","filterName","clearColumnOption","searchByText","_fireDataSourceChanged","changedHandler","dataSourceChanged","_getDataSourceAdapter","_createDataSourceAdapterCore","dataSourceAdapterProvider","dataSourceAdapter","isCustomStore","_createDataSourceAdapter","enabledRemoteOperations","cancelAll","_isSharedDataSource","loadAll","getKeyByRowIndex","byLoaded","getRowIndexByKey","byKey","getDataByKeys","rowKeys","keyData","beginCustomLoading","messageText","endCustomLoading","changesOnly","customizeLoadResult","_disposeDataSource","repaintRows","rowIndexes","skipProcessingPagingChange","searchText","isLastPageLoaded","DataController","SORT_CLASS","SORT_NONE_CLASS","SORTUP_CLASS","SORTDOWN_CLASS","SORT_INDEX_CLASS","SORT_INDEX_ICON_CLASS","HEADERS_ACTION_CLASS","ariaSortState","isSortingAllowed","hasSeveralSortIndexes","prepend","COLUMN_HEADERS_VIEW_NAMESPACE","ColumnHeadersViewSortingExtender","$cellElementFromEvent","editingController","editingMode","isCellEditing","HeaderPanelSortingExtender","$rootElement","$item","_processGroupItemAction","groupColumnIndex","sortingModule","headerPanel","ROWS_VIEW_CLASS","DATA_ROW_CLASS","FREE_SPACE_CLASS","ROW_LINES_CLASS","ROW_ALTERNATION_CLASS","LAST_ROW_BORDER","EMPTY_CLASS","ROW_INSERTED_ANIMATION_CLASS","LOADPANEL_HIDE_TIMEOUT","getMaxHorizontalScrollOffset","scrollable","round","rowsModule","defaultCellTemplate","isDataTextEmpty","innerHTML","_getDefaultGroupTemplate","_update","isGroup","isRowExpanded","_setAriaRowIndex","isPagerMode","arg","deep","skipImmediate","_renderScrollable","force","_renderLoadPanel","getScrollable","allColumnsHasWidth","_hasHeight","_renderScrollableCore","_handleScroll","isNativeScrolling","_scrollTop","scrollOffset","_scrollRight","dxScrollableOptions","scrollHandler","onScroll","_scrollable","_scrollableContainer","_renderContent","contentElement","newTableElement","executors","rowInsertedClass","$rowsElement","toggle","insertAfter","prependTo","_createEmptyRow","isFixed","_appendEmptyRow","$emptyRow","$tBodies","isTableContainer","$colgroup","_renderFreeSpaceRow","$freeSpaceRowElement","_checkRowKeys","_needUpdateRowHeight","_rowHeight","_getRowsHeight","$rowElements","_updateRowHeight","rowsHeight","_getFreeSpaceRowElements","tableElements","evaluate","expr","_getColumnsCountBeforeGroups","_getGroupCellOptions","columnsCountBeforeGroups","_renderGroupedCells","groupCellOptions","groupColumnAlignment","updateFreeSpaceRowHeight","_renderDataRowByTemplate","resizeCompletedHandler","scrollableInstance","_visibilityChanged","_lastColumnWidths","groupingTextsOptions","_setRowsOpacityCore","_getDevicePixelRatio","getCellOptions","itemCount","freeSpaceRowElements","isFreeSpaceRowVisible","scrollbarWidth","getScrollbarWidth","elementHeightWithoutScrollbar","contentHeight","showFreeSpaceRow","borderTopWidth","heightCorrection","_getHeightCorrection","resultHeight","_updateLastRowBorder","freeSpaceRowCount","isZoomedWebkit","webkit","isChromeLatest","chrome","hasExtraBorderTop","_fireColumnResizedCallbacks","_editorFactoryController","setLoading","contentWidth","scrollableContainer","clientHeight","lastColumnWidths","columnWidths","_updateScrollable","dxScrollable","getInstance","_updateHorizontalScrollPosition","maxHorizontalScrollOffset","scrollRight","_height","hasHeight","visibilityOptions","calculateLoadPanelPosition","_hideLoadingTimeoutID","groupCellIndex","_getBoundaryVisibleItemIndex","isTop","isFloor","itemIndex","prevOffset","viewportBoundary","$contentElement","contentElementOffsetTop","rowElements","getTopVisibleItemIndex","getBottomVisibleItemIndex","getTopVisibleRowData","_scrollToElement","scrollToElement","_restoreErrorRow","_collectionWidget","getMenuItems","_getTemplateString","DX_MENU_CLASS","DX_MENU_NO_ICONS_CLASS","DX_MENU_BASE_CLASS","ITEM_CLASS","DX_ITEM_CONTENT_CLASS","DX_MENU_SELECTED_ITEM_CLASS","DX_MENU_ITEM_WRAPPER_CLASS","DX_MENU_ITEMS_CONTAINER_CLASS","DX_MENU_ITEM_EXPANDED_CLASS","DX_MENU_SEPARATOR_CLASS","DX_MENU_ITEM_LAST_GROUP_ITEM","DX_ITEM_HAS_TEXT","DX_ITEM_HAS_ICON","DX_ITEM_HAS_SUBMENU","DX_MENU_ITEM_POPOUT_CLASS","DX_MENU_ITEM_POPOUT_CONTAINER_CLASS","DX_MENU_ITEM_CAPTION_CLASS","SINGLE_SELECTION_MODE","DEFAULT_DELAY","super","_getDefaultOptions","showSubmenuMode","selectByClick","focusOnSelectedItem","_itemAttributes","role","useInkRipple","_itemContainer","_clean","_supportedKeys","space","_isSelectionEnabled","selectItem","pageUp","pageDown","_activeStateUnit","_init","_renderSelectedItem","_initActions","itemText","$itemContainer","itemContent","$popOutContainer","$popOutImage","rootValue","multipleSelection","recursiveSelection","recursiveExpansion","searchValue","selectedItem","nodeToSelect","_dataAdapter","getNodeByItem","toggleSelection","internalFields","selectedKeys","getSelectedNodesKeys","selectedKey","node","getNodeByKey","selectable","_selectByItem","_initMarkup","_renderInkRipple","_inkRipple","_toggleActiveState","showWave","hideWave","_isDesktopDevice","devices","real","deviceType","Strategy","_editStrategy","$itemElement","_getItemElementByEventArgs","_isItemDisabled","stopPropagation","_getShowSubmenuMode","_showSubmenusTimeout","_showSubmenu","_getSubmenuDelay","$itemElements","_getAvailableItems","_disabledGetter","_itemDataKey","_addExpandedClass","itemElement","eventArgs","_itemClass","childrenKeys","_renderItems","getRootNodes","nodes","submenuContainer","hasIcons","$nodeContainer","_renderContainer","firstVisibleIndex","nextGroupFirstIndex","isVisibleNode","isBeginGroup","beginGroup","_renderSeparator","_renderItem","$wrapper","$node","$nodeElement","_createDOMElement","$itemFrame","_hasSubmenu","_renderItemFrame","_itemIndexKey","hasText","hasIcon","hasSubmenu","$itemContent","_getItemContent","selectedIndex","_selectedGetter","_isItemSelectable","_selectedItemClass","_setAriaSelected","$itemsContainer","_skipHandling","itemClickActionHandler","_updateSubmenuVisibilityOnClick","_itemDXEventHandler","actionArgs","_updateSelectedItemOnClick","_isItemSelectionAllowed","selectedItemKey","selectedNode","_toggleItemSelection","_fireSelectionChangeEvent","isSelectionByClickEnabled","_isContainerEmpty","_itemsGetter","_updateSelectedItems","_optionChanged","_getElementByItem","_itemElements","oldSelection","newSelection","addedSelection","removedSelection","addedItems","removedItems","_getItemData","selected","ItemClass","DX_MENU_ITEM_CLASS","DX_MENU_PHONE_CLASS","DX_SUBMENU_CLASS","DX_CONTEXT_MENU_CLASS","DX_HAS_CONTEXT_MENU_CLASS","DX_STATE_DISABLED_CLASS","DX_STATE_FOCUSED_CLASS","DX_STATE_HOVER_CLASS","OVERLAY_CONTENT_CLASS","FOCUS_UP","FOCUS_DOWN","FOCUS_LEFT","FOCUS_RIGHT","FOCUS_FIRST","FOCUS_LAST","ACTIONS","LOCAL_SUBMENU_DIRECTIONS","DEFAULT_SHOW_EVENT","showEventOption","showEvent","onSubmenuCreated","onPositioning","submenuDirection","onLeftFirstItem","onLeftLastItem","onCloseRootSubmenu","onExpandLastSubmenu","_defaultOptionsRules","device","_setDeprecatedOptions","_deprecatedOptions","since","alias","_setOptionsByReference","_optionsByReference","_overlay","escape","$availableItems","$focusedItem","$hoveredItem","$hoveredItemContainer","_getActiveItem","$newTarget","$items","_getItemsByLocation","$oldTarget","itemsContainer","$activeItemHighlighted","_prevItem","_setFocusedElement","_nextItem","_hideSubmenuHandler","_expandSubmenuHandler","_moveFocus","$activeItem","_refreshActiveDescendant","$curItem","$parentItem","_hideSubmenusOnSameLevel","_hideSubmenu","isItemHasSubmenu","$submenu","_detachShowContextMenuEvents","_getTarget","_render","_renderVisibility","_addWidgetClass","_attachShowContextMenuEvents","_keyboardListenerId","_focusTarget","_attachKeyboardEvents","overlayOptions","_getOverlayOptions","$overlayContent","_addCustomCssClass","_addPlatformDependentClass","_attachContextMenuEvent","eventName","_itemContextMenuHandler","current","phone","getShowEvent","_showContextMenuEventHandler","contextMenuAction","getShowDelay","_show","validatingTargetName","handler","_hoverEndHandler","$holder","_getChildNodes","submenuElement","innerOverlay","_hideOnOutsideClickHandler","propagateOutsideClick","_overlayShownActionHandler","_overlayHidingActionHandler","_overlayHiddenActionHandler","visualContainer","_hideAllShownSubmenus","_shouldHideOnOutsideClick","isDocument","$activeItemContainer","_getActiveItemsContainer","$itemContainers","_getItemsContainers","$clickedItem","_searchActiveItem","$rootItem","isRootItemClicked","isInnerOverlayClicked","_isIncludeOverlay","_hideAllShownChildSubmenus","$activeOverlay","$allOverlays","isSame","$overlay","$submenuElements","shownSubmenus","_shownSubmenus","$context","isSubmenuRendered","_renderSubmenuItems","_isSubmenuVisible","_drawSubmenu","$expandedItems","siblings","_hideSubmenuCore","submenuPosition","_getSubmenuPosition","fx","setup","_animate","animate","$rootItemWrapper","shouldRenderSubmenu","notCloseMenuOnItemClick","closeMenuOnClick","$prevSubmenu","canceled","$curSubmenu","_stopAnimate","_renderContentImpl","showing","_hide","jQEvent","_event$originalEvent","_positionContextMenu","_renderContextMenuOverlay","_widgetClass","_renderFocusState","_attachHoverEvents","_attachClickEvent","_setAriaAttributes","preventShowingDefaultContextMenuAboveOverlay","_overlayContentId","_getContextMenuPosition","isInitialPosition","_isInitialOptionValue","positioningAction","lastPosition","_refresh","_cleanAriaAttributes","CONTEXT_MENU","footerView","VIEW_NAMES","ContextMenuController","dxEvent","$targetRowElement","$targetCellElement","menuItems","view","_rowOptions$cells","_rowOptions$cells$col","targetElement","_contextMenuPrepared","ContextMenuView","contextMenuInstance","contextMenuModule","contextMenu","contextMenuView","ERROR_MESSAGE_CLASS","ERROR_CLOSEBUTTON_CLASS","ACTION_CLASS","ErrorHandlingController","_columnHeadersView","_rowsView","_createErrorRow","$errorRow","$closeButton","$errorMessage","_renderErrorMessage","errorRowIndex","removeErrorRow","fireContentReadyAction","url","$message","renderErrorRow","$popupContent","$errorMessageElement","$firstErrorRow","resizingController","$columnHeaders","$rowsViewElement","errorHandlingModule","errorHandling","errorHandlingController","hasChanges","BORDERS_CLASS","IMPORTANT_MARGIN_CLASS","GRIDBASE_CONTAINER_CLASS","isPixelWidth","getContainerHeight","paddingTop","paddingBottom","calculateFreeWidth","totalWidth","_getTotalWidth","calculateFreeWidthWithCurrentMinWidth","currentMinWidth","ResizingController","_initPostRenderHandlers","_refreshSizesHandler","_refreshSizes","resizeDeferred","_e$changeTypes","_setScrollerSpacing","_setAriaRowColCount","_fireContentReadyAction","_getBestFitWidths","_widths","_rowsView$getTableEle","headersTableElement","_setVisibleWidths","columnId","_toggleBestFitModeForView","isBestFit","$rowsTables","$viewTables","$tableBody","$rowsTable","$viewTable","_toggleBestFitMode","$rowsFixedTable","_footerView","_toggleContentMinHeight","_needStretch","getContentHeightLimit","_synchronizeColumns","resetBestFitMode","needBestFit","_needBestFit","hasMinWidth","isColumnWidthsCorrected","getActiveElement","_maxWidth","isFocusOutsideWindow","bottom","_correctColumnWidths","expandColumnWidth","_processStretch","_getAverageColumnsWidth","freeWidth","columnCountWithoutWidth","hasPercentWidth","hasAutoWidth","hasWidth","_hasWidth","_loop","isHiddenColumn","averageColumnsWidth","realColumnWidth","_getRealColumnWidth","borderWidth","resultSizes","groupSize","tableSize","unusedIndexes","diffElement","onePixelElementsCount","groupWidth","ratio","percentTotalWidth","pixelTotalWidth","freeSpace","percentTotalWidthInPixel","updateSize","$groupElement","importantMarginClass","detach","updateDimensions","checkSize","_checkSize","prevResult","_resizeDeferred","_resetGroupElementHeight","_updateDimensionsCore","groupElement","scrollTop","_lastWidth","_lastHeight","_devicePixelRatio","_setScrollerSpacingCore","vScrollbarWidth","hScrollbarWidth","$testDiv","rootElementHeight","maxHeightHappened","editorFactory","isMaxHeightApplied","scrollHeight","_updateLastSizes","_renderDimensions","SynchronizeScrollingController","_scrollChangedHandler","GridView","_resizingController","_getWidgetAriaLabel","_groupElement","_renderViews","_getTableRoleName","isFirstRender","_rootElement","gridViewModule","resizing","synchronizeScrolling","gridView","TOOLBAR_MENU_ACTION_CLASS","TOOLBAR_HIDDEN_BUTTON_CLASS","TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS","TOOLBAR_MENU_SECTION_CLASS","TOOLBAR_MENU_LAST_SECTION_CLASS","ToolbarMenu","_renderSections","_getSections","_itemSelector","sectionName","$section","_updateSections","$sections","itemContainer","$after","_getItemTemplateName","isAction","menuTemplate","_itemClickHandler","BUTTON_GROUP_CLASS","TOOLBAR_ITEMS","getItemInstance","toggleItemFocusableElementTabIndex","_itemData$options","_findItemElementByItem","isItemNotFocusable","$widget","_itemInstance$_focusT","_itemData$options2","itemInstance","$focusTarget","DROP_DOWN_MENU_CLASS","DROP_DOWN_MENU_POPUP_CLASS","DROP_DOWN_MENU_POPUP_WRAPPER_CLASS","DROP_DOWN_MENU_LIST_CLASS","DROP_DOWN_MENU_BUTTON_CLASS","POPUP_OPTION_MAP","popupWidth","popupHeight","popupMaxHeight","popupAutoResizeEnabled","BUTTON_OPTION_MAP","buttonIcon","buttonText","buttonWidth","buttonHeight","buttonTemplate","DropDownMenu","extension","_list","_button","tab","_popup","itemTemplate","onButtonClick","usePopover","opened","selectionMode","selectedItemKeys","popupPosition","popupAnimation","onItemRendered","menuWidget","closeOnClick","isSimulator","_initOptions","_dataSourceOptions","_initItemClickAction","_initButtonClickAction","_itemClickAction","_buttonClickAction","_initTemplates","_templateManager","addDefaultTemplates","_renderButton","haspopup","expanded","_renderPopup","_cleanFocusState","_$popup","$button","_buttonOptions","_toggleMenuVisibility","$popup","_popupOptions","usePopup","_renderList","autoResizeEnabled","listConfig","_listOptions","_getAriaTarget","_setListDataSource","listMaxHeight","_itemOptionChanged","property","_this$_list","pageLoadMode","indicateLoading","_deferRendering","_toggleVisibility","_updateFocusableItemsTabIndex","open","close","MENU_INVISIBLE_CLASS","TOOLBAR_DROP_DOWN_MENU_CONTAINER_CLASS","POPOVER_BOUNDARY_OFFSET","_toolbar","_hasVisibleMenuItems","_renderMenuButtonContainer","$menu","_dropDownMenuContainer","_dropDownMenu","_dropDownMenuOptions","renderMenuItems","_getMenuItems","$afterSection","_$afterSection","_$menuButtonContainer","_buttonClass","_getTemplateByOption","itemClickAction","topAndBottomOffset","_getMenuItemTemplate","getDocumentElement","_updateMenuVisibility","isMenuVisible","overflowGetter","itemVisible","itemOverflow","_this$_dropDownMenu","TOOLBAR_AUTO_HIDE_ITEM_CLASS","TOOLBAR_AUTO_HIDE_TEXT_CLASS","TOOLBAR_HIDDEN_ITEM","Toolbar","menuContainer","overflowMenuVisible","_dimensionChanged","dimension","_menu","actionSheetItem","_renderMenu","_postProcessRenderItems","_hideOverflowItems","_getItemsWidth","_getSummaryItemsWidth","_$beforeSection","_$centerSection","elementWidth","overflowItems","itemsWidth","_isMenuItem","$hiddenItems","_restoreItems","$itemMarkup","_getToolbarItems","_renderMenuStrategy","_arrangeItems","margin","float","obj","itemOption","_isToolbarItem","repaint","_changeMenuOption","widgetOption","HEADER_PANEL_CLASS","TOOLBAR_BUTTON_CLASS","TOOLBAR_ARIA_LABEL","DEFAULT_TOOLBAR_ITEM_NAMES","HeaderPanel","_getButtonContainer","_getToolbarButtonClass","specificClass","secondClass","_getToolbarOptions","userToolbarOptions","toolbarOptions","itemRenderedCallback","userItems","_normalizeToolbarItems","defaultItems","defaultProps","defaultButtonsByNames","normalizedItems","_toolbarOptions","$headerPanel","$toolbar","setToolbarItemDisabled","toolbarInstance","itemOptionPrefix","updateToolbarDimensions","_this$_toolbar","getHeaderPanel","normalizedItem","headerPanelModule","DATAGRID_ROW_SELECTOR","DATAGRID_DEPRECATED_TEMPLATE_WARNING","DataGrid","_device","templateName","_dispose","DATE_REGEX","parseDates","StateStoringController","getStorage","storage","getUniqueStorageKey","_loadState","_saveState","setItem","isEnabled","_state","_isLoaded","_windowUnloadHandler","_savingTimeoutID","save","getDataState","pagerView","getPageSizes","processLoadState","selectionController","exportController","updateState","selectionChanged","_initialPageSize","_initialFilterValue","selectionOnlyChanged","exportSelectionOnly","selectionOnly","DEFAULT_FILTER_VALUE","filterSyncController","hasFilterState","getFilterValueFromColumns","stateStoringModule","stateLoaded","isStateLoading","applyState","oldState","newState","oldStateHash","newStateHash","isVirtualScrollingMode","stateStoringController","_restoreStateTimeoutID","_fireSelectionChanged","isDeferredSelection","EDITOR_CELL_CLASS","ROW_SELECTION_CLASS","SELECT_CHECKBOX_CLASS","CHECKBOXES_HIDDEN_CLASS","COMMAND_SELECT_CLASS","SELECTION_DISABLED_CLASS","SHOW_CHECKBOXES_MODE","SELECTION_MODE","processLongTap","isSelectionWithCheckboxes","stopSelectionWithCheckboxes","startSelectionWithCheckboxes","changeItemSelection","control","SelectionController","selectionCellTemplate","isRowSelected","renderSelectCheckBoxContainer","selectionHeaderTemplate","_renderSelectAllCheckBox","_attachSelectAllCheckBoxClickEvent","_selectionMode","_isSelectionWithCheckboxes","_selection","_createSelection","_updateSelectColumn","removedKeys","deselectRows","_getSelectionConfig","selectionOptions","virtualPaging","legacyScrollingMode","ignoreDisabledItems","allowLoadByRange","hasGroupColumns","dataFields","_dataController$dataS","_dataController$dataS2","plainItems","isItemSelected","isSelectableItem","getItemData","oldData","getLoadOptions","loadItemIndex","focusedItemIndex","shiftItemIndex","_dataController$dataS3","_dataController$dataS4","minIndex","maxIndex","isSelectColumnVisible","argument","_updateCheckboxesState","isDeferredMode","removedItemKeys","keyIndex","isComplexKey","selectionChangedOptions","changedItemIndexes","getChangedItemIndexes","visibleChangedItemIndexes","itemIndexes","addedItemKeys","_selectedItemsInternalChange","selectedRowsData","selectedItems","currentSelectedRowKeys","currentDeselectedRowKeys","isDataItem","isSelected","oldSelectionMode","selectRows","_isOnePageSelectAll","isSelectAll","getSelectAllState","selectAll","deselectAll","clearSelection","preserve","isDeselect","getSelectedRowKeys","getSelectedItemKeys","selectRowsByIndexes","getSelectedRowsData","getSelectedItems","visibleItemIndex","setFocusOnly","loadedItemIndex","_focusedItemIndex","selectionModule","hasSelectColumn","currentItem","isUpdateSelection","_updateSelectAllValue","$editor","selectAllValue","hasSelection","dxCheckBox","isEmptyData","createEditor","parentType","setValue","_attachCheckBoxClickEvent","_renderSelectCheckBox","_e$event","_updateCheckboxesClass","isSelectionDisabled","isClickableElement","isCommandSelect","isCheckBoxesHidden","COLUMN_CHOOSER_CLASS","COLUMN_CHOOSER_BUTTON_CLASS","NOTOUCH_ACTION_CLASS","COLUMN_CHOOSER_LIST_CLASS","COLUMN_CHOOSER_PLAIN_CLASS","COLUMN_CHOOSER_DRAG_CLASS","COLUMN_CHOOSER_SELECT_CLASS","COLUMN_CHOOSER_ICON_NAME","COLUMN_CHOOSER_ITEM_CLASS","TREEVIEW_NODE_SELECTOR","CHECKBOX_SELECTOR","CLICK_TIMEOUT","processItems","chooserColumns","isSelectMode","disableCheckBox","parentId","ColumnChooserController","renderShowColumnChooserButton","$columnChooserButton","columnChooserButtonClass","columnChooserEnabled","$showColumnChooserButton","showColumnChooser","integrationOptions","getPosition","ColumnChooserView","_isWinDevice","win","_updateList","_popupContainer","columnChooserList","_columnChooserList","unselectItem","_renderTreeView","_initializePopupContainer","columnChooserOptions","themeName","isGenericTheme","isMaterial","dxPopupOptions","_ignoreCopyRootClassesToWrapperDeprecation","shortcut","treeViewConfig","dataStructure","searchEnabled","$checkBox","$treeViewNode","checkBoxInstance","_prepareSelectModeConfig","_prepareDragModeConfig","selectNodesRecursive","onItemSelectionChanged","isLastColumnUnselected","needPartialRender","needFullRender","$nodes","columnVisible","isColumnChooserVisible","right","hideColumnChooser","popupContainer","columnChooserModule","columnChooserView","_appendColumnChooserItem","hintText","columnChooserMode","isMoveColumnDisallowed","createOffsetFilter","lastLevelOnly","groups","filterElement","currentFilter","GroupingHelper","findGroupInfoByKey","groupsInfo","hash","getGroupInfoIndexByOffset","leftIndex","rightIndex","middleIndex","_groupsInfo","updateTotalItemsCount","isGroupItemCountable","_isVirtualPaging","calculateItemsCount","foreachGroups","childrenAtFirst","foreachCollapsedGroups","updateOffsets","updateParentOffsets","foreachGroupsCore","callbackResults","executeCallback","callbackResult","currentParents","_updateGroupInfoOffsets","groupInfo","findGroupInfo","pathIndex","addGroupInfo","groupInfoData","allowCollapseAll","oldGroups","_group","cleanGroupsInfo","handleDataLoading","handleDataLoaded","handleDataLoadedCore","createGroupFilter","loadTotalCount","correctSkipLoadOption","skipCorrection","resultSkip","pathEquals","path1","path2","updateGroupOffsets","additionalGroupInfo","getGroupCount","collapsedGroups","collapsedItemsCount","skipFirstItem","sorts","arrangeSortingInfo","appendCollapsedPath","collapsedGroup","keyValue","pathValue","_totalCountWasIncreasedByCollapsedItems","query","multiLevelGroup","enumerate","groupedData","processGroupItems","removeLastItemsCount","needRemoveFirstItem","offsetInfo","itemsCountCorrection","changeRowExpand","groupCountQuery","beginPageIndex","dataSourceItems","groupOffsetQuery","getContinuationGroupCount","groupOffset","pageOffset","foreachExpandedGroups","updateGroups","expandedInfo","isLastGroupExpanded","paths","lastCount","updateGroupInfoItem","isLastGroupLevel","_isGroupExpanded","updateGroupInfos","loadedGroupCount","remotePaging","isGroupExpanded","getTotalOffset","groupInfos","totalOffset","childrenTotalCount","applyContinuationToGroupItem","groupLevel","expandedItemIndex","isLastExpandedItem","isFirstExpandedItem","lastExpandedItemSkip","isItemsTruncatedByTake","isDataDeferred","makeDataDeferred","loadGroupItems","currentGroupCount","currentGroupIndex","currentGroup","requireGroupCount","groupSummary","expandedFilters","expandedPath","isPagingLocal","isLastLevelGroupItemsPagingLocal","sortLastLevelGroupItems","expandedItems","loadGroupTotalCount","isGrouping","isFinite","isVirtualPaging","_updatePagingOptions","skipChildrenTotalCount","takeCorrection","parentTakeCorrection","continuationGroupCount","skipContinuationGroupCount","groupInfoCount","childrenGroupInfoCount","remoteGroupPaging","isLastGroup","_processPaging","_processSkips","firstItem","_processTakes","lastItem","maxTakeCount","handleGroup","DATAGRID_GROUP_PANEL_CLASS","DATAGRID_GROUP_PANEL_MESSAGE_CLASS","DATAGRID_GROUP_PANEL_ITEM_CLASS","DATAGRID_GROUP_PANEL_LABEL_CLASS","DATAGRID_GROUP_PANEL_CONTAINER_CLASS","DATAGRID_GROUP_ROW_CLASS","GroupingDataSourceAdapterExtender","_initGroupingHelper","_grouping","isAutoExpandAll","isFocusedRowEnabled","isODataRemoteOperations","collapseAll","_collapseExpandAll","expandAll","isExpand","beginLoading","_changeRowExpandCore","endLoading","_hasGroupLevelsExpandState","GroupingDataControllerExtender","_processGroupItems","_processGroupItem","groupedColumns","collectContinuationItems","resultItems","expandRow","collapseRow","onGroupingMenuItemClick","GroupingHeaderPanelExtender","_appendGroupingItem","_isGroupPanelVisible","isRendered","$groupPanel","_updateGroupPanelContent","_renderGroupPanelItems","_createGroupPanelItem","$groupPanelItem","$toolbarElement","$groupedColumnElement","isGroupingAllowed","isColumnGrouped","GroupingRowsViewExtender","isGroupRowStateChanged","isExpandButtonClicked","_changeGroupRowState","columnHeadersViewExtender","_isProcessedItem","MASTER_DETAIL_CELL_CLASS","MASTER_DETAIL_ROW_CLASS","masterDetailModule","initMasterDetail","_expandedItems","_isExpandAll","expandIndex","_getRowIndicesForExpand","detailColumnIndex","isEnabledChanged","isAutoExpandAllChanged","_updateParentDataGrids","$masterDetailRow","_updateMasterDataGrid","$detailElement","masterRowOptions","masterDataGrid","_updateMasterDataGridCore","isFixedColumns","_updateFixedMasterDetailGrids","masterRowIndex","$tables","rowsNotEqual","tablesNotEqual","detailElementWidth","isDetailHorizontalScrollCanBeShown","isDetailGridWidthChanged","isEditRow","_isDetailRow","$detailCell","getRealSeparatorIndex","quoteBalance","separatorCount","occurrence","getNthOccurrence","splitByIndex","adjustPercentValue","rawValue","getCaretBoundaries","signParts","getSign","prefixStubLength","postfixStubLength","_getDigitCountBeforeIndex","decimalSeparator","getDecimalSeparator","regExp","textBeforePosition","_reverseText","_getDigitPositionByIndex","digitIndex","counter","_trimNonNumericCharsFromEnd","getCaretWithOffset","caret","getCaretAfterFormat","formatted","isSeparatorBasedText","isSeparatorBasedString","realSeparatorOccurrenceIndex","pointPosition","newPointPosition","textParts","formattedParts","isCaretOnFloat","relativeIndex","digitsBefore","newPosition","getCaretInBoundaries","formattedIntPart","positionFromEnd","digitsFromEnd","newPositionFromEnd","newPositionFromBegin","isCaretInBoundaries","boundaries","adjustedCaret","getCaretOffset","previousText","newText","previousBoundaries","newBoundaries","SPIN_CLASS","SPIN_BUTTON_CLASS","SPIN_HOLD_DELAY","NUMBER_BOX","POINTERUP_EVENT_NAME","up","POINTERCANCEL_EVENT_NAME","SpinButton","onChange","_spinIcon","_spinDownHandler","_spinChangeHandler","_clearTimer","_feedBackDeferred","_holdTimer","setInterval","clearInterval","SPIN_CONTAINER_CLASS","SPIN_TOUCH_FRIENDLY_CLASS","$spinContainer","$spinContainerChildren","pointerDownAction","_spinButtonsPointerDownHandler","_spinUpChangeHandler","_spinDownChangeHandler","$spinUp","$spinDown","_getOptions","_addToContainer","_legacyRender","_isTouchFriendly","_isVisible","isTouchFriendly","shouldUpdate","$spinButtons","spinUp","spinDown","WIDGET_CLASS","FIREFOX_CONTROL_KEYS","FORCE_VALUECHANGE_EVENT_NAMESPACE","NumberBoxBase","upArrow","downArrow","enter","step","showSpinButtons","useLargeSpinButtons","invalidValueMessage","_useTemplates","_getDefaultButtons","Ctor","_isSupportInputMode","generic","_renderSubmitElement","_getDefaultAttributes","inputmode","_validateValue","_$submitElement","_setSubmitValue","_getSubmitElement","val","_keyPressHandler","isInputCharValid","_keyPressed","_onMouseWheel","delta","_spinValueChange","_renderValue","inputValue","_input","_forceValueRender","_toggleEmptinessEventHandler","valuenow","valuetext","_updateButtons","_applyDisplayValueFormatter","_renderDisplayText","_renderProps","prop","valuemin","valuemax","$input","_normalizeInputValue","_correctRounding","_saveValueChangeEvent","regex","isFloatValue","isFloatStep","valueAccuracy","stepAccuracy","accuracy","_round","multiplier","_renderValueChangeEvent","forceValueChangeEvent","_forceRefreshInputValue","_valueChangeEventHandler","_normalizeText","_parseValue","valueHasDigits","_isValueValid","_applyValueBoundaries","validationRequest","isValueIncomplete","_isValueIncomplete","isValueCorrect","_isValueInRange","_replaceCommaWithPoint","_inputIsInvalid","isNumberMode","validityState","validity","badInput","_isNumber","isValueValid","isValid","isNumber","validationError","editorSpecific","_clearValue","_resumeValueChangeAction","NUMBER_FORMATTER_NAMESPACE","MOVE_FORWARD","MOVE_BACKWARD","MINUS","MINUS_KEY","INPUT_EVENT","CARET_TIMEOUT_DURATION","NumberBoxMask","useMaskBehavior","_isDeleteKey","_useMaskBehavior","minus","_revertSign","del","_removeHandler","backspace","leftArrow","_arrowHandler","rightArrow","home","_moveCaretToBoundaryEventHandler","_updateFormattedValue","_getTextSeparatorIndex","_focusInHandler","_preventNestedFocusEvent","clearCaretTimeout","_caretTimeout","_caret","_getInputVal","decimalSeparatorIndex","_focusOutHandler","shouldHandleEvent","_focusOutOccurs","_getFormatPattern","_hasValueBeenChanged","_updateParsedValue","_adjustParsedValue","_setTextByParsedValue","_parsedValue","nextCaret","_moveCaretToBoundary","newCaret","_shouldMoveCaret","isDecimalSeparatorNext","moveToFloat","_lastKey","_keyboardHandler","_lastKeyName","_shouldHandleKey","normalizedText","enteredChar","_tryParse","_moveCaret","isDeleteKey","isBackspaceKey","caretPosition","canDelete","_isStub","editedText","_replaceSelectedText","noDigits","valueAfterRemoving","_isNonStubAfter","_isPercentFormat","noEscapedFormat","_parse","formatOption","isCustomParser","integerPartStartIndex","formatPointIndex","textPointIndex","formatIntegerPartLength","textIntegerPartLength","customFormatter","_currentFormat","_updateFormat","isLDMLPattern","isExponentialFormat","shouldUseFormatAsIs","_getFormatForSign","_sign","_removeStubs","excludeComma","thousandsSeparator","getThousandsSeparator","stubs","_getStubs","prefixStubs","postfixRegex","decoratorsRegex","stub","_truncateToPrecision","maxPrecision","strValue","isTextSelected","_getParsedValue","_getPrecisionLimits","isDecimalPointRestricted","isUselessCharRestricted","textWithoutStubs","parsedValueSign","parsedValueWithSign","pointIndex","floatLength","isPrecisionInRange","endsWithZero","_setInputText","_formattedValue","_renderInputType","isNumberType","isDesktop","_setInputType","_isChar","isSpecialChar","altKey","isMinusKey","_renderInput","_renderFormatter","_clearCache","_detachFormatterEvents","_attachFormatterEvents","_isInputFromPaste","inputType","_isValuePasted","_formatValue","isString","escapedDecimalSeparator","regExpString","stubRegExp","currentFormat","realSeparatorIndex","floatPart","minPrecision","_applyRevertedSign","preserveSelectedText","currentText","caretInBoundaries","_removeMinusFromText","isMinusPressed","textWithoutMinus","wasMinusRemoved","textWasChanged","clearedText","_refreshValueChangeEvent","_refreshEvents","monthGetter","monthSetter","monthLimits","getLimits","newDay","PATTERN_GETTERS","lastDayInMonth","isPM","getDay","currentYear","valueLength","maxLimitLength","getPatternGetter","renderDateParts","sections","isStub","limits","_len","_key","setter","forcedPattern","dM","getAmPm","getDatePartIndexByPosition","caretInGroup","DATE_COMPONENTS","TIME_COMPONENTS","ONE_MINUTE","ONE_DAY","ONE_YEAR","getStringFormat","dateUtils","SUPPORTED_FORMATS","MIN_DATEVIEW_DEFAULT_DATE","MAX_DATEVIEW_DEFAULT_DATE","FORMATS_INFO","getStandardPattern","standardPattern","FORMATS_MAP","SUBMIT_FORMATS_MAP","toStandardDateFormat","fromStandardDateFormat","getMaxMonthDay","mergeDates","formatInfo","componentInfo","DATE_COMPONENTS_INFO","getLongestCaptionIndex","captionArray","longestIndex","longestCaptionLength","getLongestDate","stringFormat","longestDate","normalizeTime","setSeconds","setMilliseconds","formatDate","DX_SWIPEABLE","SWIPEABLE_CLASS","ACTION_TO_EVENT_MAP","onStart","swipe","onUpdated","onCancel","Swipeable","elastic","itemSizeFunc","_attachEventHandlers","_detachEventHandlers","_createEventData","_eventData","CALENDAR_NAVIGATOR_CLASS","CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS","CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS","CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS","CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS","CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS","CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS","Navigator","onCaptionClick","_clickAction","_captionClickAction","_renderButtons","_renderCaption","_prevButton","$prevButton","_nextButton","$nextButton","_caption","$caption","toggleButton","buttonPrefix","buttonName","abstract","CALENDAR_OTHER_VIEW_CLASS","CALENDAR_CELL_CLASS","CALENDAR_EMPTY_CELL_CLASS","CALENDAR_TODAY_CLASS","CALENDAR_SELECTED_DATE_CLASS","CALENDAR_CONTOURED_DATE_CLASS","CALENDAR_DXCLICK_EVENT_NAME","CALENDAR_DATE_VALUE_KEY","BaseView","_getViewName","disabledDates","allowValueSelection","_todayDate","_renderImpl","_createDisabledDatesHandler","_renderBody","_renderContouredDate","_renderEvents","_$table","$body","rowData","cellDate","_getFirstCellData","prevCellDate","colIndex","_appendCell","_appendMethodName","_cacheAppendMethodName","_getClassNameByDate","getShortDateFormat","getCellAriaLabel","fixTimezoneGap","_prepareCellTemplateData","_getCellText","_getNextCellData","_isTodayCell","_isDateOutOfRange","isDateDisabled","_isOtherView","_createCellClickAction","_cellClickAction","_disabledDatesHandler","_getDefaultDisabledDatesHandler","contouredDate","$oldContouredCell","_getContouredCell","$newContouredCell","_getCellByDate","_changeValue","selectedCell","_selectedCell","_getFirstAvailableDate","getFirstDateView","isBoundary","CALENDAR_OTHER_MONTH_CLASS","Views","firstDayOfWeek","_renderHeader","_renderFocusTarget","$headerRow","$header","_renderHeaderCell","fullCaption","abbrCaption","_getDayCaption","_getFirstDayOfWeek","scope","abbr","getNavigatorCaption","today","sameDate","dateInRange","daysInWeek","getFirstMonthDate","firstMonthDayOffset","sameMonthAndYear","isDisabledDate","getLastMonthDate","foundDate","sameYear","decade","sameDecade","getFirstYearInDecade","createDateWithFullYear","firstYearInDecade","startDate","endDate","_isValueOnCurrentView","century","minDecade","maxDecade","sameCentury","getFirstDecadeInCentury","firstDecadeInCentury","CALENDAR_CLASS","CALENDAR_BODY_CLASS","CALENDAR_FOOTER_CLASS","CALENDAR_TODAY_BUTTON_CLASS","CALENDAR_HAS_FOOTER_CLASS","CALENDAR_VIEWS_WRAPPER_CLASS","CALENDAR_VIEW_CLASS","FOCUSED_STATE_CLASS","ANIMATION_DURATION_SHOW_VIEW","POP_ANIMATION_FROM","POP_ANIMATION_TO","CALENDAR_INPUT_STANDARD_PATTERN","LEVEL_COMPARE_MAP","ZOOM_LEVEL","MONTH","YEAR","DECADE","CENTURY","elementHasFocus","Calendar","zoomLevel","maxZoomLevel","minZoomLevel","showTodayButton","onContouredChanged","skipFocusCheck","_waitRenderView","_moveCurrentDateByOffset","_getRtlCorrection","_navigateUp","isAnimating","_view","_navigateDown","_dateOption","sameView","getViewFirstCellDate","_moveToClosestAvailableDate","getViewLastCellDate","_isMaxZoomLevel","_updateTimeComponent","_dateValue","_getSerializationFormat","_convertToDate","_shiftDate","baseDate","_getMaxDate","_getMinDate","isDateForwardInNeighborView","_areDatesInNeighborView","isDateForwardInRange","dateForward","date1","date2","getYear","isDateForwardInStartView","isDateBackwardInStartView","isCurrentDateAvailable","_isDateNotAvailable","isDateForwardAvailable","isDateBackwardAvailable","dateBackward","_areDatesInSameView","_correctZoomLevel","_initCurrentDate","_getNormalizedDate","normalizeDate","_getDate","_onContouredChanged","_updateCurrentDate","_$viewsWrapper","normalizedDate","_getViewsOffset","_isOtherViewCellClicked","_suppressNavigation","_navigate","_renderNavigator","_setViewContoured","_updateAriaId","zoomCorrection","_getMonthsOffset","yearOffset","monthOffset","_alreadyViewRender","_getDateByOffset","_waitRenderViewTimeout","_date","currentDay","getDifferenceInMonth","lastDay","_navigator","_renderSwipeable","_renderFooter","_updateAriaSelected","_renderSpecificView","beforeDate","_beforeView","_isViewAvailable","afterDate","_afterView","_translateViews","specificView","$view","_viewConfig","_injectComponent","_cellClickHandler","getViewMinBoundaryDate","getViewMaxBoundaryDate","_getViewPosition","coefficient","rtlCorrection","nextView","getViewDown","isMaxZoomLevel","currentValue","setMinutes","newCurrentDate","_animateShowView","_navigatorConfig","_updateButtonsVisibility","_navigatorClickHandler","getViewUp","_isMinZoomLevel","_getRequiredView","_swipeable","_swipeStartHandler","_swipeUpdateHandler","_swipeEndHandler","_viewWidth","maxLeftOffset","maxRightOffset","isRtl","_updateNavigatorCaption","targetOffset","moveOffset","_isDateInInvalidRange","_animateWrapper","_viewWidthValue","$todayButton","_toTodayView","_$footer","_popAnimationView","newView","offsetSign","endPosition","viewsWrapperPosition","_preventViewChangeAnimation","_wrapperAnimationEndHandler","_rearrangeViews","_resetLocation","viewOffset","viewToCreateKey","viewToRemoveKey","destinationDate","dateByOffset","_clearViewWidthCache","_disposeViews","_refreshViews","_updateViewsValue","_value","$prevSelectedCell","$selectedCell","_value2","ariaId","_suppressingNavigation","getContouredDate","DateBoxStrategy","dateBox","_widget","_renderWidget","_createWidget","_getWidgetContainer","_getWidgetName","widgetOptions","_getWidgetOptions","getDefaultOptions","supportedKeys","getKeyboardListener","customizeButtons","getParsedText","renderInputMinMax","renderOpenedState","_updateValue","popupConfig","_this$_getPopup","_getPopup","renderPopupContent","_preventFocusOnPopup","getFirstPopupElement","getLastPopupElement","popupShowingHandler","popupHiddenHandler","dateBoxValue","useCurrentDateByDefault","getDefaultDate","textChangedHandler","renderValue","getValue","isAdaptivityChanged","dateOption","CalendarStrategy","homeEndHandler","viewValue","_getContouredValue","lastActionElement","shouldCloseDropDown","_closeDropDownByEnter","_valueChangedHandler","actionValue","_popupConfig","buttonsLocation","_isCalendarVisible","registerKeyHandler","_escapeHandler","sameHoursAndMinutes","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_BOTH","convertToLocation","DATEVIEW_ROLLER_CLASS","DATEVIEW_ROLLER_ACTIVE_CLASS","DATEVIEW_ROLLER_CURRENT_CLASS","DATEVIEW_ROLLER_ITEM_CLASS","DATEVIEW_ROLLER_ITEM_SELECTED_CLASS","DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS","DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS","showOnClick","onSelectedIndexChanged","_visibilityChangedHandler","_endActionHandler","_renderSelectedItemFrame","_renderContainerClick","_renderSelectedValue","_renderItemsClick","_renderWheelEvent","_renderSelectedIndexChanged","_selectedIndexChanged","_isWheelScrolled","clickAction","_$items","_fitIndex","_moveTo","_getItemPosition","_renderActiveStateItem","_itemHeight","itemSelector","_getItemSelector","_itemElementIndex","_prepareDirections","_animation","_shouldScrollToNeighborItem","handleMove","_moveIsAllowed","currentSelectedIndex","locationTop","currentSelectedIndexPosition","dy","_isInNullNeighborhood","newSelectedIndex","_fitSelectedIndexInRange","_getSelectedIndexAfterScroll","_getNewSelectedIndex","_visibilityTimer","toggleActiveState","fitIndex","_fireSelectedIndexChanged","_refreshSelectedIndex","DATEVIEW_CLASS","DATEVIEW_COMPACT_CLASS","DATEVIEW_WRAPPER_CLASS","DATEVIEW_ROLLER_CONTAINER_CLASS","TYPE","ROLLER_TYPE","DateView","_valueOption","_getDefaultDate","applyCompactClass","_toggleFormatClasses","_toggleCompactClass","previousFormat","_wrapper","_$wrapper","_renderRollers","_$rollersContainer","_createRollerConfigs","_rollers","_rollerConfigs","$roller","displayItems","roller","_toggleActive","_setActiveRoller","_setRollerState","_createRollerConfig","valueRange","_calculateRollerConfigValueRange","curDate","_getCurrentDate","valueItems","getIndex","currentRoller","activeRoller","_updateRollersPosition","correctIndex","rollerValue","_refreshRollers","_refreshRoller","rollerType","rollerConfig","minYear","minMonth","maxYear","maxMonth","minHour","maxHour","DateViewStrategy","openOnFieldClick","applyButtonText","_popupToolbarItemsConfig","defaultOptionsRules","_device2","_isNativeType","NativeStrategy","_getDateBoxType","dropDownButton","getButton","android","click","BOX_CLASS","BOX_SELECTOR","BOX_ITEM_CLASS","BOX_ITEM_DATA_KEY","MINSIZE_MAP","MAXSIZE_MAP","SHRINK","FLEX_JUSTIFY_CONTENT_MAP","center","FLEX_ALIGN_ITEMS_MAP","stretch","FLEX_DIRECTION_MAP","setFlexProp","cssName","styleExpr","BOX_EVENTNAMESPACE","UPDATE_EVENT","FALLBACK_BOX_ITEM","FALLBACK_WRAP_MAP","FALLBACK_MAIN_SIZE_MAP","FALLBACK_CROSS_SIZE_MAP","FALLBACK_PRE_MARGIN_MAP","FALLBACK_POST_MARGIN_MAP","FALLBACK_CROSS_PRE_MARGIN_MAP","FALLBACK_CROSS_POST_MARGIN_MAP","MARGINS_RTL_FLIP_MAP","marginLeft","marginRight","_renderVisible","_options","fireItemStateChangedAction","_option","initSize","justifyContent","_normalizedAlign","align","alignItems","_normalizedCrossAlign","crossAlign","flexPropPrefix","maxSize","minSize","baseSize","shrink","each","flexBasis","flexDirection","fontSize","whiteSpace","verticalAlign","totalItemSize","boxSize","_setItemsMargins","_chooseMarginSide","itemSize","totalRatio","totalWeightedShrink","totalBaseSize","_baseSize","freeSpaceSize","_boxSize","factor","totalFactor","_contentSize","_parseSize","_boxSizeValue","_totalBaseSize","renderItems","renderAlign","renderCrossAlign","triggerHandler","onItemStateChanged","_layoutStrategy","_queue","_initLayout","_initBoxQueue","_layout","renderBox","_renderAlign","_renderActions","_onItemStateChanged","_queueIsNotEmpty","_shiftItemFromQueue","itemHoldTimeout","onItemHold","onItemContextMenu","_updateTimer","_isUpdated","$itemNode","_renderItemContentByNode","_renderItemContent","boxConfig","box","_pushItemToQueue","_createItemByTemplate","_itemOptions","TIMEVIEW_CLASS","TIMEVIEW_CLOCK_CLASS","TIMEVIEW_FIELD_CLASS","TIMEVIEW_HOURARROW_CLASS","TIMEVIEW_TIME_SEPARATOR_CLASS","TIMEVIEW_FORMAT12_CLASS","TIMEVIEW_FORMAT12_AM","TIMEVIEW_FORMAT12_PM","TIMEVIEW_MINUTEARROW_CLASS","rotateArrow","$arrow","angle","cssRotate","TimeView","use24HourFormat","_showClock","_arrowOffset","stylingMode","_getValue","_renderBox","_updateTime","$box","_renderClock","_renderField","__","_$hourArrow","_$minuteArrow","_updateClock","hourArrowAngle","minuteArrowAngle","_getBoxItems","is12HourFormat","_hourBox","_minuteBox","_format12","_createHourBox","_createMinuteBox","_createFormat12Box","_onHourBoxValueChanged","onKeyboardHandled","opts","_getNumberBoxConfig","_isPM","newHours","_convertMaxHourToMin","maxHoursValue","newMinutes","_refreshFormat12","_silentEditorValueUpdate","_suppressValueChangeAction","displayValueFormatter","_normalizeHours","_updateField","SHRINK_VIEW_SCREEN_WIDTH","DATEBOX_ADAPTIVITY_MODE_CLASS","DATEBOX_TIMEVIEW_SIDE_CLASS","CalendarWithTimeStrategy","applyValueMode","_is24HourFormat","viewDate","_updateDateTime","_timeView","_isShrinkView","_isSmallScreen","_repaintTimer","isAdaptiveMode","currentAdaptiveMode","_currentAdaptiveMode","preventDefaultValue","_box","_attachTabHandler","calendarPopupConfig","clockMinWidth","_hasFocusClass","_this$_widget$option","_removeMinWidthTimer","DATE_FORMAT","BOUNDARY_VALUES","ListStrategy","_widgetItems","_getDateByItemData","_refreshItems","_timeListItemTemplate","_listItemClickHandler","onFocusedItemChanged","_getTimeListItems","_setSelectedItemsByValue","_asyncScrollTimeout","_scrollToSelectedItem","dateIndex","_getDateIndex","scrollToItem","_areDatesEqual","_getBoundaryDate","_getRangeItems","rangeDuration","rangeItems","boundaryValue","_updatePopupHeight","dropDownOptionsHeight","_setPopupOption","_timeList","DATEBOX_CLASS","DX_AUTO_WIDTH_CLASS","DX_INVALID_BADGE_CLASS","DX_CLEAR_BUTTON_CLASS","DATEBOX_WRAPPER_CLASS","DROPDOWNEDITOR_OVERLAY_CLASS","PICKER_TYPE","calendar","rollers","list","native","STRATEGY_NAME","dateView","calendarWithTime","STRATEGY_CLASSES","Native","CalendarWithTime","List","DateBox","_strategy","_renderButtonContainers","showAnalogClock","pickerType","invalidDateMessage","dateOutOfRangeMessage","adaptivityEnabled","calendarOptions","useHiddenSubmitElement","realDevice","_userOptions","_updatePickerOptions","_pickerType","_initStrategy","_toLowerCaseFirstLetter","strategyName","_getStrategyName","_getFormatType","currentType","isTime","isDate","_refreshFormatClass","_refreshPickerTypeClass","_formatValidationIcon","_this$_strategy$_upda","_this$_strategy","inputElement","isRtlEnabled","clearButtonWidth","_getClearButtonWidth","longestElementDimensions","_getLongestElementDimensions","curWidth","getComputedStyle","shouldHideValidationIcon","_storedPadding","leftPadding","rightPadding","_isClearButtonVisible","clearButtonElement","longestValue","$longestValueElement","isPaddingStored","storedPadding","necessaryWidth","_renderPopupWrapper","_getPopupTitle","classPostfixes","_renderPopupContent","_getFirstPopupElement","_getLastPopupElement","_popupShowingHandler","_popupShownHandler","_popupHiddenHandler","_clearValueHandler","_readOnlyPropValue","isCustomValueDisabled","_getDisplayedText","submitFormat","submitValue","displayedText","_getFormatByMode","_getParsedDate","_getDateByDefault","_applyInternalValidation","_applyCustomValidation","parsedText","isDateInRange","validationMessage","_serializeDate","_isValueChanged","oldTime","newTime","_isTextChanged","oldText","_renderOpenedState","_refreshStrategy","_applyButtonHandler","_this$_strategy2","_updatePopupTitle","_this$_popup","_renderInputValue","MASK_EVENT_NAMESPACE","FORWARD","BACKWARD","DateBoxMask","originalHandlers","callOriginalHandler","originalHandler","applyHandler","maskHandler","_shouldUseOriginalHandler","_revertPart","_isAllSelected","_selectFirstPart","_selectLastPart","_revertChanges","_enterHandler","_selectNextPart","_upDownArrowHandler","isNotDeletingInCalendar","_setNewDateIfEmpty","originalValue","_getActivePartValue","_initialMaskValue","_loadMaskValue","_partIncrease","emptyDateValue","alt","_e$originalEvent","_useBeforeInputEvent","oldInputValue","_processInputKey","_maskInputHandler","_renderSelectedPart","_isSingleCharKey","_keyInputHandler","isBackwardDeletion","isForwardDeletion","_isSingleDigitKey","_maskValue","_activePartIndex","_searchString","_searchNumber","_formatPattern","_renderDateParts","formatLength","_getActivePartProp","isShortFormat","maxSearchLength","isLengthExceeded","_searchValue","isValueOverflowed","_getActivePartLimits","_setActivePartValue","_partLimitsReached","startString","endLimit","_clearSearchValue","_regExpInfo","quantifierRegexp","convertedSource","sourcePart","_prepareRegExpInfo","_detachMaskEvents","_clearMaskState","_attachMaskEvents","_initMaskState","_dateParts","_maskClickHandler","_maskPasteHandler","_maskCompositionEndHandler","_maskBeforeInputHandler","_disposed","isBoundaryIndex","lockOtherParts","limitFunction","_getRealLimitsPattern","zeroes","_addLeadingZeroes","limitDelta","_applyLimits","limitBase","limitClosest","_isDateValid","_isValueDirty","_fireChangeEvent","shouldFireChangeEvent","isDefaultPrevented","_saveMaskValue","_renderMask","CHECKBOX_SIZE_CLASS","EDITOR_INLINE_BLOCK","EditorFactoryMixin","getResultConfig","inputAttr","checkEnterBug","ios","getTextEditorConfig","isEnterBug","sharedData","needDelayedUpdate","isInputOrKeyUpEvent","updateValue","valueChangeTimeout","updateValueTimeout","valueChangeEvent","prepareBooleanEditor","prepareSelectBox","editorName","displayGetter","postProcess","selectBox","stopWatch","searchExpr","showClearButton","editorElement","blur","isSearching","isOnForm","showValidationMark","$editorElement","dxDateBox","defaultEnterKeyHandler","dxTextArea","FOCUS_OVERLAY_CLASS","FOCUSED_ELEMENT_CLASS","MODULE_NAMESPACE","UPDATE_FOCUS_EVENTS","DX_HIDDEN","EditorFactory","_getFocusedElement","$dataGridElement","rowSelector","focusedElementSelector","$focusedElement","_getFocusCellSelector","_updateFocusCore","$focusCell","hideBorders","$focus","loseFocus","_updateFocus","isFocusOverlay","_isFocusOverlay","_updateFocusTimeoutID","_updateFocusOverlaySize","calculate","oversize","hideBorder","_$focusedElement","_focusTimeoutID","renderFocusOverlay","focused","refocus","_$focusOverlay","elemCoord","focusOverlayPosition","precise","_updateFocusHandler","_attachContainerEventHandlers","editorFactoryModule","DEFAULT_BUTTON","DX_DIALOG_CLASSNAME","DX_DIALOG_WRAPPER_CLASSNAME","DX_DIALOG_ROOT_CLASSNAME","DX_DIALOG_CONTENT_CLASSNAME","DX_DIALOG_MESSAGE_CLASSNAME","DX_DIALOG_BUTTONS_CLASSNAME","DX_DIALOG_BUTTON_CLASSNAME","DX_BUTTON_CLASSNAME","FakeDialogComponent","custom","_options$title","isMessageDefined","isMessageHtmlDefined","messageHtml","popupToolbarItems","popupInstance","execute","ignoreChildEvents","bottomToolbar","$firstButton","popupOptions","isPortrait","ROW_SELECTED_CLASS","EDIT_FORM_CLASS","DATA_EDIT_DATA_INSERT_TYPE","DATA_EDIT_DATA_REMOVE_TYPE","EDITING_POPUP_OPTION_NAME","EDITING_FORM_OPTION_NAME","EDITING_EDITROWKEY_OPTION_NAME","EDITING_EDITCOLUMNNAME_OPTION_NAME","TARGET_COMPONENT_NAME","EDITORS_INPUT_SELECTOR","FOCUSABLE_ELEMENT_SELECTOR","EDIT_MODE_BATCH","EDIT_MODE_ROW","EDIT_MODE_CELL","EDIT_MODE_FORM","EDIT_MODE_POPUP","FIRST_NEW_ROW_POSITION","LAST_NEW_ROW_POSITION","PAGE_BOTTOM_NEW_ROW_POSITION","PAGE_TOP_NEW_ROW_POSITION","VIEWPORT_BOTTOM_NEW_ROW_POSITION","VIEWPORT_TOP_NEW_ROW_POSITION","EDIT_MODES","ROW_BASED_MODES","MODES_WITH_DELAYED_FOCUS","READONLY_CLASS","LINK_CLASS","ROW_SELECTED","EDIT_BUTTON_CLASS","COMMAND_EDIT_CLASS","COMMAND_EDIT_WITH_ICONS_CLASS","INSERT_INDEX","ROW_INSERTED","ROW_MODIFIED","CELL_MODIFIED","EDITING_NAMESPACE","DATA_EDIT_DATA_UPDATE_TYPE","DEFAULT_START_EDIT_ACTION","EDIT_LINK_CLASS","edit","undelete","delete","EDIT_ICON_CLASS","METHOD_NAMES","ACTION_OPTION_NAMES","BUTTON_NAMES","EDITING_CHANGES_OPTION_NAME","createFailureHandler","isEditingCell","isEditingOrShowEditorAlwaysDataCell","isCommandCell","isEditorCell","EditingController","getButtonIndex","getButtonName","_lastOperation","_deferreds","_saveEditorHandler","_updateEditColumn","_updateEditButtons","_internalState","getEditMode","editMode","_getDefaultEditorTemplate","_getNewRowPosition","getChanges","getInsertRowCount","resetChanges","needReset","_getInternalData","_addInternalData","internalData","_getOldData","_this$_getInternalDat","getUpdatedData","editIndex","getInsertedData","getRemovedData","_fireDataErrorOccurred","getPopupContent","_needToCloseEditableCell","_closeEditItem","_isDefaultButtonVisible","_isButtonVisible","_isButtonDisabled","_getButtonConfig","addRowToNode","editingOptions","allowAction","_getEditingButtons","buttonIndex","haveCustomButtons","_renderEditingButtons","_createButton","_getEditCommandCellTemplate","isRowBasedEditMode","getFirstEditableColumnIndex","getFirstEditableCellInRow","getFocusedCellInRow","_inputFocusTimeoutID","_pointerUpEditorHandler","_pointerDownEditorHandler","_handleEditRowKeyChange","_handleChangesChange","_resetEditColumnName","_resetEditRowKey","oldRowIndexCorrection","_getEditRowIndexCorrection","oldRowIndex","_editRowFromOptionChanged","cancelEditData","_addInsertInfo","_items$rowIndex","_pageIndex","_refreshCore","isEditRowKeyDefined","_setEditRowKey","silent","_setEditRowKeyByIndex","getEditRowIndex","_getVisibleEditRowIndex","getEditFormRowIndex","isKeyEqual","isEditCell","isEditRowByIndex","_getVisibleEditColumnIndex","_getInsertRowIndex","isProcessedItems","_getInsertAfterOrBeforeKey","isProcessedItem","nextItem","_generateNewItem","_this$_getInternalDat2","insertInfo","_getLoadedRowIndex","loadedRowIndex","insertAfterOrBeforeKey","_this$_getInternalDat3","isInsert","processDataItem","_processDataItemCore","modified","removed","_initNewRow","_createInsertInfo","_getInsertIndex","parentKey","_this$_getInternalDat4","_setInsertAfterOrBeforeKey","allItems","isViewportBottom","insertKey","maxInsertIndex","editItem","_this$_getInternalDat5","insertChange","_insertChange$insertA","_getPageIndexToInsertRow","lastPageIndex","_addRow","param","oldEditRowIndex","allowCancelEditing","_allowRowAdding","__KEY__","_addRowCore","_navigateToNewRow","insertIndex","initialOldEditRowIndex","editRowIndex","_addChange","_editRowIndex","_change","focusController","pageIndexToInsertRow","navigateToRowByKey","navigateToRow","_showAddedRow","_afterInsertRow","_focusFirstEditableCellInRow","_beforeFocusElementInRow","$firstCell","_editCellInProgress","_delayedInputFocus","_isEditingStart","_beforeUpdateItems","_setEditColumnNameByIndex","_visibleColumns$index","_setEditColumnName","_getEditColumn","_getColumnByName","editColumn","columnName","isColumnHidden","_resetEditIndices","_item$oldData","_editRowFromOptionChangedCore","preventRendering","_needFocusEditor","_focusEditorIfNeed","_showEditPopup","_repaintEditPopup","_getEditPopupHiddenHandler","_getPopupEditFormTemplate","_getSaveButtonConfig","saveEditData","_getCancelButtonConfig","_removeInternalData","_updateInsertAfterOrBeforeKeys","removeChange","_removeChange","executeOperation","waitForDeferredOperations","_processCanceledEditingCell","_repaintEditCell","oldColumn","beforeFocusCallback","callBeforeFocusCallbackAlways","inputFocus","$focusableElement","_beforeFocusCallback","_focusEditingCell","$editCell","editColumnIndex","_checkAndDeleteRow","showDialogTitle","confirmResult","_deleteRowCore","_afterDeleteRow","_fireOnSaving","onSavingParams","_executeEditingAction","_processChanges","results","dataChanges","changeCopy","_beforeSaveEditData","newData","doneDeferred","_processRemoveIfError","_processRemove","_processRemoveCore","_processSaveEditDataResult","hasSavedData","changesLength","isError","_fireSaveEditDataEvents","isSaving","_resolveAfterSave","_saving","_saveEditDataInner","needFocusEditCell","_afterSaveEditData","_endSaving","_cancelSaving","_beforeEndSaving","_refreshDataAfterSave","isFullRefresh","isEditColumnVisible","_isEditColumnVisible","_isEditButtonDisabled","isEditRowDefined","isButtonDisabled","_applyModified","_beforeCloseEditCellInBatchMode","_cancelEditDataCore","_beforeCancelEditData","_afterCancelEditData","_hideEditPopup","hasEditData","isPageChanged","_getRowIndicesForCascadeUpdating","skipCurrentRow","addDeferred","_prepareChange","_options$row","rowKey","setCellValueResult","_updateRowValues","updateFieldValue","forceUpdateRow","_focusPreviousEditingCellIfNeed","_updateEditRow","_needUpdateRow","isCustomSetCellValue","isCustomCalculateCellValue","changeOptions","_applyChangeCore","_updateEditRowCore","_updateRowImmediately","_updateRowWithDelay","_validateEditFormAfterUpdate","changeParams","_this$getChanges","_getFormEditItemTemplate","getColumnTemplate","editingStartOptions","isRowMode","isRowEditing","getEditFormTemplate","useLegacyColumnButtonTemplate","iconType","localizationName","getButtonLocalizationNames","_button$onClick","prepareButtonItem","titleButtonTextByClassNames","revert","prepareEditButtons","buttonItems","highlightDataCell","shouldHighlightCell","_allowEditAction","allowEditAction","needCallback","isNewRowInEditMode","visibleEditRowIndex","cellModified","editingModule","_editingController","_this$_updateEditItem","_updateEditItem","isParasiteChange","dataSourceKeys","newChanges","isEditNewItem","isRowRemoved","isRowInserted","isRowModified","_getColumnIndexByElement","_getColumnIndexByElementCore","_editCellByClick","isEditedCell","editCell","withoutSaveEditData","closeEditCell","_pointerDownTimeout","isEditForm","_parameters$column","isEditableCell","_editCellPrepared","hasTemplate","_formItemPrepared","cellValue","editButtonItems","excludedOptions","shouldInvalidate","EDIT_ROW","editingRowBasedModule","isRowEditMode","hasUpdateChanges","isVisibleInRowEditMode","$editingCell","_map","guid","widgetInstance","itemsRunTimeInfo","getItems","removeItemByKey","itemRunTimeInfo","_findWidgetInstance","storedItem","targetPath","_findFieldByCondition","targetItem","filteredKeys","_translator","completeAction","MULTIVIEW_CLASS","MULTIVIEW_WRAPPER_CLASS","MULTIVIEW_ITEM_CONTAINER_CLASS","MULTIVIEW_ITEM_CLASS","MULTIVIEW_ITEM_HIDDEN_CLASS","MULTIVIEW_ITEM_DATA_KEY","MULTIVIEW_ANIMATION_DURATION","toNumber","MultiView","swipeEnabled","animationEnabled","loop","loopItemFocus","selectOnFocus","selectionRequired","selectionByClick","_$itemContainer","_itemWidth","_itemWidthValue","_clearItemWidthCache","_itemsCount","_normalizeIndex","_getRTLSignCorrection","_initSwipeable","_deferredItems","selectedItemIndices","_getSelectedItemIndices","_updateItemsVisibility","_afterItemElementDeleted","deletedActionArgs","_beforeItemElementInserted","_executeItemRenderAction","renderContentDeferred","_updateItems","newIndex","_updateItemsPosition","_modifyByChanges","positionSign","_animationDirection","$selectedItem","move","isHidden","_renderSpecificItem","hasItemContent","_itemContentClass","_refreshItem","_updateSelection","animationDirection","_animateItemContainer","completeCallback","moveTo","containerPosition","indexDifference","_getItemFocusLoopSignCorrection","isSwipePresent","directionSignVariable","_getSwipeDisabledState","lastIndex","rtl","_swipeDirection","swipeDirection","$selectedElement","itemElements","_itemFocusLooped","$result","_updateSwipeDisabledState","TABS_ITEM_BADGE_CLASS","BADGE_CLASS","TabsItem","_renderWatchers","_startWatcher","_renderBadge","badge","$badge","TABS_EXPANDED_CLASS","getScrollLeftMax","isReachedLeft","scrollOffsetLeft","epsilon","isReachedRight","TABS_CLASS","TABS_WRAPPER_CLASS","TABS_STRETCHED_CLASS","TABS_SCROLLABLE_CLASS","TABS_NAV_BUTTONS_CLASS","OVERFLOW_HIDDEN_CLASS","TABS_ITEM_CLASS","TABS_ITEM_SELECTED_CLASS","TABS_NAV_BUTTON_CLASS","TABS_LEFT_NAV_BUTTON_CLASS","TABS_RIGHT_NAV_BUTTON_CLASS","TABS_ITEM_TEXT_CLASS","TABS_ITEM_DATA_KEY","BUTTON_NEXT_ICON","BUTTON_PREV_ICON","FEEDBACK_HIDE_TIMEOUT","FEEDBACK_DURATION_INTERVAL","FEEDBACK_SCROLL_TIMEOUT","TAB_OFFSET","Tabs","showNavButtons","badgeExpr","_renderWrapper","_renderMultiple","_feedbackHideTimeout","_prepareDefaultItemTemplate","$iconElement","wrapInner","renderArgs","_deferredTemplates","_deferRenderScrolling","_renderScrolling","removeClasses","_isItemsWidthExceeded","_renderNavButtons","_updateNavButtonsVisibility","_scrollToItem","_cleanScrolling","_needStretchItems","tabItemsWidth","_getVisibleItems","$visibleItems","maxTabWidth","_cleanNavButtons","_leftButton","_rightButton","getItemElement","_createNavButton","$leftButton","$rightButton","_updateScrollPosition","scrollBy","holdAction","_holdInterval","holdEventName","pointerUpEventName","pointerOutEventName","out","navButton","$navButton","_clearInterval","_itemSelectHandler","TABPANEL_CLASS","TABPANEL_TABS_CLASS","TABPANEL_CONTAINER_CLASS","TabPanel","itemTitleTemplate","onTitleClick","onTitleHold","_createTitleActions","_renderLayout","_createTitleClickAction","_createTitleHoldAction","_createTitleRenderedAction","_titleClickAction","_titleHoldAction","_titleRenderedAction","_resizeEventTimer","_updateLayout","_tabs","_$tabContainer","$tabs","_tabConfig","_$container","tabsHeight","tabs","tabItems","$activeTab","getFocusedItemId","itemTemplateProperty","$value","$newItem","_isFocusOutHandlerExecuting","_updateFocusState","_toggleFocusClass","_setTabsOption","selectedTabContent","_itemsRunTimeInfo","findWidgetInstanceByItem","findItemContainerByItem","findPreparedItemByItem","createItemPathByIndex","isTabs","concatPaths","getTextWithoutSpaces","isEqualToDataFieldOrNameOrTitleOrCaption","getFullOptionName","getOptionNameFromFullName","tryGetTabPath","fullPath","pathParts","resultPathParts","isFullPathContainsTabs","getItemPath","tabOrGroupItems","itemPath","convertToLayoutManagerOptions","$formElement","formOptions","extendedLayoutManagerOptions","onFieldItemRendered","baseOptions","validationBoundary","layoutData","isRoot","cssItemClass","onLayoutChanged","findInstance","tabPanel","findItemIndexByItem","preparedItem","findPreparedItem","_prepareGroupItemTemplate","_renderGroupContentTemplate","validator","filterRequired","oldContainsRequired","newContainsRequired","findItemContainer","tryCreateItemOptionAction","itemActionOptions","_itemActionOptions$it","_itemActionOptions$it2","_itemActionOptions$it3","RESPONSIVE_BOX_CLASS","SCREEN_SIZE_CLASS_PREFIX","HD_SCREEN_WIDTH","ResponsiveBox","cols","singleColumnScreen","currentScreenFactor","_initLayoutChangedAction","_layoutChangedAction","_updateRootBox","_$root","_setScreenSize","_screenItems","_itemsByScreen","_prepareGrid","_spreadItems","_layoutItems","_linkNodeToItem","_clearItemNodeTemplates","currentScreen","_getCurrentScreen","_removeScreenSizeClass","grid","_grid","_prepareRowsAndCols","_rows","_cols","_createEmptyCell","getSingleColumnRows","screenItemsLength","filteredRows","_filterByScreen","sizeConfig","_defaultSizeConfig","_isSingleColumnScreen","_prepareSingleColumnScreenItems","_sizesByScreen","_screenRegExp","sizeConfigs","_createDefaultSizeConfig","defaultSizeConfig","screenRegExp","screen","_screenWidth","itemInfo","itemCol","itemRow","itemCell","_occupyCells","locations","_isItemCellOccupied","_markSpanningCell","_loopOverSpanning","rowEnd","colEnd","boundRowEnd","boundColEnd","spanningCell","itemNode","rowsCount","colsCount","_layoutBlock","rootBox","_prepareBoxConfig","_rootBoxConfig","rootItems","_needApplyAutoBaseSize","_isSingleItem","_itemByCell","_layoutDirection","firstCellLocation","isItemRowSpanned","isItemColSpanned","block","crossDirection","_crossDirection","_nextBlock","_isBlockIndivisible","prevBlockOptions","_blockSize","startIndex","endIndex","crossStartIndex","crossSpan","crossIndex","lineCrossSpan","_cellByDirection","lineCrossEndIndex","crossEndIndex","defaultMinSize","forceRemoveRoot","$existingRoot","_saveAssistantRoot","_assistantRoots","_cleanUnusedRoots","FORM_CLASS","FORM_GROUP_CLASS","FORM_GROUP_CAPTION_CLASS","FORM_FIELD_ITEM_COL_CLASS","FIELD_ITEM_CLASS","LAYOUT_MANAGER_ONE_COLUMN","FIELD_ITEM_LABEL_CONTENT_CLASS","FORM_LAYOUT_MANAGER_CLASS","FIELD_ITEM_LABEL_CLASS","FIELD_ITEM_CONTENT_CLASS","SINGLE_COLUMN_ITEM_CONTENT","ROOT_SIMPLE_ITEM_CLASS","FORM_GROUP_CONTENT_CLASS","FIELD_ITEM_CONTENT_HAS_GROUP_CLASS","FIELD_ITEM_CONTENT_HAS_TABS_CLASS","FORM_GROUP_WITH_CAPTION_CLASS","FIELD_ITEM_TAB_CLASS","GROUP_COL_COUNT_CLASS","GROUP_COL_COUNT_ATTR","FORM_VALIDATION_SUMMARY","FORM_UNDERLINED_CLASS","SIMPLE_ITEM_TYPE","DefaultAdapter","validationRequestsCallbacks","validationErrors","brokenRules","validationStatus","VALIDATOR_CLASS","VALIDATION_STATUS_VALID","VALIDATION_STATUS_INVALID","VALIDATION_STATUS_PENDING","Validator","initValidationOptions","_initGroupRegistration","_initAdapter","_validationInfo","skipValidation","_findGroup","_groupWasInit","removeRegisteredValidator","_validationGroup","registerValidatorInGroup","dxStandardEditor","_getEditor","adapter","validate","callbacks","_this$option$editor$o","_this$option","_this$option$editor","_toggleAccessibilityAttributes","rules","_resetValidationRules","synchronizeValidationOptions","_validationRules","rule","findGroup","_modelByElement","bypass","currentError","getCurrentValidationError","_getValidationRules","currentResult","brokenRule","_applyValidationResult","res","pendingRules","validatedAction","_updateValidationResult","applyValidationResults","EDITORS_WITH_ARRAY_VALUE","EDITORS_WITHOUT_LABELS","convertToRenderFieldItemOptions","rootElementCssClassList","formOrLayoutManager","createComponentCallback","useFlexLayout","formLabelLocation","requiredMessageTemplate","editorValue","canAssignUndefinedValueToEditor","editorValidationBoundary","editorStylingMode","managerLabelLocation","itemId","managerMarkOptions","_hasRequiredRuleInSet","isSimpleItem","helpID","labelOptions","_convertToLabelOptions","formLabelMode","needRenderLabel","labelID","labelNeedBaselineAlign","_convertToEditorOptions","defaultEditorName","externalEditorOptions","editorInputId","labelText","textWithoutColon","labelMark","markOptions","needRenderOptionalMarkAsHelpText","getLabelMarkText","convertToLabelMarkOptions","editorOptionsWithValue","hasRequiredRule","isEditorWithoutLabels","_excluded","GET_LABEL_WIDTH_BY_TEXT_CLASS","FIELD_ITEM_REQUIRED_MARK_CLASS","FIELD_ITEM_LABEL_LOCATION_CLASS","FIELD_ITEM_OPTIONAL_MARK_CLASS","FIELD_ITEM_LABEL_TEXT_CLASS","renderLabel","_renderLabelMark","markText","setLabelWidthByMaxLabelWidth","$targetContainer","labelsSelector","labelMarkOptions","labelWidth","FIELD_ITEM_LABEL_CONTENT_CLASS_Selector","$FIELD_ITEM_LABEL_CONTENT_CLASS_Items","FIELD_ITEM_LABEL_CONTENT_CLASS_Length","getLabelWidthByInnerHTML","$FIELD_ITEM_LABEL_CONTENT_CLASS","renderLabelOptions","$hiddenContainer","$label","labelTextElement","getLabelInnerHTML","child","innerText","FLEX_LAYOUT_CLASS","FIELD_ITEM_OPTIONAL_CLASS","FIELD_ITEM_REQUIRED_CLASS","FIELD_ITEM_CONTENT_WRAPPER_CLASS","FIELD_ITEM_CONTENT_LOCATION_CLASS","FIELD_ITEM_LABEL_ALIGN_CLASS","FIELD_ITEM_HELP_TEXT_CLASS","LABEL_VERTICAL_ALIGNMENT_CLASS","LABEL_HORIZONTAL_ALIGNMENT_CLASS","TEMPLATE_WRAPPER_CLASS","VALIDATION_TARGET_CLASS","INVALID_CLASS","renderFieldItem","$fieldEditorContainer","$validationTarget","getValidationTarget","validationTargetInstance","tryGetValidationTargetInstance","subscribeWrapperInvalidClassToggle","$div","isItemHaveCustomLabel","itemName","dataGetter","$editorParent","_$validationTarget$pa","_$validationTarget$pa2","wrapperClass","toggleInvalidClass","validationMessageMode","_isFocused","FIELD_BUTTON_ITEM_CLASS","renderButtonItem","convertAlignmentToTextAlign","horizontalAlignment","convertAlignmentToJustifyContent","verticalAlignment","buttonInstance","buttonOptions","FIELD_EMPTY_ITEM_CLASS","renderEmptyItem","FORM_EDITOR_BY_DEFAULT","LAYOUT_MANAGER_FIRST_ROW_CLASS","LAYOUT_MANAGER_LAST_ROW_CLASS","LAYOUT_MANAGER_FIRST_COL_CLASS","LAYOUT_MANAGER_LAST_COL_CLASS","LAYOUT_STRATEGY_FLEX","LAYOUT_STRATEGY_FALLBACK","LayoutManager","_itemWatchers","_updateReferencedOptions","_initDataAndItems","_cleanItemWatchers","initialData","_syncDataWithItems","_getDataByField","_updateFieldValue","_isCheckboxUndefinedStateEnabled","allowIndeterminateState","nameParts","propertyName","isWritableWrapped","_triggerOnFieldDataChanged","isUserItemsExist","_generateItemsByData","processedItems","_isAcceptableItem","unwrap","_updateItemWatchers","_setItems","_sortItems","_getWatch","itemField","_getEditorTypeByDataType","_item$allowIndetermin","_sortIndexes","itemA","itemB","indexA","indexB","clear","_renderResponsiveBox","_hasBrowserFlex","templatesInfo","_getColCount","_prepareItemsWithMerging","layoutItems","_generateLayoutItems","_responsiveBox","_getResponsiveBoxConfig","_renderTemplates","_itemStateChangedHandler","info","_renderButtonItem","_renderFieldItem","xsColCount","isSingleColumnMode","itemRenderedCountInPreviousRows","itemCssClassList","isLastColumn","_getRowsCount","isLastRow","_generateRatio","screenFactor","getTargetScreenFactor","_cashedColCount","_getMaxColCount","maxColCount","isCachedColCountObsolete","itemsMergedByCol","_getColByIndex","merged","generatedItem","rowSpan","_renderEmptyItem","_getFormOrThis","getItemID","_getMarkOptions","_bindDataField","editorInstance","formOrThis","_createWatcher","linkEditorToDataField","fieldValue","array1","array2","_watch","formInstance","readOnlyState","isAutoSize","newLayoutData","getOwnPropertyNames","_disableEditorValueChangedHandler","_cashedRequiredConfig","valueGetter","dataValue","_resetWidget","_resetColCount","isValueReferenceType","updateData","getEditor","findWidgetInstanceByDataField","findWidgetInstanceByName","responsiveBox","getItemsRunTimeInfo","VALIDATION_SUMMARY_CLASS","ITEM_DATA_KEY","ValidationSummary","groupConfig","addGroup","_unsubscribeGroup","groupSubscription","_groupValidationHandler","getGroupConfig","validators","orderedItems","foundItems","_getOrderedItems","_validationSummary","_itemValidationHandler","itemsChanged","foundRule","foundItem","VALIDATION_ENGINE_CLASS","validatorContainer","summaryContainer","refreshValidationGroup","validateGroup","resetGroup","removeGroup","ITEM_OPTIONS_FOR_VALIDATION_UPDATING","Form","_cachedColCountOptions","_groupsColCount","_attachSyncSubscriptions","formID","alignRootItemLabels","_getGroupColCount","_applyLabelsWidthByCol","fieldItemClass","inOneColumn","cssExcludeTabbedSelector","excludeTabbed","_applyLabelsWidth","applyLabelsOptions","_getGroupElementsInColumn","cssColCountSelector","groupSelector","_applyLabelsWidthWithGroups","$rootSimpleItems","_applyLabelsWidthWithNestedGroups","$groups","groupsColIndex","groupColIndex","$groupsByCol","groupColCount","_labelLocation","_alignLabelsInColumn","layoutManager","_checkGrouping","_prepareFormData","_setStylingModeClass","_getValidationGroup","_clearCachedInstances","_renderValidationSummary","_lastMarkupScreenFactor","_targetScreenFactor","_getCurrentScreenFactor","_cachedLayoutManagers","_alignLabels","_clearValidationSummary","_getContent","_this$_$validationSum","_$validationSummary","dxValidationSummary","parentIsTabbedItem","currentPath","_tryPrepareGroupItem","_tryPrepareTabbedItem","_tryPrepareItemTemplate","_prepareItems","groupContentTemplate","_itemGroupTemplate","_itemTabbedTemplate","_rootLayoutManager","_renderLayoutManager","_createLayoutManagerOptions","_tryGetItemsForTemplate","$tabPanel","tabPanelOptions","extendRunTimeItemInfoByKey","tryUpdateTabPanelInstance","$group","$groupContent","_isDataUpdating","addItemsOrExtendFrom","nestedItemsRunTimeInfo","removeItemsByItems","_this$_validationSumm","layoutManagerOptions","baseColCountByScreen","_clearAutoColCountChangedTimeout","autoColCountChangedTimeoutId","_extendConfig","optionFullName","_triggerOnFieldDataChangedByDataSet","splitFullName","_itemsOptionChangedHandler","_formDataOptionChangedHandler","_defaultOptionChangedHandler","_resetValues","_getItemPath","optionNameWithoutPath","simpleOptionName","itemAction","_tryCreateItemOptionAction","_tryExecuteItemOptionAction","_tryChangeLayoutManagerItemOption","_changeItemOption","_generateItemsFromData","removeItemsByPathStartWith","tryExecute","_updateValidationGroupAndSummaryIfNeeded","_this$_validationSumm2","findKeyByPath","postponedOperations","contentReadyHandler","tabPath","tabLayoutManager","findGroupOrTabLayoutManagerByPath","_setLayoutManagerItemOption","endPartIndex","_itemPath","_layoutManager","formItems","layoutManagerItems","layoutItem","_getItemByField","resultItem","fieldParts","_getFieldParts","fieldPath","_getItemByFieldPath","subItemsField","_getSubItemField","separatorIndex","resultPath","isItemWithSubItems","isGroupWithName","nameWithoutSpaces","pathNode","_searchItemInEverySubItem","_isColCountChanged","oldScreenSize","newScreenSize","isChanged","editorSelector","isEditor","_updateData","isComplexData","resetValues","resolveWith","allowUpdateItems","_tryChangeLayoutManagerItemOptions","isRenovatedScrollable","IS_RENOVATED_WIDGET","EDIT_FORM_ITEM_CLASS","EDIT_POPUP_CLASS","EDIT_POPUP_FORM_CLASS","FOCUSABLE_ELEMENT_CLASS","BUTTON_CLASS","FORM_BUTTONS_CONTAINER_CLASS","getEditorType","_column$formItem","isCustomEditorType","forEachFormItems","callBack","editingFormBasedModule","_editForm","_updateEditFormDeferred","isFormOrPopupEditMode","isPopupEditMode","isFormEditMode","firstFormItem","_firstFormItem","$editFormElements","_getEditFormEditorVisibleIndex","_args$items","_args$changeTypes","hasEditRow","onlyInsertChanges","_this$_editPopup","popupVisible","_editPopup","_$popupContent","_row$update","editForm","repaintForm","isMobileDevice","$popupContainer","_this$_editForm","formTemplate","isPopupForm","_this$_editPopup2","_this$_editPopup3","defaultAnimation","_this$_editPopup4","_handleFormOptionChange","_handlePopupOptionChange","_this$_editPopup5","editPopup","popupOptionName","renderFormEditTemplate","detailCellOptions","formTemplateOptions","isReadOnly","getFormEditorTemplate","_cellOptions$row$watc","_cellOptions$row","_validator","validatorOptions","contents","dxValidator","getEditFormOptions","detailOptions","_this$_getValidationG","editFormOptions","_getValidationGroupsInForm","userCustomizeItem","editFormItemClass","baseEditFormOptions","$formContainer","$buttonsContainer","_this$_editPopup6","getEditForm","_this$_updateEditForm","_this$_editPopup7","editFormRowIndex","_isFormItem","isDetailRow","isPopupEditing","ADD_ROW_BUTTON_CLASS","DROPDOWN_EDITOR_OVERLAY_CLASS","ROW_REMOVED","$pointerDownTarget","needCreateHandlers","_this$getController","targetComponent","isCellOrBatchEditMode","isEditorPopup","checkEditorPopup","isDomElement","isAnotherComponent","isAddRowButton","isCellEditMode","$dropDownEditorOverlay","$componentElement","isBatchEditMode","isCurrentComponentElement","$targetCell","_this$_rowsView","isEditColumnNameDefined","_handleEditColumnNameChange","oldColumnIndex","_editCellFromOptionChanged","_deferred","_editCell","coreResult","_editCellCore","isEditByOptionChanged","_getNormalizedEditCellOptions","_beforeEditCell","_prepareEditCell","_closeEditCellCore","_resetModifiedClassCells","columnsCount","_this$_editCellFromOp","needResetIndexes","isBatchMode","_isRowDeleteAllowed","_changes$","_deferred2","isUpdateInCellMode","focusPreviousEditingCell","processIfBatch","INVALIDATE_CLASS","REVERT_TOOLTIP_CLASS","INVALID_MESSAGE_CLASS","WIDGET_INVALID_MESSAGE_CLASS","INVALID_MESSAGE_ALWAYS_CLASS","REVERT_BUTTON_CLASS","PENDING_INDICATOR_CLASS","VALIDATION_PENDING_CLASS","PADDING_BETWEEN_TOOLTIPS","FORM_BASED_MODES","COMMAND_TRANSPARENT","VALIDATION_STATUS","valid","invalid","EDIT_DATA_INSERT_TYPE","EDIT_DATA_REMOVE_TYPE","VALIDATION_CANCELLED","validationResultIsValid","cellValueShouldBeValidated","ValidatingController","_validationState","initValidationState","_validationStateCache","_rowIsValidated","validationData","_getValidationData","validated","keyHash","isObjectKeyHash","_getBrokenRules","validationResults","_rowValidating","getChangeByKey","errorText","getHiddenValidatorsErrorText","brokenRulesMessages","isGroupExpandColumn","isVisibleColumn","isFull","completeList","_isValidationInProgress","validationResult","_currentCellValidator","_validationResult","resetRowValidationResults","isRowDataModified","updateValidationState","setDisableApplyValidationResults","setValidator","renderCellPendingIndicator","disposeCellPendingIndicator","validationStatusChanged","updateCellValidationResult","validatorInitialized","validatorDisposing","getCellValidationResult","cancelCellValidationResult","applyValidationResult","requestIsDisabled","disabledPendingId","_disableApplyValidationResults","getEditorInstance","_syncInternalEditingData","_parameters$row","oldDataFromState","createValidator","needCreateValidator","_parameters$row$oldDa","_parameters$row2","isCellOrBatchEditingAllowed","useDefaultValidator","flag","getDisableApplyValidationResults","isCurrentValidatorProcessing","validateCell","cellParams","stateRestored","_validationData$valid","removeCellValidationResult","_ref6","isInvalidCell","_ref7","getCellValidator","_ref8","setCellValidationStatus","validatingModule","validating","validatingController","_updateRowAndPageIndices","startInsertIndex","_ref9","isNotCanceled","addInValidItem","isInserted","_createInvisibleColumnValidators","invisibleColumns","invisibleColumnValidators","isCellVisible","disposeValidators","isFullValid","_showErrorRow","shouldResetValidationState","columnsWithValidatingEditors","_col$validationRules","validationState","resetRowAndPageIndices","currentValidator","isValidated","needValidation","isCellInvalid","_showRevertButton","$tooltipElement","$overlayContainer","tooltipOptions","$buttonElement","onPositioned","_positionedHandler","_hideFixedGroupCell","$nextFixedRowElement","$groupCellElement","nextRowOptions","visibility","isOverlayVisible","__skipPositionProcessing","isRevertButton","needRepaint","normalizedPosition","_normalizeValidationMessagePositionAndMaxWidth","_showValidationMessage","messages","revertTooltip","editorPopup","myPosition","atPosition","errorMessageText","invalidMessageClass","$overlayElement","_shiftValidationMessageIfNeed","fixedColumns","visibleTableWidth","w1","w2","$overlayContentElement","validationMessageWidth","needMaxWidth","boundaryNonFixedColumnsInfo","firstNonFixedColumnIndex","lastNonFixedColumnIndex","endColumnIndex","$revertContent","contentOffset","revertContentOffset","_getTooltipsSelector","revertTooltipClass","skipValidator","updateCellState","_change$data","showValidationMessage","errorMessages","$tooltips","_oldRow$cells","_cell$column$validati","oldValidationStatus","newValidationStatus","rowIsModified","cellIsMarkedAsInvalid","editingChanged","hasValidationRules","$freeSpaceRowElements","$tooltipContent","isEditorDisposed","contentTable","needTwoPagesLoading","_controller","isVirtual","getViewportItemIndex","getBeginPageIndex","_cache","getEndPageIndex","fireChanged","_isChangedFiring","processDelayChanged","_isDelayChanged","getViewportPageCount","_dataOptions","preventPreload","realViewportSize","viewportSize","viewportItemSize","getContentOffset","getViewportPosition","virtualItemsCount","begin","getItemSizes","getPreloadPageCount","getPageIndexForLoad","dataOptions","needToLoadPageBeforeLast","needToLoadPrevPage","needToLoadNextPage","_loadingPageIndexes","loadCore","processChanged","isDelayChanged","removeCacheItem","isPrepend","viewportItems","removeCount","correctCount","removeItemCount","itemsLength","updateLoading","_lastPageIndex","newPageIndex","lastPageSize","maxPageIndex","defaultPageIndex","endPageIndex","pageIndexForLoad","delayDeferred","_delayDeferred","onChanged","_setViewportPositionCore","removeInvisiblePages","lastCacheLength","isBase","beginItemsCount","endItemsCount","_isVirtualMode","_isVirtual","_isAppendMode","subscribeToExternalScrollers","scrollChangedHandler","$scrollElement","scrollableArray","scrollToArray","disposeArray","getElementOffset","$scrollableElement","scrollableOffset","widgetScrollStrategy","subscribeToScrollEvents","eventsStrategy","topOffset","scrollMethod","VirtualScrollController","_viewportSize","_viewportItemSize","_viewportItemIndex","_position","_isScrollingBack","_itemSizes","_sizeRatio","positionChanged","_dataLoader","viewportParams","getViewportParams","loadedOffset","loadedItemCount","getScrollingTimeout","scrollingTimeout","changingDuration","setViewportPosition","_scrollTimeoutID","getItemIndexByPosition","viewportItemIndex","defaultItemSize","getItemSize","itemOffset","itemOffsetsWithSize","itemOffsetWithSize","itemOffsetDiff","isScrollingBack","prevPosition","setViewportItemIndex","setContentItemSizes","sizes","virtualContentSize","contentHeightLimit","getItemOffset","isEnd","currentItemIndex","getVirtualContentSize","viewportItemIndexChanged","viewportHeight","isRefresh","subscribeToWindowScrollEvents","_windowScroll","_this$option2","topIndex","bottomIndex","maxGap","minGap","topMinGap","bottomMinGap","remainedItems","BOTTOM_LOAD_PANEL_CLASS","TABLE_CONTENT_CLASS","FREESPACE_CLASS","VIRTUAL_ROW_CLASS","LOAD_TIMEOUT","VISIBLE_PAGE_INDEX","_correctCount","isItemCountableFunc","isItemCountableByDataSource","updateItemIndices","VirtualScrollingDataSourceAdapterExtender","_updateLoading","_virtualScrollController","_totalCount","_loadPageCount","_getVirtualScrollDataOptions","_renderTime","_startLoadTime","handleDataChanged","newMode","virtualScrollController","getDelayDeferred","loadPageCount","takeIsDefined","VirtualScrollingRowsViewExtender","removeEmptyRows","$emptyRows","_dataController$state","scrollToPage","updateViewport","_scrollToCurrentPageOnResize","resizeHandler","scrollPosition","itemSizes","_updateContentPosition","startRenderTime","_removeRowsElements","_updateBottomLoading","_addVirtualRow","$virtualRow","_updateContentItemSizes","rowHeights","_getRowHeights","correctedRowHeights","_correctRowHeights","_updateViewportSize","_this$getController$i","visibleRows","firstCountableItem","lastLoadIndex","isRender","rowHeight","$virtualRows","prevFixed","_isFixedTableRendering","_isTableLinesDisplaysCorrect","table","hasColumnLines","_isColumnElementsEqual","$columns","$virtualColumns","_getCellClasses","classes","isExpandColumn","_findBottomLoadPanel","$bottomLoadPanel","showBottomLoading","bottomLoadPanelElement","zeroTopPosition","hasBottomLoadPanel","isViewportChanging","scrollPos","loadIfNeed","_dataController$loadI","virtualScrollingModule","updateTimeout","minTimeout","renderingThreshold","rowPageSize","prerenderedRowChunkSize","loadTwoPagesOnStart","legacyMode","prerenderedRowCount","baseResult","initVirtualRows","_rowsScrollController","_this$_dataSource","_loadViewportParams","getLoadPageParams","getRowPageSize","rowsScrollController","isSortingOperation","allowedTopOffset","virtualRowsRendering","_allItems","_visibleItems","_rowPageIndex","_viewportChanging","_needUpdateViewportAfterLoading","_getRowsScrollDataOptions","_this$_dataSource2","loadViewport","_updateLoadViewportParams","isItemCountable","_that$_dataSource","_itemCount","isNextAfterLast","countableOnly","cancelEmptyChanges","newItems","_dataSource$lastLoadO","prevCountable","prevRowType","isPrevRowNew","currentIndex","wasCountableItem","itemCountable","isNextGroupItem","isNextDataItem","isPrevNewRowFirst","skipForCurrentPage","isNewRowOnStart","isNewRowInEmptyData","isLoadIndexGreaterStart","isLoadIndexLessEnd","byLoadedRows","firstLoadIndex","_dataSource$lastLoadO2","_this$_rowsScrollCont","getPreloadedRowCount","preloadCount","byLoadedPage","_this$_dataSource3","_this$_dataSource4","loadedPageIndex","loadedTake","topPreloadCount","bottomPreloadCount","skipWithPreload","loadingTake","_updateVisiblePageIndex","currentPageIndex","viewPortItemIndex","_getChangedLoadParams","loadedPageParams","pageIndexIsValid","_pageIndexIsValid","_loadItems","checkLoading","viewportIsFilled","_dataSourceAdapter$lo","_dataSourceAdapter$pa","changedParams","currentLoadPageCount","lastRequiredItemCount","pageIndexNotChanged","allLoadedInAppendMode","isRepaintMode","pageIndexIncreased","viewportChanging","checkLoadedParamsOnly","viewportIsNotFilled","loadingItemsStarted","_this$_loadViewportPa","_this$_loadViewportPa2","currentTake","newTake","topItemIndex","_this$_loadViewportPa3","bottomItemIndex","_this$_dataSource5","masterDataGridUpdated","isNewVirtualMode","_resizeTimeout","_lastTime","WINDOW_HEIGHT_PERCENT","getElementMaxHeightByWindow","startLocation","actualOffset","elementOffset","offsetTop","offsetBottom","DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS","orientation","onHoverStart","_initDataAdapter","_renderDelimiter","$contentDelimiter","_overlayPositionedActionHandler","_showDelimiter","hoverStartAction","_hoverStartHandler","rootItem","submenu","containerOffset","vLocation","hLocation","rootOffset","offsetLeft","rootWidth","rootHeight","submenuWidth","submenuHeight","_isMenuHorizontal","DX_MENU_VERTICAL_CLASS","DX_MENU_HORIZONTAL_CLASS","DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS","DX_STATE_ACTIVE_CLASS","DX_ADAPTIVE_MODE_CLASS","DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS","DX_ADAPTIVE_MODE_OVERLAY_WRAPPER_CLASS","SHOW_SUBMENU_OPERATION","NEXTITEM_OPERATION","PREVITEM_OPERATION","showFirstSubmenuMode","hideSubmenuOnMouseLeave","onSubmenuShowing","onSubmenuShown","onSubmenuHiding","onSubmenuHidden","rootMenuElements","submenuElements","_submenuItemElements","currentSubmenu","_submenus","navigationAction","isMenuHorizontal","_getItemsNavigationOperation","_getKeyboardNavigationAction","navOperation","_menuItemsWidth","_updateItemsWidthCache","$menuItems","_isAdaptivityEnabled","containerWidth","_toggleAdaptiveMode","_visibleSubmenu","_initAdaptivity","_hamburger","_toggleTreeView","_toggleHamburgerActiveState","$menuItemsContainer","$adaptiveElements","_hideVisibleSubmenu","_treeView","_$adaptiveContainer","_ignoreFunctionValueDeprecation","menuOptions","_treeviewItemClickHandler","onItemExpanded","onItemCollapsed","expandEvent","$hamburger","_renderHamburgerButton","_getTreeViewOptions","_getAdaptiveOverlayOptions","delayType","_createSubmenu","_renderBorderElement","_getKeyboardListeners","$submenuContainer","subMenu","_getSubmenuOptions","_parentKey","_clearTimeouts","getSubmenuPosition","_attachSubmenuHandlers","$submenuTarget","disabledExpr","selectedExpr","itemsExpr","_nestedItemOnSelectionChangedHandler","_nestedItemOnItemClickHandler","_nestedItemOnItemRenderedHandler","_moveMainMenuFocus","$currentItem","_clearSelectionInSubmenus","_clearRootSelection","targetSubmenu","cleanAllSubmenus","isOtherItem","selectedItemData","_clearSelectedItems","$prevSelectedItem","prevSelectedItemData","$submenuOverlayContent","getOverlayContent","submenus","submenuMouseLeaveName","hover","_submenuOnShowingHandler","_submenuOnShownHandler","_submenuOnHidingHandler","_submenuOnHiddenHandler","_submenuMouseLeaveHandler","$border","relatedTarget","_getSubmenuByRootElement","_hideSubmenuAfterTimeout","_getDelay","isRootItemHovered","isSubmenuItemHovered","hoveredElementFromSubMenu","isHorizontalMenu","$closestItem","_itemPointerDownHandler","mouseMoveEventName","isSelectionActive","which","_hasChildren","_getShowFirstSubmenuMode","_getSubmenuByElement","_itemMouseMoveHandler","_showSubmenuTimer","eventArg","_hideSubmenuTimer","_hoveredRootItem","pointers","_changeSubmenusOption","_removeAdaptivity","OPERATION_ICONS","notcontains","startswith","endswith","OPERATION_DESCRIPTORS","FILTERING_TIMEOUT","CORRECT_FILTER_RANGE_OVERLAY_WIDTH","FILTER_RANGE_OVERLAY_CLASS","FILTER_RANGE_START_CLASS","FILTER_RANGE_END_CLASS","MENU_CLASS","EDITOR_WITH_MENU_CLASS","EDITOR_CONTAINER_CLASS","FILTER_MENU","APPLY_BUTTON_CLASS","HIGHLIGHT_OUTLINE_CLASS","FOCUSED_CLASS","FILTER_RANGE_CONTENT_CLASS","FILTER_MODIFIED_CLASS","BETWEEN_OPERATION_DATA_TYPES","isOnClickApplyFilterMode","$editorContainer","componentNames","ColumnHeadersViewFilterRowExtender","getRangeTextByFilterValue","rangeEnd","getColumnFilterValue","formatOptions","getColumnSelectedFilterOperation","bufferedSelectedFilterOperation","getFilterValue","isFilterRange","isRangeStart","updateFilterValue","_applyFilterViewController","setHighLight","normalizedValue","columnFilterValue","isBetween","_updateEditorValue","$editorRangeElements","overlayInstance","_updateFilterRangeContent","_updateFilterOperationChooser","_renderFilterRangeContent","_renderEditor","_getEditorOptions","_hideFilterRange","_filterRangeOverlayInstance","isFilterRowVisible","_initFilterRangeOverlay","$prevElement","_updateFilterRangeOverlay","_showFilterRange","getFilterRangeOverlayInstance","_renderFilterCell","_renderFilterOperationChooser","accessibilityOptions","_getFilterInputAccessibilityAttributes","columnAriaLabel","editorController","filterRowController","setCurrentColumnForFiltering","getWrappedLookupDataSource","lookupOptions","$filterRangeContent","isCellWasFocused","restoreFocus","menu","_focusEditor","_getFilterOperationMenuItems","properties","columnSelectedFilterOperation","notFocusEditor","isOnClickMode","_isEditorFocused","filterRowOptions","availableFilterOperations","descriptionName","_e$operationTypes","_e$operationTypes2","updateLookupDataSource","applyFilterViewController","DataControllerFilterRowExtender","skipCalculateColumnFilters","_filterRowController$","shouldSkip","getCurrentColumnForFiltering","ApplyFilterViewController","_getHeaderPanel","_headerPanel","enableApplyButton","removeHighLights","columnHeadersViewElement","_currentColumn","filterRowModule","columnsResizer","_startResizing","_targetPoint","_endResizing","_needUpdateLookupDataSource","_this$getView","filterItem","_prepareFilterItem","_isShowApplyFilterButton","HEADER_FILTER_CLASS","HEADER_FILTER_MENU_CLASS","DEFAULT_SEARCH_EXPRESSION","resetChildrenItemSelection","updateSelectAllState","selectAllCheckBox","isSearchEnabled","updateHeaderFilterItemSelectionState","filterValuesMatch","isExcludeFilter","HeaderFilterView","getPopupContainer","getListContainer","_listContainer","applyHeaderFilter","isFilterBuilder","fillSelectedItemKeys","isExclude","_getNode","hasChildren","hasChildrenWithSelection","hideHeaderFilterMenu","$columnElement","updatePopup","headerFilterMenu","_cleanPopupContent","_getSearchExpr","useDefaultSearchExpr","headerFilterDataSource","headerFilterOptions","_initializeListContainer","showSelectionControls","_selectedItemsUpdating","oldSelected","filterValueIndex","headerFilterMixin","$headerFilterIndicator","_isHeaderFilterEmpty","indicatorLabel","DATE_INTERVAL_FORMATS","ungroupUTCDates","dates","isMonthPart","convertDataFromUTCToLocal","queryByOptions","isUTCFormat","HeaderFilterController","_headerFilterView","_updateSelectedState","_normalizeGroupItem","currentLevel","valueSelector","displaySelector","getHeaderItemText","firstValueText","secondValue","secondValueText","_column$headerFilter","isLookup","cutoffLevel","useDefaultSearch","convertUTCDates","origPostProcess","getCurrentColumn","isGroupPanel","showHeaderFilterMenuBase","columnElement","dxResizableInstance","dxResizable","headerFilterByColumn","ColumnHeadersViewHeaderFilterExtender","_subscribeToIndicatorEvent","_updateHeaderFilterIndicators","_needUpdateFilterIndicators","HeaderPanelHeaderFilterExtender","headerFilterModule","headerFilterView","FILTER_BUILDER_RANGE_CLASS","FILTER_BUILDER_RANGE_START_CLASS","FILTER_BUILDER_RANGE_END_CLASS","FILTER_BUILDER_RANGE_SEPARATOR_CLASS","SEPARATOR","conditionInfo","$editorStart","$editorEnd","getStartValue","getEndValue","_editorFactory","getConfig","valueSeparator","notForLookup","isblank","isnotblank","OPERATION_NAME","getIconByFilterOperation","filterOperation","getNameByFilterOperation","DEFAULT_DATA_TYPE","EMPTY_MENU_ICON","AND_GROUP_OPERATION","EQUAL_OPERATION","NOT_EQUAL_OPERATION","boolean","object","DEFAULT_FORMAT","LOOKUP_OPERATIONS","AVAILABLE_FIELD_PROPERTIES","FILTER_BUILDER_CLASS","FILTER_BUILDER_ITEM_TEXT_CLASS","FILTER_BUILDER_ITEM_TEXT_PART_CLASS","FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS","FILTER_BUILDER_ITEM_TEXT_SEPARATOR_EMPTY_CLASS","getFormattedValueText","fieldFormat","isNegationGroup","isCondition","getGroupCriteria","setGroupCriteria","criteria","convertGroupToNewStructure","setGroupValue","getGroupMenuItem","availableGroups","groupValue","getGroupValue","getCriteriaOperation","getDefaultFilterOperations","containItems","entity","getFilterOperations","getCaptionByOperation","getOperationFromAvailable","availableOperations","getCustomOperation","filteredOperations","getAvailableOperations","isLookupField","isOperationForbidden","isCustom","getDefaultOperation","createCondition","updateConditionByOperation","removeItem","createEmptyGroup","isNegation","isNegationGroupOperation","groupOperation","getGroupOperationFromNegationOperation","getField","extendedFields","convertToInnerGroup","defaultGroupOperation","innerGroup","convertToInnerStructure","appendGroupOperationToGroup","convertToInnerCondition","conditionHasCustomOperation","appendGroupOperationToCriteria","getNormalizedFields","normalizedField","getConditionFilterExpression","filterExpression","getFilterExpression","_filterExpression","getNormalizedFilter","itemsForRemove","normalizedGroupValue","isValidCondition","getCurrentLookupValueText","loadSingle","getPrimitiveValueText","getArrayValueText","checkDefaultValue","getCurrentValueText","itemExists","pushItemAndCheckParent","originalItems","hasParent","getParentIdFromItemDataField","generateCaptionByDataField","getCaptionWithParents","getOperationValue","getMergedOperations","betweenCaption","betweenIndex","isMatchedCondition","addedFilterDataField","removeFieldConditionsFromFilter","hasMatchedCondition","syncConditionIntoGroup","addedFilter","canPush","syncFilters","getMatchedConditions","filterHasField","renderValueText","lastItemIndex","baseOperation","getFullText","parentText","div","closeEditor","fieldInfo","itemsDeferred","_values","getSelectedItemsTexts","selectedItemsTexts","anyOf","noneOf","baseOp","baseFilter","FILTER_ROW_OPERATIONS","FILTER_TYPES_INCLUDE","FILTER_TYPES_EXCLUDE","getColumnIdentifier","checkForErrors","FilterSyncController","getEmptyFilterValues","canSyncHeaderFilterWithFilterRow","getConditionFromFilterRow","getConditionFromHeaderFilter","selectedOperation","updateHeaderFilterCondition","headerFilterCondition","hasArrayValue","updateFilterRowCondition","syncFilterValue","_skipSyncColumnOptions","filterConditions","filterCondition","_initSync","filteringColumns","isFilterSyncActive","_getSyncFilterRow","_getSyncHeaderFilter","syncFilterRow","syncHeaderFilter","getCustomFilterOperations","filterBuilderCustomOperations","DataControllerFilterSyncExtender","filterSyncEnabledValue","calculatedFilterValue","_parseColumnPropertyName","matched","ColumnHeadersViewFilterSyncExtender","filterSyncModule","filterSync","FILTER_BUILDER_GROUP_CLASS","FILTER_BUILDER_GROUP_ITEM_CLASS","FILTER_BUILDER_GROUP_CONTENT_CLASS","FILTER_BUILDER_GROUP_OPERATIONS_CLASS","FILTER_BUILDER_GROUP_OPERATION_CLASS","FILTER_BUILDER_ACTION_CLASS","FILTER_BUILDER_IMAGE_CLASS","FILTER_BUILDER_IMAGE_ADD_CLASS","FILTER_BUILDER_IMAGE_REMOVE_CLASS","FILTER_BUILDER_ITEM_FIELD_CLASS","FILTER_BUILDER_ITEM_OPERATION_CLASS","FILTER_BUILDER_ITEM_VALUE_CLASS","FILTER_BUILDER_ITEM_VALUE_TEXT_CLASS","FILTER_BUILDER_OVERLAY_CLASS","FILTER_BUILDER_FILTER_OPERATIONS_CLASS","FILTER_BUILDER_FIELDS_CLASS","FILTER_BUILDER_ADD_CONDITION_CLASS","ACTIVE_CLASS","FILTER_BUILDER_MENU_CUSTOM_OPERATION_CLASS","SOURCE","DISABLED_STATE_CLASS","TAB_KEY","ENTER_KEY","ESCAPE_KEY","OPERATORS","FilterBuilder","closePopupOnTargetScroll","_initCustomOperations","disableInvalidateForValue","_disableInvalidateForValue","_initModel","_getNormalizedFields","_model","_customOperations","_updateFilter","_getModel","_initEditorFactory","_getDefaultGroupOperation","_this$option$","actionConfig","_createGroupElementByCriteria","_createConditionElement","_createConditionItem","_createGroupElement","groupCriteria","innerCriteria","$groupItem","_createRemoveButton","_createGroupOperationButton","_createAddButton","newGroup","newCondition","_getGroupOperations","groupMenuItem","$operationButton","_createButtonWithMenu","removeMenu","treeViewElement","treeView","dxTreeView","_subscribeOnClickAndEnterKey","_createPopupWithTreeView","_hasValueButton","_createOperationButtonWithMenu","currentOperation","$valueButton","_createValueButton","_createOperationAndValueButtons","_createFieldButtonWithMenu","getFullCaption","$fieldButton","isSingleChild","$removeButton","addGroupHandler","addConditionHandler","_createValueText","$text","_createValueEditorWithEvents","_updateConditionValue","areValuesDifferent","_addDocumentKeyUp","isComposing","hasCompositionJustEnded","documentKeyUpHandler","_documentKeyUpHandler","_addDocumentClick","closeEditorFunc","documentClickHandler","_isFocusOnEditorParts","_documentClickHandler","activeElement","_removeEvents","createValueText","_createValueEditor","class","$menuContainer","FilterBuilderView","_updatePopupOptions","_initPopup","_filterBuilderPopup","_disposePopup","_filterBuilder","_getPopupContentTemplate","_getPopupToolbarItems","$filterBuilderContainer","filterBuilderModule","filterBuilderView","FILTER_PANEL_CLASS","FILTER_PANEL_TEXT_CLASS","FILTER_PANEL_CHECKBOX_CLASS","FILTER_PANEL_CLEAR_FILTER_CLASS","FILTER_PANEL_LEFT_CONTAINER","FILTER_PANEL_TARGET","FilterPanelView","$leftContainer","_filterValueBuffer","_getCheckElement","_getFilterElement","_getTextElement","_getRemoveButtonElement","_showFilterBuilder","_addTabIndexToElement","filterText","$textElement","getFilterText","clearFilterValue","tabindex","_getConditionText","fieldText","operationText","_getValueMaskedText","_getValueText","hasCustomOperation","getConditionText","getGroupText","isInnerGroup","groupText","filterPanelModule","filterPanelView","SEARCH_PANEL_CLASS","SEARCH_TEXT_CLASS","searchModule","searchFilter","onQueryDone","_i","getSearchPanelOptions","_prepareSearchItem","searchPanelOptions","$search","getSearchTextEditor","$searchPanel","dxTextBox","_searchParams","_getFormattedSearchText","_getStringNormalizer","isCaseSensitive","_findHighlightingTextNodes","stringNormalizer","normalizedSearchText","resultTextNodes","$contents","_highlightSearchTextCore","$textNode","$searchTextSpan","firstContentElement","after","_highlightSearchText","isEquals","textNodes","textNode","_highlightTimer","pageIndexChanged","pageSizeChanged","getElementStyle","_getElementComputedSt","computedStyle","getElementWidth","getElementMinWidth","viewFunction","contentAttributes","infoTextRef","infoTextVisible","isLargeDisplayMode","pageSizesRef","pagesRef","parentRef","Content","rootElementRef","calculateLargeDisplayMode","pageSizes","pageSizesWidth","pages","pagesWidth","parentWidth","calculateInfoTextVisible","infoWidth","minimalWidth","getElementsWidth","pagesHtmlWidth","ResizableContainerProps","TemplateProp","actualIsLargeDisplayMode","actualInfoTextVisible","subscribeToResize","effectUpdateChildProps","updateAdaptivityProps","pagerProps","_this$_effects$","_this$_effects$2","_effects","gridCompatibility","lightModeEnabled","maxPagesCount","pageIndexChange","pageSizeChange","pagesCountText","pagesNavigatorVisible","showPageSizes","restAttributes","currentElementsWidth","elementsWidth","setState","__state_argument","_this$props","restProps","BasePagerProps","freeze","PagerProps","getOwnPropertyDescriptors","defaultPageSize","InternalPagerProps","PAGER_INFO_CLASS","InfoTextPropsType","_this$props$infoText","KeyboardActionContext","widgetRef","LightButtonProps","keyboardEffect","subscribeToClick","keyboardContext","PAGER_CLASS","LIGHT_MODE_CLASS","PAGER_PAGES_CLASS","PAGER_PAGE_INDEXES_CLASS","PAGER_PAGE_CLASS","PAGER_SELECTION_CLASS","PAGER_PAGE_SIZE_CLASS","PAGER_PAGE_SIZES_CLASS","PAGER_SELECTED_PAGE_SIZE_CLASS","FIRST_CHILD_CLASS","PageProps","_excluded2","PAGER_PAGE_SEPARATOR_CLASS","PagesMarkup","pageProps","PAGES_LIMITER","getDelimiterType","slidingWindowSize","createPageIndexesBySlidingWindowIndexes","slidingWindowIndexes","delimiter","pageIndexes","indexesForReuse","createPageIndexes","PagesLargePropsType","canReuseSlidingWindow","generatePageIndexes","isSlidingWindowMode","onPageClick","ConfigContext","slidingWindowState","slidingWindowStateHolder","currentPageCount","lastPageIsFartherThanWindow","pageIndexExistInIndexes","_createPageIndexes","_this$config","createPage","rtlPageIndexes","EditorStateProps","EditorLabelProps","DEFAULT_VALUE","componentProps","componentType","templateNames","NumberBoxProps","defaultValue","isReactComponentWrapper","NumberBoxPropsType","_this$props$value","oneDigitWidth","calculateValuesFittedWidth","PAGER_INFO_TEXT_CLASS","PAGER_PAGE_INDEX_CLASS","LIGHT_PAGES_CLASS","PAGER_PAGES_COUNT_CLASS","pageIndexRef","selectLastPageIndex","valueChange","PagerSmallProps","updateWidth","_this$pageIndexRef$cu","_this$props$pagesCoun","PAGER_NAVIGATE_BUTTON","PAGER_PREV_BUTTON_CLASS","PAGER_NEXT_BUTTON_CLASS","PAGER_BUTTON_DISABLE_CLASS","getNextButtonLabel","getPrevButtonLabel","classNames","nextEnabledClass","prevEnabledClass","nextDisabledClass","prevDisabledClass","reverseDirections","nextButtonProps","prevButtonProps","renderNextButton","renderPrevButton","navigate","getIncrement","PageIndexSelectorProps","PageIndexSelectorPropsType","__getterCache","getButtonProps","canNavigateToPage","getNextPageIndex","canNavigateTo","navigateToPage","rtlAwareDirection","canNavigate","nextProps","nextState","SelectBoxProps","SelectBoxPropsType","PageSizeSmallPropsType","pageSizesText","PageSizeLargePropsType","onPageSizeChange","processedPageSize","htmlRef","normalizedPageSizes","getAllText","PageSizeSelectorProps","PageSizeSelectorPropsType","setRootElementRef","componentWillUpdate","aria","infoVisible","pageIndexSelectorVisible","pagesContainerVisibility","pagesContainerVisible","widgetRootElementRef","PagerContentProps","createFakeInstance","keyboardAction","_this$props$onKeyDown","fakePagerInstance","normalizedDisplayMode","classesMap","_this$props2","__newValue","_newValue","newPageSize","_this$props$pageSize$","getProps","_wrapKeyDownHandler","twoWay","allowNull","MAX_PAGES_COUNT","getPageIndex","PagerView","_pager","pagerOptions","useLegacyKeyboardNavigation","getPager","_pageSizes","pagerVisible","isPager","isPaging","isDataSource","isScrolling","pagerModule","COLUMNS_SEPARATOR_CLASS","COLUMNS_SEPARATOR_TRANSPARENT","DRAGGING_HEADER_CLASS","HEADERS_DRAG_ACTION_CLASS","TRACKER_CLASS","HEADERS_DROP_HIGHLIGHT_CLASS","BLOCK_SEPARATOR_CLASS","DRAGGING_COMMAND_CELL_CLASS","COLUMNS_SEPARATOR_TOUCH_TRACKER_WIDTH","DRAGGING_DELTA","COLUMN_OPACITY","TrackerView","_unsubscribeFromCallback","_positionChanged","_tablePositionController","_subscribeToCallback","setHeight","SeparatorView","_isShown","ColumnsSeparatorView","_isTransparent","columnsSeparatorTransparent","moveByX","outerX","changeCursor","cursorName","BlockSeparatorView","startAnimate","toOptions","DraggingHeaderView","_isDragging","isDragging","_getDraggingPanelByPos","_dragOptions","boundingRect","_resetTargetColumnOptions","_dropOptions","targetColumnIndex","targetColumnElement","posX","posY","_getVisibleIndexObject","_columnsResizerViewController","dragHeader","isCommandColumn","sourceIndex","sourceColumnIndex","sourceColumnElement","_onSelectStart","onselectstart","drag","getSwatchContainer","moveHeader","eventData","dragOptions","moveDeltaX","deltaX","moveDeltaY","deltaY","newLeft","newTop","dockHeader","targetDraggingPanel","isVerticalOrientation","axisName","pointsByTarget","pointsByColumns","_generatePointsByColumns","centerPosition","dock","dropHeader","drop","isNextColumnResizingMode","ColumnsResizerViewController","_isHeadersRowArea","headersRowHeight","_isRtlParentStyle","_this$_$parentContain","_$parentContainer","_pointCreated","isNextColumnMode","isRtlParentStyle","firstPointColumnIndex","nextColumn","_getTargetPoint","currentX","_moveSeparator","_that$_draggingHeader","columnsSeparatorWidth","_columnsSeparatorView","parentOffset","parentOffsetLeft","_draggingHeaderView","_isResizing","_resizingInfo","_updateColumnsWidthIfNeeded","currentColumnIndex","outerWidth","_previousParentOffset","_isReadyResizing","_trackerView","_getNextColumnIndex","_setupResizingInfo","nextColumnIndex","currentHeader","nextHeader","startPosX","currentColumnWidth","nextColumnWidth","_pointsByColumns","_unsubscribeFromEvents","_moveSeparatorHandler","_startResizingHandler","_endResizingHandler","_subscribeToEvents","needUpdate","resizingInfo","isPercentWidth","setColumnWidth","oldColumnWidth","cellWidth","nextCellWidth","nextMinWidth","needCorrectionNextCellWidth","allColumnsHaveWidth","totalPercent","hasScroll","_subscribesToCallbacks","_unsubscribeFromCallbacks","subscribe","_unsubscribes","generatePointsByColumnsHandler","generatePointsByColumnsScrollHandler","previousScrollbarVisibility","previousTableHeight","scrollbarVisibility","TablePositionViewController","diffOffsetTop","columnsHeadersHeight","scrollBarWidth","columnsResizerController","draggingHeaderView","isDraggingOrResizing","_pagerView","targetPoint","DraggingHeaderViewController","draggingHeader","nameDraggingPanel","subscribeToEvents","_getSeparator","_blockSeparatorView","hideSeparators","blockSeparator","columnsSeparator","_animationColumnIndex","_headerPanelView","_columnChooserView","allowDrop","headersView","separator","hasTargetVisibleIndex","columnsResizingReorderingModule","columnsSeparatorView","blockSeparatorView","trackerView","tablePosition","GROUP_FOOTER_CLASS","FREESPACE_ROW_CLASS","COMMAND_CELL_SELECTOR","DATEBOX_WIDGET_NAME","FAST_EDITING_DELETE_KEY","INTERACTIVE_ELEMENTS_SELECTOR","NON_FOCUSABLE_ELEMENTS_SELECTOR","FOCUS_TYPE_ROW","FOCUS_TYPE_CELL","COLUMN_HEADERS_VIEW","FUNCTIONAL_KEYS","isNotFocusedRow","isCellElement","_isRowEditMode","isElementDefined","isMobile","isCellInHeaderRow","isFixedColumnIndexOffsetRequired","shouldPreventScroll","_isVirtualScrolling","KeyboardNavigationController","_selectionController","_updateFocusTimeout","_fastEditingStarted","_focusedCellPosition","_canceledCellPosition","setupFocusedView","_isNeedScroll","_focusedView","_initViewHandlers","_initDocumentHandlers","rowsViewFocusHandler","isRelatedTargetInRowsView","isCommandButton","_isEventInCurrentGrid","$focusedCell","_getFocusedCell","$rowsView","isFocusedViewCorrect","needUpdateFocus","isFocusedElementCorrect","_initPointerEventHandler","_initKeyDownHandler","_setRowsViewAttributes","_isNeedFocus","_isHiddenFocus","isCurrentRowsViewClick","isEditorOverlay","isColumnResizing","targetInsideFocusedView","_resetFocusedCell","_resetFocusedView","_getRowsViewElement","isGridEmpty","_applyTabIndexToElement","pointerEventName","clickSelector","_pointerEventAction","_pointerEventHandler","_keyDownListener","_keyDownHandler","isRowFocusType","focusType","isCellFocusType","setRowFocusType","setCellFocusType","needStopPropagation","_processOnKeyDown","_updateFocusedCellPositionByTarget","_leftRightKeysHandler","ctrl","_upDownKeysHandler","_pageUpDownKeyHandler","_spaceKeyHandler","_ctrlAKeyHandler","_beginFastEditing","_tabKeyHandler","_enterKeyHandler","_escapeKeyHandler","_ctrlFKeyHandler","_f2KeyHandler","_isFastEditingAllowed","_isFastEditingStarted","_closeEditCell","getVisibleRowIndex","directionCode","_getDirectionCodeByKey","isEditingNavigationMode","allowNavigate","_isVirtualColumnRender","_processVirtualHorizontalPosition","_getNextCell","_arrowKeysHandlerFocusCell","_this$_editingControl","_this$_editingControl2","isUpArrow","isRowEditingInCurrentRow","_navigateNextCell","_isVirtualRowRender","_scrollBy","isPageUp","pageStep","isFocusedRowElement","_getElementType","isFocusedSelectionCell","isCellPositionDefined","isOriginalHandlerRequired","_isLastValidCell","_isFirstValidCell","eventTarget","focusedViewElement","_handleTabKeyOnMasterDetailCell","_editingCellTabHandler","_targetCellTabHandler","_getMaxHorizontalOffset","_isColumnRendered","allVisibleColumns","renderedVisibleColumns","_isFixedColumn","_isColumnVirtual","localColumnIndex","getColumnIndex","horizontalScrollPosition","needToScroll","_getVisibleColumnCount","leftEdgePosition","_getHorizontalScrollPositionOffset","positionOffset","$currentCell","_getCell","currentCellWidth","rtlMultiplier","isEditingAllowed","_getCellElementFromTarget","elementType","_updateFocusedCellPosition","nextCellInfo","_getNextCellByTabKey","_getRowIndex","_isDataRow","_focusCell","isHighlighted","_editFocusedCell","_focusInteractiveElement","$lastInteractiveElement","_getInteractiveElement","getFirstValidCellInRow","_checkNewLineTransition","_fireFocusedCellChanging","$newCellElement","_getCellPosition","_fireFocusedRowChanging","rowIndexChanged","setFocusedColumnIndex","_processEnterKeyForDataCell","_getEnterKeyDirection","allowEditingOnEnterKey","_allowEditingOnEnterKey","_handleEnterKeyEditingCell","_startEditing","isShift","_focusEditFormCell","searchTextEditor","keyCode","isCellValid","_isCellValid","$nextCell","isVerticalDirection","_fireFocusChangingEvents","_focus","isDeleting","fastEditingKey","isInteractiveElement","isExpandCommandCell","_isInsideEditForm","_focusView","_isMasterDetailCell","_clickTargetCellHandler","_isCellEditMode","setFocusedRowIndex","prevRowIndex","resetFocusedRow","_resetFocusedRow","_allowRowUpdating","skipFocusEvent","isDisabled","activeElementSelector","_focusElement","getFocusedView","rowsViewElement","$focusedView","_getFocusedViewByElement","disableFocus","$focusElement","focusedView","isRowFocus","one","isRenderView","_hasSkipRow","$focusedElementInsideCell","isFocusedElementDefined","_this$_focusedCellPos","setFocusedCellPosition","_getFocusedColumnIndexOffset","_getFixedColumnIndexOffset","_applyColumnIndexBoundaries","_this$_focusedView","renderFocusState","restoreFocusableElement","newRowIndex","_getNewPositionByCode","visibleColumnsCount","_hasValidCellAfterPosition","_isLastRow","_hasValidCellBeforePosition","_isCellByPositionValid","getMaxRowIndex","isFirstValidCell","hasValidCells","checkingPosition","visibleColumnCount","isClick","isShowWhenGrouped","isDataCell","rowItems","_isLegacyNavigation","focusedCellPosition","includeCommandCells","newFocusedCellPosition","isLastCellOnDirection","_isCellInRow","visibleColumnIndex","_isAllowEditing","_startEditCell","editResult","_editingCellHandler","_$input$get$select","_$input$get","keyDownEvent","keyPressEvent","inputEvent","$widgetContainer","fireRowEvent","newColumnIndex","prevCellIndex","prevColumnIndex","_fireFocusedCellChanged","localRowIndex","$newFocusedRow","prevFocusedRowIndex","_fireFocusedRowChanged","getFocusedRowIndexByKey","$editForm","$masterDetailCell","_processNextCellInMasterDetail","_processCanceledEditCellPosition","isCanceled","updateFocusedRowIndex","lastVisibleIndex","keyboardNavigationModule","needTriggerPointerEventHandler","_triggerPointerDownEventHandler","cellElements","updateFocusElementTabIndex","_updateFocusedCellTabIndex","cellElementsLength","updateCellTabIndex","isMasterDetailCell","isValidCell","_renderFocusByChange","_getEditorInstance","_handleEditingNavigationMode","originalKeyHandler","isDropDownOpened","isDateBoxWithMask","keyboardNavigationController","_keyboardNavigationController","getRowIndexCorrection","focusedRowIndexCorrection","adaptiveColumns","_showHiddenCellsInView","_hideVisibleCellInView","depthFirstSearch","isCount","aggregator","normalizeAggregate","aggregate","_groupLevel","_totalAggregates","totalAggregates","_groupAggregates","groupAggregates","_totals","_calculateTotals","_calculateGroups","_aggregate","aggregates","_accumulate","_seed","_finalize","maxLevel","seedFn","stepFn","finalizeFn","innerNode","seed","NaN","aggregateIndex","fin","finalize","DATAGRID_TOTAL_FOOTER_CLASS","DATAGRID_SUMMARY_ITEM_CLASS","DATAGRID_TEXT_CONTENT_CLASS","DATAGRID_GROUP_FOOTER_CLASS","DATAGRID_GROUP_TEXT_CONTENT_CLASS","DATAGRID_NOWRAP_CLASS","DATAGRID_FOOTER_ROW_CLASS","DATAGRID_GROUP_FOOTER_ROW_TYPE","DATAGRID_TOTAL_FOOTER_ROW_TYPE","renderSummaryCell","$summaryItems","getSummaryCellOptions","getGroupAggregates","FooterView","footerItems","needUpdateScrollLeft","$newTable","$newRow","totalColumnIndices","SummaryDataSourceAdapterExtender","_summaryGetter","summaryGetter","_summary","sortByGroupsInfo","sortByGroups","groupedItems","forEachGroup","itemsPath","SummaryDataSourceAdapterClientExtender","calculateAggregates","calculator","insertedData","applyAddedData","removedData","applyRemovedData","updatedData","updatedItems","sortGroupsBySummary","sortGroupsBySummaryCore","sortBy","thenBy","sortedItems","totalSummary","_options$cachedData$e","hasOperations","_isDataColumn","_isGroupFooterVisible","isGroupFooterVisible","summaryGroupItems","afterGroupColumnIndex","_calculateSummaryCells","calculateTargetColumnIndex","summaryCellsByColumns","summaryIndex","_getSummaryCells","summaryTotalItems","_footerItems","oldSummaryCells","summaryCell","_prepareUnsavedDataSelector","_prepareAggregateSelector","_getAggregates","commonSkipEmptyValues","summaryProcess","totalValue","_addSortInfo","_findSummaryItem","summaryItemIndex","_getSummarySortByGroups","groupSummaryItems","currentRemoteOperations","_getSummaryOptions","totalSummaryItems","getTotalSummaryValue","summaryItemName","_refreshSummary","_renderGroupSummaryCells","_hasAlignByColumnSummaryItems","_getAlignByColumnCellCount","groupCellColSpan","alignByColumnCellCount","$groupCell","_renderGroupSummaryCellsCore","_getSummaryCellIndex","FIRST_CELL_CLASS","LAST_CELL_CLASS","HOVER_STATE_CLASS","FIXED_COL_CLASS","FIXED_COLUMNS_CLASS","POINTER_EVENTS_NONE_CLASS","getTransparentColumnIndex","normalizeColumnWidths","fixedWidths","fixedColumnIndex","baseFixedColumns","_isFixedColumns","_correctColumnIndicesForFixedColumns","fixedTableElement","_fixedTableElement","_partialUpdateFixedRow","childNodes","_this$_columnsControl","needUpdateColspan","$fixedTable","_partialUpdateFixedTable","fixedCorrection","fixedCells","prevFixedColumn","columnCommand","isRowAltStyle","isEmptyCell","isFixedTableRendering","isGroupCell","alignByFixedColumnCellCount","headerRowIndex","fixedCellElements","fixedColumn","getFixedColumnsOffset","$transparentColumn","getTransparentColumnElement","positionTransparentColumn","getFixedTableElement","synchronizeRows","isWidthsSynchronized","isColumnWidthChanged","useVisibleColumns","_getClientHeight","boundingClientRectElement","$fixedRowElements","fixedRowHeights","heightFixedTable","fixedRowHeight","ColumnHeadersViewFixedColumnsExtender","columnFixingOptions","getFixedColumnElements","$transparentColumnElement","$fixedColumnElements","RowsViewFixedColumnsExtender","_detachHoverEvents","attachHoverEvent","isHover","contentClass","scrollDelay","_fixedScrollTimeout","wheel","$nearestScrollable","shouldScroll","nearestScrollableInstance","nearestScrollableHasVerticalScrollbar","_updateFixedTablePosition","needFocus","vWidth","hWidth","styles","$fixedContent","_getElasticScrollTop","elasticScrollTop","reachedBottom","$scrollableContent","$scrollableContainer","maxScrollTop","_applyElasticScrolling","FooterViewFixedColumnsExtender","columnFixingModule","_pointsByFixedColumns","ROWS_VIEW","FOOTER_VIEW","COLUMN_VIEWS","ADAPTIVE_NAMESPACE","ADAPTIVE_ROW_TYPE","FORM_ITEM_CONTENT_CLASS","FORM_ITEM_MODIFIED","HIDDEN_COLUMN_CLASS","ADAPTIVE_COLUMN_BUTTON_CLASS","ADAPTIVE_COLUMN_NAME_CLASS","COMMAND_ADAPTIVE_HIDDEN_CLASS","ADAPTIVE_DETAIL_ROW_CLASS","ADAPTIVE_ITEM_TEXT_CLASS","LAST_DATA_CELL_CLASS","ADAPTIVE_COLUMN_NAME","EXPAND_ARIA_NAME","COLLAPSE_ARIA_NAME","getDataCellElements","adaptiveCellTemplate","$adaptiveColumnButton","adaptiveColumnsController","toggleExpandAdaptiveDetailRow","AdaptiveColumnsController","_getEditMode","_isItemModified","_renderFormViewTemplate","focusAction","renderFormTemplate","isItemEdited","_isItemEdited","_isVisibleColumnsValid","_calculatePercentWidths","percentWidths","_getItemPercentWidth","_isPercentWidth","_isColumnHidden","_hiddenColumns","hiddenColumn","columnsCanFit","fixedColumnsWidth","columnsWithoutFixedWidthCount","_calculatePercentWidth","_calculateColumnWidth","contentColumns","colWidth","widthOption","columnFitted","partialWidth","resultWidth","_getNotTruncatedColumnWidth","_getCommandColumnsWidth","adaptiveExpandedKey","_getFormItemsByHiddenColumns","hiddenColumns","_getAdaptiveColumnVisibleIndex","_hideAdaptiveColumn","_hideVisibleColumn","cssClassNameToRemove","_showHiddenColumns","$hiddenCommandCells","$hiddenCells","_hideVisibleColumnInView","cancelClassAdding","currentVisibleIndex","_findCellElementInRow","$rowCells","cellIsInsideGroup","groupCellLength","endGroupIndex","cssClassNameToAdd","hideRedundantColumns","hiddenQueue","hasHiddenColumns","needHideColumn","rootElementWidth","getVisibleContentColumns","visibleContentColumns","contentColumnsCount","columnBestFitWidth","getItemContentByColumnIndex","_$itemContents","alwaysExpanded","createFormByHiddenColumns","userFormOptions","defaultFormOptions","_form","updateForm","hasAdaptiveDetailRowExpanded","_contentReadyAction","updateHidingQueue","columnsHasHidingPriority","hideableColumns","_hidingColumnsQueue","getHiddenColumns","getHidingColumnsQueue","adaptiveHidden","isAdaptiveVisible","isAdaptiveDetailRowExpanded","expandAdaptiveDetailRow","collapseAdaptiveDetailRow","updateCommandAdaptiveAriaLabel","setCommandAdaptiveAriaLabel","labelName","$adaptiveCommand","adaptivityModule","_adaptiveColumnsController","hidingColumnsQueueLength","hiddenColumnsLength","isClickable","_updateColumnWidth","hasHiddenColumnsOnly","hasAdaptiveHiddenWidth","$itemContents","_adaptiveController","oldExpandRowIndex","_isForceRowAdaptiveExpand","_collapseAdaptiveDetailRow","_cancelEditAdaptiveDetailRow","expandedKey","_adaptiveExpandedKey","adaptiveController","oldHiddenColumns","hidingColumnsQueue","_updateScrollableTimeoutID","expandRowIndex","lastRowIndex","oldExpandLoadedRowIndex","newExpandLoadedRowIndex","oldKey","isCellOrBatchMode","focusHandler","$dataCells","isCellElementsEquals","foreachColumnInfo","offsets","lastProcessedIndexes","processedColumnCount","createColumnsInfo","newInfo","columnInfo","cellColspan","DEFAULT_COLUMN_WIDTH","setScrollPosition","HeaderViewExtender","ColumnsControllerExtender","getWidths","_beginPageIndex","_endPageIndex","_virtualVisibleColumns","currentPosition","getColumnPageSize","getTotalWidth","_fireColumnsChanged","_changedTimeout","_setScrollPositionCore","needColumnsChanged","_this$_columns","visibleColumnsHash","beginFixedColumnCount","beginFixedColumns","beginColumns","beginWidth","endFixedColumnCount","endFixedColumns","endColumns","endWidth","columnsInfo","leftFixedColumnCount","virtualColumnsModule","columnPageSize","columnRenderingThreshold","prepareItems","emptyCell","defaultSetter","addItem","FILE_EXTESIONS","EXCEL","CSS","PNG","JPEG","GIF","SVG","PDF","MIME_TYPES","fileSaver","_revokeObjectURLTimeout","_getDataUri","_getMimeType","_linkDownloader","href","exportLinkElement","download","_formDownloader","contentType","formAttributes","enctype","exportForm","setAttributes","_saveByProxy","_winJSBlobSave","savePicker","Windows","Storage","Pickers","FileSavePicker","suggestedStartLocation","PickerLocationId","documentsLibrary","fileExtension","fileTypeChoices","suggestedFileName","pickSaveFileAsync","openAsync","FileAccessMode","readWrite","outputStream","inputStream","msDetachStream","Streams","RandomAccessStream","copyAsync","flushAsync","_click","link","dispatchEvent","MouseEvent","cancelable","createEvent","initMouseEvent","_saveBlobAs","_blobSaved","msSaveOrOpenBlob","WinJS","URL","webkitURL","mozURL","msURL","oURL","objectURL","createObjectURL","downloadLink","revokeObjectURL","_objectUrlRevoked","proxyURL","forceProxy","userAgent","ARABIC_ZERO_CODE","DEFINED_NUMBER_FORMTATS","thousands","millions","billions","trillions","decimal","fixedpoint","exponential","PERIOD_REGEXP","DAY_REGEXP","DO_REGEXP","STANDALONE_MONTH_REGEXP","HOUR_REGEXP","ANY_REGEXP","excelFormatConverter","_applyPrecision","_hasArabicDigits","_convertDateFormatToOpenXml","_convertDateFormat","_getLanguageInfo","languageID","languageIDStr","languageInfo","_convertNumberFormat","excelFormat","getOpenXmlCurrencyFormat","convertFormat","tagHelper","toXml","attributeName","attributeValue","cellAlignmentHelper","tryCreateTag","sourceObj","vertical","wrapText","copy","areEqual","leftTag","rightTag","tag","colorHelper","_tryConvertColor","colorCode","rgb","theme","patternFillHelper","patternType","backgroundColor","foregroundColor","fillHelper","patternFill","tryCreateFillFromSimpleFormat","fillPatternType","fillPatternColor","copySimpleFormat","fontHelper","family","scheme","bold","underline","cellFormatHelper","sharedItemsContainer","numberFormatId","numberFormat","registerNumberFormat","fontId","registerFont","fillId","registerFill","applyNumberFormat","isAlignmentEmpty","xfId","applyAlignment","numFmtId","numberFormatHelper","ID_PROPERTY_NAME","formatCode","_cellFormatTags","_fillTags","_fontTags","_numberFormatTags","cellFormat","cellFormatTag","cellFormatTagsAsXmlStringsArray","fillTag","tagsAsXmlStringsArray","fontTag","xmlStringsArray","_convertNumberFormatIndexToId","XML_TAG","GROUP_SHEET_PR_XML","SINGLE_SHEET_PR_XML","BASE_STYLE_XML2","OPEN_XML_FORMAT_URL","RELATIONSHIP_PART_NAME","XL_FOLDER_NAME","WORKBOOK_FILE_NAME","CONTENTTYPES_FILE_NAME","SHAREDSTRING_FILE_NAME","STYLE_FILE_NAME","WORKSHEETS_FOLDER","WORKSHEET_FILE_NAME","WORKSHEET_HEADER_XML","VALID_TYPES","EXCEL_START_TIME","DAYS_COUNT_BEFORE_29_FEB_1900","MAX_DIGIT_WIDTH_IN_PIXELS","UNSUPPORTED_FORMAT_MAPPING","quarterAndYear","ExcelCreator","_getXMLTag","_convertToExcelCellRef","zeroBasedRowIndex","zeroBasedCellIndex","charCode","isCellIndexFound","_convertToExcelCellRefAndTrackMaxIndex","_maxRowIndex","_maxColumnIndex","_getDataType","_tryGetExcelCellDataType","_formatObjectConverter","_tryConvertToExcelNumberFormat","newFormat","_appendString","_stringHash","_stringArray","_tryGetExcelDateValue","days","totalTime","_prepareValue","sourceValue","dataProvider","_dataProvider","cellSourceData","getCellData","getCellType","_callCustomizeExcelCell","sourceData","styleCopy","copyCellFormat","clearStyle","wrapTextEnabled","newStyle","_getDataArray","cellsArray","cellData","rowsLength","styleArrayIndex","getStyleId","cellStyleId","_styleArrayIndexToCellStyleIdMap","hasCustomizeExcelCell","modifiedExcelCell","_styleArray","cellDataType","excelDateValue","_excelFile","registerCellFormat","_needSheetPr","getGroupLevel","_calculateWidth","pixelsWidth","_prepareStyleData","getStyles","_colsArray","fonts","_prepareCellData","_cellsArray","_createXMLRelationships","xmlRelationships","_createXMLRelationship","_getWorkbookContent","_getContentTypesContent","_generateStylesXML","_zip","XML","generateNumberFormatsXml","generateFontsXml","generateFillsXml","generateCellFormatsXml","_generateStringsXML","stringIndex","stringsLength","sharedStringXml","_getPaneXML","frozenArea","getFrozenArea","_getAutoFilterXML","maxCellIndex","getHeaderRowCount","_getIgnoredErrorsXML","ignoreErrors","_generateWorksheetXML","xmlCells","xmlRows","colsLength","rSpans","headerRowCount","xmlResult","_rtlEnabled","rightBottomCellRef","_generateMergingXML","mergeIndex","columnsLength","usedArea","mergeArray","mergeXML","cellMerge","getCellMerging","mergeArrayLength","_generateCommonXML","relsFileContent","relsXML","_generateContent","_generateWorkXML","JSZip","_checkZipState","ready","getData","isBlob","excelCreator","standardColorNames","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","standardColorTypes","re","colorString","hsvToRgb","hslToRgb","Color","baseColor","parseColor","colorIsInvalid","normalize","hsv","toHsvFromRgb","hsl","toHslFromRgb","colorComponent","def","toHexFromRgb","vMin","vInc","vDec","calculateHue","convertTo01Bounds","maxMinSum","makeColorTint","colorPart","colorTint","modifyColorTint","hueToRgb","isIntegerBetweenMinAndMax","highlight","alter","toHex","darken","blend","blendColor","other","getPureColor","isValidHex","hex","isValidRGB","isValidAlpha","fromHSL","_math","_number","PI","sqrt","atan2","cos","sin","_export","exportingAction","exportedAction","fileSavingAction","selectedRowsOnly","excel","creator","formatConverter","BUTTON_GROUP_WRAPPER_CLASS","BUTTON_GROUP_ITEM_CLASS","BUTTON_GROUP_FIRST_ITEM_CLASS","BUTTON_GROUP_LAST_ITEM_CLASS","BUTTON_GROUP_ITEM_HAS_WIDTH","SHAPE_STANDARD_CLASS","ButtonCollection","_prepareItemStyles","_getBasicButtonOptions","_templateData","_hasCustomTemplate","_prepareContent","ButtonGroup","_createItemClickAction","_syncSelectionOptions","$buttons","_buttonsCollection","DROP_DOWN_BUTTON_CLASS","DROP_DOWN_BUTTON_CONTENT","DROP_DOWN_BUTTON_ACTION_CLASS","DROP_DOWN_BUTTON_TOGGLE_CLASS","DROP_DOWN_BUTTON_HAS_ARROW_CLASS","DROP_DOWN_BUTTON_POPUP_WRAPPER_CLASS","DROP_DOWN_EDITOR_OVERLAY_CLASS","DX_BUTTON_TEXT_CLASS","DX_ICON_RIGHT_CLASS","DropDownButton","useSelectMode","splitButton","showArrowIcon","dropDownOptions","dropDownContentTemplate","wrapItemText","useItemTextAsTitle","groupTemplate","buttonGroupOptions","_createActionClickAction","_createSelectionChangedAction","_compileKeyGetter","_compileDisplayGetter","_itemsToDataSource","cache","$listContainer","_escHandler","_getKey","storeKey","_keyGetter","_displayGetter","_renderButtonGroup","_updateArrowClass","_loadSelectedItem","_updateActionButton","_this$_loadSingleDefe","_loadSingleDeferred","_lastSelectedItemData","cachedResult","_loadSingle","_actionClickAction","_selectionChangedAction","previousItem","_actionItem","_actionButtonConfig","isActionButton","isToggleButton","buttonContent","$firstIcon","$textContainer","$secondIcon","_getButtonGroupItems","_buttonGroupItemClick","_popupContentId","$buttonClicked","actionResult","_fireItemClickAction","_buttonGroup","_popupHidingHandler","_bindInnerWidgetOptions","_setAriaExpanded","_popupOptionChanged","getOptionsFromContainer","optionsKeys","_setWidgetOption","_ariaExpandedElements","ariaElement","owns","$buttonGroup","_buttonGroupOptions","buttonElements","_upDownKeyHandler","_tabHandler","hasArrow","isPrimitiveItem","_getDisplayValue","_setListOption","_fireSelectionChangedAction","newConfig","_selectedItemKeyChanged","_actionButtonOptionChanged","_updateDataSource","_updateKeyExpr","_selectModeChanged","_innerWidgetOptionChanged","_updateItemCollection","DATAGRID_EXPORT_MENU_CLASS","DATAGRID_EXPORT_BUTTON_CLASS","DATAGRID_EXPORT_TOOLBAR_BUTTON_NAME","DATAGRID_EXPORT_ICON","DATAGRID_EXPORT_EXCEL_ICON","DATAGRID_EXPORT_SELECTED_ICON","DATAGRID_PDF_EXPORT_ICON","DataProvider","initialColumnWidthsByColumnIndex","_exportController","_initialColumnWidthsByColumnIndex","_selectedRowsOnly","_getGroupValue","_correctCellIndex","_getColumns","_selectionOnly","_getSelectedItems","_getAllItems","isHeadersVisible","getHeaderStyles","columnStyles","getColumnStyles","getGroupRowStyle","_getTotalCellStyleId","_this$getColumns$cell","isTotalCell","getColumnsByAllRows","getColumnsWidths","_convertFromGridGroupSummaryItems","gridGroupSummaryItems","isExcelJS","correctedCellIndex","columnsRow","gridColumn","itemValues","totalSummaryItemName","correctCellIndex","isSummaryAlignByColumn","exportColspan","ExportController","_getEmptyCell","currentHeaderRow","columnWidthsByColumnIndex","_getColumnWidths","_headersView","_needColumnExporting","currentColspan","_calculateExportColspan","childColumns","childColumn","_getFooterSummaryItems","isTotal","estimatedItemsCount","_hasSummaryGroupFooters","_getItemsWithSummaryGroupFooters","sourceItems","beforeGroupFooterItems","groupFooterItems","_updateGroupValuesWithSummaryByColumn","summaryValues","groupColumnCount","_processUnExportedItems","isDetailExpandColumn","selectedRowData","getDataProvider","columnsLastRowVisibleColumns","exportToExcel","_isSelectedRows","callbackList","exportButton","_getExportToolbarButton","_correctItemsPosition","_getExportToolbarItems","toolbarButtonOptions","_widgetOptions","_index","exportOptions","exportMethod","formatName","exportAllIcon","exportSelectedIcon","_isExportButtonVisible","ROW_FOCUSED_CLASS","TABLE_POSTFIX_CLASS","FocusController","_keyboardController","_focusRowByIndex","_triggerFocusedRowChangedIfNeed","_focusRowByKey","focusedRowIndexByKey","isAutoNavigateToFocusedRow","_focusRowByIndexCore","setKeyByIndex","_isValidFocusedRowIndex","_getLastItemIndex","isRowFocused","_isLocalRowIndex","isVirtualScrolling","virtualItems","virtualItemsBegin","visibleRowsCount","visiblePagesCount","_setFocusedRowKeyByIndex","_navigateToRow","isFocusedRowKeyDefined","needFocusRow","isAutoNavigate","rowIndexByKey","_navigateTo","getPageIndexByKey","isVirtualRowRenderingMode","_navigateToVirtualRow","_navigateToVisibleRow","_triggerUpdateFocusedRow","scrollToRowElement","triggerUpdateFocusedRow","scrollTopPosition","_focusRowByKeyOrIndex","currentFocusedRowIndex","updateFocusedRow","$mainRow","isMainTable","_clearPreviousFocusedRow","_prepareFocusedRow","changedItem","scrollToElementVertically","$prevRowFocusedElement","focusedRow","$focusedRowTable","$firstRow","focusModule","visibleRow","isRowElement","sortByKey","notSortedKeys","notSortedKey","isPartialUpdate","isPartialUpdateWithDeleting","_updatePageIndexes","processUpdateFocusedRow","prevRenderingPageIndex","_lastRenderingPageIndex","renderingPageIndex","_isPagingByRendering","isPagingByRendering","isValidRowIndexByKey","needFocusRowByIndex","getGlobalRowIndexByKey","_calculateGlobalRowIndexByGroupedData","_calculateGlobalRowIndexByFlatData","groupFilter","useGroup","_generateFilterByKey","_concatWithCombinedFilter","_generateOperationFilterByKey","_generateBooleanFilter","sortInfo","booleanFilter","sortFilter","dataSourceKey","keyPart","_setFocusedRowElementTabIndex","_findRowElementForTabIndex","_scrollToFocusOnResize","getScrollElementPosition","currentScrollTop","isRowClick","_isFocusedRowInsideGroup","_getGroupPath","groupPath","_expandGroupByPath","isGroupKey","_calculateExpandedRowGlobalIndex","dataOffset","groupContinuationCount","currentPageOffset","COMMAND_HANDLE_CLASS","HANDLE_ICON_CLASS","SORTABLE_WITHOUT_HANDLE_CLASS","RowDraggingExtender","_updateHandleColumn","_allowReordering","isHandleColumnVisible","_getHandleTemplate","sortableName","sortableFixedName","currentSortableName","anotherSortableName","togglePointerEventsStyle","_this$sortableFixedNa","rowsViewOffset","pageX","onDraggableElementShown","$dragElement","dragElement","gridInstance","_synchronizeScrollLeftPosition","_getDraggableRowTemplate","_rowDragging$onDragSt","onDragEnter","onDragLeave","_rowDragging$onDragEn","_rowDragging$onAdd","hasFixedSortable","_updateSortable","_sortable","_sortableFixed","sortable","_getDraggableGridOptions","gridOptions","$dataGridContainer","rowDraggingModule","EXPORT_LOAD_PANEL_CLASS","ExportLoadPanel","_$targetElement","ExportFormat","helpers","mergeRowFieldValues","mergeColumnFieldValues","mergedCells","mergedRanges","_isHeaderCell","isCellInMergedRanges","isMasterCellOfMergedRange","allowToMergeRange","_allowToMergeRange","updateMergedCells","masterCell","unmerged","range","startRowIndex","fullAddress","endRowIndex","MAX_EXCEL_COLUMN_WIDTH","Export","fullOptions","keepColumnWidths","convertDateForExcelJS","numFmt","tryConvertToExcelNumberFormat","formatObjectConverter","getColumn","_component$_getIntern","exportLoadPanel","internalComponent","_getInternalInstance","initialLoadPanelEnabledOption","_getLoadPanelTargetElement","_getLoadPanelContainer","outlineProperties","summaryBelow","summaryRight","dataRowsCount","setColumnsWidth","mergedRangesManager","getCellStyles","_trySetOutlineLevel","exportRow","applyMergedRages","worksheetViewSettings","rightToLeft","_isFrozenZone","_getWorksheetFrozenState","_trySetAutoFilter","cellCount","updateMergedRanges","cellInfo","findMergedCellInfo","setNumberFormat","_trySetFont","setAlignment","_getCustomizeCellOptions","autoFilter","dataRange","ySplit","outlineLevel","_getFullOptions","getFullOptions","dateUnitIntervals","toMilliseconds","getDatesInterval","intervalUnit","millisecondCount","getNextDateUnit","unit","withWeeks","convertMillisecondsToDateUnits","dateUnitCount","convertDateUnitToMilliseconds","dateToMilliseconds","dateUnit","maxInterval","tickIntervalToFormatMap","getQuarter","getFirstQuarterMonth","correctDateWithUnitBeginning","withCorrection","firstQuarterMonth","oldDate","getFirstWeekDate","trimTime","setToDayEnd","getTimezonesDifference","addDateInterval","intervalObject","getDateIntervalByString","years","quarters","months","weeks","setTime","addInterval","isNegative","getSequenceByInterval","cur","intervals","viewType","getLastMonthDay","resultDate","typeView","getDifferenceInMonthForCells","intervalString","startDecadeDate1","startDecadeDate2","startCenturyDate1","startCenturyDate2","normalizeDateByWeek","differenceInDays","intervalsOverlap","firstMin","firstMax","secondMin","secondMax","dateTimeFromDecimal","roundDateByStartDayHour","startDayHour","startTime","trial","roundToHour","makeDate","getDatesOfInterval","sameMonth"],"mappings":"kHAAA,kDASIA,EAAiB,CACjBC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJ,UAAW,EACXC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,IAAK,GACLC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,IAAK,GACLC,IAAK,GACLC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,IAAK,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,MACT,QAAS,MACT,UAAW,MACX,UAAW,MACX,UAAW,MACX,UAAW,MACXC,IAAK,MACL,UAAW,MACXC,IAAK,MACLC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJ,UAAW,MACXC,IAAK,MACL,UAAW,MACX,UAAW,MACX,UAAW,MACX,UAAW,MACXC,GAAI,MACJC,GAAI,MACJ,UAAW,MACXC,IAAK,MACLC,I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","file":"js/chunk-547e515d.ff1ed838.js","sourcesContent":["/**\r\n * DevExtreme (esm/localization/language_codes.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport 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/localization/cldr-data/first_day_of_week_data.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport default {\r\n \"af-NA\": 1,\r\n agq: 1,\r\n ak: 1,\r\n ar: 6,\r\n \"ar-EH\": 1,\r\n \"ar-ER\": 1,\r\n \"ar-KM\": 1,\r\n \"ar-LB\": 1,\r\n \"ar-MA\": 1,\r\n \"ar-MR\": 1,\r\n \"ar-PS\": 1,\r\n \"ar-SO\": 1,\r\n \"ar-SS\": 1,\r\n \"ar-TD\": 1,\r\n \"ar-TN\": 1,\r\n asa: 1,\r\n ast: 1,\r\n az: 1,\r\n \"az-Cyrl\": 1,\r\n bas: 1,\r\n be: 1,\r\n bem: 1,\r\n bez: 1,\r\n bg: 1,\r\n bm: 1,\r\n br: 1,\r\n bs: 1,\r\n \"bs-Cyrl\": 1,\r\n ca: 1,\r\n ce: 1,\r\n cgg: 1,\r\n ckb: 6,\r\n cs: 1,\r\n cy: 1,\r\n da: 1,\r\n de: 1,\r\n dje: 1,\r\n dsb: 1,\r\n dua: 1,\r\n dyo: 1,\r\n ee: 1,\r\n el: 1,\r\n \"en-001\": 1,\r\n \"en-AE\": 6,\r\n \"en-BI\": 1,\r\n \"en-MP\": 1,\r\n \"en-MV\": 5,\r\n \"en-SD\": 6,\r\n eo: 1,\r\n es: 1,\r\n et: 1,\r\n eu: 1,\r\n ewo: 1,\r\n fa: 6,\r\n ff: 1,\r\n \"ff-Adlm\": 1,\r\n fi: 1,\r\n fo: 1,\r\n fr: 1,\r\n \"fr-DJ\": 6,\r\n \"fr-DZ\": 6,\r\n \"fr-SY\": 6,\r\n fur: 1,\r\n fy: 1,\r\n ga: 1,\r\n gd: 1,\r\n gl: 1,\r\n gsw: 1,\r\n gv: 1,\r\n ha: 1,\r\n hr: 1,\r\n hsb: 1,\r\n hu: 1,\r\n hy: 1,\r\n ia: 1,\r\n ig: 1,\r\n is: 1,\r\n it: 1,\r\n jgo: 1,\r\n jmc: 1,\r\n ka: 1,\r\n kab: 6,\r\n kde: 1,\r\n kea: 1,\r\n khq: 1,\r\n kk: 1,\r\n kkj: 1,\r\n kl: 1,\r\n \"ko-KP\": 1,\r\n ksb: 1,\r\n ksf: 1,\r\n ksh: 1,\r\n ku: 1,\r\n kw: 1,\r\n ky: 1,\r\n lag: 1,\r\n lb: 1,\r\n lg: 1,\r\n ln: 1,\r\n lrc: 6,\r\n lt: 1,\r\n lu: 1,\r\n lv: 1,\r\n \"mas-TZ\": 1,\r\n mfe: 1,\r\n mg: 1,\r\n mgo: 1,\r\n mi: 1,\r\n mk: 1,\r\n mn: 1,\r\n ms: 1,\r\n mua: 1,\r\n mzn: 6,\r\n naq: 1,\r\n nds: 1,\r\n nl: 1,\r\n nmg: 1,\r\n nnh: 1,\r\n no: 1,\r\n nus: 1,\r\n nyn: 1,\r\n os: 1,\r\n pcm: 1,\r\n pl: 1,\r\n ps: 6,\r\n \"pt-AO\": 1,\r\n \"pt-CH\": 1,\r\n \"pt-CV\": 1,\r\n \"pt-GQ\": 1,\r\n \"pt-GW\": 1,\r\n \"pt-LU\": 1,\r\n \"pt-ST\": 1,\r\n \"pt-TL\": 1,\r\n \"qu-BO\": 1,\r\n \"qu-EC\": 1,\r\n rm: 1,\r\n rn: 1,\r\n ro: 1,\r\n rof: 1,\r\n ru: 1,\r\n rw: 1,\r\n rwk: 1,\r\n sah: 1,\r\n sbp: 1,\r\n sc: 1,\r\n se: 1,\r\n ses: 1,\r\n sg: 1,\r\n shi: 1,\r\n \"shi-Latn\": 1,\r\n si: 1,\r\n sk: 1,\r\n sl: 1,\r\n smn: 1,\r\n so: 1,\r\n \"so-DJ\": 6,\r\n sq: 1,\r\n sr: 1,\r\n \"sr-Latn\": 1,\r\n sv: 1,\r\n sw: 1,\r\n \"ta-LK\": 1,\r\n \"ta-MY\": 1,\r\n teo: 1,\r\n tg: 1,\r\n \"ti-ER\": 1,\r\n tk: 1,\r\n to: 1,\r\n tr: 1,\r\n tt: 1,\r\n twq: 1,\r\n tzm: 1,\r\n uk: 1,\r\n uz: 1,\r\n \"uz-Arab\": 6,\r\n \"uz-Cyrl\": 1,\r\n vai: 1,\r\n \"vai-Latn\": 1,\r\n vi: 1,\r\n vun: 1,\r\n wae: 1,\r\n wo: 1,\r\n xog: 1,\r\n yav: 1,\r\n yi: 1,\r\n yo: 1,\r\n zgh: 1\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/intl/date.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport localizationCoreUtils from \"../core\";\r\nvar SYMBOLS_TO_REMOVE_REGEX = /[\\u200E\\u200F]/g;\r\nvar getIntlFormatter = format => date => {\r\n if (!format.timeZoneName) {\r\n var year = date.getFullYear();\r\n var recognizableAsTwentyCentury = String(year).length < 3;\r\n var temporaryYearValue = recognizableAsTwentyCentury ? year + 400 : year;\r\n var utcDate = new Date(Date.UTC(temporaryYearValue, date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\r\n if (recognizableAsTwentyCentury) {\r\n utcDate.setFullYear(year)\r\n }\r\n var utcFormat = extend({\r\n timeZone: \"UTC\"\r\n }, format);\r\n return formatDateTime(utcDate, utcFormat)\r\n }\r\n return formatDateTime(date, format)\r\n};\r\nvar formattersCache = {};\r\nvar getFormatter = format => {\r\n var key = localizationCoreUtils.locale() + \"/\" + JSON.stringify(format);\r\n if (!formattersCache[key]) {\r\n formattersCache[key] = new Intl.DateTimeFormat(localizationCoreUtils.locale(), format).format\r\n }\r\n return formattersCache[key]\r\n};\r\n\r\nfunction formatDateTime(date, format) {\r\n return getFormatter(format)(date).replace(SYMBOLS_TO_REMOVE_REGEX, \"\")\r\n}\r\nvar formatNumber = number => new Intl.NumberFormat(localizationCoreUtils.locale()).format(number);\r\nvar getAlternativeNumeralsMap = (() => {\r\n var numeralsMapCache = {};\r\n return locale => {\r\n if (!(locale in numeralsMapCache)) {\r\n if (\"0\" === formatNumber(0)) {\r\n numeralsMapCache[locale] = false;\r\n return false\r\n }\r\n numeralsMapCache[locale] = {};\r\n for (var i = 0; i < 10; ++i) {\r\n numeralsMapCache[locale][formatNumber(i)] = i\r\n }\r\n }\r\n return numeralsMapCache[locale]\r\n }\r\n})();\r\nvar normalizeNumerals = dateString => {\r\n var alternativeNumeralsMap = getAlternativeNumeralsMap(localizationCoreUtils.locale());\r\n if (!alternativeNumeralsMap) {\r\n return dateString\r\n }\r\n return dateString.split(\"\").map(sign => sign in alternativeNumeralsMap ? String(alternativeNumeralsMap[sign]) : sign).join(\"\")\r\n};\r\nvar removeLeadingZeroes = str => str.replace(/(\\D)0+(\\d)/g, \"$1$2\");\r\nvar dateStringEquals = (actual, expected) => removeLeadingZeroes(actual) === removeLeadingZeroes(expected);\r\nvar normalizeMonth = text => text.replace(\"d\\u2019\", \"de \");\r\nvar intlFormats = {\r\n day: {\r\n day: \"numeric\"\r\n },\r\n dayofweek: {\r\n weekday: \"long\"\r\n },\r\n longdate: {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\"\r\n },\r\n longdatelongtime: {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\",\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n second: \"numeric\"\r\n },\r\n longtime: {\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n second: \"numeric\"\r\n },\r\n month: {\r\n month: \"long\"\r\n },\r\n monthandday: {\r\n month: \"long\",\r\n day: \"numeric\"\r\n },\r\n monthandyear: {\r\n year: \"numeric\",\r\n month: \"long\"\r\n },\r\n shortdate: {},\r\n shorttime: {\r\n hour: \"numeric\",\r\n minute: \"numeric\"\r\n },\r\n shortyear: {\r\n year: \"2-digit\"\r\n },\r\n year: {\r\n year: \"numeric\"\r\n }\r\n};\r\nObject.defineProperty(intlFormats, \"shortdateshorttime\", {\r\n get: function() {\r\n var defaultOptions = Intl.DateTimeFormat(localizationCoreUtils.locale()).resolvedOptions();\r\n return {\r\n year: defaultOptions.year,\r\n month: defaultOptions.month,\r\n day: defaultOptions.day,\r\n hour: \"numeric\",\r\n minute: \"numeric\"\r\n }\r\n }\r\n});\r\nvar getIntlFormat = format => \"string\" === typeof format && intlFormats[format.toLowerCase()];\r\nvar monthNameStrategies = {\r\n standalone: function(monthIndex, monthFormat) {\r\n var date = new Date(1999, monthIndex, 13, 1);\r\n var dateString = getIntlFormatter({\r\n month: monthFormat\r\n })(date);\r\n return dateString\r\n },\r\n format: function(monthIndex, monthFormat) {\r\n var date = new Date(0, monthIndex, 13, 1);\r\n var dateString = normalizeMonth(getIntlFormatter({\r\n day: \"numeric\",\r\n month: monthFormat\r\n })(date));\r\n var parts = dateString.split(\" \").filter(part => part.indexOf(\"13\") < 0);\r\n if (1 === parts.length) {\r\n return parts[0]\r\n } else if (2 === parts.length) {\r\n return parts[0].length > parts[1].length ? parts[0] : parts[1]\r\n }\r\n return monthNameStrategies.standalone(monthIndex, monthFormat)\r\n }\r\n};\r\nexport default {\r\n engine: function() {\r\n return \"intl\"\r\n },\r\n getMonthNames: function(format, type) {\r\n var monthFormat = {\r\n wide: \"long\",\r\n abbreviated: \"short\",\r\n narrow: \"narrow\"\r\n } [format || \"wide\"];\r\n type = \"format\" === type ? type : \"standalone\";\r\n return Array.apply(null, new Array(12)).map((_, monthIndex) => monthNameStrategies[type](monthIndex, monthFormat))\r\n },\r\n getDayNames: function(format) {\r\n var result = (format => Array.apply(null, new Array(7)).map((_, dayIndex) => getIntlFormatter({\r\n weekday: format\r\n })(new Date(0, 0, dayIndex))))({\r\n wide: \"long\",\r\n abbreviated: \"short\",\r\n short: \"narrow\",\r\n narrow: \"narrow\"\r\n } [format || \"wide\"]);\r\n return result\r\n },\r\n getPeriodNames: function() {\r\n var hour12Formatter = getIntlFormatter({\r\n hour: \"numeric\",\r\n hour12: true\r\n });\r\n return [1, 13].map(hours => {\r\n var hourNumberText = formatNumber(1);\r\n var timeParts = hour12Formatter(new Date(0, 0, 1, hours)).split(hourNumberText);\r\n if (2 !== timeParts.length) {\r\n return \"\"\r\n }\r\n var biggerPart = timeParts[0].length > timeParts[1].length ? timeParts[0] : timeParts[1];\r\n return biggerPart.trim()\r\n })\r\n },\r\n format: function(date, _format) {\r\n if (!date) {\r\n return\r\n }\r\n if (!_format) {\r\n return date\r\n }\r\n if (\"function\" !== typeof _format && !_format.formatter) {\r\n _format = _format.type || _format\r\n }\r\n var intlFormat = getIntlFormat(_format);\r\n if (intlFormat) {\r\n return getIntlFormatter(intlFormat)(date)\r\n }\r\n var formatType = typeof _format;\r\n if (_format.formatter || \"function\" === formatType || \"string\" === formatType) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n return getIntlFormatter(_format)(date)\r\n },\r\n parse: function(dateString, format) {\r\n var formatter;\r\n if (format && !format.parser && \"string\" === typeof dateString) {\r\n dateString = normalizeMonth(dateString);\r\n formatter = date => normalizeMonth(this.format(date, format))\r\n }\r\n return this.callBase(dateString, formatter || format)\r\n },\r\n _parseDateBySimpleFormat: function(dateString, format) {\r\n dateString = normalizeNumerals(dateString);\r\n var formatParts = this.getFormatParts(format);\r\n var dateParts = dateString.split(/\\D+/).filter(part => part.length > 0);\r\n if (formatParts.length !== dateParts.length) {\r\n return\r\n }\r\n var dateArgs = this._generateDateArgs(formatParts, dateParts);\r\n var constructValidDate = ampmShift => {\r\n var parsedDate = ((dateArgs, ampmShift) => {\r\n var hoursShift = ampmShift ? 12 : 0;\r\n return new Date(dateArgs.year, dateArgs.month, dateArgs.day, (dateArgs.hours + hoursShift) % 24, dateArgs.minutes, dateArgs.seconds)\r\n })(dateArgs, ampmShift);\r\n if (dateStringEquals(normalizeNumerals(this.format(parsedDate, format)), dateString)) {\r\n return parsedDate\r\n }\r\n };\r\n return constructValidDate(false) || constructValidDate(true)\r\n },\r\n _generateDateArgs: function(formatParts, dateParts) {\r\n var currentDate = new Date;\r\n var dateArgs = {\r\n year: currentDate.getFullYear(),\r\n month: currentDate.getMonth(),\r\n day: currentDate.getDate(),\r\n hours: 0,\r\n minutes: 0,\r\n seconds: 0\r\n };\r\n formatParts.forEach((formatPart, index) => {\r\n var datePart = dateParts[index];\r\n var parsed = parseInt(datePart, 10);\r\n if (\"month\" === formatPart) {\r\n parsed -= 1\r\n }\r\n dateArgs[formatPart] = parsed\r\n });\r\n return dateArgs\r\n },\r\n formatUsesMonthName: function(format) {\r\n if (\"object\" === typeof format && !(format.type || format.format)) {\r\n return \"long\" === format.month\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n formatUsesDayName: function(format) {\r\n if (\"object\" === typeof format && !(format.type || format.format)) {\r\n return \"long\" === format.weekday\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n getTimeSeparator: function() {\r\n return normalizeNumerals(formatDateTime(new Date(2001, 1, 1, 11, 11), {\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n hour12: false\r\n })).replace(/\\d/g, \"\")\r\n },\r\n getFormatParts: function(format) {\r\n if (\"string\" === typeof format) {\r\n return this.callBase(format)\r\n }\r\n var intlFormat = extend({}, intlFormats[format.toLowerCase()]);\r\n var date = new Date(2001, 2, 4, 5, 6, 7);\r\n var formattedDate = getIntlFormatter(intlFormat)(date);\r\n formattedDate = normalizeNumerals(formattedDate);\r\n return [{\r\n name: \"year\",\r\n value: 1\r\n }, {\r\n name: \"month\",\r\n value: 3\r\n }, {\r\n name: \"day\",\r\n value: 4\r\n }, {\r\n name: \"hours\",\r\n value: 5\r\n }, {\r\n name: \"minutes\",\r\n value: 6\r\n }, {\r\n name: \"seconds\",\r\n value: 7\r\n }].map(part => ({\r\n name: part.name,\r\n index: formattedDate.indexOf(part.value)\r\n })).filter(part => part.index > -1).sort((a, b) => a.index - b.index).map(part => part.name)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/date.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dependencyInjector from \"../core/utils/dependency_injector\";\r\nimport {\r\n isString\r\n} from \"../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n getFormatter as getLDMLDateFormatter\r\n} from \"./ldml/date.formatter\";\r\nimport {\r\n getFormat as getLDMLDateFormat\r\n} from \"./ldml/date.format\";\r\nimport {\r\n getParser as getLDMLDateParser\r\n} from \"./ldml/date.parser\";\r\nimport defaultDateNames from \"./default_date_names\";\r\nimport firstDayOfWeekData from \"./cldr-data/first_day_of_week_data\";\r\nimport localizationCore from \"./core\";\r\nimport numberLocalization from \"./number\";\r\nimport intlDateLocalization from \"./intl/date\";\r\nvar DEFAULT_DAY_OF_WEEK_INDEX = 0;\r\nvar hasIntl = \"undefined\" !== typeof Intl;\r\nvar FORMATS_TO_PATTERN_MAP = {\r\n shortdate: \"M/d/y\",\r\n shorttime: \"h:mm a\",\r\n longdate: \"EEEE, MMMM d, y\",\r\n longtime: \"h:mm:ss a\",\r\n monthandday: \"MMMM d\",\r\n monthandyear: \"MMMM y\",\r\n quarterandyear: \"QQQ y\",\r\n day: \"d\",\r\n year: \"y\",\r\n shortdateshorttime: \"M/d/y, h:mm a\",\r\n longdatelongtime: \"EEEE, MMMM d, y, h:mm:ss a\",\r\n month: \"LLLL\",\r\n shortyear: \"yy\",\r\n dayofweek: \"EEEE\",\r\n quarter: \"QQQ\",\r\n hour: \"HH\",\r\n minute: \"mm\",\r\n second: \"ss\",\r\n millisecond: \"SSS\",\r\n \"datetime-local\": \"yyyy-MM-ddTHH':'mm':'ss\"\r\n};\r\nvar possiblePartPatterns = {\r\n year: [\"y\", \"yy\", \"yyyy\"],\r\n day: [\"d\", \"dd\"],\r\n month: [\"M\", \"MM\", \"MMM\", \"MMMM\"],\r\n hours: [\"H\", \"HH\", \"h\", \"hh\", \"ah\"],\r\n minutes: [\"m\", \"mm\"],\r\n seconds: [\"s\", \"ss\"],\r\n milliseconds: [\"S\", \"SS\", \"SSS\"]\r\n};\r\nvar dateLocalization = dependencyInjector({\r\n engine: function() {\r\n return \"base\"\r\n },\r\n _getPatternByFormat: function(format) {\r\n return FORMATS_TO_PATTERN_MAP[format.toLowerCase()]\r\n },\r\n _expandPattern: function(pattern) {\r\n return this._getPatternByFormat(pattern) || pattern\r\n },\r\n formatUsesMonthName: function(format) {\r\n return -1 !== this._expandPattern(format).indexOf(\"MMMM\")\r\n },\r\n formatUsesDayName: function(format) {\r\n return -1 !== this._expandPattern(format).indexOf(\"EEEE\")\r\n },\r\n getFormatParts: function(format) {\r\n var pattern = this._getPatternByFormat(format) || format;\r\n var result = [];\r\n each(pattern.split(/\\W+/), (_, formatPart) => {\r\n each(possiblePartPatterns, (partName, possiblePatterns) => {\r\n if (possiblePatterns.includes(formatPart)) {\r\n result.push(partName)\r\n }\r\n })\r\n });\r\n return result\r\n },\r\n getMonthNames: function(format) {\r\n return defaultDateNames.getMonthNames(format)\r\n },\r\n getDayNames: function(format) {\r\n return defaultDateNames.getDayNames(format)\r\n },\r\n getQuarterNames: function(format) {\r\n return defaultDateNames.getQuarterNames(format)\r\n },\r\n getPeriodNames: function(format) {\r\n return defaultDateNames.getPeriodNames(format)\r\n },\r\n getTimeSeparator: function() {\r\n return \":\"\r\n },\r\n is24HourFormat: function(format) {\r\n var amTime = new Date(2017, 0, 20, 11, 0, 0, 0);\r\n var pmTime = new Date(2017, 0, 20, 23, 0, 0, 0);\r\n var amTimeFormatted = this.format(amTime, format);\r\n var pmTimeFormatted = this.format(pmTime, format);\r\n for (var i = 0; i < amTimeFormatted.length; i++) {\r\n if (amTimeFormatted[i] !== pmTimeFormatted[i]) {\r\n return !isNaN(parseInt(amTimeFormatted[i]))\r\n }\r\n }\r\n },\r\n format: function(date, _format) {\r\n if (!date) {\r\n return\r\n }\r\n if (!_format) {\r\n return date\r\n }\r\n var formatter;\r\n if (\"function\" === typeof _format) {\r\n formatter = _format\r\n } else if (_format.formatter) {\r\n formatter = _format.formatter\r\n } else {\r\n _format = _format.type || _format;\r\n if (isString(_format)) {\r\n _format = FORMATS_TO_PATTERN_MAP[_format.toLowerCase()] || _format;\r\n return numberLocalization.convertDigits(getLDMLDateFormatter(_format, this)(date))\r\n }\r\n }\r\n if (!formatter) {\r\n return\r\n }\r\n return formatter(date)\r\n },\r\n parse: function(text, format) {\r\n var that = this;\r\n var ldmlFormat;\r\n var formatter;\r\n if (!text) {\r\n return\r\n }\r\n if (!format) {\r\n return this.parse(text, \"shortdate\")\r\n }\r\n if (format.parser) {\r\n return format.parser(text)\r\n }\r\n if (\"string\" === typeof format && !FORMATS_TO_PATTERN_MAP[format.toLowerCase()]) {\r\n ldmlFormat = format\r\n } else {\r\n formatter = value => {\r\n var text = that.format(value, format);\r\n return numberLocalization.convertDigits(text, true)\r\n };\r\n try {\r\n ldmlFormat = getLDMLDateFormat(formatter)\r\n } catch (e) {}\r\n }\r\n if (ldmlFormat) {\r\n text = numberLocalization.convertDigits(text, true);\r\n return getLDMLDateParser(ldmlFormat, this)(text)\r\n }\r\n errors.log(\"W0012\");\r\n var result = new Date(text);\r\n if (!result || isNaN(result.getTime())) {\r\n return\r\n }\r\n return result\r\n },\r\n firstDayOfWeekIndex: function() {\r\n var index = localizationCore.getValueByClosestLocale(locale => firstDayOfWeekData[locale]);\r\n return void 0 === index ? DEFAULT_DAY_OF_WEEK_INDEX : index\r\n }\r\n});\r\nif (hasIntl) {\r\n dateLocalization.inject(intlDateLocalization)\r\n}\r\nexport default dateLocalization;\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./revert-BDC.vue?vue&type=style&index=0&id=8ce46faa&prod&lang=scss\"","import {\r\n ROOT,\r\n GET_LIST_TEE_BOOKING_API,\r\n GET_LIST_NATIONAL_API,\r\n GET_LIST_BOOKING_API,\r\n CREATE_BOOKING_API,\r\n GOLF_CLASSES_API,\r\n RESOURCES_API,\r\n DETAIL_BOOKING_2A_API,\r\n DETAIL_BOOKING_2B_API,\r\n DETAIL_BOOKING_2C_API,\r\n RATE_CODE_API,\r\n DETAIL_TEE_TIME_API,\r\n CHECK_IN,\r\n GET_LIST_GROUP_API,\r\n COMBINE_GROUP_API,\r\n SOURCES_LIST_API,\r\n UPDATE_RATE_CODE_API,\r\n SPLITGROUP_API,\r\n GET_LIST_CADDY,\r\n LIST_SERVICES_API,\r\n LIST_CADDY,\r\n UPDATE_CADDY,\r\n BOOKING_UPDATE_CADDY,\r\n UPDATE_BOOKING_INFO,\r\n ADD_MEMBER_API,\r\n CHECK_OUT,\r\n GET_LIST_PAYMENT,\r\n GET_CONFIG_API,\r\n NO_SHOW,\r\n CREATE_PAYMENT_API,\r\n CREATE_PAYMENT_DETAIL_API,\r\n GET_LIST_PAYMENT_METHOD,\r\n GET_LIST_PAYMENT_DETAIL,\r\n DELETE_PAYMENT,\r\n DELETE_PAYMENT_DETAIL,\r\n GET_LIST_SERVICES, GET_LIST_REASON_DISCOUNT, UPDATE_TEE_TIME_FOR_BOOKING, UPDATE_LOCKER_AND_NOTE_FOR_BOOKING, UPDATE_BOOKING_SERVICE,\r\n API_UBK09,\r\n GET_BOOKING_RETAIL,\r\n API_RBK09,\r\n API_RBK02D,\r\n API_RCS01,\r\n API_RME05,\r\n API_UBK04,\r\n API_UBK07,\r\n API_DBK02,\r\n API_DBK01,\r\n API_UPM02,\r\n API_ICI02,\r\n API_RPM02D,\r\n API_IPM02D,\r\n API_DPM02D,\r\n API_UPM02D,\r\n API_RPF02,\r\n API_RHS01,\r\n RIV01,\r\n API_RIV01,\r\n API_UPM01,\r\n API_UBK12,\r\n API_UBK13,\r\n API_RTE03,\r\n API_RTB02,\r\n API_RBK10,\r\n API_DPM06,\r\n API_RPM02M,\r\n API_IPM02R,\r\n API_IEM01,\r\n API_IEM02,\r\n API_DPM07,\r\n API_UBK11,\r\n API_RME01F,\r\n API_DPM09,\r\n API_RRA05,\r\n API_ICI03,\r\n API_VC_RV03,\r\n API_VC_RV04,\r\n API_VC_RV05,\r\n API_UBK10,\r\n API_UPM06,\r\n API_RRPDF,\r\n API_RBK06,\r\n API_VC_RV06,\r\n API_RRA04A,\r\n API_UBK15,\r\n API_RBK12,\r\n API_RCL03,\r\n API_UPM07,\r\n API_RPM01F,\r\n API_UBKWL1,\r\n API_RBKWL1,\r\n API_DBKWL1,\r\n API_RBK13,\r\n API_IBKR01,\r\n API_DBKR01,\r\n API_RBKR01,\r\n API_UBK16,\r\n API_RBK15,\r\n API_UBK17\r\n} from '@/api/constant'\r\nimport { handleResponse } from '@/api/handle-response'\r\nimport { requestOptions } from '@/api/request-options'\r\nimport { handleResponseFile } from '@/api/response-file'\r\nfunction api_UBK17(data) {\r\n return fetch(ROOT + API_UBK17, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_RBK13(data) {\r\n return fetch(ROOT + API_RBK13, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_RBK15(data) {\r\n return fetch(ROOT + API_RBK15, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_UBK16(data) {\r\n return fetch(ROOT + API_UBK16, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_IBKR01(data) {\r\n return fetch(ROOT + API_IBKR01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_DBKR01(data) {\r\n return fetch(ROOT + API_DBKR01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RBKR01(data) {\r\n return fetch(ROOT + API_RBKR01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getListTeeTimeBooking(data) {\r\n return fetch(ROOT + GET_LIST_TEE_BOOKING_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_UBKWL1(data) {\r\n return fetch(ROOT + API_UBKWL1, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_RBKWL1(data) {\r\n return fetch(ROOT + API_RBKWL1, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_DBKWL1(data) {\r\n return fetch(ROOT + API_DBKWL1, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_RPM01F(data) {\r\n return fetch(ROOT + API_RPM01F, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_RCL03(data) {\r\n return fetch(ROOT + API_RCL03, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getListNational(data) {\r\n return fetch(ROOT + GET_LIST_NATIONAL_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getListGroup(data) {\r\n return fetch(ROOT + GET_LIST_GROUP_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getListBooking(data) {\r\n return fetch(ROOT + GET_LIST_BOOKING_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getGolfClasses(data) {\r\n return fetch(ROOT + GOLF_CLASSES_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getListResources(data) {\r\n return fetch(ROOT + RESOURCES_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction createBooking(data) {\r\n return fetch(ROOT + CREATE_BOOKING_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction addMember(data) {\r\n return fetch(ROOT + ADD_MEMBER_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getDetailBooking2A(data) {\r\n return fetch(ROOT + DETAIL_BOOKING_2A_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getDetailBooking2B(data) {\r\n return fetch(ROOT + DETAIL_BOOKING_2B_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getDetailBooking2C(data) {\r\n return fetch(ROOT + DETAIL_BOOKING_2C_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getRateCode(data) {\r\n return fetch(ROOT + RATE_CODE_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction checkIn(data) {\r\n return fetch(ROOT + CHECK_IN, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction combineGroup(data) {\r\n return fetch(ROOT + COMBINE_GROUP_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getListSources(data) {\r\n return fetch(ROOT + SOURCES_LIST_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction updateRateCode(data) {\r\n return fetch(ROOT + UPDATE_RATE_CODE_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction SplitGroup(data) {\r\n return fetch(ROOT + SPLITGROUP_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction updateCaddy(data) {\r\n return fetch(ROOT + BOOKING_UPDATE_CADDY, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getListCaddy(data) {\r\n return fetch(ROOT + LIST_CADDY, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getListServices(data) {\r\n return fetch(ROOT + LIST_SERVICES_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction updateBookingInfo(data) {\r\n return fetch(ROOT + UPDATE_BOOKING_INFO, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getConfigInfo(data) {\r\n return fetch(ROOT + GET_CONFIG_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction noShow(data) {\r\n return fetch(ROOT + NO_SHOW, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction getRBK02C(data) {\r\n return fetch(ROOT + CHECK_OUT, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RBK02D(data) {\r\n return fetch(ROOT + API_RBK02D, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getRPM01(data) {\r\n return fetch(ROOT + GET_LIST_PAYMENT, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction createPayment(data) {\r\n return fetch(ROOT + CREATE_PAYMENT_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction createPaymentDetail(data) {\r\n return fetch(ROOT + CREATE_PAYMENT_DETAIL_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getListPaymentMethod(data) {\r\n return fetch(ROOT + GET_LIST_PAYMENT_METHOD, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getListPaymentDetail(data) {\r\n return fetch(ROOT + GET_LIST_PAYMENT_DETAIL, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction updateBookingService(data) {\r\n return fetch(ROOT + UPDATE_BOOKING_SERVICE, requestOptions.postBody(data)).then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction deletePaymentDetail(data) {\r\n return fetch(ROOT + DELETE_PAYMENT_DETAIL, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction deletePayment(data) {\r\n return fetch(ROOT + DELETE_PAYMENT, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getListServicesFee(data) {\r\n return fetch(ROOT + GET_LIST_SERVICES, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getListReasonDiscount(data) {\r\n return fetch(ROOT + GET_LIST_REASON_DISCOUNT, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction updateTeeTimeForBooking(data) {\r\n return fetch(ROOT + UPDATE_TEE_TIME_FOR_BOOKING, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction updateNoteAndLockerForBooking(data) {\r\n return fetch(ROOT + UPDATE_LOCKER_AND_NOTE_FOR_BOOKING, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_UBK09(data) {\r\n return fetch(ROOT + API_UBK09, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getBookingRetail(data) {\r\n return fetch(ROOT + GET_BOOKING_RETAIL, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RBK09(data) {\r\n return fetch(ROOT + API_RBK09, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RCS01(data) {\r\n return fetch(ROOT + API_RCS01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RME05(data) {\r\n return fetch(ROOT + API_RME05, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_UBK04(data) {\r\n return fetch(ROOT + API_UBK04, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_UBK07(data) {\r\n return fetch(ROOT + API_UBK07, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_DBK01(data) {\r\n return fetch(ROOT + API_DBK01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_DBK02(data) {\r\n return fetch(ROOT + API_DBK02, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_UPM02(data) {\r\n return fetch(ROOT + API_UPM02, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_ICI02(data) {\r\n return fetch(ROOT + API_ICI02, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RPM02D(data) {\r\n return fetch(ROOT + API_RPM02D, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_IPM02D(data) {\r\n return fetch(ROOT + API_IPM02D, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_DPM02D(data) {\r\n return fetch(ROOT + API_DPM02D, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_UPM02D(data) {\r\n return fetch(ROOT + API_UPM02D, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RPF02(data) {\r\n return fetch(ROOT + API_RPF02, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RHS01(data) {\r\n return fetch(ROOT + API_RHS01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RIV01(data) {\r\n return fetch(ROOT + API_RIV01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_UPM01(data) {\r\n return fetch(ROOT + API_UPM01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_UBK12(data) {\r\n return fetch(ROOT + API_UBK12, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_UBK13(data) {\r\n return fetch(ROOT + API_UBK13, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RTE03(data) {\r\n return fetch(ROOT + API_RTE03, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RTB02(data) {\r\n return fetch(ROOT + API_RTB02, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RBK10(data) {\r\n return fetch(ROOT + API_RBK10, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_DPM06(data) {\r\n return fetch(ROOT + API_DPM06, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RPM02M(data) {\r\n return fetch(ROOT + API_RPM02M, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_IPM02R(data) {\r\n return fetch(ROOT + API_IPM02R, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_IEM01(data) {\r\n return fetch(ROOT + API_IEM01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_IEM02(data) {\r\n return fetch(ROOT + API_IEM02, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_DPM07(data) {\r\n return fetch(ROOT + API_DPM07, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_UBK11(data) {\r\n return fetch(ROOT + API_UBK11, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RME01F(data) {\r\n return fetch(ROOT + API_RME01F, requestOptions.postBody(data)).then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_DPM09(data) {\r\n return fetch(ROOT + API_DPM09, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RRA05(data) {\r\n return fetch(ROOT + API_RRA05, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_ICI03(data) {\r\n return fetch(ROOT + API_ICI03, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_VC_RV03(data) {\r\n return fetch(ROOT + API_VC_RV03, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_VC_RV04(data) {\r\n return fetch(ROOT + API_VC_RV04, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_VC_RV05(data) {\r\n return fetch(ROOT + API_VC_RV05, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_UBK10(data) {\r\n return fetch(ROOT + API_UBK10, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_UPM06(data) {\r\n return fetch(ROOT + API_UPM06, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RRPDF(data) {\r\n return fetch(API_RRPDF, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_RBK06(data) {\r\n return fetch(ROOT + API_RBK06, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_VC_RV06(data) {\r\n return fetch(ROOT + API_VC_RV06, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_RRA04A(data) {\r\n return fetch(ROOT + API_RRA04A, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_UBK15(data) {\r\n return fetch(ROOT + API_UBK15, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_RBK12(data) {\r\n return fetch(ROOT + API_RBK12, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_UPM07(data) {\r\n return fetch(ROOT + API_UPM07, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nexport const booking = {\r\n getListTeeTimeBooking,\r\n getListNational,\r\n getListGroup,\r\n getListBooking,\r\n getGolfClasses,\r\n createBooking,\r\n addMember,\r\n getListCaddy,\r\n getListResources,\r\n getDetailBooking2A,\r\n getDetailBooking2B,\r\n getDetailBooking2C,\r\n getRateCode,\r\n SplitGroup,\r\n noShow,\r\n updateCaddy,\r\n checkIn,\r\n combineGroup,\r\n getListSources,\r\n updateRateCode,\r\n getListServices,\r\n updateBookingInfo,\r\n getConfigInfo,\r\n getRBK02C,\r\n getRPM01,\r\n createPayment,\r\n createPaymentDetail,\r\n getListPaymentMethod,\r\n getListPaymentDetail,\r\n deletePaymentDetail,\r\n deletePayment,\r\n getListServicesFee,\r\n getListReasonDiscount,\r\n updateTeeTimeForBooking,\r\n updateNoteAndLockerForBooking,\r\n updateBookingService,\r\n api_UBK09,\r\n getBookingRetail,\r\n api_RBK09,\r\n api_RBK02D,\r\n api_RCS01,\r\n api_RME05,\r\n api_UBK04,\r\n api_UBK07,\r\n api_DBK01,\r\n api_DBK02,\r\n api_UPM02,\r\n api_ICI02,\r\n api_RPM02D,\r\n api_IPM02D,\r\n api_DPM02D,\r\n api_UPM02D,\r\n api_RPF02,\r\n api_RHS01,\r\n api_RIV01,\r\n api_UPM01,\r\n api_UBK12,\r\n api_UBK13,\r\n api_RTE03,\r\n api_RTB02,\r\n api_RBK10,\r\n api_DPM06,\r\n api_RPM02M,\r\n api_IPM02R,\r\n api_IEM01,\r\n api_IEM02,\r\n api_DPM07,\r\n api_UBK11,\r\n api_RME01F,\r\n api_DPM09,\r\n api_RRA05,\r\n api_ICI03,\r\n api_VC_RV03,\r\n api_VC_RV04,\r\n api_VC_RV05,\r\n api_UBK10,\r\n api_UPM06,\r\n api_RRPDF,\r\n api_RBK06,\r\n api_VC_RV06,\r\n api_RRA04A,\r\n api_UBK15,\r\n api_RBK12,\r\n api_RCL03,\r\n api_UPM07,\r\n api_RPM01F,\r\n api_UBKWL1,\r\n api_RBKWL1,\r\n api_DBKWL1,\r\n api_RBK13,\r\n api_IBKR01,\r\n api_DBKR01,\r\n api_RBKR01,\r\n api_UBK16,\r\n api_RBK15,\r\n api_UBK17\r\n}\r\n","/**\r\n * DevExtreme (esm/localization/ldml/date.formatter.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nfunction leftPad(text, length) {\r\n while (text.length < length) {\r\n text = \"0\" + text\r\n }\r\n return text\r\n}\r\nvar FORMAT_TYPES = {\r\n 3: \"abbreviated\",\r\n 4: \"wide\",\r\n 5: \"narrow\"\r\n};\r\nvar LDML_FORMATTERS = {\r\n y: function(date, count, useUtc) {\r\n var year = date[useUtc ? \"getUTCFullYear\" : \"getFullYear\"]();\r\n if (2 === count) {\r\n year %= 100\r\n }\r\n return leftPad(year.toString(), count)\r\n },\r\n M: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getMonthNames(formatType, \"format\")[month]\r\n }\r\n return leftPad((month + 1).toString(), Math.min(count, 2))\r\n },\r\n L: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getMonthNames(formatType, \"standalone\")[month]\r\n }\r\n return leftPad((month + 1).toString(), Math.min(count, 2))\r\n },\r\n Q: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var quarter = Math.floor(month / 3);\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getQuarterNames(formatType)[quarter]\r\n }\r\n return leftPad((quarter + 1).toString(), Math.min(count, 2))\r\n },\r\n E: function(date, count, useUtc, dateParts) {\r\n var day = date[useUtc ? \"getUTCDay\" : \"getDay\"]();\r\n var formatType = FORMAT_TYPES[count < 3 ? 3 : count];\r\n return dateParts.getDayNames(formatType)[day]\r\n },\r\n a: function(date, count, useUtc, dateParts) {\r\n var hours = date[useUtc ? \"getUTCHours\" : \"getHours\"]();\r\n var period = hours < 12 ? 0 : 1;\r\n var formatType = FORMAT_TYPES[count];\r\n return dateParts.getPeriodNames(formatType)[period]\r\n },\r\n d: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCDate\" : \"getDate\"]().toString(), Math.min(count, 2))\r\n },\r\n H: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCHours\" : \"getHours\"]().toString(), Math.min(count, 2))\r\n },\r\n h: function(date, count, useUtc) {\r\n var hours = date[useUtc ? \"getUTCHours\" : \"getHours\"]();\r\n return leftPad((hours % 12 || 12).toString(), Math.min(count, 2))\r\n },\r\n m: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCMinutes\" : \"getMinutes\"]().toString(), Math.min(count, 2))\r\n },\r\n s: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCSeconds\" : \"getSeconds\"]().toString(), Math.min(count, 2))\r\n },\r\n S: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCMilliseconds\" : \"getMilliseconds\"]().toString(), 3).substr(0, count)\r\n },\r\n x: function(date, count, useUtc) {\r\n var timezoneOffset = useUtc ? 0 : date.getTimezoneOffset();\r\n var signPart = timezoneOffset > 0 ? \"-\" : \"+\";\r\n var timezoneOffsetAbs = Math.abs(timezoneOffset);\r\n var hours = Math.floor(timezoneOffsetAbs / 60);\r\n var minutes = timezoneOffsetAbs % 60;\r\n var hoursPart = leftPad(hours.toString(), 2);\r\n var minutesPart = leftPad(minutes.toString(), 2);\r\n return signPart + hoursPart + (count >= 3 ? \":\" : \"\") + (count > 1 || minutes ? minutesPart : \"\")\r\n },\r\n X: function(date, count, useUtc) {\r\n if (useUtc || !date.getTimezoneOffset()) {\r\n return \"Z\"\r\n }\r\n return LDML_FORMATTERS.x(date, count, useUtc)\r\n },\r\n Z: function(date, count, useUtc) {\r\n return LDML_FORMATTERS.X(date, count >= 5 ? 3 : 2, useUtc)\r\n }\r\n};\r\nexport var getFormatter = function(format, dateParts) {\r\n return function(date) {\r\n var charIndex;\r\n var formatter;\r\n var char;\r\n var charCount = 0;\r\n var isEscaping = false;\r\n var isCurrentCharEqualsNext;\r\n var result = \"\";\r\n if (!date) {\r\n return null\r\n }\r\n if (!format) {\r\n return date\r\n }\r\n var useUtc = \"Z\" === format[format.length - 1] || \"'Z'\" === format.slice(-3);\r\n for (charIndex = 0; charIndex < format.length; charIndex++) {\r\n char = format[charIndex];\r\n formatter = LDML_FORMATTERS[char];\r\n isCurrentCharEqualsNext = char === format[charIndex + 1];\r\n charCount++;\r\n if (!isCurrentCharEqualsNext) {\r\n if (formatter && !isEscaping) {\r\n result += formatter(date, charCount, useUtc, dateParts)\r\n }\r\n charCount = 0\r\n }\r\n if (\"'\" === char && !isCurrentCharEqualsNext) {\r\n isEscaping = !isEscaping\r\n } else if (isEscaping || !formatter) {\r\n result += char\r\n }\r\n if (\"'\" === char && isCurrentCharEqualsNext) {\r\n charIndex++\r\n }\r\n }\r\n return result\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.utils.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n when,\r\n Deferred\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 {\r\n normalizeSortingInfo as normalizeSortingInfoUtility\r\n} 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\nimport {\r\n DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport ArrayStore from \"../../data/array_store\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../data/data_source/utils\";\r\nimport variableWrapper from \"../../core/utils/variable_wrapper\";\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 SCROLLING_MODE_INFINITE = \"infinite\";\r\nvar SCROLLING_MODE_VIRTUAL = \"virtual\";\r\nvar LEGACY_SCROLLING_MODE = \"scrolling.legacyMode\";\r\nvar SCROLLING_MODE_OPTION = \"scrolling.mode\";\r\nvar ROW_RENDERING_MODE_OPTION = \"scrolling.rowRenderingMode\";\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 = normalizeSortingInfoUtility(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\n\r\nfunction normalizeGroupingLoadOptions(group) {\r\n if (!Array.isArray(group)) {\r\n group = [group]\r\n }\r\n return group.map((item, i) => {\r\n if (isString(item)) {\r\n return {\r\n selector: item,\r\n isExpanded: i < group.length - 1\r\n }\r\n }\r\n return item\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 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 calculateLoadPanelPosition($element) {\r\n var $window = $(getWindow());\r\n if (getHeight($element) > getHeight($window)) {\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 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 var _filters$i;\r\n if (!filters[i]) {\r\n continue\r\n }\r\n if (1 === (null === (_filters$i = filters[i]) || void 0 === _filters$i ? void 0 : _filters$i.length) && \"!\" === filters[i][0]) {\r\n if (\"and\" === operation) {\r\n return [\"!\"]\r\n } else if (\"or\" === operation) {\r\n continue\r\n }\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 var isFocused = $element.is(\":focus\");\r\n eventsEngine.trigger($element, \"focus\");\r\n var isSelectTextOnEditingStart = component.option(\"editing.selectTextOnEditStart\");\r\n var element = $element.get(0);\r\n if (!isFocused && isSelectTextOnEditingStart && $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 isVirtualRowRendering: function(that) {\r\n var rowRenderingMode = that.option(ROW_RENDERING_MODE_OPTION);\r\n var isVirtualMode = that.option(SCROLLING_MODE_OPTION) === SCROLLING_MODE_VIRTUAL;\r\n var isAppendMode = that.option(SCROLLING_MODE_OPTION) === SCROLLING_MODE_INFINITE;\r\n if (false === that.option(LEGACY_SCROLLING_MODE) && (isVirtualMode || isAppendMode)) {\r\n return true\r\n }\r\n return rowRenderingMode === SCROLLING_MODE_VIRTUAL\r\n },\r\n getPixelRatio: function(window) {\r\n return window.devicePixelRatio || 1\r\n },\r\n getContentHeightLimit(browser) {\r\n if (browser.mozilla) {\r\n return 8e6\r\n }\r\n return 15e6 / this.getPixelRatio(getWindow())\r\n },\r\n normalizeLookupDataSource(lookup) {\r\n var lookupDataSourceOptions;\r\n if (lookup.items) {\r\n lookupDataSourceOptions = lookup.items\r\n } else {\r\n lookupDataSourceOptions = lookup.dataSource;\r\n if (isFunction(lookupDataSourceOptions) && !variableWrapper.isWrapped(lookupDataSourceOptions)) {\r\n lookupDataSourceOptions = lookupDataSourceOptions({})\r\n }\r\n }\r\n return normalizeDataSourceOptions(lookupDataSourceOptions)\r\n },\r\n getWrappedLookupDataSource(column, dataSource, filter) {\r\n var lookupDataSourceOptions = this.normalizeLookupDataSource(column.lookup);\r\n if (column.calculateCellValue !== column.defaultCalculateCellValue) {\r\n return lookupDataSourceOptions\r\n }\r\n var hasGroupPaging = dataSource.remoteOperations().groupPaging;\r\n var hasLookupOptimization = column.displayField && isString(column.displayField);\r\n var cachedUniqueRelevantItems;\r\n var lookupDataSource = _extends({}, lookupDataSourceOptions, {\r\n load: loadOptions => {\r\n var d = new Deferred;\r\n (loadOptions => {\r\n var group = normalizeGroupingLoadOptions(hasLookupOptimization ? [column.dataField, column.displayField] : column.dataField);\r\n var d = new Deferred;\r\n if (!hasGroupPaging && cachedUniqueRelevantItems) {\r\n d.resolve(cachedUniqueRelevantItems)\r\n } else {\r\n dataSource.load({\r\n filter: filter,\r\n group: group,\r\n take: hasGroupPaging ? loadOptions.take : void 0,\r\n skip: hasGroupPaging ? loadOptions.skip : void 0\r\n }).done(items => {\r\n cachedUniqueRelevantItems = items;\r\n d.resolve(items)\r\n }).fail(d.fail)\r\n }\r\n return d\r\n })(loadOptions).done(items => {\r\n if (0 === items.length) {\r\n d.resolve([])\r\n }\r\n var newDataSource;\r\n if (hasLookupOptimization) {\r\n var lookupItems = items.map(item => {\r\n var _column$displayValueM;\r\n return {\r\n [column.lookup.valueExpr]: item.key,\r\n [column.lookup.displayExpr]: null !== (_column$displayValueM = column.displayValueMap[item.key]) && void 0 !== _column$displayValueM ? _column$displayValueM : item.items[0].key\r\n }\r\n });\r\n newDataSource = new DataSource(_extends({}, lookupDataSourceOptions, loadOptions, {\r\n store: new ArrayStore({\r\n data: lookupItems,\r\n key: column.lookup.valueExpr\r\n })\r\n }))\r\n } else {\r\n var _filter = this.combineFilters(items.flatMap(data => data.key).map(key => [column.lookup.valueExpr, key]), \"or\");\r\n newDataSource = new DataSource(_extends({}, lookupDataSourceOptions, loadOptions, {\r\n filter: this.combineFilters([_filter, loadOptions.filter], \"and\")\r\n }))\r\n }\r\n if (!hasGroupPaging) {\r\n newDataSource.on(\"customizeStoreLoadOptions\", e => {\r\n e.storeLoadOptions.take = loadOptions.take;\r\n e.storeLoadOptions.skip = loadOptions.skip\r\n })\r\n }\r\n newDataSource.load().done(d.resolve).fail(d.fail)\r\n }).fail(d.fail);\r\n return d\r\n },\r\n key: column.lookup.valueExpr,\r\n byKey(key) {\r\n var d = Deferred();\r\n this.load({\r\n filter: [column.lookup.valueExpr, \"=\", key]\r\n }).done(arr => {\r\n d.resolve(arr[0])\r\n });\r\n return d.promise()\r\n }\r\n });\r\n return lookupDataSource\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/ldml/date.format.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport numberLocalization from \"../number\";\r\nvar ARABIC_COMMA = \"\\u060c\";\r\nvar FORMAT_SEPARATORS = \" .,:;/\\\\<>()-[]\" + ARABIC_COMMA;\r\nvar AM_PM_PATTERN = \". m.\";\r\nvar checkDigit = function(char) {\r\n var code = char && numberLocalization.convertDigits(char, false).charCodeAt(0);\r\n var zeroCode = numberLocalization.convertDigits(\"0\", false).charCodeAt(0);\r\n return zeroCode <= code && code < zeroCode + 10\r\n};\r\nvar checkPatternContinue = function(text, patterns, index, isDigit) {\r\n var char = text[index];\r\n var nextChar = text[index + 1];\r\n if (!isDigit) {\r\n if (\".\" === char || \" \" === char && text.slice(index - 1, index + 3) === AM_PM_PATTERN) {\r\n return true\r\n }\r\n if (\"-\" === char && !checkDigit(nextChar)) {\r\n return true\r\n }\r\n }\r\n var isDigitChanged = isDigit && patterns.some(pattern => text[index] !== pattern[index]);\r\n return FORMAT_SEPARATORS.indexOf(char) < 0 && isDigit === checkDigit(char) && (!isDigit || isDigitChanged)\r\n};\r\nvar getPatternStartIndex = function(defaultPattern, index) {\r\n if (!checkDigit(defaultPattern[index])) {\r\n while (index > 0 && !checkDigit(defaultPattern[index - 1]) && (\".\" === defaultPattern[index - 1] || FORMAT_SEPARATORS.indexOf(defaultPattern[index - 1]) < 0)) {\r\n index--\r\n }\r\n }\r\n return index\r\n};\r\nvar getDifference = function(defaultPattern, patterns, processedIndexes, isDigit) {\r\n var i = 0;\r\n var result = [];\r\n var patternsFilter = function(pattern) {\r\n return defaultPattern[i] !== pattern[i] && (void 0 === isDigit || checkDigit(defaultPattern[i]) === isDigit)\r\n };\r\n if (!Array.isArray(patterns)) {\r\n patterns = [patterns]\r\n }\r\n for (i = 0; i < defaultPattern.length; i++) {\r\n if (processedIndexes.indexOf(i) < 0 && patterns.filter(patternsFilter).length) {\r\n i = getPatternStartIndex(defaultPattern, i);\r\n do {\r\n isDigit = checkDigit(defaultPattern[i]);\r\n if (!result.length && !isDigit && checkDigit(patterns[0][i])) {\r\n break\r\n }\r\n result.push(i);\r\n processedIndexes.unshift(i);\r\n i++\r\n } while (defaultPattern[i] && checkPatternContinue(defaultPattern, patterns, i, isDigit));\r\n break\r\n }\r\n }\r\n if (1 === result.length && (\"0\" === defaultPattern[processedIndexes[0] - 1] || \"\\u0660\" === defaultPattern[processedIndexes[0] - 1])) {\r\n processedIndexes.unshift(processedIndexes[0] - 1)\r\n }\r\n return result\r\n};\r\nvar replaceCharsCore = function(pattern, indexes, char, patternPositions) {\r\n var baseCharIndex = indexes[0];\r\n var patternIndex = baseCharIndex < patternPositions.length ? patternPositions[baseCharIndex] : baseCharIndex;\r\n indexes.forEach((function(_, index) {\r\n pattern = pattern.substr(0, patternIndex + index) + (char.length > 1 ? char[index] : char) + pattern.substr(patternIndex + index + 1)\r\n }));\r\n if (1 === indexes.length) {\r\n pattern = pattern.replace(\"0\" + char, char + char);\r\n pattern = pattern.replace(\"\\u0660\" + char, char + char)\r\n }\r\n return pattern\r\n};\r\nvar replaceChars = function(pattern, indexes, char, patternPositions) {\r\n var i;\r\n var index;\r\n var patternIndex;\r\n if (!checkDigit(pattern[indexes[0]] || \"0\")) {\r\n var letterCount = Math.max(indexes.length <= 3 ? 3 : 4, char.length);\r\n while (indexes.length > letterCount) {\r\n index = indexes.pop();\r\n patternIndex = patternPositions[index];\r\n patternPositions[index] = -1;\r\n for (i = index + 1; i < patternPositions.length; i++) {\r\n patternPositions[i]--\r\n }\r\n pattern = pattern.substr(0, patternIndex) + pattern.substr(patternIndex + 1)\r\n }\r\n index = indexes[indexes.length - 1] + 1, patternIndex = index < patternPositions.length ? patternPositions[index] : index;\r\n while (indexes.length < letterCount) {\r\n indexes.push(indexes[indexes.length - 1] + 1);\r\n for (i = index; i < patternPositions.length; i++) {\r\n patternPositions[i]++\r\n }\r\n pattern = pattern.substr(0, patternIndex) + \" \" + pattern.substr(patternIndex)\r\n }\r\n }\r\n pattern = replaceCharsCore(pattern, indexes, char, patternPositions);\r\n return pattern\r\n};\r\nvar formatValue = function(value, formatter) {\r\n if (Array.isArray(value)) {\r\n return value.map((function(value) {\r\n return (formatter(value) || \"\").toString()\r\n }))\r\n }\r\n return (formatter(value) || \"\").toString()\r\n};\r\nvar ESCAPE_CHARS_REGEXP = /[a-zA-Z]/g;\r\nvar escapeChars = function(pattern, defaultPattern, processedIndexes, patternPositions) {\r\n var escapeIndexes = defaultPattern.split(\"\").map((function(char, index) {\r\n if (processedIndexes.indexOf(index) < 0 && (char.match(ESCAPE_CHARS_REGEXP) || \"'\" === char)) {\r\n return patternPositions[index]\r\n }\r\n return -1\r\n }));\r\n pattern = pattern.split(\"\").map((function(char, index) {\r\n var result = char;\r\n var isCurrentCharEscaped = escapeIndexes.indexOf(index) >= 0;\r\n var isPrevCharEscaped = index > 0 && escapeIndexes.indexOf(index - 1) >= 0;\r\n var isNextCharEscaped = escapeIndexes.indexOf(index + 1) >= 0;\r\n if (isCurrentCharEscaped) {\r\n if (!isPrevCharEscaped) {\r\n result = \"'\" + result\r\n }\r\n if (!isNextCharEscaped) {\r\n result += \"'\"\r\n }\r\n }\r\n return result\r\n })).join(\"\");\r\n return pattern\r\n};\r\nexport var getFormat = function(formatter) {\r\n var processedIndexes = [];\r\n var defaultPattern = formatValue(new Date(2009, 8, 8, 6, 5, 4), formatter);\r\n var patternPositions = defaultPattern.split(\"\").map((function(_, index) {\r\n return index\r\n }));\r\n var result = defaultPattern;\r\n var replacedPatterns = {};\r\n var datePatterns = [{\r\n date: new Date(2009, 8, 8, 6, 5, 4, 111),\r\n pattern: \"S\"\r\n }, {\r\n date: new Date(2009, 8, 8, 6, 5, 2),\r\n pattern: \"s\"\r\n }, {\r\n date: new Date(2009, 8, 8, 6, 2, 4),\r\n pattern: \"m\"\r\n }, {\r\n date: new Date(2009, 8, 8, 18, 5, 4),\r\n pattern: \"H\",\r\n isDigit: true\r\n }, {\r\n date: new Date(2009, 8, 8, 2, 5, 4),\r\n pattern: \"h\",\r\n isDigit: true\r\n }, {\r\n date: new Date(2009, 8, 8, 18, 5, 4),\r\n pattern: \"a\",\r\n isDigit: false\r\n }, {\r\n date: new Date(2009, 8, 1, 6, 5, 4),\r\n pattern: \"d\"\r\n }, {\r\n date: [new Date(2009, 8, 2, 6, 5, 4), new Date(2009, 8, 3, 6, 5, 4), new Date(2009, 8, 4, 6, 5, 4)],\r\n pattern: \"E\"\r\n }, {\r\n date: new Date(2009, 9, 6, 6, 5, 4),\r\n pattern: \"M\"\r\n }, {\r\n date: new Date(1998, 8, 8, 6, 5, 4),\r\n pattern: \"y\"\r\n }];\r\n if (!result) {\r\n return\r\n }\r\n datePatterns.forEach((function(test) {\r\n var diff = getDifference(defaultPattern, formatValue(test.date, formatter), processedIndexes, test.isDigit);\r\n var pattern = \"M\" === test.pattern && !replacedPatterns.d ? \"L\" : test.pattern;\r\n result = replaceChars(result, diff, pattern, patternPositions);\r\n replacedPatterns[pattern] = diff.length\r\n }));\r\n result = escapeChars(result, defaultPattern, processedIndexes, patternPositions);\r\n if (processedIndexes.length) {\r\n return result\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/default_date_names.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n map\r\n} from \"../core/utils/iterator\";\r\nvar MONTHS = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\r\nvar DAYS = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\r\nvar PERIODS = [\"AM\", \"PM\"];\r\nvar QUARTERS = [\"Q1\", \"Q2\", \"Q3\", \"Q4\"];\r\nvar cutCaptions = (captions, format) => {\r\n var lengthByFormat = {\r\n abbreviated: 3,\r\n short: 2,\r\n narrow: 1\r\n };\r\n return map(captions, caption => caption.substr(0, lengthByFormat[format]))\r\n};\r\nexport default {\r\n getMonthNames: function(format) {\r\n return cutCaptions(MONTHS, format)\r\n },\r\n getDayNames: function(format) {\r\n return cutCaptions(DAYS, format)\r\n },\r\n getQuarterNames: function(format) {\r\n return QUARTERS\r\n },\r\n getPeriodNames: function(format) {\r\n return PERIODS\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/format_helper.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n 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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-card',{attrs:{\"title\":\"Booking hiệu chỉnh sau checkout\"}},[_c('b-card-body',[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"2\"}},[_c('b-form-group',{attrs:{\"label\":\"Từ ngày\"}},[_c('date-range-picker',{ref:\"picker\",attrs:{\"single-date-picker\":true,\"ranges\":false,\"opens\":\"right\",\"time-picker\":false,\"time-picker-increment\":1,\"show-dropdowns\":true,\"auto-apply\":true,\"locale-data\":{\n format: 'mm/dd/YYYY',\n daysOfWeek: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n monthNames: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n firstDay: 0\n }},model:{value:(_vm.search.FromDate),callback:function ($$v) {_vm.$set(_vm.search, \"FromDate\", $$v)},expression:\"search.FromDate\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"2\"}},[_c('b-form-group',{attrs:{\"label\":\"Từ ngày\"}},[_c('date-range-picker',{ref:\"picker\",attrs:{\"single-date-picker\":true,\"ranges\":false,\"opens\":\"right\",\"time-picker\":false,\"time-picker-increment\":1,\"show-dropdowns\":true,\"auto-apply\":true,\"locale-data\":{\n format: 'mm/dd/YYYY',\n daysOfWeek: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n monthNames: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n firstDay: 0\n }},model:{value:(_vm.search.ToDate),callback:function ($$v) {_vm.$set(_vm.search, \"ToDate\", $$v)},expression:\"search.ToDate\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"3\"}},[_c('b-form-group',{attrs:{\"label\":\"Quét mã BDC\"}},[_c('v-select',{ref:\"listBDC\",staticClass:\"custom-select-bdc hide-dropdown\",attrs:{\"taggable\":\"\",\"multiple\":\"\",\"placeholder\":\"BDC\"},scopedSlots:_vm._u([{key:\"no-options\",fn:function(ref){\n var search = ref.search;\n var searching = ref.searching;\nreturn [(searching)?[_vm._v(\" No results found for \"),_c('em',[_vm._v(_vm._s(search))]),_vm._v(\". \")]:_c('em',{staticStyle:{\"opacity\":\"0.5\"}},[_vm._v(\"Quét mã BDC\")])]}}]),model:{value:(_vm.search.BDC),callback:function ($$v) {_vm.$set(_vm.search, \"BDC\", $$v)},expression:\"search.BDC\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"2\"}},[_c('b-form-group',{attrs:{\"label\":\"Chọn thao tác\"}},[_c('v-select',{attrs:{\"label\":\"KeyValue\",\"options\":_vm.listAction,\"reduce\":function (item) { return item.KeyCode; },\"clearable\":true,\"multiple\":\"\"},model:{value:(_vm.search.Action),callback:function ($$v) {_vm.$set(_vm.search, \"Action\", $$v)},expression:\"search.Action\"}})],1)],1),(_vm.listSale)?_c('b-col',{attrs:{\"cols\":\"2\"}},[_c('b-form-group',{attrs:{\"label\":\"Chọn người tạo\"}},[_c('v-select',{attrs:{\"label\":\"label\",\"options\":_vm.listSale,\"reduce\":function (item) { return item.id; },\"clearable\":true},model:{value:(_vm.search.CashierCode),callback:function ($$v) {_vm.$set(_vm.search, \"CashierCode\", $$v)},expression:\"search.CashierCode\"}})],1)],1):_vm._e(),_c('b-col',{staticStyle:{\"margin\":\"auto\"},attrs:{\"cols\":\"1\"}},[_c('b-button',{staticStyle:{\"float\":\"right\"},attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.getListBDCRevert()}}},[_vm._v(\" \"+_vm._s(_vm.$t('golf_common_search'))+\" \")])],1)],1)],1)],1),_c('b-card',[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"5\"}},[_c('b-form-group',{attrs:{\"label\":\"Quét mã BDC\"}},[_c('v-select',{ref:\"listBDC\",staticClass:\"custom-select-bdc hide-dropdown\",attrs:{\"taggable\":\"\",\"multiple\":\"\",\"placeholder\":\"BDC\"},scopedSlots:_vm._u([{key:\"no-options\",fn:function(ref){\n var search = ref.search;\n var searching = ref.searching;\nreturn [(searching)?[_vm._v(\" No results found for \"),_c('em',[_vm._v(_vm._s(search))]),_vm._v(\". \")]:_c('em',{staticStyle:{\"opacity\":\"0.5\"}},[_vm._v(\"Quét mã BDC\")])]}}]),model:{value:(_vm.listBDC),callback:function ($$v) {_vm.listBDC=$$v},expression:\"listBDC\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"6\"}},[_c('b-form-group',{attrs:{\"label\":\"Chọn thao tác\"}},[_c('v-select',{attrs:{\"label\":\"KeyValue\",\"options\":_vm.listAction,\"reduce\":function (item) { return item.KeyCode; },\"clearable\":true,\"multiple\":\"\"},model:{value:(_vm.listKeyCodeAction),callback:function ($$v) {_vm.listKeyCodeAction=$$v},expression:\"listKeyCodeAction\"}})],1)],1),_c('b-col',{staticClass:\"m-auto\",attrs:{\"cols\":\"1\"}},[_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.addAction()}}},[_vm._v(\" Thêm \")])],1)],1)],1),_c('b-card',[_c('b-row',[_c('b-col',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\"},attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"left-side\"},[_c('div',{staticClass:\"d-select-perPage\"},[_c('b-form-group',{staticStyle:{\"width\":\"230px\"},attrs:{\"label\":_vm.$t('golf_starter_result_on_page'),\"label-for\":\"h-first-name\",\"label-cols-md\":\"7\"}},[_c('v-select',{staticStyle:{\"min-width\":\"50px\"},attrs:{\"options\":_vm.optionPerPage,\"clearable\":false},model:{value:(_vm.perPage),callback:function ($$v) {_vm.perPage=$$v},expression:\"perPage\"}})],1)],1)]),_c('div',[_c('b-dropdown',{staticClass:\"mr-2\",attrs:{\"variant\":\"outline-primary\"},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('span',{staticClass:\"align-middle\"},[_vm._v(_vm._s(_vm.$t('golf_common_export')))])]},proxy:true}])},[_c('b-dropdown-item',{on:{\"click\":function($event){return _vm.exportExcel()}}},[_vm._v(\" \"+_vm._s(_vm.$t('golf_common_export_to_excel'))+\" \")])],1)],1)])],1),_c('b-overlay',{attrs:{\"show\":_vm.isLoading,\"opacity\":0.3,\"rounded\":\"sm\"}},[_c('div',[_c('DxDataGrid',{ref:\"tablePackage\",staticClass:\"table-starter\",attrs:{\"height\":_vm.heightTable,\"show-borders\":false,\"data-source\":_vm.ListBDCRevert,\"show-column-lines\":true,\"show-row-lines\":true,\"allow-column-reordering\":true,\"allow-column-resizing\":true,\"column-resizing-mode\":\"widget\"},scopedSlots:_vm._u([{key:\"CreateDate\",fn:function(ref){\n var data = ref.data;\nreturn [(data.data.CreateDate)?_c('div',[_vm._v(\" \"+_vm._s(_vm.convertUTC(data.data.CreateDate,'DD/MM/YYYY'))+\" \")]):_vm._e()]}},{key:\"UpdateDate\",fn:function(ref){\n var data = ref.data;\nreturn [(data.data.UpdateDate)?_c('div',[_vm._v(\" \"+_vm._s(_vm.convertUTC(data.data.UpdateDate,'DD/MM/YYYY'))+\" \")]):_vm._e()]}},{key:\"Action\",fn:function(ref){\n var data = ref.data;\nreturn [(data.data.Action)?_c('div',[_vm._v(\" \"+_vm._s(_vm.listAction.find(function (x) { return x.KeyCode == data.data.Action; }) ? _vm.listAction.find(function (x) { return x.KeyCode == data.data.Action; }).KeyValue : '')+\" \")]):_vm._e()]}},{key:\"actionTable\",fn:function(ref){\n var data = ref.data;\nreturn [_c('div',[(!data.data.IsDeleted)?_c('ez-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":\"ezGolf-icon-trash\",\"size\":\"15\",\"color\":\"#ea5455\"},on:{\"click\":function($event){return _vm.deleteBDCRevert(data.data)}}}):_vm._e()],1)]}}])},[_c('DxFilterRow',{attrs:{\"visible\":true}}),_vm._l((_vm.configTable),function(item,i){return _c('DxColumn',{key:i.field,attrs:{\"caption\":item.caption,\"data-field\":item.field,\"data-type\":item.type,\"alignment\":item.alignment,\"cell-template\":(item.cellTemplate) ? item.cellTemplate : false,\"editor-options\":item.editorOptions,\"width\":item.width}},_vm._l((item.bands),function(band,j){return _c('DxColumn',{key:band.field,attrs:{\"caption\":band.caption,\"data-field\":band.field,\"data-type\":band.type,\"group-cell-template\":_vm.customText,\"cell-template\":(band.cellTemplate) ? band.cellTemplate : false,\"alignment\":band.alignment,\"width\":item.width}})}),1)}),_c('DxColumnFixing',{attrs:{\"enabled\":true}}),_c('DxGroupPanel',{attrs:{\"visible\":false}}),_c('DxPaging',{attrs:{\"page-size\":_vm.perPage}}),_c('DxPager',{attrs:{\"visible\":true,\"display-mode\":\"full\",\"show-info\":true}})],2)],1)])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { booking } from '@/api/booking'\r\nimport 'devextreme/dist/css/dx.light.css'\r\nimport { Workbook } from 'exceljs'\r\nimport { exportDataGrid } from 'devextreme/excel_exporter'\r\nimport { saveAs } from 'file-saver-es'\r\nimport { convertUTC } from '@/@core/utils/utils'\r\nimport {\r\n DxDataGrid,\r\n DxColumn,\r\n DxEditing,\r\n DxFilterRow,\r\n DxHeaderFilter,\r\n DxGroupPanel,\r\n DxGrouping,\r\n DxScrolling,\r\n DxPaging,\r\n DxPager,\r\n DxSummary,\r\n DxLookup,\r\n DxTotalItem,\r\n DxGroupItem,\r\n DxMasterDetail,\r\n DxStringLengthRule,\r\n DxRequiredRule,\r\n DxRangeRule,\r\n DxValueFormat,\r\n DxColumnChooser,\r\n DxColumnFixing,\r\n DxSelection,\r\n DxExport,\r\n} from 'devextreme-vue/data-grid'\r\nconst dataGridRef = 'tablePackage'\r\nexport default {\r\n components: {\r\n DxDataGrid,\r\n DxColumn,\r\n DxEditing,\r\n DxFilterRow,\r\n DxHeaderFilter,\r\n DxGroupPanel,\r\n DxGrouping,\r\n DxScrolling,\r\n DxPaging,\r\n DxPager,\r\n DxSummary,\r\n DxLookup,\r\n DxTotalItem,\r\n DxGroupItem,\r\n DxMasterDetail,\r\n DxStringLengthRule,\r\n DxRequiredRule,\r\n DxRangeRule,\r\n DxValueFormat,\r\n DxColumnChooser,\r\n DxColumnFixing,\r\n DxSelection,\r\n DxExport\r\n },\r\n data() {\r\n return {\r\n listAction: [],\r\n listBDC: [],\r\n listKeyCodeAction: [],\r\n ListBDCRevert: [],\r\n currentPage: 1,\r\n perPage: 50,\r\n dataGridRef: 'tablePackage',\r\n optionPerPage: [10, 50, 100],\r\n configTable: [\r\n {\r\n caption: 'BDC',\r\n field: 'Bdc',\r\n isShow: true,\r\n alignment: 'center',\r\n width: '15%',\r\n },\r\n {\r\n caption: 'Action',\r\n field: 'Action',\r\n isShow: true,\r\n alignment: 'center',\r\n cellTemplate: 'Action',\r\n width: '20%',\r\n },\r\n {\r\n caption: 'Người tạo',\r\n field: 'CreateByName',\r\n isShow: true,\r\n alignment: 'center',\r\n width: '15%',\r\n },\r\n {\r\n caption: 'Ngày tạo',\r\n field: 'CreateDate',\r\n cellTemplate: 'CreateDate',\r\n isShow: true,\r\n alignment: 'center',\r\n width: '15%',\r\n },\r\n {\r\n caption: 'Người thay đổi',\r\n field: 'UpdateByName',\r\n isShow: true,\r\n alignment: 'center',\r\n width: '15%',\r\n },\r\n {\r\n caption: 'Ngày thay đổi',\r\n field: 'UpdateDate',\r\n cellTemplate: 'UpdateDate',\r\n isShow: true,\r\n alignment: 'center',\r\n width: '15%',\r\n },\r\n {\r\n caption: '',\r\n field: 'action',\r\n cellTemplate: 'actionTable',\r\n isShow: true,\r\n alignment: 'center',\r\n width: '5%',\r\n }\r\n\r\n ],\r\n search: {\r\n FromDate: this.getUTC('start', 'day'),\r\n ToDate: this.getUTC('start', 'day'),\r\n Action: [],\r\n BDC: [],\r\n CashierCode: null\r\n },\r\n listSale: null,\r\n windowHeight: 0,\r\n heightTable: 400,\r\n isLoading: false\r\n }\r\n },\r\n created() {\r\n this.getConfig_RCOM01()\r\n this.getListCashier_RCS01()\r\n this.getListBDCRevert()\r\n },\r\n computed: {\r\n dataGrid() {\r\n return this.$refs[dataGridRef].instance\r\n },\r\n },\r\n watch: {\r\n windowHeight(value) {\r\n if (value > 600) {\r\n this.heightTable = value - 200\r\n }\r\n }\r\n },\r\n methods: {\r\n async getConfig_RCOM01() {\r\n this.listAction = []\r\n const responseBooking_Config = await booking.getConfigInfo({ KeyGroup: 'BOOKING_CONFIG' })\r\n const listActionConfig = JSON.parse(responseBooking_Config.Data.find(x => x.KeyCode === 'BOOKING_REVERT_BDC_ACTION').KeyValue)\r\n const responseTransaction_Config = await booking.getConfigInfo({ KeyGroup: 'TRANSACTION_CONFIG' })\r\n if (responseTransaction_Config.Status === '200') {\r\n responseTransaction_Config.Data.forEach(x => {\r\n if (listActionConfig.find(y => y === x.KeyCode)) {\r\n this.listAction.push(x)\r\n }\r\n });\r\n }\r\n },\r\n async addAction() {\r\n this.isLoading = true\r\n const body = {\r\n BookingDetailId: [],\r\n Action: this.listKeyCodeAction,\r\n BDC: this.listBDC,\r\n }\r\n const response = await booking.api_IBKR01(body)\r\n this.showResToast(response)\r\n if (response.Status === '200') {\r\n this.getListBDCRevert()\r\n this.listBDC = []\r\n this.listKeyCodeAction = []\r\n } else {\r\n this.isLoading = false\r\n }\r\n },\r\n async getListBDCRevert() {\r\n this.isLoading = true\r\n const response = await booking.api_RBKR01(this.search)\r\n this.isLoading = false\r\n if(response.Status === '200') {\r\n this.ListBDCRevert = response.Data.BookingDetailRevert\r\n } \r\n },\r\n async deleteBDCRevert(data) {\r\n const body = {\r\n BookingDetailRevertId: [data.Id]\r\n }\r\n const response = await booking.api_DBKR01(body)\r\n this.showResToast(response)\r\n if(response.Status === '200') {\r\n this.getListBDCRevert()\r\n } else {\r\n this.isLoading = false\r\n }\r\n },\r\n async getListCashier_RCS01() {\r\n await booking.api_RCS01().then(response => {\r\n if (response.Status === '200') {\r\n this.listSale = response?.Data?.Cashier.map(x => ({\r\n id: x.Id,\r\n label: x.CashierName,\r\n }))\r\n }\r\n })\r\n },\r\n exportExcel() {\r\n const workbook = new Workbook()\r\n const worksheet = workbook.addWorksheet('Booking')\r\n const timeZone = localStorage.getItem('timeZone')\r\n const listActionTemp = this.listAction\r\n exportDataGrid({\r\n component: this.dataGrid,\r\n worksheet,\r\n autoFilterEnabled: true,\r\n PrintSelectedRowsOnly: true,\r\n topLeftCell: { row: 4, column: 1 },\r\n customizeCell: function (options) {\r\n const { gridCell, excelCell } = options;\r\n if (gridCell.rowType === 'data') {\r\n if (gridCell.column.dataField == 'CreateDate') {\r\n excelCell.value = convertUTC(gridCell.value, 'DD/MM/YYYY')\r\n }\r\n if (gridCell.column.dataField == 'UpdateDate') {\r\n excelCell.value = convertUTC(gridCell.value, 'DD/MM/YYYY')\r\n }\r\n if (gridCell.column.dataField == 'Action') {\r\n excelCell.value = listActionTemp.find(x => x.KeyCode == gridCell.value) ? listActionTemp.find(x => x.KeyCode == gridCell.value).KeyValue : ''\r\n }\r\n }\r\n }\r\n }).then(cellRange => {\r\n // header\r\n const headerRow = worksheet.getRow(2)\r\n headerRow.height = 30\r\n worksheet.mergeCells(2, 1, 2, 8)\r\n\r\n headerRow.getCell(1).value = `DANH SÁCH BDC (từ ${this.convertUTC(this.search.FromDate, 'DD/MM/YYYY')} đến ${this.convertUTC(this.search.ToDate, 'DD/MM/YYYY')})`\r\n headerRow.getCell(1).font = { name: 'Segoe UI Light', size: 22 }\r\n headerRow.getCell(1).alignment = { horizontal: 'center' }\r\n\r\n // footer\r\n const footerRowIndex = cellRange.to.row + 2\r\n const footerRow = worksheet.getRow(footerRowIndex)\r\n worksheet.mergeCells(footerRowIndex, 1, footerRowIndex, 8)\r\n footerRow.getCell(1).font = { color: { argb: 'BFBFBF' }, italic: true }\r\n footerRow.getCell(1).alignment = { horizontal: 'right' }\r\n }).then(() => {\r\n workbook.xlsx.writeBuffer().then(buffer => {\r\n saveAs(new Blob([buffer], { type: 'application/octet-stream' }), `BDCRevert${this.convertUTC(this.search.FromDate, 'DD/MM/YYYY')}-${this.convertUTC(this.search.ToDate, 'DD/MM/YYYY')}.xlsx`)\r\n })\r\n })\r\n }\r\n },\r\n}","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!./revert-BDC.js?vue&type=script&lang=js&external\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!./revert-BDC.js?vue&type=script&lang=js&external\"","import { render, staticRenderFns } from \"./revert-BDC.vue?vue&type=template&id=8ce46faa\"\nimport script from \"./revert-BDC.js?vue&type=script&lang=js&external\"\nexport * from \"./revert-BDC.js?vue&type=script&lang=js&external\"\nimport style0 from \"./revert-BDC.vue?vue&type=style&index=0&id=8ce46faa&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/**\r\n * DevExtreme (esm/ui/shared/filtering.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDate,\r\n isDefined\r\n} from \"../../core/utils/type\";\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 = dateIntervals.indexOf(interval);\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 {\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/localization/ldml/date.parser.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n escapeRegExp\r\n} from \"../../core/utils/common\";\r\nimport {\r\n logger\r\n} from \"../../core/utils/console\";\r\nvar FORMAT_TYPES = {\r\n 3: \"abbreviated\",\r\n 4: \"wide\",\r\n 5: \"narrow\"\r\n};\r\nvar monthRegExpGenerator = function(count, dateParts) {\r\n if (count > 2) {\r\n return Object.keys(FORMAT_TYPES).map((function(count) {\r\n return [\"format\", \"standalone\"].map((function(type) {\r\n return dateParts.getMonthNames(FORMAT_TYPES[count], type).join(\"|\")\r\n })).join(\"|\")\r\n })).join(\"|\")\r\n }\r\n return 2 === count ? \"1[012]|0?[1-9]\" : \"0??[1-9]|1[012]\"\r\n};\r\nvar PATTERN_REGEXPS = {\r\n \":\": function(count, dateParts) {\r\n var countSuffix = count > 1 ? \"{\".concat(count, \"}\") : \"\";\r\n var timeSeparator = escapeRegExp(dateParts.getTimeSeparator());\r\n \":\" !== timeSeparator && (timeSeparator = \"\".concat(timeSeparator, \"|:\"));\r\n return \"\".concat(timeSeparator).concat(countSuffix)\r\n },\r\n y: function(count) {\r\n return 2 === count ? \"[0-9]{\".concat(count, \"}\") : \"[0-9]+?\"\r\n },\r\n M: monthRegExpGenerator,\r\n L: monthRegExpGenerator,\r\n Q: function(count, dateParts) {\r\n if (count > 2) {\r\n return dateParts.getQuarterNames(FORMAT_TYPES[count], \"format\").join(\"|\")\r\n }\r\n return \"0?[1-4]\"\r\n },\r\n E: function(count, dateParts) {\r\n return \"\\\\D*\"\r\n },\r\n a: function(count, dateParts) {\r\n return dateParts.getPeriodNames(FORMAT_TYPES[count < 3 ? 3 : count], \"format\").join(\"|\")\r\n },\r\n d: function(count) {\r\n return 2 === count ? \"3[01]|[12][0-9]|0?[1-9]\" : \"0??[1-9]|[12][0-9]|3[01]\"\r\n },\r\n H: function(count) {\r\n return 2 === count ? \"2[0-3]|1[0-9]|0?[0-9]\" : \"0??[0-9]|1[0-9]|2[0-3]\"\r\n },\r\n h: function(count) {\r\n return 2 === count ? \"1[012]|0?[1-9]\" : \"0??[1-9]|1[012]\"\r\n },\r\n m: function(count) {\r\n return 2 === count ? \"[1-5][0-9]|0?[0-9]\" : \"0??[0-9]|[1-5][0-9]\"\r\n },\r\n s: function(count) {\r\n return 2 === count ? \"[1-5][0-9]|0?[0-9]\" : \"0??[0-9]|[1-5][0-9]\"\r\n },\r\n S: function(count) {\r\n return \"[0-9]{1,\".concat(count, \"}\")\r\n },\r\n w: function(count) {\r\n return 2 === count ? \"[1-5][0-9]|0?[0-9]\" : \"0??[0-9]|[1-5][0-9]\"\r\n }\r\n};\r\nvar parseNumber = Number;\r\nvar caseInsensitiveIndexOf = function(array, value) {\r\n return array.map(item => item.toLowerCase()).indexOf(value.toLowerCase())\r\n};\r\nvar monthPatternParser = function(text, count, dateParts) {\r\n if (count > 2) {\r\n return [\"format\", \"standalone\"].map((function(type) {\r\n return Object.keys(FORMAT_TYPES).map((function(count) {\r\n var monthNames = dateParts.getMonthNames(FORMAT_TYPES[count], type);\r\n return caseInsensitiveIndexOf(monthNames, text)\r\n }))\r\n })).reduce((function(a, b) {\r\n return a.concat(b)\r\n })).filter((function(index) {\r\n return index >= 0\r\n }))[0]\r\n }\r\n return parseNumber(text) - 1\r\n};\r\nvar PATTERN_PARSERS = {\r\n y: function(text, count) {\r\n var year = parseNumber(text);\r\n if (2 === count) {\r\n return year < 30 ? 2e3 + year : 1900 + year\r\n }\r\n return year\r\n },\r\n M: monthPatternParser,\r\n L: monthPatternParser,\r\n Q: function(text, count, dateParts) {\r\n if (count > 2) {\r\n return dateParts.getQuarterNames(FORMAT_TYPES[count], \"format\").indexOf(text)\r\n }\r\n return parseNumber(text) - 1\r\n },\r\n E: function(text, count, dateParts) {\r\n var dayNames = dateParts.getDayNames(FORMAT_TYPES[count < 3 ? 3 : count], \"format\");\r\n return caseInsensitiveIndexOf(dayNames, text)\r\n },\r\n a: function(text, count, dateParts) {\r\n var periodNames = dateParts.getPeriodNames(FORMAT_TYPES[count < 3 ? 3 : count], \"format\");\r\n return caseInsensitiveIndexOf(periodNames, text)\r\n },\r\n d: parseNumber,\r\n H: parseNumber,\r\n h: parseNumber,\r\n m: parseNumber,\r\n s: parseNumber,\r\n S: function(text, count) {\r\n count = Math.max(count, 3);\r\n text = text.slice(0, 3);\r\n while (count < 3) {\r\n text += \"0\";\r\n count++\r\n }\r\n return parseNumber(text)\r\n }\r\n};\r\nvar ORDERED_PATTERNS = [\"y\", \"M\", \"d\", \"h\", \"m\", \"s\", \"S\"];\r\nvar PATTERN_SETTERS = {\r\n y: \"setFullYear\",\r\n M: \"setMonth\",\r\n L: \"setMonth\",\r\n a: function(date, value, datePartValues) {\r\n var hours = date.getHours();\r\n var hourPartValue = datePartValues.h;\r\n if (void 0 !== hourPartValue && hourPartValue !== hours) {\r\n hours--\r\n }\r\n if (!value && 12 === hours) {\r\n hours = 0\r\n } else if (value && 12 !== hours) {\r\n hours += 12\r\n }\r\n date.setHours(hours)\r\n },\r\n d: \"setDate\",\r\n H: \"setHours\",\r\n h: \"setHours\",\r\n m: \"setMinutes\",\r\n s: \"setSeconds\",\r\n S: \"setMilliseconds\"\r\n};\r\nvar getSameCharCount = function(text, index) {\r\n var char = text[index];\r\n if (!char) {\r\n return 0\r\n }\r\n var count = 0;\r\n do {\r\n index++;\r\n count++\r\n } while (text[index] === char);\r\n return count\r\n};\r\nvar createPattern = function(char, count) {\r\n var result = \"\";\r\n for (var i = 0; i < count; i++) {\r\n result += char\r\n }\r\n return result\r\n};\r\nexport var getRegExpInfo = function(format, dateParts) {\r\n var regexpText = \"\";\r\n var stubText = \"\";\r\n var isEscaping;\r\n var patterns = [];\r\n var addPreviousStub = function() {\r\n if (stubText) {\r\n patterns.push(\"'\".concat(stubText, \"'\"));\r\n regexpText += \"\".concat(escapeRegExp(stubText), \")\");\r\n stubText = \"\"\r\n }\r\n };\r\n for (var i = 0; i < format.length; i++) {\r\n var char = format[i];\r\n var isEscapeChar = \"'\" === char;\r\n var regexpPart = PATTERN_REGEXPS[char];\r\n if (isEscapeChar) {\r\n isEscaping = !isEscaping;\r\n if (\"'\" !== format[i - 1]) {\r\n continue\r\n }\r\n }\r\n if (regexpPart && !isEscaping) {\r\n var count = getSameCharCount(format, i);\r\n var pattern = createPattern(char, count);\r\n addPreviousStub();\r\n patterns.push(pattern);\r\n regexpText += \"(\".concat(regexpPart(count, dateParts), \")\");\r\n i += count - 1\r\n } else {\r\n if (!stubText) {\r\n regexpText += \"(\"\r\n }\r\n stubText += char\r\n }\r\n }\r\n addPreviousStub();\r\n if (!isPossibleForParsingFormat(patterns)) {\r\n logger.warn(\"The following format may be parsed incorrectly: \".concat(format, \".\"))\r\n }\r\n return {\r\n patterns: patterns,\r\n regexp: new RegExp(\"^\".concat(regexpText, \"$\"), \"i\")\r\n }\r\n};\r\nvar digitFieldSymbols = [\"d\", \"H\", \"h\", \"m\", \"s\", \"w\", \"M\", \"L\", \"Q\"];\r\nexport var isPossibleForParsingFormat = function(patterns) {\r\n var isDigitPattern = pattern => {\r\n if (!pattern) {\r\n return false\r\n }\r\n var char = pattern[0];\r\n return [\"y\", \"S\"].includes(char) || digitFieldSymbols.includes(char) && pattern.length < 3\r\n };\r\n var possibleForParsing = true;\r\n var ambiguousDigitPatternsCount = 0;\r\n return patterns.every((pattern, index, patterns) => {\r\n if (isDigitPattern(pattern)) {\r\n if ((pattern => \"S\" !== pattern[0] && 2 !== pattern.length)(pattern)) {\r\n possibleForParsing = ++ambiguousDigitPatternsCount < 2\r\n }\r\n if (!isDigitPattern(patterns[index + 1])) {\r\n ambiguousDigitPatternsCount = 0\r\n }\r\n }\r\n return possibleForParsing\r\n })\r\n};\r\nexport var getPatternSetters = function() {\r\n return PATTERN_SETTERS\r\n};\r\nvar setPatternPart = function(date, pattern, text, dateParts, datePartValues) {\r\n var patternChar = pattern[0];\r\n var partSetter = PATTERN_SETTERS[patternChar];\r\n var partParser = PATTERN_PARSERS[patternChar];\r\n if (partSetter && partParser) {\r\n var value = partParser(text, pattern.length, dateParts);\r\n datePartValues[pattern] = value;\r\n if (date[partSetter]) {\r\n date[partSetter](value)\r\n } else {\r\n partSetter(date, value, datePartValues)\r\n }\r\n }\r\n};\r\nvar setPatternPartFromNow = function(date, pattern, now) {\r\n var setterName = PATTERN_SETTERS[pattern];\r\n var getterName = \"g\" + setterName.substr(1);\r\n var value = now[getterName]();\r\n date[setterName](value)\r\n};\r\nvar getShortPatterns = function(fullPatterns) {\r\n return fullPatterns.map((function(pattern) {\r\n if (\"'\" === pattern[0]) {\r\n return \"\"\r\n } else {\r\n return \"H\" === pattern[0] ? \"h\" : pattern[0]\r\n }\r\n }))\r\n};\r\nvar getMaxOrderedPatternIndex = function(patterns) {\r\n var indexes = patterns.map((function(pattern) {\r\n return ORDERED_PATTERNS.indexOf(pattern)\r\n }));\r\n return Math.max.apply(Math, indexes)\r\n};\r\nvar getOrderedFormatPatterns = function(formatPatterns) {\r\n var otherPatterns = formatPatterns.filter((function(pattern) {\r\n return ORDERED_PATTERNS.indexOf(pattern) < 0\r\n }));\r\n return ORDERED_PATTERNS.concat(otherPatterns)\r\n};\r\nexport var getParser = function(format, dateParts) {\r\n var regExpInfo = getRegExpInfo(format, dateParts);\r\n return function(text) {\r\n var regExpResult = regExpInfo.regexp.exec(text);\r\n if (regExpResult) {\r\n var now = new Date;\r\n var date = new Date(now.getFullYear(), 0, 1);\r\n var formatPatterns = getShortPatterns(regExpInfo.patterns);\r\n var maxPatternIndex = getMaxOrderedPatternIndex(formatPatterns);\r\n var orderedFormatPatterns = getOrderedFormatPatterns(formatPatterns);\r\n var datePartValues = {};\r\n orderedFormatPatterns.forEach((function(pattern, index) {\r\n if (!pattern || index < ORDERED_PATTERNS.length && index > maxPatternIndex) {\r\n return\r\n }\r\n var patternIndex = formatPatterns.indexOf(pattern);\r\n if (patternIndex >= 0) {\r\n var regExpPattern = regExpInfo.patterns[patternIndex];\r\n var regExpText = regExpResult[patternIndex + 1];\r\n setPatternPart(date, regExpPattern, regExpText, dateParts, datePartValues)\r\n } else {\r\n setPatternPartFromNow(date, pattern, now)\r\n }\r\n }));\r\n return date\r\n }\r\n return null\r\n }\r\n};\r\n","/*!\n\nJSZip v3.10.1 - A JavaScript class for generating and reading zip files\n\n\n(c) 2009-2016 Stuart Knightley \nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/main/LICENSE\n*/\n\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=e()}}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t=\"function\"==typeof require&&require;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error(\"Cannot find module '\"+r+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,e=0;e>2,s=(3&t)<<4|r>>4,a=1>6:64,o=2>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l}},{\"./support\":30,\"./utils\":32}],2:[function(e,t,r){\"use strict\";var n=e(\"./external\"),i=e(\"./stream/DataWorker\"),s=e(\"./stream/Crc32Probe\"),a=e(\"./stream/DataLengthProbe\");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),t=this;return e.on(\"end\",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(t.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",t)},t.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(e,t,r){\"use strict\";var n=e(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(){return new n(\"STORE compression\")},uncompressWorker:function(){return new n(\"STORE decompression\")}},r.DEFLATE=e(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(e,t,r){\"use strict\";var n=e(\"./utils\");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?\"string\"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length,0):0}},{\"./utils\":32}],5:[function(e,t,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){\"use strict\";var n=null;n=\"undefined\"!=typeof Promise?Promise:e(\"lie\"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,i=e(\"pako\"),s=e(\"./utils\"),a=e(\"./stream/GenericWorker\"),o=n?\"uint8array\":\"array\";function h(e,t){a.call(this,\"FlateWorker/\"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}r.magic=\"\\b\\0\",s.inherits(h,a),h.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},r.compressWorker=function(e){return new h(\"Deflate\",e)},r.uncompressWorker=function(){return new h(\"Inflate\",{})}},{\"./stream/GenericWorker\":28,\"./utils\":32,pako:38}],8:[function(e,t,r){\"use strict\";function A(e,t){var r,n=\"\";for(r=0;r>>=8;return n}function n(e,t,r,n,i,s){var a,o,h=e.file,u=e.compression,l=s!==O.utf8encode,f=I.transformTo(\"string\",s(h.name)),c=I.transformTo(\"string\",O.utf8encode(h.name)),d=h.comment,p=I.transformTo(\"string\",s(d)),m=I.transformTo(\"string\",O.utf8encode(d)),_=c.length!==h.name.length,g=m.length!==d.length,b=\"\",v=\"\",y=\"\",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(x.crc32=e.crc32,x.compressedSize=e.compressedSize,x.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),\"UNIX\"===i?(C=798,z|=function(e,t){var r=e;return e||(r=t?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(e){return 63&(e||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+c,b+=\"up\"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+=\"uc\"+A(y.length,2)+y);var E=\"\";return E+=\"\\n\\0\",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+\"\\0\\0\\0\\0\"+A(z,4)+A(n,4)+f+b+p}}var I=e(\"../utils\"),i=e(\"../stream/GenericWorker\"),O=e(\"../utf8\"),B=e(\"../crc32\"),R=e(\"../signature\");function s(e,t,r,n){i.call(this,\"ZipFileWorker\"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}I.inherits(s,i),s.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,i.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}))},s.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=n(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=n(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),t)this.push({data:function(e){return R.DATA_DESCRIPTOR+A(e.crc32,4)+A(e.compressedSize,4)+A(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo(\"string\",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{\"../utils\":32}],19:[function(e,t,r){\"use strict\";var n=e(\"./Uint8ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./Uint8ArrayReader\":21}],20:[function(e,t,r){\"use strict\";var n=e(\"./DataReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./DataReader\":18}],21:[function(e,t,r){\"use strict\";var n=e(\"./ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./ArrayReader\":17}],22:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../support\"),s=e(\"./ArrayReader\"),a=e(\"./StringReader\"),o=e(\"./NodeBufferReader\"),h=e(\"./Uint8ArrayReader\");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),\"string\"!==t||i.uint8array?\"nodebuffer\"===t?new o(e):i.uint8array?new h(n.transformTo(\"uint8array\",e)):new s(n.transformTo(\"array\",e)):new a(e)}},{\"../support\":30,\"../utils\":32,\"./ArrayReader\":17,\"./NodeBufferReader\":19,\"./StringReader\":20,\"./Uint8ArrayReader\":21}],23:[function(e,t,r){\"use strict\";r.LOCAL_FILE_HEADER=\"PK\u0003\u0004\",r.CENTRAL_FILE_HEADER=\"PK\u0001\u0002\",r.CENTRAL_DIRECTORY_END=\"PK\u0005\u0006\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\u0006\u0007\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\u0006\u0006\",r.DATA_DESCRIPTOR=\"PK\u0007\\b\"},{}],24:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../utils\");function s(e){n.call(this,\"ConvertWorker to \"+e),this.destType=e}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],25:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../crc32\");function s(){n.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0)}e(\"../utils\").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=s},{\"../crc32\":4,\"../utils\":32,\"./GenericWorker\":28}],26:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataLengthProbe for \"+e),this.propName=e,this.withStreamInfo(e,0)}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],27:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataWorker\");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=\"\",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat()},function(e){t.error(e)})}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case\"string\":e=this.data.substring(this.index,t);break;case\"uint8array\":e=this.data.subarray(this.index,t);break;case\"array\":case\"nodebuffer\":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],28:[function(e,t,r){\"use strict\";function n(e){this.name=e||\"default\",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(e){this.emit(\"data\",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit(\"end\"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit(\"error\",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit(\"error\",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var r=0;r \"+e:e}},t.exports=n},{}],29:[function(e,t,r){\"use strict\";var h=e(\"../utils\"),i=e(\"./ConvertWorker\"),s=e(\"./GenericWorker\"),u=e(\"../base64\"),n=e(\"../support\"),a=e(\"../external\"),o=null;if(n.nodestream)try{o=e(\"../nodejs/NodejsStreamOutputAdapter\")}catch(e){}function l(e,o){return new a.Promise(function(t,r){var n=[],i=e._internalType,s=e._outputType,a=e._mimeType;e.on(\"data\",function(e,t){n.push(e),o&&o(t)}).on(\"error\",function(e){n=[],r(e)}).on(\"end\",function(){try{var e=function(e,t,r){switch(e){case\"blob\":return h.newBlob(h.transformTo(\"arraybuffer\",t),r);case\"base64\":return u.encode(t);default:return h.transformTo(e,t)}}(s,function(e,t){var r,n=0,i=null,s=0;for(r=0;r>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t}(e)},s.utf8decode=function(e){return h.nodebuffer?o.transformTo(\"nodebuffer\",e).toString(\"utf-8\"):function(e){var t,r,n,i,s=e.length,a=new Array(2*s);for(t=r=0;t>10&1023,a[r++]=56320|1023&n)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(e=o.transformTo(h.uint8array?\"uint8array\":\"array\",e))},o.inherits(a,n),a.prototype.processChunk=function(e){var t=o.transformTo(h.uint8array?\"uint8array\":\"array\",e.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=t;(t=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),t.set(r,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var n=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}(t),i=t;n!==t.length&&(h.uint8array?(i=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(i=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:s.utf8decode(i),meta:e.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,n),l.prototype.processChunk=function(e){this.push({data:s.utf8encode(e.data),meta:e.meta})},s.Utf8EncodeWorker=l},{\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./support\":30,\"./utils\":32}],32:[function(e,t,a){\"use strict\";var o=e(\"./support\"),h=e(\"./base64\"),r=e(\"./nodejsUtils\"),u=e(\"./external\");function n(e){return e}function l(e,t){for(var r=0;r>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=n(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t},r.buf2binstring=function(e){return l(e,e.length)},r.binstring2buf=function(e){for(var t=new h.Buf8(e.length),r=0,n=t.length;r>10&1023,o[n++]=56320|1023&i)}return l(o,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}},{\"./common\":41}],43:[function(e,t,r){\"use strict\";t.exports=function(e,t,r,n){for(var i=65535&e|0,s=e>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return-1^e}},{}],46:[function(e,t,r){\"use strict\";var h,c=e(\"../utils/common\"),u=e(\"./trees\"),d=e(\"./adler32\"),p=e(\"./crc32\"),n=e(\"./messages\"),l=0,f=4,m=0,_=-2,g=-1,b=4,i=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(e,t){return e.msg=n[t],t}function T(e){return(e<<1)-(4e.avail_out&&(r=e.avail_out),0!==r&&(c.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function N(e,t){u._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,F(e.strm)}function U(e,t){e.pending_buf[e.pending++]=t}function P(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function L(e,t){var r,n,i=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,h=e.strstart>e.w_size-z?e.strstart-(e.w_size-z):0,u=e.window,l=e.w_mask,f=e.prev,c=e.strstart+S,d=u[s+a-1],p=u[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(u[(r=t)+a]===p&&u[r+a-1]===d&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&sh&&0!=--i);return a<=e.lookahead?a:e.lookahead}function j(e){var t,r,n,i,s,a,o,h,u,l,f=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=f+(f-z)){for(c.arraySet(e.window,e.window,f,f,0),e.match_start-=f,e.strstart-=f,e.block_start-=f,t=r=e.hash_size;n=e.head[--t],e.head[t]=f<=n?n-f:0,--r;);for(t=r=f;n=e.prev[--t],e.prev[t]=f<=n?n-f:0,--r;);i+=f}if(0===e.strm.avail_in)break;if(a=e.strm,o=e.window,h=e.strstart+e.lookahead,u=i,l=void 0,l=a.avail_in,u=x)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x)if(n=u._tr_tally(e,e.strstart-e.match_start,e.match_length-x),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=x){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-x,n=u._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-x),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(j(e),0===e.lookahead&&t===l)return A;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,N(e,!1),0===e.strm.avail_out))return A;if(e.strstart-e.block_start>=e.w_size-z&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):(e.strstart>e.block_start&&(N(e,!1),e.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(e,t){return Y(e,t,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?_:(e.state.gzhead=t,m):_},r.deflate=function(e,t){var r,n,i,s;if(!e||!e.state||5>8&255),U(n,n.gzhead.time>>16&255),U(n,n.gzhead.time>>24&255),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(U(n,255&n.gzhead.extra.length),U(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=p(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(U(n,0),U(n,0),U(n,0),U(n,0),U(n,0),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,3),n.status=E);else{var a=v+(n.w_bits-8<<4)<<8;a|=(2<=n.strategy||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=32),a+=31-a%31,n.status=E,P(n,a),0!==n.strstart&&(P(n,e.adler>>>16),P(n,65535&e.adler)),e.adler=1}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending!==n.pending_buf_size));)U(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&F(e),n.pending+2<=n.pending_buf_size&&(U(n,255&e.adler),U(n,e.adler>>8&255),e.adler=0,n.status=E)):n.status=E),0!==n.pending){if(F(e),0===e.avail_out)return n.last_flush=-1,m}else if(0===e.avail_in&&T(t)<=T(r)&&t!==f)return R(e,-5);if(666===n.status&&0!==e.avail_in)return R(e,-5);if(0!==e.avail_in||0!==n.lookahead||t!==l&&666!==n.status){var o=2===n.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(j(e),0===e.lookahead)){if(t===l)return A;break}if(e.match_length=0,r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):3===n.strategy?function(e,t){for(var r,n,i,s,a=e.window;;){if(e.lookahead<=S){if(j(e),e.lookahead<=S&&t===l)return A;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=x&&0e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=x?(r=u._tr_tally(e,1,e.match_length-x),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):h[n.level].func(n,t);if(o!==O&&o!==B||(n.status=666),o===A||o===O)return 0===e.avail_out&&(n.last_flush=-1),m;if(o===I&&(1===t?u._tr_align(n):5!==t&&(u._tr_stored_block(n,0,0,!1),3===t&&(D(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),F(e),0===e.avail_out))return n.last_flush=-1,m}return t!==f?m:n.wrap<=0?1:(2===n.wrap?(U(n,255&e.adler),U(n,e.adler>>8&255),U(n,e.adler>>16&255),U(n,e.adler>>24&255),U(n,255&e.total_in),U(n,e.total_in>>8&255),U(n,e.total_in>>16&255),U(n,e.total_in>>24&255)):(P(n,e.adler>>>16),P(n,65535&e.adler)),F(e),0=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new c.Buf8(r.w_size),c.arraySet(u,t,l-r.w_size,r.w_size,0),t=u,l=r.w_size),a=e.avail_in,o=e.next_in,h=e.input,e.avail_in=l,e.next_in=0,e.input=t,j(r);r.lookahead>=x;){for(n=r.strstart,i=r.lookahead-(x-1);r.ins_h=(r.ins_h<>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(d&(1<>>=y,p-=y),p<15&&(d+=z[n++]<>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(d&(1<>>=y,p-=y,(y=s-a)>3,d&=(1<<(p-=w<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg=\"\",t.wrap&&(e.adler=1&t.wrap),t.mode=P,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new I.Buf32(n),t.distcode=t.distdyn=new I.Buf32(i),t.sane=1,t.back=-1,N):U}function o(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,a(e)):U}function h(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15=s.wsize?(I.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(i=s.wsize-s.wnext)&&(i=n),I.arraySet(s.window,t,r-n,i,s.wnext),(n-=i)?(I.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&u)){e.msg=\"unknown compression method\",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(d=r.length)&&(d=o),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,n,s,d,k)),512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,r.length-=d),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&d>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break e;o--,u+=n[s++]<>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==t)break;u>>>=2,l-=2;break e;case 2:r.mode=17;break;case 3:e.msg=\"invalid block type\",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break e;o--,u+=n[s++]<>>16^65535)){e.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(d=r.length){if(o>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l>>=_,l-=_,0===r.have){e.msg=\"invalid bit length repeat\",r.mode=30;break}k=r.lens[r.have-1],d=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;l>>=_)),u>>>=3,l-=3}else{for(z=_+7;l>>=_)),u>>>=7,l-=7}if(r.have+d>r.nlen+r.ndist){e.msg=\"invalid bit length repeat\",r.mode=30;break}for(;d--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){e.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){e.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=o&&258<=h){e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,R(e,c),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){e.msg=\"invalid distance code\",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===h)break e;if(d=c-h,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break}p=d>r.wnext?(d-=r.wnext,r.wsize-d):r.wnext-d,d>r.length&&(d=r.length),m=r.window}else m=i,p=a-r.offset,d=r.length;for(hd?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=t[r+a[v]]}if(k>>7)]}function U(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function P(e,t,r){e.bi_valid>d-r?(e.bi_buf|=t<>d-e.bi_valid,e.bi_valid+=r-d):(e.bi_buf|=t<>>=1,r<<=1,0<--t;);return r>>>1}function Z(e,t,r){var n,i,s=new Array(g+1),a=0;for(n=1;n<=g;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=j(s[o]++,o))}}function W(e){var t;for(t=0;t>1;1<=r;r--)G(e,s,r);for(i=h;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],G(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,G(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,h=t.dyn_tree,u=t.max_code,l=t.stat_desc.static_tree,f=t.stat_desc.has_stree,c=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=g;s++)e.bl_count[s]=0;for(h[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<_;r++)p<(s=h[2*h[2*(n=e.heap[r])+1]+1]+1)&&(s=p,m++),h[2*n+1]=s,u>=7;n>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return o;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return h;for(t=32;t>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?J(e,t,r,n):4===e.strategy||s===i?(P(e,2+(n?1:0),3),K(e,z,C)):(P(e,4+(n?1:0),3),function(e,t,r,n){var i;for(P(e,t-257,5),P(e,r-1,5),P(e,n-4,4),i=0;i>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(A[r]+u+1)]++,e.dyn_dtree[2*N(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){P(e,2,3),L(e,m,z),function(e){16===e.bi_valid?(U(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{\"../utils/common\":41}],53:[function(e,t,r){\"use strict\";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,r){(function(e){!function(r,n){\"use strict\";if(!r.setImmediate){var i,s,t,a,o=1,h={},u=!1,l=r.document,e=Object.getPrototypeOf&&Object.getPrototypeOf(r);e=e&&e.setTimeout?e:r,i=\"[object process]\"==={}.toString.call(r.process)?function(e){process.nextTick(function(){c(e)})}:function(){if(r.postMessage&&!r.importScripts){var e=!0,t=r.onmessage;return r.onmessage=function(){e=!1},r.postMessage(\"\",\"*\"),r.onmessage=t,e}}()?(a=\"setImmediate$\"+Math.random()+\"$\",r.addEventListener?r.addEventListener(\"message\",d,!1):r.attachEvent(\"onmessage\",d),function(e){r.postMessage(a+e,\"*\")}):r.MessageChannel?((t=new MessageChannel).port1.onmessage=function(e){c(e.data)},function(e){t.port2.postMessage(e)}):l&&\"onreadystatechange\"in l.createElement(\"script\")?(s=l.documentElement,function(e){var t=l.createElement(\"script\");t.onreadystatechange=function(){c(e),t.onreadystatechange=null,s.removeChild(t),t=null},s.appendChild(t)}):function(e){setTimeout(c,0,e)},e.setImmediate=function(e){\"function\"!=typeof e&&(e=new Function(\"\"+e));for(var t=new Array(arguments.length-1),r=0;r 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 elementIsInsideGrid: function($element) {\r\n var $gridElement = $element.closest(\".\" + this.getWidgetContainerClass()).parent();\r\n return $gridElement.is(this.component.$element())\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(preventScroll) {\r\n this.element().get(0).focus({\r\n preventScroll: preventScroll\r\n })\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 = modulesOrder.indexOf(module1.name);\r\n var orderIndex2 = modulesOrder.indexOf(module2.name);\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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport 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/ui/grid_core/ui.grid_core.column_state_mixin.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n 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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getWidth,\r\n getOuterHeight,\r\n getHeight\r\n} from \"../../core/utils/size\";\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\nimport {\r\n nativeScrolling\r\n} from \"../../core/utils/support\";\r\nvar SCROLL_CONTAINER_CLASS = \"scroll-container\";\r\nvar SCROLLABLE_SIMULATED_CLASS = \"scrollable-simulated\";\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 GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nvar FILTER_ROW_CLASS = \"filter-row\";\r\nvar ERROR_ROW_CLASS = \"dx-error-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\", 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, tagName) {\r\n tagName = tagName || \"tr\";\r\n var $element = $(\"<\".concat(tagName, \">\")).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 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 isHeaderRow = $row.hasClass(\"dx-header-row\");\r\n var isDataRow = $row.hasClass(\"dx-data-row\");\r\n var isMasterDetailRow = $row.hasClass(DETAIL_ROW_CLASS);\r\n var isGroupRow = $row.hasClass(GROUP_ROW_CLASS);\r\n var isFilterRow = $row.hasClass(that.addWidgetPrefix(FILTER_ROW_CLASS));\r\n var isDataRowWithTemplate = isDataRow && (!column || column.cellTemplate);\r\n var isEditorShown = isDataRow && cellOptions && (rowOptions.isEditing || cellOptions.isEditing || (null === column || void 0 === column ? void 0 : column.showEditorAlways));\r\n var isHeaderRowWithTemplate = isHeaderRow && (!column || column.headerCellTemplate);\r\n var isGroupCellWithTemplate = isGroupRow && (!column || column.groupIndex && column.groupCellTemplate);\r\n var shouldShowHint = !isMasterDetailRow && !isFilterRow && !isEditorShown && !isDataRowWithTemplate && !isHeaderRowWithTemplate && !isGroupCellWithTemplate;\r\n if (shouldShowHint) {\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;\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 $row = $cell.parent();\r\n var rowOptions = $row.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 resultOptions.rowIndex = that.getRowIndex($row);\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 _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(change) {\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, false, change);\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, change) {\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 if (change) {\r\n options.change = change\r\n }\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, options.change);\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, options.change);\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, change) {\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 if (change) {\r\n change.templateDeferreds = change.templateDeferreds || [];\r\n change.templateDeferreds.push(templateDeferred)\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 _needWrapRow: function($tableElement) {\r\n var _this$_getBodies;\r\n var hasRowTemplate = !!this.option().rowTemplate;\r\n return hasRowTemplate && !!(null !== (_this$_getBodies = this._getBodies($tableElement)) && void 0 !== _this$_getBodies && _this$_getBodies.filter(\".\" + ROW_CLASS).length)\r\n },\r\n _wrapRowIfNeed: function($table, $row, isRefreshing) {\r\n var $tableElement = isRefreshing ? $table || this._tableElement : this._tableElement || $table;\r\n var needWrapRow = this._needWrapRow($tableElement);\r\n if (needWrapRow) {\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(\"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 var cellIndex = options.row.cells.findIndex(cell => cell.columnIndex === cellOptions.columnIndex);\r\n options.row.cells[cellIndex] = 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, options);\r\n $row.get(0).appendChild($cell.get(0));\r\n return $cell\r\n },\r\n _renderCellContent: function($cell, options, renderOptions) {\r\n var template = this._getCellTemplate(options);\r\n when(!template || this.renderTemplate($cell, template, options, void 0, renderOptions.change)).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, updateValueFunc, updateRowFunc) {\r\n var oldValue = getter(source.data);\r\n var watcher = function(row) {\r\n if (row && updateRowFunc) {\r\n updateRowFunc(row)\r\n }\r\n var newValue = getter(source.data);\r\n if (JSON.stringify(oldValue) !== JSON.stringify(newValue)) {\r\n if (row) {\r\n updateValueFunc(newValue)\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, keepRow) {\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 && !keepRow) {\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 var useNative = this.option(\"scrolling.useNative\");\r\n if (false === useNative || \"auto\" === useNative && !nativeScrolling) {\r\n $scrollContainer.addClass(this.addWidgetPrefix(SCROLLABLE_SIMULATED_CLASS))\r\n }\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) && !$row.is(\".\" + ERROR_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(\".\" + DETAIL_ROW_CLASS);\r\n for (var rowIndex = 0; rowIndex < $rows.length; rowIndex++) {\r\n var row = $rows[rowIndex];\r\n var cell = void 0;\r\n var visibleIndex = this.getVisibleColumnIndex(i, rowIndex);\r\n if (row.classList.contains(GROUP_ROW_CLASS)) {\r\n cell = row.querySelector(\"td[aria-colindex='\".concat(visibleIndex + 1, \"']:not(.\").concat(GROUP_CELL_CLASS, \")\"))\r\n } else {\r\n cell = row.cells[visibleIndex]\r\n }\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\") && \"virtual\" !== this.option(\"scrolling.rowRenderingMode\")) {\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 hasRowTemplate = this.option().rowTemplate || this.option(\"dataRowTemplate\");\r\n var tBodies = hasRowTemplate && 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 ? getOuterWidth($tableElement) - getWidth($element) > 0 : getOuterHeight($tableElement) - getHeight($element) > 0\r\n }\r\n return false\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/shared/accessibility.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n 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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport * as 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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport 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.apply(this, arguments);\r\n $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 || changeTypes.groupExpanding) {\r\n if (changeTypes.grouping) {\r\n this._isGroupingChanged = true\r\n }\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 + getHeight(headerRow)\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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport 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/core/utils/date_serialization.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../config\";\r\nimport {\r\n 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\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 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 && 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 = getTimePart(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 var correctYear = d => {\r\n year < 100 && d.setFullYear(year);\r\n return d\r\n };\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 correctYear(new Date(Date.UTC(year, month, day, hour, minute, second, millisecond)))\r\n }\r\n return correctYear(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/ui/grid_core/ui.grid_core.columns_controller.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _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 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 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 {\r\n equalByValue\r\n} from \"../../core/utils/common\";\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\", \"bufferedFilterValue\", \"selectedFilterOperation\", \"bufferedSelectedFilterOperation\", \"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.dataField) && (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 (ignoreColumnOptionNames.includes(fieldName)) {\r\n continue\r\n }\r\n if (\"dataType\" === fieldName) {\r\n column[fieldName] = column[fieldName] || userStateColumn[fieldName]\r\n } else if (USER_STATE_FIELD_NAMES_15_1.includes(fieldName)) {\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 column;\r\n var result = [];\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var bandedColumns = [];\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 bandedColumns.push(column)\r\n } else {\r\n result.push(column)\r\n }\r\n }\r\n normalizeIndexes(bandedColumns, \"visibleIndex\", currentColumn);\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 (!equalByValue(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 if (!isDefined(prevValue) && !isDefined(value) && 0 !== optionName.indexOf(\"buffer\")) {\r\n notFireEvent = true\r\n }\r\n if (!notFireEvent) {\r\n if (!USER_STATE_FIELD_NAMES.includes(optionName) && \"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 fullOptionName && fireOptionChanged(that, {\r\n fullOptionName: fullOptionName,\r\n optionName: optionName,\r\n value: value,\r\n prevValue: prevValue\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(isApplyingUserState) {\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, isApplyingUserState)\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 \"columnHidingEnabled\":\r\n case \"dateSerializationFormat\":\r\n case \"columnResizingMode\":\r\n case \"columnMinWidth\":\r\n case \"columnWidth\":\r\n args.handled = true;\r\n var ignoreColumnOptionNames = \"columnWidth\" === args.fullName && [\"width\"];\r\n this.reinit(ignoreColumnOptionNames);\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, isApplyingUserState) {\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, isApplyingUserState)\r\n } else {\r\n this._dataSourceApplied = false;\r\n updateIndexes(this)\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._dataSource = null;\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 _shouldReturnVisibleColumns: function() {\r\n return true\r\n },\r\n _compileVisibleColumns: function(rowIndex) {\r\n this._visibleColumns = this._visibleColumns || this._compileVisibleColumnsCore();\r\n rowIndex = isDefined(rowIndex) ? rowIndex : this._visibleColumns.length - 1;\r\n return this._visibleColumns[rowIndex] || []\r\n },\r\n getVisibleColumns: function(rowIndex) {\r\n if (!this._shouldReturnVisibleColumns()) {\r\n return []\r\n }\r\n return this._compileVisibleColumns.apply(this, arguments)\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 var rtlEnabled = this.option(\"rtlEnabled\");\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 fixedPosition: rtlEnabled ? \"right\" : \"left\"\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 ownerBand = column.ownerBand;\r\n var parentIndex = isObject(ownerBand) ? ownerBand.index : 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 _compileVisibleColumnsCore: 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 var columnChooserColumns = columns.filter(column => column.showInColumnChooser);\r\n var sortOrder = this.option(\"columnChooser.sortOrder\");\r\n return ((columns, sortOrder) => {\r\n if (\"asc\" !== sortOrder && \"desc\" !== sortOrder) {\r\n return columns\r\n }\r\n var sign = \"asc\" === sortOrder ? 1 : -1;\r\n columns.sort((function(column1, column2) {\r\n var caption1 = column1.caption || \"\";\r\n var caption2 = column2.caption || \"\";\r\n return sign * caption1.localeCompare(caption2)\r\n }));\r\n return columns\r\n })(columnChooserColumns, sortOrder)\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)) {\r\n if (!calculateCallback.originalCallback) {\r\n var context = {\r\n column: column\r\n };\r\n column[calculateCallbackName] = function(data) {\r\n return calculateCallback.call(context.column, data)\r\n };\r\n column[calculateCallbackName].originalCallback = calculateCallback;\r\n column[calculateCallbackName].columnIndex = columnIndex;\r\n column[calculateCallbackName].context = context\r\n } else {\r\n column[calculateCallbackName].context.column = column\r\n }\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 && !column.lookup\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, isApplyingUserState) {\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 if (!isApplyingUserState) {\r\n this._customizeColumns(this._columns)\r\n }\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 if (fromDataSource) {\r\n column.sortOrder = \"sortOrder\" in column ? column.sortOrder : sortParameters[i].desc ? \"desc\" : \"asc\"\r\n } else {\r\n column.sortOrder = column.sortOrder || (sortParameters[i].desc ? \"desc\" : \"asc\")\r\n }\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 var groupingChanged = !gridCoreUtils.equalSortParameters(groupParameters, columnsGroupParameters, true);\r\n var groupExpandingChanged = !groupingChanged && !gridCoreUtils.equalSortParameters(groupParameters, columnsGroupParameters);\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 if (!isFunction(sort.selector)) {\r\n that._columns.push(sort.selector)\r\n }\r\n }));\r\n assignColumns(that, createColumnsFromOptions(that, that._columns))\r\n }\r\n if ((fromDataSource || !columnsGroupParameters && !that._hasUserState) && (groupingChanged || groupExpandingChanged)) {\r\n updateSortGroupParameterIndexes(that._columns, groupParameters, \"groupIndex\");\r\n if (fromDataSource) {\r\n groupingChanged && updateColumnChanges(that, \"grouping\");\r\n groupExpandingChanged && updateColumnChanges(that, \"groupExpanding\");\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 column.name = column.name || column.dataField || column.type\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(true);\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 result = function(text, format) {\r\n var parsedValue = numberLocalization.parse(text);\r\n if (isNumeric(parsedValue)) {\r\n var formattedValue = numberLocalization.format(parsedValue, format);\r\n var formattedValueWithDefaultFormat = numberLocalization.format(parsedValue, \"decimal\");\r\n if (formattedValue === text || formattedValueWithDefaultFormat === text) {\r\n return parsedValue\r\n }\r\n }\r\n }(text.trim(), this.format)\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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport 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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport 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 getPageDataFromCache(options, updatePaging) {\r\n var groupCount = gridCore.normalizeSortingInfo(options.group || options.storeLoadOptions.group || options.loadOptions.group).length;\r\n var items = [];\r\n if (fillItemsFromCache(items, options, groupCount)) {\r\n return items\r\n } else if (updatePaging) {\r\n ! function(cacheItemsFromBegin, options, groupCount) {\r\n var cacheItemBeginCount = cacheItemsFromBegin.length;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n if (void 0 !== storeLoadOptions.skip && storeLoadOptions.take && !groupCount) {\r\n var cacheItemsFromEnd = [];\r\n fillItemsFromCache(cacheItemsFromEnd, options, groupCount, true);\r\n var cacheItemEndCount = cacheItemsFromEnd.length;\r\n if (cacheItemBeginCount || cacheItemEndCount) {\r\n var _options$skip2, _options$take2;\r\n options.skip = null !== (_options$skip2 = options.skip) && void 0 !== _options$skip2 ? _options$skip2 : storeLoadOptions.skip;\r\n options.take = null !== (_options$take2 = options.take) && void 0 !== _options$take2 ? _options$take2 : storeLoadOptions.take\r\n }\r\n if (cacheItemBeginCount) {\r\n storeLoadOptions.skip += cacheItemBeginCount;\r\n storeLoadOptions.take -= cacheItemBeginCount;\r\n options.cachedDataPartBegin = cacheItemsFromBegin\r\n }\r\n if (cacheItemEndCount) {\r\n storeLoadOptions.take -= cacheItemEndCount;\r\n options.cachedDataPartEnd = cacheItemsFromEnd.reverse()\r\n }\r\n }\r\n }(items, options, groupCount)\r\n }\r\n }\r\n\r\n function fillItemsFromCache(items, options, groupCount, fromEnd) {\r\n var _ref, _options$take, _options$cachedData;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var take = null !== (_ref = null !== (_options$take = options.take) && void 0 !== _options$take ? _options$take : storeLoadOptions.take) && void 0 !== _ref ? _ref : 0;\r\n var cachedItems = null === (_options$cachedData = options.cachedData) || void 0 === _options$cachedData ? void 0 : _options$cachedData.items;\r\n if (take && cachedItems) {\r\n var _ref2, _options$skip;\r\n var skip = null !== (_ref2 = null !== (_options$skip = options.skip) && void 0 !== _options$skip ? _options$skip : storeLoadOptions.skip) && void 0 !== _ref2 ? _ref2 : 0;\r\n for (var i = 0; i < take; i++) {\r\n var localIndex = fromEnd ? take - 1 - i : i;\r\n var cacheItemIndex = localIndex + skip;\r\n var cacheItem = cachedItems[cacheItemIndex];\r\n if (void 0 === cacheItem && cacheItemIndex in cachedItems) {\r\n return true\r\n }\r\n var item = getItemFromCache(options, cacheItem, groupCount, localIndex, take);\r\n if (item) {\r\n items.push(item)\r\n } else {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n function getItemFromCache(options, cacheItem, groupCount, index, take) {\r\n if (groupCount && cacheItem) {\r\n var skips = 0 === index && options.skips || [];\r\n var takes = index === take - 1 && options.takes || [];\r\n return function getGroupItemFromCache(cacheItem, groupCount, skips, takes) {\r\n if (groupCount && cacheItem) {\r\n var result = _extends({}, cacheItem);\r\n var skip = skips[0] || 0;\r\n var take = takes[0];\r\n var items = cacheItem.items;\r\n if (items) {\r\n if (void 0 === take && !items[skip]) {\r\n return\r\n }\r\n result.items = [];\r\n if (skips.length) {\r\n result.isContinuation = true\r\n }\r\n if (takes.length) {\r\n result.isContinuationOnNextPage = true\r\n }\r\n for (var i = 0; void 0 === take ? items[i + skip] : i < take; i++) {\r\n var childCacheItem = items[i + skip];\r\n var isLast = i + 1 === take;\r\n var item = getGroupItemFromCache(childCacheItem, groupCount - 1, 0 === i ? skips.slice(1) : [], isLast ? takes.slice(1) : []);\r\n if (void 0 !== item) {\r\n result.items.push(item)\r\n } else {\r\n return\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n return cacheItem\r\n }(cacheItem, groupCount, skips, takes)\r\n } else {\r\n return cacheItem\r\n }\r\n }\r\n\r\n function getCacheItem(cacheItem, loadedItem, groupCount, skips) {\r\n if (groupCount && loadedItem) {\r\n var result = _extends({}, loadedItem);\r\n delete result.isContinuation;\r\n delete result.isContinuationOnNextPage;\r\n var skip = skips[0] || 0;\r\n if (loadedItem.items) {\r\n result.items = (null === cacheItem || void 0 === cacheItem ? void 0 : cacheItem.items) || {};\r\n loadedItem.items.forEach((item, index) => {\r\n var globalIndex = index + skip;\r\n var childSkips = 0 === index ? skips.slice(1) : [];\r\n result.items[globalIndex] = getCacheItem(result.items[globalIndex], item, groupCount - 1, childSkips)\r\n })\r\n }\r\n return result\r\n }\r\n return loadedItem\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._cachedData = {\r\n items: {}\r\n };\r\n that._lastOperationTypes = {};\r\n that._eventsStrategy = dataSource._eventsStrategy;\r\n that._totalCountCorrection = 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.pushed = Callbacks();\r\n that._dataChangedHandler = that._handleDataChanged.bind(that);\r\n that._customizeStoreLoadOptionsHandler = that._handleCustomizeStoreLoadOptions.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._customizeStoreLoadOptionsHandler);\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(\"beforePush\", 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._customizeStoreLoadOptionsHandler);\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(\"beforePush\", 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._totalCountCorrection = 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._cachedData = {\r\n items: {}\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 this.pushed.fire(changes)\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 isReshapeMode = \"reshape\" === this.option(\"editing.refreshMode\");\r\n var isVirtualMode = \"virtual\" === this.option(\"scrolling.mode\");\r\n var isLegacyMode = this.option(\"scrolling.legacyMode\");\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 var needUpdateTotalCountCorrection = this._currentTotalCount > 0 || !isReshapeMode && isVirtualMode && (!isLegacyMode || totalCount === oldItemCount);\r\n if (needUpdateTotalCountCorrection) {\r\n this._totalCountCorrection += getItemCount() - oldItemCount\r\n }\r\n changes.splice(0, changes.length)\r\n },\r\n _handlePush: function(_ref5) {\r\n var {\r\n changes: changes\r\n } = _ref5;\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 cachedStoreData = this._cachedStoreData;\r\n var cachedPagingData = this._cachedPagingData;\r\n var cachedData = this._cachedData;\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 summary: options.remoteOperations.summary\r\n }\r\n }\r\n if (operationTypes.fullReload) {\r\n cachedStoreData = void 0;\r\n cachedPagingData = void 0;\r\n cachedData = {\r\n items: {}\r\n }\r\n } else {\r\n if (operationTypes.reload) {\r\n cachedPagingData = void 0;\r\n cachedData = {\r\n items: {}\r\n }\r\n } else if (operationTypes.groupExpanding) {\r\n cachedData = {\r\n items: {}\r\n }\r\n }\r\n each(operationTypes, (operationType, value) => {\r\n if (value && this._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.cachedData = cachedData;\r\n if (!options.isCustomLoading) {\r\n this._cachedStoreData = cachedStoreData;\r\n this._cachedPagingData = cachedPagingData;\r\n this._cachedData = cachedData\r\n }\r\n },\r\n _handleCustomizeStoreLoadOptions(options) {\r\n var _options$data;\r\n this._handleDataLoading(options);\r\n if (!(0 === (null === (_options$data = options.data) || void 0 === _options$data ? void 0 : _options$data.length))) {\r\n options.data = getPageDataFromCache(options, true) || options.cachedStoreData\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.cachedData.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 },\r\n _handleDataLoaded: function(options) {\r\n var loadOptions = options.loadOptions;\r\n var localPaging = options.remoteOperations && !options.remoteOperations.paging;\r\n var cachedData = options.cachedData;\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var needCache = false !== this.option(\"cacheEnabled\") && storeLoadOptions;\r\n var needPageCache = needCache && !options.isCustomLoading && cachedData && (!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 (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(options.group || storeLoadOptions.group || loadOptions.group).length;\r\n if (options.cachedDataPartBegin) {\r\n options.data = options.cachedDataPartBegin.concat(options.data)\r\n }\r\n if (options.cachedDataPartEnd) {\r\n options.data = options.data.concat(options.cachedDataPartEnd)\r\n }\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 cachedData.extra = cachedData.extra || extend({}, options.extra);\r\n when(options.data).done(data => {\r\n ! function(options, data, groupCount) {\r\n var _ref3, _options$skip3, _ref4, _options$take3;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var skip = null !== (_ref3 = null !== (_options$skip3 = options.skip) && void 0 !== _options$skip3 ? _options$skip3 : storeLoadOptions.skip) && void 0 !== _ref3 ? _ref3 : 0;\r\n var take = null !== (_ref4 = null !== (_options$take3 = options.take) && void 0 !== _options$take3 ? _options$take3 : storeLoadOptions.take) && void 0 !== _ref4 ? _ref4 : 0;\r\n for (var i = 0; i < take; i++) {\r\n var globalIndex = i + skip;\r\n var cacheItems = options.cachedData.items;\r\n var skips = 0 === i && options.skips || [];\r\n cacheItems[globalIndex] = getCacheItem(cacheItems[globalIndex], data[i], groupCount, skips)\r\n }\r\n }(options, data, groupCount)\r\n })\r\n }\r\n }\r\n when(options.data).done(() => {\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 });\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 isDataLoading = !args || isDefined(args.changeType);\r\n var itemsCount = this.itemsCount();\r\n if (isDataLoading) {\r\n this._isLastPage = !itemsCount || !this._loadPageSize() || itemsCount < this._loadPageSize();\r\n if (this._isLastPage) {\r\n this._hasLastPage = true\r\n }\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 (isDataLoading) {\r\n currentTotalCount = dataSource.pageIndex() * this.pageSize() + itemsCount;\r\n if (currentTotalCount > this._currentTotalCount) {\r\n this._currentTotalCount = currentTotalCount;\r\n if (0 === dataSource.pageIndex() || !this.option(\"scrolling.legacyMode\")) {\r\n this._totalCountCorrection = 0\r\n }\r\n }\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 _dataSourceTotalCount: function() {\r\n return this._dataSource.totalCount()\r\n },\r\n totalCount: function() {\r\n return parseInt((this._currentTotalCount || this._dataSourceTotalCount()) + this._totalCountCorrection)\r\n },\r\n totalCountCorrection: function() {\r\n return this._totalCountCorrection\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._totalCountCorrection;\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._handleCustomizeStoreLoadOptions(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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport 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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport 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 var oldValue = that._getPagingOptionValue(optionName);\r\n if (oldValue !== 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 var pageIndex = dataSource.pageIndex();\r\n that._isPaging = \"pageIndex\" === optionName;\r\n return dataSource[\"pageIndex\" === optionName ? \"load\" : \"reload\"]().done(() => {\r\n that._isPaging = false;\r\n that.pageChanged.fire(pageIndex)\r\n })\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._cachedProcessedItems = null;\r\n that._columnsController = that.getController(\"columns\");\r\n that._isPaging = false;\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._dataPushedHandler = that._handleDataPushed.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 _getPagingOptionValue: function(optionName) {\r\n return this._dataSource[optionName]()\r\n },\r\n callbackNames: function() {\r\n return [\"changed\", \"loadingChanged\", \"dataErrorOccurred\", \"pageChanged\", \"dataSourceChanged\", \"pushed\"]\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 _handleDataSourceChange(args) {\r\n if (args.value === args.previousValue || this.option(\"columns\") && Array.isArray(args.value) && Array.isArray(args.previousValue)) {\r\n var isValueChanged = args.value !== args.previousValue;\r\n if (isValueChanged) {\r\n var store = this.store();\r\n if (store) {\r\n store._array = args.value\r\n }\r\n }\r\n if (this.needToRefreshOnDataSourceChange(args)) {\r\n this.refresh(this.option(\"repaintChangesOnly\"))\r\n }\r\n return true\r\n }\r\n return false\r\n },\r\n needToRefreshOnDataSourceChange: function(args) {\r\n return true\r\n },\r\n optionChanged: function(args) {\r\n var that = this;\r\n var dataSource;\r\n var changedPagingOptions;\r\n\r\n function handled() {\r\n args.handled = true\r\n }\r\n if (\"dataSource\" === args.name && args.name === args.fullName && this._handleDataSourceChange(args)) {\r\n handled();\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 that.reset();\r\n break;\r\n case \"paging\":\r\n dataSource = that.dataSource();\r\n if (dataSource) {\r\n changedPagingOptions = that._setPagingOptions(dataSource);\r\n if (changedPagingOptions) {\r\n var pageIndex = dataSource.pageIndex();\r\n this._isPaging = changedPagingOptions.isPageIndexChanged;\r\n dataSource.load().done(() => {\r\n this._isPaging = false;\r\n that.pageChanged.fire(pageIndex)\r\n })\r\n }\r\n }\r\n handled();\r\n break;\r\n case \"rtlEnabled\":\r\n that.reset();\r\n break;\r\n case \"columns\":\r\n dataSource = that.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 that.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 _storeLoadOptions$fil;\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 (1 === (null === (_storeLoadOptions$fil = storeLoadOptions.filter) || void 0 === _storeLoadOptions$fil ? void 0 : _storeLoadOptions$fil.length) && \"!\" === storeLoadOptions.filter[0]) {\r\n e.data = [];\r\n e.extra = e.extra || {};\r\n e.extra.totalCount = 0\r\n }\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 filterValues = that._columnsController.columnOption(e.columnIndex, \"filterValues\");\r\n if (optionNames.filterValues || optionNames.filterType && Array.isArray(filterValues) || optionNames.filterValue || optionNames.selectedFilterOperation || optionNames.allowFiltering) {\r\n filterValue = that._columnsController.columnOption(e.columnIndex, \"filterValue\");\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(change) {\r\n var _change$changeTypes;\r\n that._columnsController.columnsChanged.remove(updateItemsHandler);\r\n that.updateItems({\r\n repaintChangesOnly: false,\r\n virtualColumnsScrolling: null === change || void 0 === change ? void 0 : null === (_change$changeTypes = change.changeTypes) || void 0 === _change$changeTypes ? void 0 : _change$changeTypes.virtualColumnsScrolling\r\n })\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 _handleDataPushed: function(changes) {\r\n this.pushed.fire(changes)\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 isPaginateChanged = false;\r\n var isPageSizeChanged = false;\r\n var isPageIndexChanged = false;\r\n dataSource.requireTotalCount(!appendMode);\r\n if (void 0 !== pagingEnabled && dataSource.paginate() !== paginate) {\r\n dataSource.paginate(paginate);\r\n isPaginateChanged = true\r\n }\r\n if (void 0 !== pageSize && dataSource.pageSize() !== pageSize) {\r\n dataSource.pageSize(pageSize);\r\n isPageSizeChanged = true\r\n }\r\n if (void 0 !== pageIndex && dataSource.pageIndex() !== pageIndex) {\r\n dataSource.pageIndex(pageIndex);\r\n isPageIndexChanged = true\r\n }\r\n if (isPaginateChanged || isPageSizeChanged || isPageIndexChanged) {\r\n return {\r\n isPaginateChanged: isPaginateChanged,\r\n isPageSizeChanged: isPageSizeChanged,\r\n isPageIndexChanged: isPageIndexChanged\r\n }\r\n }\r\n return false\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 oldDataSource = this._dataSource;\r\n this.callBase();\r\n var dataSource = this._dataSource;\r\n this._useSortingGroupingFromColumns = true;\r\n this._cachedProcessedItems = null;\r\n if (dataSource) {\r\n var changedPagingOptions = this._setPagingOptions(dataSource);\r\n this._isPaging = null === changedPagingOptions || void 0 === changedPagingOptions ? void 0 : changedPagingOptions.isPageIndexChanged;\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 that = this;\r\n var dataSource = that._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((function() {\r\n that._isPaging = false;\r\n result.resolve.apply(result, arguments)\r\n })).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 var columnIndices;\r\n if (oldItem.rowType === newItem.rowType) {\r\n if (\"group\" !== newItem.rowType && \"groupFooter\" !== newItem.rowType) {\r\n 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 }\r\n if (\"group\" === newItem.rowType && newItem.isExpanded === oldItem.isExpanded && oldItem.cells) {\r\n columnIndices = oldItem.cells.map((cell, index) => {\r\n var _cell$column;\r\n return \"groupExpand\" !== (null === (_cell$column = cell.column) || void 0 === _cell$column ? void 0 : _cell$column.type) ? index : -1\r\n }).filter(index => index >= 0)\r\n }\r\n }\r\n return columnIndices\r\n },\r\n _partialUpdateRow: function(oldItem, newItem, visibleRowIndex, isLiveUpdate) {\r\n var _changedColumnIndices;\r\n var changedColumnIndices = this._getChangedColumnIndices(oldItem, newItem, visibleRowIndex, isLiveUpdate);\r\n if (null !== (_changedColumnIndices = changedColumnIndices) && void 0 !== _changedColumnIndices && _changedColumnIndices.length && this.option(\"dataRowTemplate\")) {\r\n changedColumnIndices = void 0\r\n }\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 _change$isLiveUpdate;\r\n var rowIndices = [];\r\n var columnIndices = [];\r\n var changeTypes = [];\r\n var items = [];\r\n var newIndexByKey = {};\r\n var isLiveUpdate = null !== (_change$isLiveUpdate = null === change || void 0 === change ? void 0 : change.isLiveUpdate) && void 0 !== _change$isLiveUpdate ? _change$isLiveUpdate : true;\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, true)\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, isLiveUpdate);\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(rowIndex => {\r\n var oldRowIndexOffset = this._rowIndexOffset || 0;\r\n var rowIndexOffset = this.getRowIndexOffset();\r\n var oldItem = oldItems[rowIndex - oldRowIndexOffset];\r\n var key = getRowKey(oldItem);\r\n var newVisibleRowIndex = newIndexByKey[key];\r\n return newVisibleRowIndex >= 0 ? newVisibleRowIndex + rowIndexOffset - 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 var cachedProcessedItems = this._cachedProcessedItems;\r\n if (change.useProcessedItemsCache && cachedProcessedItems) {\r\n items = cachedProcessedItems\r\n } else {\r\n items = change.items || dataSource.items();\r\n items = this._beforeProcessItems(items);\r\n items = this._processItems(items, change);\r\n this._cachedProcessedItems = items\r\n }\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 var newItem = items[index];\r\n if (newItem) {\r\n item.loadIndex = newItem.loadIndex\r\n }\r\n });\r\n this._rowIndexOffset = this.getRowIndexOffset()\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 var _change$repaintChange;\r\n change.repaintChangesOnly = null !== (_change$repaintChange = change.repaintChangesOnly) && void 0 !== _change$repaintChange ? _change$repaintChange : this._repaintChangesOnly;\r\n change.needUpdateDimensions = change.needUpdateDimensions || this._needUpdateDimensions\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 && !change.cancel) {\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 this._isFilterApplying = true;\r\n return this.reload().done(() => {\r\n if (this._isFilterApplying) {\r\n this.pageChanged.fire()\r\n }\r\n })\r\n }\r\n },\r\n resetFilterApplying: function() {\r\n this._isFilterApplying = false\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.pushed.remove(this._dataPushedHandler);\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 dataSource.pushed.add(this._dataPushedHandler)\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 isLastPageLoaded: function() {\r\n var pageIndex = this.pageIndex();\r\n var pageCount = this.pageCount();\r\n return pageIndex === pageCount - 1\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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport 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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport $ 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 = \"none\" !== 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 if (isSortingAllowed) {\r\n options.rootElement.addClass(this.addWidgetPrefix(HEADERS_ACTION_CLASS))\r\n }\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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n 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.apply(this, arguments)\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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport 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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getWidth\r\n} from \"../../core/utils/size\";\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 \"../../events/remove\";\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 ? Math.round(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 dataRowTemplate: 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.apply(this, arguments);\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\") && !gridCoreUtils.isVirtualRowRendering(component);\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 var isNativeScrolling = e.component.option(\"useNative\");\r\n this._scrollTop = e.scrollOffset.top;\r\n this._scrollLeft = e.scrollOffset.left;\r\n var scrollLeft = e.scrollOffset.left;\r\n if (rtlEnabled) {\r\n this._scrollRight = getMaxHorizontalScrollOffset(e.component) - this._scrollLeft;\r\n if (isNativeScrolling) {\r\n scrollLeft = -this._scrollRight\r\n }\r\n if (!this.isScrollbarVisible(true)) {\r\n this._scrollLeft = -1\r\n }\r\n }\r\n this.scrollChanged.fire(_extends({}, e.scrollOffset, {\r\n left: scrollLeft\r\n }), 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, change) {\r\n var $freeSpaceRowElement = this._createEmptyRow(FREE_SPACE_CLASS);\r\n $freeSpaceRowElement = this._wrapRowIfNeed($tableElement, $freeSpaceRowElement, \"refresh\" === (null === change || void 0 === change ? void 0 : change.changeType));\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 $tableElement = $tableElement || this._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 _needWrapRow: function() {\r\n return this.callBase.apply(this, arguments) || !!this.option(\"dataRowTemplate\")\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 if (this._needRenderCell(i, options.columnIndices)) {\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 columnIndices: options.columnIndices\r\n })\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 type: 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 if (this._needRenderCell(groupCellOptions.columnIndex + 1, options.columnIndices)) {\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 + 1,\r\n columnIndices: options.columnIndices\r\n })\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, options.change);\r\n if (!this._hasHeight) {\r\n this.updateFreeSpaceRowHeight($table)\r\n }\r\n },\r\n _renderDataRowByTemplate($table, options, dataRowTemplate) {\r\n var row = options.row;\r\n var rowOptions = extend({\r\n columns: options.columns\r\n }, row);\r\n var $tbody = this._createRow(row, \"tbody\");\r\n $tbody.appendTo($table);\r\n this.renderTemplate($tbody, dataRowTemplate, rowOptions, true, options.change);\r\n this._rowPrepared($tbody, rowOptions, options.row)\r\n },\r\n _renderRow: function($table, options) {\r\n var row = options.row;\r\n var rowTemplate = this.option().rowTemplate;\r\n var dataRowTemplate = this.option(\"dataRowTemplate\");\r\n if (\"data\" === row.rowType && dataRowTemplate) {\r\n this._renderDataRowByTemplate($table, options, dataRowTemplate)\r\n } else 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 || this.option().dataRowTemplate) {\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, this._dataController.isEmpty());\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 = getHeight(this.element()) - scrollbarWidth;\r\n var contentHeight = getOuterHeight(contentElement);\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 getWidth(this.element()) - 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 ? getOuterHeight($element, 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 if (isLoading) {\r\n visibilityOptions.position = gridCoreUtils.calculateLoadPanelPosition($element)\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 _getBoundaryVisibleItemIndex: function(isTop, isFloor) {\r\n var itemIndex = 0;\r\n var prevOffset = 0;\r\n var offset = 0;\r\n var viewportBoundary = this._scrollTop;\r\n var $contentElement = this._findContentElement();\r\n var contentElementOffsetTop = $contentElement && $contentElement.offset().top;\r\n var dataController = this.getController(\"data\");\r\n var items = 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 if (!isTop) {\r\n var height = getOuterHeight(this._hasHeight ? this.element() : getWindow());\r\n viewportBoundary += height\r\n }\r\n for (itemIndex = 0; itemIndex < items.length; itemIndex++) {\r\n prevOffset = offset;\r\n var $rowElement = $(rowElements).eq(itemIndex);\r\n if ($rowElement.length) {\r\n offset = $rowElement.offset();\r\n offset = (isTop ? offset.top : offset.top + getOuterHeight($rowElement)) - contentElementOffsetTop;\r\n if (offset > viewportBoundary) {\r\n if (itemIndex) {\r\n if (isFloor || 2 * viewportBoundary < Math.round(offset + prevOffset)) {\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 getTopVisibleItemIndex: function(isFloor) {\r\n return this._getBoundaryVisibleItemIndex(true, isFloor)\r\n },\r\n getBottomVisibleItemIndex: function(isFloor) {\r\n return this._getBoundaryVisibleItemIndex(false, isFloor)\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 \"dataRowTemplate\":\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 _restoreErrorRow: 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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport 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/context_menu/ui.menu_base.edit.strategy.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop,\r\n 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.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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport 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 extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n hasWindow,\r\n getWindow\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 OVERLAY_CONTENT_CLASS = \"dx-overlay-content\";\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\nvar window = getWindow();\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 hideOnOutsideClick: 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 _setDeprecatedOptions() {\r\n super._setDeprecatedOptions();\r\n extend(this._deprecatedOptions, {\r\n closeOnOutsideClick: {\r\n since: \"22.2\",\r\n alias: \"hideOnOutsideClick\"\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 (LOCAL_SUBMENU_DIRECTIONS.includes(location)) {\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 if (!$wrapper.parent().hasClass(OVERLAY_CONTENT_CLASS)) {\r\n this._addCustomCssClass($wrapper)\r\n }\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 hideOnOutsideClick: e => this._hideOnOutsideClickHandler(e),\r\n propagateOutsideClick: true,\r\n hideOnParentScroll: 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 visualContainer: window\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 _shouldHideOnOutsideClick(e) {\r\n var {\r\n closeOnOutsideClick: closeOnOutsideClick,\r\n hideOnOutsideClick: hideOnOutsideClick\r\n } = this.option();\r\n if (isFunction(hideOnOutsideClick)) {\r\n return hideOnOutsideClick(e)\r\n } else if (isFunction(closeOnOutsideClick)) {\r\n return closeOnOutsideClick(e)\r\n } else {\r\n return hideOnOutsideClick || closeOnOutsideClick\r\n }\r\n }\r\n _hideOnOutsideClickHandler(e) {\r\n if (!this._shouldHideOnOutsideClick(e)) {\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 (!this._shownSubmenus.includes($submenu)) {\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 this._updateSelectedItemOnClick(actionArgs);\r\n var notCloseMenuOnItemClick = itemData && false === itemData.closeMenuOnClick;\r\n if (!itemData || itemData.disabled || notCloseMenuOnItemClick) {\r\n return\r\n }\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 = this._shownSubmenus.indexOf($submenu);\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 (ACTIONS.includes(args.name)) {\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 case \"hideOnOutsideClick\":\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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport 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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n 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 var _rowOptions$cells, _rowOptions$cells$col;\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: null === rowOptions || void 0 === rowOptions ? void 0 : null === (_rowOptions$cells = rowOptions.cells) || void 0 === _rowOptions$cells ? void 0 : null === (_rowOptions$cells$col = _rowOptions$cells[columnIndex]) || void 0 === _rowOptions$cells$col ? void 0 : _rowOptions$cells$col.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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport 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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n 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 $(\"
\").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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport 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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getInnerWidth,\r\n getWidth,\r\n getHeight,\r\n setHeight\r\n} from \"../../core/utils/size\";\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 * as accessibility from \"../shared/accessibility\";\r\nimport browser from \"../../core/utils/browser\";\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 dataController = this._dataController;\r\n if (!this._refreshSizesHandler) {\r\n this._refreshSizesHandler = e => {\r\n dataController.changed.remove(this._refreshSizesHandler);\r\n var templateDeferreds = e && e.templateDeferreds || [];\r\n when.apply(this, templateDeferreds).done(() => {\r\n this._refreshSizes(e)\r\n })\r\n };\r\n dataController.changed.add(() => {\r\n dataController.changed.add(this._refreshSizesHandler)\r\n })\r\n }\r\n },\r\n _refreshSizes: function(e) {\r\n var resizeDeferred;\r\n var that = this;\r\n var changeType = e && e.changeType;\r\n var isDelayed = e && e.isDelayed;\r\n var items = that._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) {\r\n var _e$changeTypes;\r\n if (0 === (null === (_e$changeTypes = e.changeTypes) || void 0 === _e$changeTypes ? void 0 : _e$changeTypes.length)) {\r\n return\r\n }\r\n if ((items.length > 1 || \"insert\" !== e.changeTypes[0]) && !(0 === items.length && \"remove\" === e.changeTypes[0]) && !e.needUpdateDimensions) {\r\n deferUpdate(() => deferRender(() => deferUpdate(() => {\r\n that._setScrollerSpacing(that._hasHeight);\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 && \"pageIndex\" !== changeType && !isDelayed) {\r\n when(resizeDeferred).done((function() {\r\n that._setAriaRowColCount();\r\n that.fireContentReadyAction()\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 this._toggleContentMinHeight(isBestFit);\r\n if (this._needStretch()) {\r\n $rowsTable.get(0).style.width = isBestFit ? \"auto\" : \"\"\r\n }\r\n },\r\n _toggleContentMinHeight: function(isBestFit) {\r\n if (this.option(\"wordWrapEnabled\")) {\r\n var scrollable = this._rowsView.getScrollable();\r\n var $contentElement = this._rowsView._findContentElement();\r\n if (false === (null === scrollable || void 0 === scrollable ? void 0 : scrollable.option(\"useNative\"))) {\r\n $contentElement.css({\r\n minHeight: isBestFit ? gridCoreUtils.getContentHeightLimit(browser) : \"\"\r\n })\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 restoreFocus(focusedElement, selectionRange)\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(getOuterWidth($rowsViewElement) - getInnerWidth($rowsViewElement)) : 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\") && getWidth($rootElement)) {\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 = getWidth($rootElement);\r\n $rootElement.addClass(importantMarginClass);\r\n this._hasWidth = getWidth($rootElement) === 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 === getWidth($rootElement) && this._lastHeight === getHeight($rootElement) && 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 || getHeight($rootElement));\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 = $(\"
\");\r\n setHeight($testDiv, height);\r\n $testDiv.appendTo($rootElement);\r\n that._hasHeight = !!getHeight($testDiv);\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 = getWidth($rootElement);\r\n this._lastHeight = getHeight($rootElement);\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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport 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/toolbar/ui.toolbar.menu.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n ListBase\r\n} from \"../list/ui.list.base\";\r\nvar TOOLBAR_MENU_ACTION_CLASS = \"dx-toolbar-menu-action\";\r\nvar TOOLBAR_HIDDEN_BUTTON_CLASS = \"dx-toolbar-hidden-button\";\r\nvar TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS = \"dx-toolbar-hidden-button-group\";\r\nvar TOOLBAR_MENU_SECTION_CLASS = \"dx-toolbar-menu-section\";\r\nvar TOOLBAR_MENU_LAST_SECTION_CLASS = \"dx-toolbar-menu-last-section\";\r\nvar ToolbarMenu = ListBase.inherit({\r\n _activeStateUnit: \".\" + TOOLBAR_MENU_ACTION_CLASS,\r\n _initMarkup: function() {\r\n this._renderSections();\r\n this.callBase()\r\n },\r\n _getSections: function() {\r\n return this._itemContainer().children()\r\n },\r\n _itemElements: function() {\r\n return this._getSections().children(this._itemSelector())\r\n },\r\n _renderSections: function() {\r\n var that = this;\r\n var $container = this._itemContainer();\r\n each([\"before\", \"center\", \"after\", \"menu\"], (function() {\r\n var sectionName = \"_$\" + this + \"Section\";\r\n var $section = that[sectionName];\r\n if (!$section) {\r\n that[sectionName] = $section = $(\"
\").addClass(TOOLBAR_MENU_SECTION_CLASS)\r\n }\r\n $section.appendTo($container)\r\n }))\r\n },\r\n _renderItems: function() {\r\n this.callBase.apply(this, arguments);\r\n this._updateSections()\r\n },\r\n _updateSections: function() {\r\n var $sections = this.$element().find(\".\" + TOOLBAR_MENU_SECTION_CLASS);\r\n $sections.removeClass(TOOLBAR_MENU_LAST_SECTION_CLASS);\r\n $sections.not(\":empty\").eq(-1).addClass(TOOLBAR_MENU_LAST_SECTION_CLASS)\r\n },\r\n _renderItem: function(index, item, itemContainer, $after) {\r\n var location = item.location || \"menu\";\r\n var $container = this[\"_$\" + location + \"Section\"];\r\n var itemElement = this.callBase(index, item, $container, $after);\r\n if (this._getItemTemplateName({\r\n itemData: item\r\n })) {\r\n itemElement.addClass(\"dx-toolbar-menu-custom\")\r\n }\r\n if (\"menu\" === location || \"dxButton\" === item.widget || \"dxButtonGroup\" === item.widget || item.isAction) {\r\n itemElement.addClass(TOOLBAR_MENU_ACTION_CLASS)\r\n }\r\n if (\"dxButton\" === item.widget) {\r\n itemElement.addClass(TOOLBAR_HIDDEN_BUTTON_CLASS)\r\n }\r\n if (\"dxButtonGroup\" === item.widget) {\r\n itemElement.addClass(TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS)\r\n }\r\n itemElement.addClass(item.cssClass);\r\n return itemElement\r\n },\r\n _getItemTemplateName: function(args) {\r\n var template = this.callBase(args);\r\n var data = args.itemData;\r\n var menuTemplate = data && data.menuItemTemplate;\r\n return menuTemplate || template\r\n },\r\n _itemClickHandler: function(e, args, config) {\r\n if ($(e.target).closest(\".\" + TOOLBAR_MENU_ACTION_CLASS).length) {\r\n this.callBase(e, args, config)\r\n }\r\n },\r\n _clean: function() {\r\n this._getSections().empty();\r\n this.callBase()\r\n }\r\n});\r\nregisterComponent(\"dxToolbarMenu\", ToolbarMenu);\r\nexport default ToolbarMenu;\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/ui.toolbar.utils.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nvar BUTTON_GROUP_CLASS = \"dx-buttongroup\";\r\nvar TOOLBAR_ITEMS = [\"dxAutocomplete\", \"dxButton\", \"dxCheckBox\", \"dxDateBox\", \"dxMenu\", \"dxSelectBox\", \"dxTabs\", \"dxTextBox\", \"dxButtonGroup\", \"dxDropDownButton\"];\r\nvar getItemInstance = function($element) {\r\n var itemData = $element.data && $element.data();\r\n var dxComponents = itemData && itemData.dxComponents;\r\n var widgetName = dxComponents && dxComponents[0];\r\n return widgetName && itemData[widgetName]\r\n};\r\nexport function toggleItemFocusableElementTabIndex(context, item) {\r\n var _itemData$options;\r\n if (!context) {\r\n return\r\n }\r\n var $item = context._findItemElementByItem(item);\r\n if (!$item.length) {\r\n return\r\n }\r\n var itemData = context._getItemData($item);\r\n var isItemNotFocusable = !!(null !== (_itemData$options = itemData.options) && void 0 !== _itemData$options && _itemData$options.disabled || itemData.disabled || context.option(\"disabled\"));\r\n var {\r\n widget: widget\r\n } = itemData;\r\n if (widget && -1 !== TOOLBAR_ITEMS.indexOf(widget)) {\r\n var $widget = $item.find(widget.toLowerCase().replace(\"dx\", \".dx-\"));\r\n if ($widget.length) {\r\n var _itemInstance$_focusT, _itemData$options2;\r\n var itemInstance = getItemInstance($widget);\r\n var $focusTarget = \"dxDropDownButton\" === widget ? itemInstance._focusTarget().find(\".\".concat(BUTTON_GROUP_CLASS)) : (null === itemInstance || void 0 === itemInstance ? void 0 : null === (_itemInstance$_focusT = itemInstance._focusTarget) || void 0 === _itemInstance$_focusT ? void 0 : _itemInstance$_focusT.call(itemInstance)) || $(itemInstance.element());\r\n var tabIndex = null === (_itemData$options2 = itemData.options) || void 0 === _itemData$options2 ? void 0 : _itemData$options2.tabIndex;\r\n if (isItemNotFocusable) {\r\n $focusTarget.attr(\"tabIndex\", -1)\r\n } else {\r\n $focusTarget.attr(\"tabIndex\", tabIndex ? tabIndex : 0)\r\n }\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/drop_down_menu.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n setHeight\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport 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_light\";\r\nimport {\r\n isMaterial\r\n} from \"./themes\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../core/templates/child_default_template\";\r\nimport {\r\n toggleItemFocusableElementTabIndex\r\n} from \"./toolbar/ui.toolbar.utils\";\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 hoverStateEnabled: false,\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 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 * getHeight(window);\r\n if (getHeight($content) > listMaxHeight) {\r\n setHeight($content, listMaxHeight)\r\n }\r\n },\r\n _itemOptionChanged: function(item, property, value) {\r\n var _this$_list;\r\n null === (_this$_list = this._list) || void 0 === _this$_list ? void 0 : _this$_list._itemOptionChanged(item, property, value);\r\n toggleItemFocusableElementTabIndex(this._list, item)\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 this._updateFocusableItemsTabIndex();\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 case \"disabled\":\r\n if (this._list) {\r\n this._updateFocusableItemsTabIndex()\r\n }\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _updateFocusableItemsTabIndex() {\r\n this.option(\"items\").forEach(item => toggleItemFocusableElementTabIndex(this._list, item))\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/toolbar/ui.toolbar.drop_down_menu.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport ToolbarMenu from \"./ui.toolbar.menu\";\r\nimport DropDownMenu from \"../drop_down_menu\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nvar MENU_INVISIBLE_CLASS = \"dx-state-invisible\";\r\nvar TOOLBAR_DROP_DOWN_MENU_CONTAINER_CLASS = \"dx-toolbar-menu-container\";\r\nvar POPOVER_BOUNDARY_OFFSET = 10;\r\nclass ToolbarDropDownMenu {\r\n constructor(toolbar) {\r\n this._toolbar = toolbar\r\n }\r\n render() {\r\n if (!this._hasVisibleMenuItems()) {\r\n return\r\n }\r\n this._renderMenuButtonContainer();\r\n var $menu = $(\"
\").appendTo(this._dropDownMenuContainer());\r\n this._dropDownMenu = this._toolbar._createComponent($menu, DropDownMenu, this._dropDownMenuOptions());\r\n this.renderMenuItems()\r\n }\r\n renderMenuItems() {\r\n if (!this._dropDownMenu) {\r\n this.render()\r\n }\r\n this._dropDownMenu && this._dropDownMenu.option(\"items\", this._getMenuItems());\r\n if (this._dropDownMenu && !this._dropDownMenu.option(\"items\").length) {\r\n this._dropDownMenu.close()\r\n }\r\n }\r\n _renderMenuButtonContainer() {\r\n var $afterSection = this._toolbar._$afterSection;\r\n this._$menuButtonContainer = $(\"
\").appendTo($afterSection).addClass(this._toolbar._buttonClass()).addClass(TOOLBAR_DROP_DOWN_MENU_CONTAINER_CLASS)\r\n }\r\n _getMenuItemTemplate() {\r\n return this._toolbar._getTemplateByOption(\"menuItemTemplate\")\r\n }\r\n _dropDownMenuOptions() {\r\n var itemClickAction = this._toolbar._createActionByOption(\"onItemClick\");\r\n var topAndBottomOffset = 2 * POPOVER_BOUNDARY_OFFSET;\r\n return {\r\n disabled: this._toolbar.option(\"disabled\"),\r\n itemTemplate: this._getMenuItemTemplate.bind(this),\r\n onItemClick: function(e) {\r\n itemClickAction(e)\r\n }.bind(this),\r\n deferRendering: true,\r\n container: this._toolbar.option(\"menuContainer\"),\r\n popupMaxHeight: \"android\" === devices.current().platform ? domAdapter.getDocumentElement().clientHeight - topAndBottomOffset : void 0,\r\n menuWidget: ToolbarMenu,\r\n onOptionChanged: _ref => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n if (\"opened\" === name) {\r\n this._toolbar.option(\"overflowMenuVisible\", value)\r\n }\r\n if (\"items\" === name) {\r\n this._updateMenuVisibility(value)\r\n }\r\n },\r\n popupPosition: {\r\n at: \"bottom right\",\r\n my: \"top right\"\r\n }\r\n }\r\n }\r\n _updateMenuVisibility(menuItems) {\r\n var items = menuItems || this._getMenuItems();\r\n var isMenuVisible = items.length && this._hasVisibleMenuItems(items);\r\n this._toggleMenuVisibility(isMenuVisible)\r\n }\r\n _getMenuItems() {\r\n return this._toolbar._getMenuItems()\r\n }\r\n _hasVisibleMenuItems(items) {\r\n var menuItems = items || this._toolbar.option(\"items\");\r\n var result = false;\r\n var optionGetter = compileGetter(\"visible\");\r\n var overflowGetter = compileGetter(\"locateInMenu\");\r\n each(menuItems, (function(index, item) {\r\n var itemVisible = optionGetter(item, {\r\n functionsAsIs: true\r\n });\r\n var itemOverflow = overflowGetter(item, {\r\n functionsAsIs: true\r\n });\r\n if (false !== itemVisible && (\"auto\" === itemOverflow || \"always\" === itemOverflow) || \"menu\" === item.location) {\r\n result = true\r\n }\r\n }));\r\n return result\r\n }\r\n _toggleMenuVisibility(value) {\r\n if (!this._dropDownMenuContainer()) {\r\n return\r\n }\r\n this._dropDownMenuContainer().toggleClass(MENU_INVISIBLE_CLASS, !value)\r\n }\r\n _dropDownMenuContainer() {\r\n return this._$menuButtonContainer\r\n }\r\n widgetOption(name, value) {\r\n this._dropDownMenu && this._dropDownMenu.option(name, value)\r\n }\r\n itemOption(item, property, value) {\r\n if (\"disabled\" === property || \"options.disabled\" === property) {\r\n var _this$_dropDownMenu;\r\n null === (_this$_dropDownMenu = this._dropDownMenu) || void 0 === _this$_dropDownMenu ? void 0 : _this$_dropDownMenu._itemOptionChanged(item, property, value)\r\n } else {\r\n this.renderMenuItems()\r\n }\r\n }\r\n}\r\nexport default ToolbarDropDownMenu;\r\n","/**\r\n * DevExtreme (esm/ui/toolbar.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getOuterWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n grep,\r\n deferRender\r\n} from \"../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport ToolbarDropDownMenu from \"./toolbar/ui.toolbar.drop_down_menu\";\r\nimport ToolbarBase from \"./toolbar/ui.toolbar.base\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../core/templates/child_default_template\";\r\nimport {\r\n toggleItemFocusableElementTabIndex\r\n} from \"./toolbar/ui.toolbar.utils\";\r\nvar TOOLBAR_AUTO_HIDE_ITEM_CLASS = \"dx-toolbar-item-auto-hide\";\r\nvar TOOLBAR_AUTO_HIDE_TEXT_CLASS = \"dx-toolbar-text-auto-hide\";\r\nvar TOOLBAR_HIDDEN_ITEM = \"dx-toolbar-item-invisible\";\r\nvar Toolbar = ToolbarBase.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n menuItemTemplate: \"menuItem\",\r\n menuContainer: void 0,\r\n overflowMenuVisible: false\r\n })\r\n },\r\n updateDimensions: function() {\r\n this._dimensionChanged()\r\n },\r\n _dimensionChanged: function(dimension) {\r\n if (\"height\" === dimension) {\r\n return\r\n }\r\n this.callBase();\r\n this._menu.renderMenuItems()\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n actionSheetItem: new ChildDefaultTemplate(\"item\")\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._updateFocusableItemsTabIndex();\r\n this._renderMenu()\r\n },\r\n _postProcessRenderItems: function() {\r\n this._hideOverflowItems();\r\n this._menu._updateMenuVisibility();\r\n this.callBase();\r\n deferRender(() => {\r\n this._menu.renderMenuItems()\r\n })\r\n },\r\n _renderItem: function(index, item, itemContainer, $after) {\r\n var itemElement = this.callBase(index, item, itemContainer, $after);\r\n if (\"auto\" === item.locateInMenu) {\r\n itemElement.addClass(TOOLBAR_AUTO_HIDE_ITEM_CLASS)\r\n }\r\n if (\"dxButton\" === item.widget && \"inMenu\" === item.showText) {\r\n itemElement.toggleClass(TOOLBAR_AUTO_HIDE_TEXT_CLASS)\r\n }\r\n return itemElement\r\n },\r\n _getItemsWidth: function() {\r\n return this._getSummaryItemsWidth([this._$beforeSection, this._$centerSection, this._$afterSection])\r\n },\r\n _hideOverflowItems: function(elementWidth) {\r\n var overflowItems = this.$element().find(\".\" + TOOLBAR_AUTO_HIDE_ITEM_CLASS);\r\n if (!overflowItems.length) {\r\n return\r\n }\r\n elementWidth = elementWidth || getWidth(this.$element());\r\n $(overflowItems).removeClass(TOOLBAR_HIDDEN_ITEM);\r\n var itemsWidth = this._getItemsWidth();\r\n while (overflowItems.length && elementWidth < itemsWidth) {\r\n var $item = overflowItems.eq(-1);\r\n itemsWidth -= getOuterWidth($item);\r\n $item.addClass(TOOLBAR_HIDDEN_ITEM);\r\n overflowItems.splice(-1, 1)\r\n }\r\n },\r\n _getMenuItems: function() {\r\n var that = this;\r\n var menuItems = grep(this.option(\"items\") || [], (function(item) {\r\n return that._isMenuItem(item)\r\n }));\r\n var $hiddenItems = this._itemContainer().children(\".\" + TOOLBAR_AUTO_HIDE_ITEM_CLASS + \".\" + TOOLBAR_HIDDEN_ITEM).not(\".dx-state-invisible\");\r\n this._restoreItems = this._restoreItems || [];\r\n var overflowItems = [].slice.call($hiddenItems).map(item => {\r\n var itemData = that._getItemData(item);\r\n var $itemContainer = $(item);\r\n var $itemMarkup = $itemContainer.children();\r\n return extend({\r\n menuItemTemplate: function() {\r\n that._restoreItems.push({\r\n container: $itemContainer,\r\n item: $itemMarkup\r\n });\r\n var $container = $(\"
\").addClass(TOOLBAR_AUTO_HIDE_ITEM_CLASS);\r\n return $container.append($itemMarkup)\r\n }\r\n }, itemData)\r\n });\r\n return [...overflowItems, ...menuItems]\r\n },\r\n _getToolbarItems: function() {\r\n var that = this;\r\n return grep(this.option(\"items\") || [], (function(item) {\r\n return !that._isMenuItem(item)\r\n }))\r\n },\r\n _renderMenu: function() {\r\n this._renderMenuStrategy();\r\n deferRender(() => {\r\n this._menu.render()\r\n })\r\n },\r\n _renderMenuStrategy: function() {\r\n if (!this._menu) {\r\n this._menu = new ToolbarDropDownMenu(this)\r\n }\r\n },\r\n _arrangeItems: function() {\r\n if (this.$element().is(\":hidden\")) {\r\n return\r\n }\r\n this._$centerSection.css({\r\n margin: \"0 auto\",\r\n float: \"none\"\r\n });\r\n each(this._restoreItems || [], (function(_, obj) {\r\n $(obj.container).append(obj.item)\r\n }));\r\n this._restoreItems = [];\r\n var elementWidth = getWidth(this.$element());\r\n this._hideOverflowItems(elementWidth);\r\n this.callBase(elementWidth)\r\n },\r\n _itemOptionChanged: function(item, property, value) {\r\n if (this._isMenuItem(item)) {\r\n this._menu.itemOption(item, property, value)\r\n } else if (this._isToolbarItem(item)) {\r\n this.callBase(item, property, value)\r\n } else {\r\n this.callBase(item, property, value);\r\n this._menu.renderMenuItems()\r\n }\r\n if (\"disabled\" === property || \"options.disabled\" === property) {\r\n toggleItemFocusableElementTabIndex(this, item)\r\n }\r\n if (\"location\" === property) {\r\n this.repaint()\r\n }\r\n },\r\n _updateFocusableItemsTabIndex() {\r\n this._getToolbarItems().forEach(item => toggleItemFocusableElementTabIndex(this, item))\r\n },\r\n _isMenuItem: function(itemData) {\r\n return \"menu\" === itemData.location || \"always\" === itemData.locateInMenu\r\n },\r\n _isToolbarItem: function(itemData) {\r\n return void 0 === itemData.location || \"never\" === itemData.locateInMenu\r\n },\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 \"menuItemTemplate\":\r\n this._changeMenuOption(\"itemTemplate\", this._getTemplate(value));\r\n break;\r\n case \"onItemClick\":\r\n this._changeMenuOption(name, value);\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"menuContainer\":\r\n this._changeMenuOption(\"container\", value);\r\n break;\r\n case \"overflowMenuVisible\":\r\n this._changeMenuOption(\"opened\", value);\r\n break;\r\n case \"disabled\":\r\n this._changeMenuOption(\"disabled\", value);\r\n this.callBase.apply(this, arguments);\r\n this._updateFocusableItemsTabIndex();\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _changeMenuOption: function(name, value) {\r\n this._menu.widgetOption(name, value)\r\n }\r\n});\r\nregisterComponent(\"dxToolbar\", Toolbar);\r\nexport default Toolbar;\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.header_panel.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ 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 isString\r\n} from \"../../core/utils/type\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport \"../drop_down_menu\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getPathParts\r\n} from \"../../core/utils/data\";\r\nvar HEADER_PANEL_CLASS = \"header-panel\";\r\nvar TOOLBAR_BUTTON_CLASS = \"toolbar-button\";\r\nvar TOOLBAR_ARIA_LABEL = \"-ariaToolbar\";\r\nvar DEFAULT_TOOLBAR_ITEM_NAMES = [\"addRowButton\", \"applyFilterButton\", \"columnChooserButton\", \"exportButton\", \"groupPanel\", \"revertButton\", \"saveButton\", \"searchPanel\"];\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 userToolbarOptions = this.option(\"toolbar\");\r\n var options = {\r\n toolbarOptions: {\r\n items: this._getToolbarItems(),\r\n visible: null === userToolbarOptions || void 0 === userToolbarOptions ? void 0 : userToolbarOptions.visible,\r\n disabled: null === userToolbarOptions || void 0 === userToolbarOptions ? void 0 : userToolbarOptions.disabled,\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 var userItems = null === userToolbarOptions || void 0 === userToolbarOptions ? void 0 : userToolbarOptions.items;\r\n options.toolbarOptions.items = this._normalizeToolbarItems(options.toolbarOptions.items, userItems);\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 = !!(null !== toolbarItems && void 0 !== toolbarItems && toolbarItems.length)\r\n }\r\n return options.toolbarOptions\r\n },\r\n _normalizeToolbarItems(defaultItems, userItems) {\r\n defaultItems.forEach(button => {\r\n if (!DEFAULT_TOOLBAR_ITEM_NAMES.includes(button.name)) {\r\n throw new Error(\"Default toolbar item '\".concat(button.name, \"' is not added to DEFAULT_TOOLBAR_ITEM_NAMES\"))\r\n }\r\n });\r\n var defaultProps = {\r\n location: \"after\"\r\n };\r\n var isArray = Array.isArray(userItems);\r\n if (!isDefined(userItems)) {\r\n return defaultItems\r\n }\r\n if (!isArray) {\r\n userItems = [userItems]\r\n }\r\n var defaultButtonsByNames = {};\r\n defaultItems.forEach(button => {\r\n defaultButtonsByNames[button.name] = button\r\n });\r\n var normalizedItems = userItems.map(button => {\r\n if (isString(button)) {\r\n button = {\r\n name: button\r\n }\r\n }\r\n if (isDefined(button.name)) {\r\n if (isDefined(defaultButtonsByNames[button.name])) {\r\n button = extend(true, {}, defaultButtonsByNames[button.name], button)\r\n } else if (DEFAULT_TOOLBAR_ITEM_NAMES.includes(button.name)) {\r\n button = _extends({}, button, {\r\n visible: false\r\n })\r\n }\r\n }\r\n return extend(true, {}, defaultProps, button)\r\n });\r\n return isArray ? normalizedItems : normalizedItems[0]\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 var _this$_toolbar;\r\n null === (_this$_toolbar = this._toolbar) || void 0 === _this$_toolbar ? void 0 : _this$_toolbar.updateDimensions()\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 if (\"toolbar\" === args.name) {\r\n args.handled = true;\r\n if (this._toolbar) {\r\n var parts = getPathParts(args.fullName);\r\n var optionName = args.fullName.replace(/^toolbar\\./, \"\");\r\n if (1 === parts.length) {\r\n var toolbarOptions = this._getToolbarOptions();\r\n this._toolbar.option(toolbarOptions)\r\n } else if (\"items\" === parts[1]) {\r\n if (2 === parts.length) {\r\n var _toolbarOptions = this._getToolbarOptions();\r\n this._toolbar.option(\"items\", _toolbarOptions.items)\r\n } else if (3 === parts.length) {\r\n var normalizedItem = this._normalizeToolbarItems(this._getToolbarItems(), args.value);\r\n this._toolbar.option(optionName, normalizedItem)\r\n } else if (parts.length >= 4) {\r\n this._toolbar.option(optionName, args.value)\r\n }\r\n } else {\r\n this._toolbar.option(optionName, args.value)\r\n }\r\n }\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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport 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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\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 rowTemplate: {\r\n since: \"21.2\",\r\n message: 'Use the \"dataRowTemplate\" option instead'\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 selection: {\r\n showCheckBoxesMode: \"always\"\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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport errors from \"../widget/ui.errors\";\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 isEmptyObject\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 throw new Error(\"E1007\")\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 if (null !== state && !isEmptyObject(state)) {\r\n this.state(state)\r\n }\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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getKeyHash,\r\n equalByValue\r\n} from \"../../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(true, {}, _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 state = extend(true, {}, state);\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 (!this.option(\"selection.deferred\")) {\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\")) {\r\n this.option(\"focusedRowIndex\", -1);\r\n this.option(\"focusedRowKey\", state.focusedRowKey || null)\r\n }\r\n this.component.endUpdate();\r\n 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.pageIndex\", state.pageIndex || 0);\r\n this.option(\"paging.pageSize\", (!isVirtualScrollingMode || showPageSizeSelector) && isDefined(state.pageSize) ? state.pageSize : this._initialPageSize);\r\n dataController && dataController.reset()\r\n }\r\n },\r\n columns: {\r\n _shouldReturnVisibleColumns: function() {\r\n var result = this.callBase.apply(this, arguments);\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n return result && (!stateStoringController.isEnabled() || stateStoringController.isLoaded())\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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport 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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport 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 this._dataController && this._dataController.pushed.add(this._handleDataPushed.bind(this))\r\n },\r\n _handleDataPushed: function(changes) {\r\n var removedKeys = changes.filter(change => \"remove\" === change.type).map(change => change.key);\r\n removedKeys.length && this.deselectRows(removedKeys)\r\n },\r\n _getSelectionConfig: function() {\r\n var dataController = this._dataController;\r\n var columnsController = this.getController(\"columns\");\r\n var selectionOptions = this.option(\"selection\") || {};\r\n var deferred = selectionOptions.deferred;\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var virtualPaging = \"virtual\" === scrollingMode || \"infinite\" === scrollingMode;\r\n var allowSelectAll = this.option(\"selection.allowSelectAll\");\r\n var legacyScrollingMode = this.option(\"scrolling.legacyMode\");\r\n return {\r\n selectedKeys: this.option(\"selectedRowKeys\"),\r\n mode: this._selectionMode,\r\n deferred: deferred,\r\n maxFilterLengthInRequest: selectionOptions.maxFilterLengthInRequest,\r\n selectionFilter: this.option(\"selectionFilter\"),\r\n ignoreDisabledItems: true,\r\n allowLoadByRange: function() {\r\n var hasGroupColumns = columnsController.getGroupColumns().length > 0;\r\n return virtualPaging && !legacyScrollingMode && !hasGroupColumns && allowSelectAll && !deferred\r\n },\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(deferred)\r\n },\r\n totalCount: () => dataController.totalCount(),\r\n getLoadOptions: function(loadItemIndex, focusedItemIndex, shiftItemIndex) {\r\n var _dataController$dataS3, _dataController$dataS4;\r\n var {\r\n sort: sort,\r\n filter: filter\r\n } = null !== (_dataController$dataS3 = null === (_dataController$dataS4 = dataController.dataSource()) || void 0 === _dataController$dataS4 ? void 0 : _dataController$dataS4.lastLoadOptions()) && void 0 !== _dataController$dataS3 ? _dataController$dataS3 : {};\r\n var minIndex = Math.min(loadItemIndex, focusedItemIndex);\r\n var maxIndex = Math.max(loadItemIndex, focusedItemIndex);\r\n if (isDefined(shiftItemIndex)) {\r\n minIndex = Math.min(shiftItemIndex, minIndex);\r\n maxIndex = Math.max(shiftItemIndex, maxIndex)\r\n }\r\n var take = maxIndex - minIndex + 1;\r\n return {\r\n skip: minIndex,\r\n take: take,\r\n filter: filter,\r\n sort: sort\r\n }\r\n },\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 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 if (options) {\r\n this.executeAction(\"onSelectionChanged\", options)\r\n }\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(true);\r\n var visibleItems = 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 var visibleChangedItemIndexes = this.getChangedItemIndexes(visibleItems);\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: visibleChangedItemIndexes\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 this.callBase(args);\r\n switch (args.name) {\r\n case \"selection\":\r\n var oldSelectionMode = this._selectionMode;\r\n this.init();\r\n if (\"selection.showCheckBoxesMode\" !== args.fullName) {\r\n var selectionMode = this._selectionMode;\r\n var selectedRowKeys = this.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 this.selectRows(selectedRowKeys).always(() => {\r\n this._fireSelectionChanged()\r\n })\r\n }\r\n this.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) && !this._selectedItemsInternalChange && (this.component.getDataSource() || !value.length)) {\r\n this.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(visibleItemIndex, keys, setFocusOnly) {\r\n keys = keys || {};\r\n if (this.isSelectionWithCheckboxes()) {\r\n keys.control = true\r\n }\r\n var loadedItemIndex = visibleItemIndex + this._dataController.getRowIndexOffset() - this._dataController.getRowIndexOffset(true);\r\n return this._selection.changeItemSelection(loadedItemIndex, keys, setFocusOnly)\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 },\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 || e.repaintChangesOnly && \"update\" === 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\"), groupElement);\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._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.setAria(\"label\", messageLocalization.format(\"dxDataGrid-ariaSelectRow\"), groupElement);\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.apply(this, arguments);\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 var selectionMode = this.option(SELECTION_MODE);\r\n if (\"none\" !== selectionMode) {\r\n this.setAria(\"selected\", isSelected, $row)\r\n }\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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport 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/grid_core/ui.grid_core.column_chooser.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n deferUpdate,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport {\r\n ColumnsView\r\n} from \"./ui.grid_core.columns_view\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n isMaterial as isMaterialTheme,\r\n isGeneric,\r\n current\r\n} from \"../themes\";\r\nimport TreeView from \"../tree_view\";\r\nimport devices from \"../../core/devices\";\r\nimport Popup from \"../popup\";\r\nimport Button from \"../button\";\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\nvar COLUMN_CHOOSER_CLASS = \"column-chooser\";\r\nvar COLUMN_CHOOSER_BUTTON_CLASS = \"column-chooser-button\";\r\nvar NOTOUCH_ACTION_CLASS = \"notouch-action\";\r\nvar COLUMN_CHOOSER_LIST_CLASS = \"column-chooser-list\";\r\nvar COLUMN_CHOOSER_PLAIN_CLASS = \"column-chooser-plain\";\r\nvar COLUMN_CHOOSER_DRAG_CLASS = \"column-chooser-mode-drag\";\r\nvar COLUMN_CHOOSER_SELECT_CLASS = \"column-chooser-mode-select\";\r\nvar COLUMN_CHOOSER_ICON_NAME = \"column-chooser\";\r\nvar COLUMN_CHOOSER_ITEM_CLASS = \"dx-column-chooser-item\";\r\nvar TREEVIEW_NODE_SELECTOR = \".dx-treeview-node\";\r\nvar CHECKBOX_SELECTOR = \".dx-checkbox\";\r\nvar CLICK_TIMEOUT = 300;\r\nvar processItems = function(that, chooserColumns) {\r\n var items = [];\r\n var isSelectMode = \"select\" === that.option(\"columnChooser.mode\");\r\n if (chooserColumns.length) {\r\n each(chooserColumns, (function(index, column) {\r\n var item = {\r\n text: column.caption,\r\n cssClass: column.cssClass,\r\n allowHiding: column.allowHiding,\r\n expanded: true,\r\n id: column.index,\r\n disabled: false,\r\n disableCheckBox: false === column.allowHiding,\r\n parentId: isDefined(column.ownerBand) ? column.ownerBand : null\r\n };\r\n if (isSelectMode) {\r\n item.selected = column.visible\r\n }\r\n items.push(item)\r\n }))\r\n }\r\n return items\r\n};\r\nvar ColumnChooserController = modules.ViewController.inherit({\r\n renderShowColumnChooserButton: function($element) {\r\n var that = this;\r\n var columnChooserButtonClass = that.addWidgetPrefix(COLUMN_CHOOSER_BUTTON_CLASS);\r\n var columnChooserEnabled = that.option(\"columnChooser.enabled\");\r\n var $showColumnChooserButton = $element.find(\".\" + columnChooserButtonClass);\r\n var $columnChooserButton;\r\n if (columnChooserEnabled) {\r\n if (!$showColumnChooserButton.length) {\r\n $columnChooserButton = $(\"
\").addClass(columnChooserButtonClass).appendTo($element);\r\n that._createComponent($columnChooserButton, Button, {\r\n icon: COLUMN_CHOOSER_ICON_NAME,\r\n onClick: function() {\r\n that.getView(\"columnChooserView\").showColumnChooser()\r\n },\r\n hint: that.option(\"columnChooser.title\"),\r\n integrationOptions: {}\r\n })\r\n } else {\r\n $showColumnChooserButton.show()\r\n }\r\n } else {\r\n $showColumnChooserButton.hide()\r\n }\r\n },\r\n getPosition: function() {\r\n var rowsView = this.getView(\"rowsView\");\r\n return {\r\n my: \"right bottom\",\r\n at: \"right bottom\",\r\n of: rowsView && rowsView.element(),\r\n collision: \"fit\",\r\n offset: \"-2 -2\",\r\n boundaryOffset: \"2 2\"\r\n }\r\n }\r\n});\r\nvar ColumnChooserView = ColumnsView.inherit({\r\n _resizeCore: noop,\r\n _isWinDevice: function() {\r\n return !!devices.real().win\r\n },\r\n _updateList: function(change) {\r\n var items;\r\n var $popupContent = this._popupContainer.$content();\r\n var isSelectMode = \"select\" === this.option(\"columnChooser.mode\");\r\n var columnChooserList = this._columnChooserList;\r\n var chooserColumns = this._columnsController.getChooserColumns(isSelectMode);\r\n this._popupContainer.setAria({\r\n role: \"dialog\",\r\n label: messageLocalization.format(\"dxDataGrid-columnChooserTitle\")\r\n });\r\n if (isSelectMode && columnChooserList && change && \"selection\" === change.changeType) {\r\n items = processItems(this, chooserColumns);\r\n for (var i = 0; i < items.length; i++) {\r\n var selected = items[i].selected;\r\n var id = items[i].id;\r\n if (id === change.columnIndex) {\r\n if (selected) {\r\n columnChooserList.selectItem(id, selected)\r\n } else {\r\n columnChooserList.unselectItem(id, selected)\r\n }\r\n }\r\n }\r\n } else if (!isSelectMode || !columnChooserList || \"full\" === change) {\r\n this._popupContainer.$wrapper().toggleClass(this.addWidgetPrefix(COLUMN_CHOOSER_DRAG_CLASS), !isSelectMode).toggleClass(this.addWidgetPrefix(COLUMN_CHOOSER_SELECT_CLASS), isSelectMode);\r\n items = processItems(this, chooserColumns);\r\n this._renderTreeView($popupContent, items)\r\n }\r\n },\r\n _initializePopupContainer: function() {\r\n var that = this;\r\n var $element = that.element().addClass(that.addWidgetPrefix(COLUMN_CHOOSER_CLASS));\r\n var columnChooserOptions = that.option(\"columnChooser\");\r\n var themeName = current();\r\n var isGenericTheme = isGeneric(themeName);\r\n var isMaterial = isMaterialTheme(themeName);\r\n var dxPopupOptions = {\r\n visible: false,\r\n shading: false,\r\n showCloseButton: false,\r\n dragEnabled: true,\r\n resizeEnabled: true,\r\n copyRootClassesToWrapper: true,\r\n _ignoreCopyRootClassesToWrapperDeprecation: true,\r\n toolbarItems: [{\r\n text: columnChooserOptions.title,\r\n toolbar: \"top\",\r\n location: isGenericTheme || isMaterial ? \"before\" : \"center\"\r\n }],\r\n position: that.getController(\"columnChooser\").getPosition(),\r\n width: columnChooserOptions.width,\r\n height: columnChooserOptions.height,\r\n rtlEnabled: that.option(\"rtlEnabled\"),\r\n onHidden: function() {\r\n if (that._isWinDevice()) {\r\n $(\"body\").removeClass(that.addWidgetPrefix(NOTOUCH_ACTION_CLASS))\r\n }\r\n },\r\n container: columnChooserOptions.container\r\n };\r\n if (isGenericTheme || isMaterial) {\r\n extend(dxPopupOptions, {\r\n showCloseButton: true\r\n })\r\n } else {\r\n dxPopupOptions.toolbarItems[dxPopupOptions.toolbarItems.length] = {\r\n shortcut: \"cancel\"\r\n }\r\n }\r\n if (!isDefined(this._popupContainer)) {\r\n that._popupContainer = that._createComponent($element, Popup, dxPopupOptions);\r\n that._popupContainer.on(\"optionChanged\", (function(args) {\r\n if (\"visible\" === args.name) {\r\n that.renderCompleted.fire()\r\n }\r\n }))\r\n } else {\r\n this._popupContainer.option(dxPopupOptions)\r\n }\r\n },\r\n _renderCore: function(change) {\r\n if (this._popupContainer) {\r\n this._updateList(change)\r\n }\r\n },\r\n _renderTreeView: function($container, items) {\r\n var that = this;\r\n var columnChooser = this.option(\"columnChooser\");\r\n var isSelectMode = \"select\" === columnChooser.mode;\r\n var treeViewConfig = {\r\n items: items,\r\n dataStructure: \"plain\",\r\n activeStateEnabled: true,\r\n focusStateEnabled: true,\r\n hoverStateEnabled: true,\r\n itemTemplate: \"item\",\r\n showCheckBoxesMode: \"none\",\r\n rootValue: null,\r\n searchEnabled: columnChooser.allowSearch,\r\n searchTimeout: columnChooser.searchTimeout,\r\n onItemRendered: function(e) {\r\n if (e.itemData.disableCheckBox) {\r\n var $treeViewNode = $(e.itemElement).closest(TREEVIEW_NODE_SELECTOR);\r\n var $checkBox;\r\n if ($treeViewNode.length) {\r\n $checkBox = $treeViewNode.find(CHECKBOX_SELECTOR);\r\n if ($checkBox.length) {\r\n var checkBoxInstance = $checkBox.data(\"dxCheckBox\");\r\n checkBoxInstance && checkBoxInstance.option(\"disabled\", true)\r\n }\r\n }\r\n }\r\n }\r\n };\r\n var scrollableInstance = $container.find(\".dx-scrollable\").data(\"dxScrollable\");\r\n var scrollTop = scrollableInstance && scrollableInstance.scrollTop();\r\n if (isSelectMode && !this._columnsController.isBandColumnsUsed()) {\r\n $container.addClass(this.addWidgetPrefix(COLUMN_CHOOSER_PLAIN_CLASS))\r\n }\r\n treeViewConfig.onContentReady = function(e) {\r\n deferUpdate((function() {\r\n if (scrollTop) {\r\n var scrollable = $(e.element).find(\".dx-scrollable\").data(\"dxScrollable\");\r\n scrollable && scrollable.scrollTo({\r\n y: scrollTop\r\n })\r\n }\r\n that.renderCompleted.fire()\r\n }))\r\n };\r\n if (this._isWinDevice()) {\r\n treeViewConfig.useNativeScrolling = false\r\n }\r\n extend(treeViewConfig, isSelectMode ? this._prepareSelectModeConfig() : this._prepareDragModeConfig());\r\n if (this._columnChooserList) {\r\n if (!treeViewConfig.searchEnabled) {\r\n treeViewConfig.searchValue = \"\"\r\n }\r\n this._columnChooserList.option(treeViewConfig)\r\n } else {\r\n this._columnChooserList = this._createComponent($container, TreeView, treeViewConfig);\r\n $container.addClass(this.addWidgetPrefix(COLUMN_CHOOSER_LIST_CLASS))\r\n }\r\n },\r\n _prepareDragModeConfig: function() {\r\n var columnChooserOptions = this.option(\"columnChooser\");\r\n return {\r\n noDataText: columnChooserOptions.emptyPanelText,\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n itemTemplate: function(data, index, item) {\r\n $(item).text(data.text).parent().addClass(data.cssClass).addClass(COLUMN_CHOOSER_ITEM_CLASS)\r\n }\r\n }\r\n },\r\n _prepareSelectModeConfig: function() {\r\n var that = this;\r\n return {\r\n selectNodesRecursive: false,\r\n showCheckBoxesMode: \"normal\",\r\n onItemSelectionChanged: function(e) {\r\n var visibleColumns = that._columnsController.getVisibleColumns().filter((function(item) {\r\n return !item.command\r\n }));\r\n var isLastColumnUnselected = 1 === visibleColumns.length && !e.itemData.selected;\r\n if (isLastColumnUnselected) {\r\n e.component.selectItem(e.itemElement)\r\n } else {\r\n setTimeout((function() {\r\n that._columnsController.columnOption(e.itemData.id, \"visible\", e.itemData.selected)\r\n }), CLICK_TIMEOUT)\r\n }\r\n }\r\n }\r\n },\r\n _columnOptionChanged: function(e) {\r\n var changeTypes = e.changeTypes;\r\n var optionNames = e.optionNames;\r\n var isSelectMode = \"select\" === this.option(\"columnChooser.mode\");\r\n this.callBase(e);\r\n if (isSelectMode) {\r\n var needPartialRender = optionNames.visible && 1 === optionNames.length && void 0 !== e.columnIndex;\r\n var needFullRender = optionNames.showInColumnChooser || optionNames.caption || optionNames.visible || changeTypes.columns && optionNames.all;\r\n if (needPartialRender) {\r\n this.render(null, {\r\n changeType: \"selection\",\r\n columnIndex: e.columnIndex\r\n })\r\n } else if (needFullRender) {\r\n this.render(null, \"full\")\r\n }\r\n }\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"columnChooser\":\r\n this._initializePopupContainer();\r\n this.render(null, \"full\");\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getColumnElements: function() {\r\n var result = [];\r\n var $node;\r\n var isSelectMode = \"select\" === this.option(\"columnChooser.mode\");\r\n var chooserColumns = this._columnsController.getChooserColumns(isSelectMode);\r\n var $content = this._popupContainer && this._popupContainer.$content();\r\n var $nodes = $content && $content.find(\".dx-treeview-node\");\r\n if ($nodes) {\r\n chooserColumns.forEach((function(column) {\r\n $node = $nodes.filter(\"[data-item-id = '\" + column.index + \"']\");\r\n var item = $node.length ? $node.children(\".\" + COLUMN_CHOOSER_ITEM_CLASS).get(0) : null;\r\n result.push(item)\r\n }))\r\n }\r\n return $(result)\r\n },\r\n getName: function() {\r\n return \"columnChooser\"\r\n },\r\n getColumns: function() {\r\n return this._columnsController.getChooserColumns()\r\n },\r\n allowDragging: function(column, sourceLocation) {\r\n var columnVisible = column && column.allowHiding && (\"columnChooser\" !== sourceLocation || !column.visible && this._columnsController.isParentColumnVisible(column.index));\r\n return this.isColumnChooserVisible() && columnVisible\r\n },\r\n getBoundingRect: function() {\r\n var container = this._popupContainer && this._popupContainer.$overlayContent();\r\n if (container && container.is(\":visible\")) {\r\n var offset = container.offset();\r\n return {\r\n left: offset.left,\r\n top: offset.top,\r\n right: offset.left + getOuterWidth(container),\r\n bottom: offset.top + getOuterHeight(container)\r\n }\r\n }\r\n return null\r\n },\r\n showColumnChooser: function() {\r\n if (!this._popupContainer) {\r\n this._initializePopupContainer();\r\n this.render()\r\n }\r\n this._popupContainer.show();\r\n if (this._isWinDevice()) {\r\n $(\"body\").addClass(this.addWidgetPrefix(NOTOUCH_ACTION_CLASS))\r\n }\r\n },\r\n hideColumnChooser: function() {\r\n if (this._popupContainer) {\r\n this._popupContainer.hide()\r\n }\r\n },\r\n isColumnChooserVisible: function() {\r\n var popupContainer = this._popupContainer;\r\n return popupContainer && popupContainer.option(\"visible\")\r\n },\r\n publicMethods: function() {\r\n return [\"showColumnChooser\", \"hideColumnChooser\"]\r\n }\r\n});\r\nexport var columnChooserModule = {\r\n defaultOptions: function() {\r\n return {\r\n columnChooser: {\r\n enabled: false,\r\n allowSearch: false,\r\n searchTimeout: 500,\r\n mode: \"dragAndDrop\",\r\n width: 250,\r\n height: 260,\r\n title: messageLocalization.format(\"dxDataGrid-columnChooserTitle\"),\r\n emptyPanelText: messageLocalization.format(\"dxDataGrid-columnChooserEmptyText\"),\r\n container: void 0\r\n }\r\n }\r\n },\r\n controllers: {\r\n columnChooser: ColumnChooserController\r\n },\r\n views: {\r\n columnChooserView: ColumnChooserView\r\n },\r\n extenders: {\r\n views: {\r\n headerPanel: {\r\n _getToolbarItems: function() {\r\n var items = this.callBase();\r\n return this._appendColumnChooserItem(items)\r\n },\r\n _appendColumnChooserItem: function(items) {\r\n var that = this;\r\n var columnChooserEnabled = that.option(\"columnChooser.enabled\");\r\n if (columnChooserEnabled) {\r\n var hintText = that.option(\"columnChooser.title\");\r\n var toolbarItem = {\r\n widget: \"dxButton\",\r\n options: {\r\n icon: COLUMN_CHOOSER_ICON_NAME,\r\n onClick: function() {\r\n that.component.getView(\"columnChooserView\").showColumnChooser()\r\n },\r\n hint: hintText,\r\n text: hintText,\r\n onInitialized: function(e) {\r\n $(e.element).addClass(that._getToolbarButtonClass(that.addWidgetPrefix(COLUMN_CHOOSER_BUTTON_CLASS)))\r\n },\r\n elementAttr: {\r\n \"aria-haspopup\": \"dialog\"\r\n }\r\n },\r\n showText: \"inMenu\",\r\n location: \"after\",\r\n name: \"columnChooserButton\",\r\n locateInMenu: \"auto\",\r\n sortIndex: 40\r\n };\r\n items.push(toolbarItem)\r\n }\r\n return items\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"columnChooser\":\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 isVisible: function() {\r\n var columnChooserEnabled = this.option(\"columnChooser.enabled\");\r\n return this.callBase() || columnChooserEnabled\r\n }\r\n }\r\n },\r\n controllers: {\r\n columns: {\r\n allowMoveColumn: function(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var columnChooserMode = this.option(\"columnChooser.mode\");\r\n var isMoveColumnDisallowed = \"select\" === columnChooserMode && \"columnChooser\" === targetLocation;\r\n return isMoveColumnDisallowed ? false : this.callBase(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation)\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.column_chooser.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n columnChooserModule\r\n} from \"../grid_core/ui.grid_core.column_chooser\";\r\nexport var ColumnChooserController = columnChooserModule.controllers.columnChooser;\r\nexport var ColumnChooserView = columnChooserModule.views.columnChooserView;\r\ngridCore.registerModule(\"columnChooser\", columnChooserModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.grouping.core.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Class from \"../../core/class\";\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"../../data/utils\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nexport function createOffsetFilter(path, storeLoadOptions, lastLevelOnly) {\r\n var groups = normalizeSortingInfo(storeLoadOptions.group);\r\n var filter = [];\r\n for (var i = lastLevelOnly ? path.length - 1 : 0; i < path.length; i++) {\r\n var filterElement = [];\r\n for (var j = 0; j <= i; j++) {\r\n var selector = groups[j].selector;\r\n if (i === j && (null === path[j] || false === path[j] || true === path[j])) {\r\n if (false === path[j]) {\r\n filterElement.push([selector, \"=\", groups[j].desc ? true : null])\r\n } else if (path[j] ? !groups[j].desc : groups[j].desc) {\r\n filterElement.push([selector, \"<>\", path[j]])\r\n } else {\r\n filterElement.push([selector, \"<>\", null]);\r\n filterElement.push([selector, \"=\", null])\r\n }\r\n } else {\r\n var currentFilter = [selector, i === j ? groups[j].desc ? \">\" : \"<\" : \"=\", path[j]];\r\n if (\"<\" === currentFilter[1]) {\r\n filterElement.push([currentFilter, \"or\", [selector, \"=\", null]])\r\n } else {\r\n filterElement.push(currentFilter)\r\n }\r\n }\r\n }\r\n filter.push(gridCore.combineFilters(filterElement))\r\n }\r\n filter = gridCore.combineFilters(filter, \"or\");\r\n return gridCore.combineFilters([filter, storeLoadOptions.filter])\r\n}\r\nexport var GroupingHelper = Class.inherit(function() {\r\n var findGroupInfoByKey = function(groupsInfo, key) {\r\n var hash = groupsInfo.hash;\r\n return hash && hash[JSON.stringify(key)]\r\n };\r\n var getGroupInfoIndexByOffset = function(groupsInfo, offset) {\r\n var leftIndex = 0;\r\n var rightIndex = groupsInfo.length - 1;\r\n if (!groupsInfo.length) {\r\n return 0\r\n }\r\n do {\r\n var middleIndex = rightIndex + leftIndex >> 1;\r\n if (groupsInfo[middleIndex].offset > offset) {\r\n rightIndex = middleIndex\r\n } else {\r\n leftIndex = middleIndex\r\n }\r\n } while (rightIndex - leftIndex > 1);\r\n var index;\r\n for (index = leftIndex; index <= rightIndex; index++) {\r\n if (groupsInfo[index].offset > offset) {\r\n break\r\n }\r\n }\r\n return index\r\n };\r\n return {\r\n ctor: function(dataSourceAdapter) {\r\n this._dataSource = dataSourceAdapter;\r\n this.reset()\r\n },\r\n reset: function() {\r\n this._groupsInfo = [];\r\n this._totalCountCorrection = 0\r\n },\r\n totalCountCorrection: function() {\r\n return this._totalCountCorrection\r\n },\r\n updateTotalItemsCount: function(totalCountCorrection) {\r\n this._totalCountCorrection = totalCountCorrection || 0\r\n },\r\n isGroupItemCountable: function(item) {\r\n return !this._isVirtualPaging() || !item.isContinuation\r\n },\r\n _isVirtualPaging: function() {\r\n var scrollingMode = this._dataSource.option(\"scrolling.mode\");\r\n return \"virtual\" === scrollingMode || \"infinite\" === scrollingMode\r\n },\r\n itemsCount: function() {\r\n var dataSourceAdapter = this._dataSource;\r\n var dataSource = dataSourceAdapter._dataSource;\r\n var groupCount = gridCore.normalizeSortingInfo(dataSource.group() || []).length;\r\n var itemsCount = function calculateItemsCount(that, items, groupsCount) {\r\n var result = 0;\r\n if (items) {\r\n if (!groupsCount) {\r\n result = items.length\r\n } else {\r\n for (var i = 0; i < items.length; i++) {\r\n if (that.isGroupItemCountable(items[i])) {\r\n result++\r\n }\r\n result += calculateItemsCount(that, items[i].items, groupsCount - 1)\r\n }\r\n }\r\n }\r\n return result\r\n }(this, dataSource.items(), groupCount);\r\n return itemsCount\r\n },\r\n foreachGroups: function(callback, childrenAtFirst, foreachCollapsedGroups, updateOffsets, updateParentOffsets) {\r\n var that = this;\r\n return function foreachGroupsCore(groupsInfo, callback, childrenAtFirst, parents) {\r\n var callbackResults = [];\r\n\r\n function executeCallback(callback, data, parents, callbackResults) {\r\n var callbackResult = data && callback(data, parents);\r\n callbackResult && callbackResults.push(callbackResult);\r\n return callbackResult\r\n }\r\n for (var i = 0; i < groupsInfo.length; i++) {\r\n parents.push(groupsInfo[i].data);\r\n if (!childrenAtFirst && false === executeCallback(callback, groupsInfo[i].data, parents, callbackResults)) {\r\n return false\r\n }\r\n if (!groupsInfo[i].data || groupsInfo[i].data.isExpanded || foreachCollapsedGroups) {\r\n var children = groupsInfo[i].children;\r\n var callbackResult = children.length && foreachGroupsCore(children, callback, childrenAtFirst, parents);\r\n callbackResult && callbackResults.push(callbackResult);\r\n if (false === callbackResult) {\r\n return false\r\n }\r\n }\r\n if (childrenAtFirst && false === executeCallback(callback, groupsInfo[i].data, parents, callbackResults)) {\r\n return false\r\n }\r\n if (!groupsInfo[i].data || groupsInfo[i].data.offset !== groupsInfo[i].offset) {\r\n updateOffsets = true\r\n }\r\n parents.pop()\r\n }\r\n var currentParents = updateParentOffsets && parents.slice(0);\r\n return updateOffsets && when.apply($, callbackResults).always((function() {\r\n that._updateGroupInfoOffsets(groupsInfo, currentParents)\r\n }))\r\n }(that._groupsInfo, callback, childrenAtFirst, [])\r\n },\r\n _updateGroupInfoOffsets: function(groupsInfo, parents) {\r\n parents = parents || [];\r\n for (var index = 0; index < groupsInfo.length; index++) {\r\n var groupInfo = groupsInfo[index];\r\n if (groupInfo.data && groupInfo.data.offset !== groupInfo.offset) {\r\n groupInfo.offset = groupInfo.data.offset;\r\n for (var parentIndex = 0; parentIndex < parents.length; parentIndex++) {\r\n parents[parentIndex].offset = groupInfo.offset\r\n }\r\n }\r\n }\r\n groupsInfo.sort((function(a, b) {\r\n return a.offset - b.offset\r\n }))\r\n },\r\n findGroupInfo: function(path) {\r\n var groupInfo;\r\n var groupsInfo = this._groupsInfo;\r\n for (var pathIndex = 0; groupsInfo && pathIndex < path.length; pathIndex++) {\r\n groupInfo = findGroupInfoByKey(groupsInfo, path[pathIndex]);\r\n groupsInfo = groupInfo && groupInfo.children\r\n }\r\n return groupInfo && groupInfo.data\r\n },\r\n addGroupInfo: function(groupInfoData) {\r\n var groupInfo;\r\n var path = groupInfoData.path;\r\n var groupsInfo = this._groupsInfo;\r\n for (var pathIndex = 0; pathIndex < path.length; pathIndex++) {\r\n groupInfo = findGroupInfoByKey(groupsInfo, path[pathIndex]);\r\n if (!groupInfo) {\r\n groupInfo = {\r\n key: path[pathIndex],\r\n offset: groupInfoData.offset,\r\n data: {\r\n offset: groupInfoData.offset,\r\n isExpanded: true,\r\n path: path.slice(0, pathIndex + 1)\r\n },\r\n children: []\r\n };\r\n var index = getGroupInfoIndexByOffset(groupsInfo, groupInfoData.offset);\r\n groupsInfo.splice(index, 0, groupInfo);\r\n groupsInfo.hash = groupsInfo.hash || {};\r\n groupsInfo.hash[JSON.stringify(groupInfo.key)] = groupInfo\r\n }\r\n if (pathIndex === path.length - 1) {\r\n groupInfo.data = groupInfoData;\r\n if (groupInfo.offset !== groupInfoData.offset) {\r\n this._updateGroupInfoOffsets(groupsInfo)\r\n }\r\n }\r\n groupsInfo = groupInfo.children\r\n }\r\n },\r\n allowCollapseAll: function() {\r\n return true\r\n },\r\n refresh: function(options) {\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var groups = normalizeSortingInfo(storeLoadOptions.group || []);\r\n var oldGroups = \"_group\" in this ? normalizeSortingInfo(this._group || []) : groups;\r\n var groupsCount = Math.min(oldGroups.length, groups.length);\r\n this._group = storeLoadOptions.group;\r\n for (var groupIndex = 0; groupIndex < groupsCount; groupIndex++) {\r\n if (oldGroups[groupIndex].selector !== groups[groupIndex].selector) {\r\n groupsCount = groupIndex;\r\n break\r\n }\r\n }\r\n if (!groupsCount) {\r\n this.reset()\r\n } else {\r\n ! function cleanGroupsInfo(groupsInfo, groupIndex, groupsCount) {\r\n for (var i = 0; i < groupsInfo.length; i++) {\r\n if (groupIndex + 1 >= groupsCount) {\r\n groupsInfo[i].children = []\r\n } else {\r\n cleanGroupsInfo(groupsInfo[i].children, groupIndex + 1, groupsCount)\r\n }\r\n }\r\n }(this._groupsInfo, 0, groupsCount)\r\n }\r\n },\r\n handleDataLoading: function() {},\r\n handleDataLoaded: function(options, callBase) {\r\n callBase(options)\r\n },\r\n handleDataLoadedCore: function(options, callBase) {\r\n callBase(options)\r\n }\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.utils.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCoreUtils from \"../grid_core/ui.grid_core.utils\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"../../data/utils\";\r\nexport function createGroupFilter(path, storeLoadOptions) {\r\n var groups = normalizeSortingInfo(storeLoadOptions.group);\r\n var filter = [];\r\n for (var i = 0; i < path.length; i++) {\r\n filter.push([groups[i].selector, \"=\", path[i]])\r\n }\r\n if (storeLoadOptions.filter) {\r\n filter.push(storeLoadOptions.filter)\r\n }\r\n return gridCoreUtils.combineFilters(filter)\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.grouping.expanded.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n toComparable\r\n} from \"../../core/utils/data\";\r\nimport {\r\n keysEqual\r\n} from \"../../data/utils\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport storeHelper from \"../../data/store_helper\";\r\nimport dataGridCore from \"./ui.data_grid.core\";\r\nimport {\r\n GroupingHelper as GroupingHelperCore,\r\n createOffsetFilter\r\n} from \"./ui.data_grid.grouping.core\";\r\nimport {\r\n createGroupFilter\r\n} from \"./ui.data_grid.utils\";\r\nimport dataQuery from \"../../data/query\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar loadTotalCount = function(dataSource, options) {\r\n var d = new Deferred;\r\n var loadOptions = extend({\r\n skip: 0,\r\n take: 1,\r\n requireTotalCount: true\r\n }, options);\r\n dataSource.load(loadOptions).done((function(data, extra) {\r\n d.resolve(extra && extra.totalCount)\r\n })).fail(d.reject.bind(d));\r\n return d\r\n};\r\nexport var GroupingHelper = GroupingHelperCore.inherit(function() {\r\n var foreachCollapsedGroups = function(that, callback, updateOffsets) {\r\n return that.foreachGroups((function(groupInfo) {\r\n if (!groupInfo.isExpanded) {\r\n return callback(groupInfo)\r\n }\r\n }), false, false, updateOffsets, true)\r\n };\r\n var correctSkipLoadOption = function(that, skip) {\r\n var skipCorrection = 0;\r\n var resultSkip = skip || 0;\r\n if (skip) {\r\n foreachCollapsedGroups(that, (function(groupInfo) {\r\n if (groupInfo.offset - skipCorrection >= skip) {\r\n return false\r\n }\r\n skipCorrection += groupInfo.count - 1\r\n }));\r\n resultSkip += skipCorrection\r\n }\r\n return resultSkip\r\n };\r\n var pathEquals = function(path1, path2) {\r\n if (path1.length !== path2.length) {\r\n return false\r\n }\r\n for (var i = 0; i < path1.length; i++) {\r\n if (!keysEqual(null, path1[i], path2[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n };\r\n var updateGroupOffsets = function updateGroupOffsets(that, items, path, offset, additionalGroupInfo) {\r\n if (!items) {\r\n return\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (\"key\" in item && void 0 !== item.items) {\r\n path.push(item.key);\r\n if (additionalGroupInfo && pathEquals(additionalGroupInfo.path, path) && !item.isContinuation) {\r\n additionalGroupInfo.offset = offset\r\n }\r\n var groupInfo = that.findGroupInfo(path);\r\n if (groupInfo && !item.isContinuation) {\r\n groupInfo.offset = offset\r\n }\r\n if (groupInfo && !groupInfo.isExpanded) {\r\n offset += groupInfo.count\r\n } else {\r\n offset = updateGroupOffsets(that, item.items, path, offset, additionalGroupInfo)\r\n }\r\n path.pop()\r\n } else {\r\n offset++\r\n }\r\n }\r\n return offset\r\n };\r\n var getGroupCount = function getGroupCount(item, groupCount) {\r\n var count = item.count || item.items.length;\r\n if (!item.count && groupCount > 1) {\r\n count = 0;\r\n for (var i = 0; i < item.items.length; i++) {\r\n count += getGroupCount(item.items[i], groupCount - 1)\r\n }\r\n }\r\n return count\r\n };\r\n return {\r\n handleDataLoading: function(options) {\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var collapsedGroups = [];\r\n var collapsedItemsCount = 0;\r\n var skipFirstItem = false;\r\n var take;\r\n var group = options.loadOptions.group;\r\n var skipCorrection = 0;\r\n ! function(storeLoadOptions, loadOptions) {\r\n if (loadOptions.group) {\r\n var groups = dataGridCore.normalizeSortingInfo(loadOptions.group);\r\n var sorts = dataGridCore.normalizeSortingInfo(storeLoadOptions.sort);\r\n storeLoadOptions.sort = storeHelper.arrangeSortingInfo(groups, sorts);\r\n delete loadOptions.group\r\n }\r\n }(storeLoadOptions, options.loadOptions);\r\n options.group = options.group || group;\r\n if (options.isCustomLoading) {\r\n return\r\n }\r\n var loadOptions = extend({}, storeLoadOptions);\r\n loadOptions.skip = correctSkipLoadOption(this, storeLoadOptions.skip);\r\n if (loadOptions.skip && loadOptions.take && group) {\r\n loadOptions.skip--;\r\n loadOptions.take++;\r\n skipFirstItem = true\r\n }\r\n if (loadOptions.take && group) {\r\n take = loadOptions.take;\r\n loadOptions.take++\r\n }\r\n foreachCollapsedGroups(this, (function(groupInfo) {\r\n if (groupInfo.offset >= loadOptions.skip + loadOptions.take + skipCorrection) {\r\n return false\r\n } else if (groupInfo.offset >= loadOptions.skip + skipCorrection && groupInfo.count) {\r\n skipCorrection += groupInfo.count - 1;\r\n collapsedGroups.push(groupInfo);\r\n collapsedItemsCount += groupInfo.count\r\n }\r\n }));\r\n each(collapsedGroups, (function() {\r\n loadOptions.filter = function(path, storeLoadOptions, group) {\r\n var groups = dataGridCore.normalizeSortingInfo(group || storeLoadOptions.group);\r\n var filter = [];\r\n for (var i = 0; i < path.length; i++) {\r\n var filterElement = [];\r\n for (var j = 0; j <= i; j++) {\r\n filterElement.push([groups[j].selector, i === j ? \"<>\" : \"=\", path[j]])\r\n }\r\n filter.push(dataGridCore.combineFilters(filterElement))\r\n }\r\n filter = dataGridCore.combineFilters(filter, \"or\");\r\n return dataGridCore.combineFilters([filter, storeLoadOptions.filter])\r\n }(this.path, loadOptions, group)\r\n }));\r\n options.storeLoadOptions = loadOptions;\r\n options.collapsedGroups = collapsedGroups;\r\n options.collapsedItemsCount = collapsedItemsCount;\r\n options.skip = loadOptions.skip || 0;\r\n options.skipFirstItem = skipFirstItem;\r\n options.take = take\r\n },\r\n handleDataLoaded: function(options, callBase) {\r\n var collapsedGroups = options.collapsedGroups;\r\n var groups = dataGridCore.normalizeSortingInfo(options.group);\r\n var groupCount = groups.length;\r\n\r\n function appendCollapsedPath(data, path, groups, collapsedGroup, offset) {\r\n if (!data || !path.length || !groups.length) {\r\n return\r\n }\r\n var keyValue;\r\n var i;\r\n var pathValue = toComparable(path[0], true);\r\n for (i = 0; i < data.length; i++) {\r\n keyValue = toComparable(data[i].key, true);\r\n if (offset >= collapsedGroup.offset || pathValue === keyValue) {\r\n break\r\n } else {\r\n offset += getGroupCount(data[i], groups.length)\r\n }\r\n }\r\n if (!data.length || pathValue !== keyValue) {\r\n data.splice(i, 0, {\r\n key: path[0],\r\n items: [],\r\n count: 1 === path.length ? collapsedGroup.count : void 0\r\n })\r\n }\r\n appendCollapsedPath(data[i].items, path.slice(1), groups.slice(1), collapsedGroup, offset)\r\n }\r\n if (options.collapsedItemsCount && options.extra && options.extra.totalCount >= 0) {\r\n if (!options.extra._totalCountWasIncreasedByCollapsedItems) {\r\n options.extra.totalCount += options.collapsedItemsCount;\r\n options.extra._totalCountWasIncreasedByCollapsedItems = true\r\n }\r\n }\r\n callBase(options);\r\n if (groupCount) {\r\n var data = options.data;\r\n var query = dataQuery(data);\r\n storeHelper.multiLevelGroup(query, groups).enumerate().done((function(groupedData) {\r\n data = groupedData\r\n }));\r\n if (collapsedGroups) {\r\n for (var pathIndex = 0; pathIndex < collapsedGroups.length; pathIndex++) {\r\n appendCollapsedPath(data, collapsedGroups[pathIndex].path, groups, collapsedGroups[pathIndex], options.skip)\r\n }\r\n }\r\n if (!options.isCustomLoading) {\r\n ! function processGroupItems(that, items, path, offset, skipFirstItem, take) {\r\n var removeLastItemsCount = 0;\r\n var needRemoveFirstItem = false;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (void 0 !== item.items) {\r\n path.push(item.key);\r\n var groupInfo = that.findGroupInfo(path);\r\n if (groupInfo && !groupInfo.isExpanded) {\r\n item.collapsedItems = item.items;\r\n item.items = null;\r\n offset += groupInfo.count;\r\n take--;\r\n if (take < 0) {\r\n removeLastItemsCount++\r\n }\r\n if (skipFirstItem) {\r\n needRemoveFirstItem = true\r\n }\r\n } else if (item.items) {\r\n var offsetInfo = processGroupItems(that, item.items, path, offset, skipFirstItem, take);\r\n if (skipFirstItem) {\r\n if (offsetInfo.offset - offset > 1) {\r\n item.isContinuation = true\r\n } else {\r\n needRemoveFirstItem = true\r\n }\r\n }\r\n offset = offsetInfo.offset;\r\n take = offsetInfo.take;\r\n if (take < 0) {\r\n if (item.items.length) {\r\n item.isContinuationOnNextPage = true\r\n } else {\r\n removeLastItemsCount++\r\n }\r\n }\r\n }\r\n path.pop()\r\n } else {\r\n if (skipFirstItem) {\r\n needRemoveFirstItem = true\r\n }\r\n offset++;\r\n take--;\r\n if (take < 0) {\r\n removeLastItemsCount++\r\n }\r\n }\r\n skipFirstItem = false\r\n }\r\n if (needRemoveFirstItem) {\r\n items.splice(0, 1)\r\n }\r\n if (removeLastItemsCount) {\r\n items.splice(-removeLastItemsCount, removeLastItemsCount)\r\n }\r\n return {\r\n offset: offset,\r\n take: take\r\n }\r\n }(this, data, [], options.skip, options.skipFirstItem, options.take)\r\n }\r\n options.data = data\r\n }\r\n },\r\n isGroupItemCountable: function(item) {\r\n return null === item.items\r\n },\r\n updateTotalItemsCount: function() {\r\n var itemsCountCorrection = 0;\r\n foreachCollapsedGroups(this, (function(groupInfo) {\r\n if (groupInfo.count) {\r\n itemsCountCorrection -= groupInfo.count - 1\r\n }\r\n }));\r\n this.callBase(itemsCountCorrection)\r\n },\r\n changeRowExpand: function(path) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var beginPageIndex = dataSource.beginPageIndex ? dataSource.beginPageIndex() : dataSource.pageIndex();\r\n var dataSourceItems = dataSource.items();\r\n var offset = correctSkipLoadOption(that, beginPageIndex * dataSource.pageSize());\r\n var groupInfo = that.findGroupInfo(path);\r\n var groupCountQuery;\r\n if (groupInfo && !groupInfo.isExpanded) {\r\n groupCountQuery = (new Deferred).resolve(groupInfo.count)\r\n } else {\r\n groupCountQuery = loadTotalCount(dataSource, {\r\n filter: createGroupFilter(path, {\r\n filter: dataSource.filter(),\r\n group: dataSource.group()\r\n })\r\n })\r\n }\r\n return when(groupCountQuery).done((function(count) {\r\n count = parseInt(count.length ? count[0] : count);\r\n if (groupInfo) {\r\n updateGroupOffsets(that, dataSourceItems, [], offset);\r\n groupInfo.isExpanded = !groupInfo.isExpanded;\r\n groupInfo.count = count\r\n } else {\r\n groupInfo = {\r\n offset: -1,\r\n count: count,\r\n path: path,\r\n isExpanded: false\r\n };\r\n updateGroupOffsets(that, dataSourceItems, [], offset, groupInfo);\r\n if (groupInfo.offset >= 0) {\r\n that.addGroupInfo(groupInfo)\r\n }\r\n }\r\n that.updateTotalItemsCount()\r\n })).fail((function() {\r\n dataSource._eventsStrategy.fireEvent(\"loadError\", arguments)\r\n }))\r\n },\r\n allowCollapseAll: function() {\r\n return false\r\n },\r\n refresh: function(options, operationTypes) {\r\n var that = this;\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var dataSource = that._dataSource;\r\n this.callBase.apply(this, arguments);\r\n if (operationTypes.reload) {\r\n return foreachCollapsedGroups(that, (function(groupInfo) {\r\n var groupCountQuery = loadTotalCount(dataSource, {\r\n filter: createGroupFilter(groupInfo.path, storeLoadOptions)\r\n });\r\n var groupOffsetQuery = loadTotalCount(dataSource, {\r\n filter: createOffsetFilter(groupInfo.path, storeLoadOptions)\r\n });\r\n return when(groupOffsetQuery, groupCountQuery).done((function(offset, count) {\r\n offset = parseInt(offset.length ? offset[0] : offset);\r\n count = parseInt(count.length ? count[0] : count);\r\n groupInfo.offset = offset;\r\n if (groupInfo.count !== count) {\r\n groupInfo.count = count;\r\n that.updateTotalItemsCount()\r\n }\r\n }))\r\n }), true)\r\n }\r\n }\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.grouping.collapsed.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport dataGridCore from \"./ui.data_grid.core\";\r\nimport {\r\n GroupingHelper as GroupingHelperCore,\r\n createOffsetFilter\r\n} from \"./ui.data_grid.grouping.core\";\r\nimport {\r\n createGroupFilter\r\n} from \"./ui.data_grid.utils\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n errors as dataErrors\r\n} from \"../../data/errors\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\n\r\nfunction getContinuationGroupCount(groupOffset, pageSize, groupSize, groupIndex) {\r\n groupIndex = groupIndex || 0;\r\n if (pageSize > 1 && groupSize > 0) {\r\n var pageOffset = groupOffset - Math.floor(groupOffset / pageSize) * pageSize || pageSize;\r\n pageOffset += groupSize - groupIndex - 2;\r\n if (pageOffset < 0) {\r\n pageOffset += pageSize\r\n }\r\n return Math.floor(pageOffset / (pageSize - groupIndex - 1))\r\n }\r\n return 0\r\n}\r\nexport var GroupingHelper = GroupingHelperCore.inherit(function() {\r\n var foreachExpandedGroups = function(that, callback, updateGroups) {\r\n return that.foreachGroups((function(groupInfo, parents) {\r\n if (groupInfo.isExpanded) {\r\n return callback(groupInfo, parents)\r\n }\r\n }), true, false, updateGroups, updateGroups)\r\n };\r\n var processGroupItems = function processGroupItems(that, items, groupsCount, expandedInfo, path, isCustomLoading, isLastGroupExpanded) {\r\n var isExpanded;\r\n expandedInfo.items = expandedInfo.items || [];\r\n expandedInfo.paths = expandedInfo.paths || [];\r\n expandedInfo.count = expandedInfo.count || 0;\r\n expandedInfo.lastCount = expandedInfo.lastCount || 0;\r\n if (!groupsCount) {\r\n return\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (void 0 !== item.items) {\r\n path.push(item.key);\r\n if (isCustomLoading) {\r\n isExpanded = true\r\n } else {\r\n var groupInfo = that.findGroupInfo(path);\r\n isExpanded = groupInfo && groupInfo.isExpanded\r\n }\r\n if (!isExpanded) {\r\n item.collapsedItems = item.items;\r\n item.items = null\r\n } else if (item.items) {\r\n processGroupItems(that, item.items, groupsCount - 1, expandedInfo, path, isCustomLoading, isLastGroupExpanded)\r\n } else if (1 === groupsCount && item.count && (!isCustomLoading || isLastGroupExpanded)) {\r\n expandedInfo.items.push(item);\r\n expandedInfo.paths.push(path.slice(0));\r\n expandedInfo.count += expandedInfo.lastCount;\r\n expandedInfo.lastCount = item.count\r\n }\r\n path.pop()\r\n }\r\n }\r\n };\r\n var updateGroupInfoItem = function(that, item, isLastGroupLevel, path, offset) {\r\n var groupInfo = that.findGroupInfo(path);\r\n var count;\r\n if (!groupInfo) {\r\n if (isLastGroupLevel) {\r\n count = item.count > 0 ? item.count : item.items.length\r\n }\r\n that.addGroupInfo({\r\n isExpanded: that._isGroupExpanded(path.length - 1),\r\n path: path.slice(0),\r\n offset: offset,\r\n count: count || 0\r\n })\r\n } else {\r\n if (isLastGroupLevel) {\r\n groupInfo.count = item.count > 0 ? item.count : item.items && item.items.length || 0\r\n } else {\r\n item.count = groupInfo.count || item.count\r\n }\r\n groupInfo.offset = offset\r\n }\r\n };\r\n var updateGroupInfos = function updateGroupInfos(that, options, items, loadedGroupCount, groupIndex, path, parentIndex) {\r\n var groupCount = options.group ? options.group.length : 0;\r\n var isLastGroupLevel = groupCount === loadedGroupCount;\r\n var remotePaging = options.remoteOperations.paging;\r\n var offset = 0;\r\n var totalCount = 0;\r\n var count;\r\n groupIndex = groupIndex || 0;\r\n path = path || [];\r\n if (remotePaging && !parentIndex) {\r\n offset = 0 === groupIndex ? options.skip || 0 : options.skips[groupIndex - 1] || 0\r\n }\r\n if (groupIndex >= loadedGroupCount) {\r\n return items.length\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (item) {\r\n path.push(item.key);\r\n if (!item.count && !item.items || void 0 === item.items) {\r\n return -1\r\n }\r\n updateGroupInfoItem(that, item, isLastGroupLevel, path, offset + i);\r\n count = item.items ? updateGroupInfos(that, options, item.items, loadedGroupCount, groupIndex + 1, path, i) : item.count || -1;\r\n if (count < 0) {\r\n return -1\r\n }\r\n totalCount += count;\r\n path.pop()\r\n }\r\n }\r\n return totalCount\r\n };\r\n var isGroupExpanded = function(groups, groupIndex) {\r\n return groups && groups.length && groups[groupIndex] && !!groups[groupIndex].isExpanded\r\n };\r\n var getTotalOffset = function(groupInfos, pageSize, offset) {\r\n var groupSize;\r\n var totalOffset = offset;\r\n for (var groupIndex = 0; groupIndex < groupInfos.length; groupIndex++) {\r\n groupSize = groupInfos[groupIndex].offset + 1;\r\n if (groupIndex > 0) {\r\n groupSize += groupInfos[groupIndex - 1].childrenTotalCount;\r\n if (pageSize) {\r\n groupSize += getContinuationGroupCount(totalOffset, pageSize, groupSize, groupIndex - 1) * groupIndex\r\n }\r\n }\r\n totalOffset += groupSize\r\n }\r\n return totalOffset\r\n };\r\n\r\n function applyContinuationToGroupItem(options, expandedInfo, groupLevel, expandedItemIndex) {\r\n var item = expandedInfo.items[expandedItemIndex];\r\n var skip = options.skips && options.skips[groupLevel];\r\n var take = options.takes && options.takes[groupLevel];\r\n var isLastExpandedItem = expandedItemIndex === expandedInfo.items.length - 1;\r\n var isFirstExpandedItem = 0 === expandedItemIndex;\r\n var lastExpandedItemSkip = isFirstExpandedItem && skip || 0;\r\n var isItemsTruncatedByTake = item.count > take + lastExpandedItemSkip;\r\n if (isFirstExpandedItem && void 0 !== skip) {\r\n item.isContinuation = true\r\n }\r\n if (isLastExpandedItem && void 0 !== take && isItemsTruncatedByTake) {\r\n item.isContinuationOnNextPage = true\r\n }\r\n }\r\n\r\n function isDataDeferred(data) {\r\n return !Array.isArray(data)\r\n }\r\n\r\n function makeDataDeferred(options) {\r\n if (!isDataDeferred(options.data)) {\r\n options.data = new Deferred\r\n }\r\n }\r\n\r\n function loadGroupItems(that, options, loadedGroupCount, expandedInfo, groupLevel, data) {\r\n if (!options.isCustomLoading) {\r\n expandedInfo = {};\r\n processGroupItems(that, data, loadedGroupCount, expandedInfo, []);\r\n ! function(options, expandedInfo, currentGroupCount) {\r\n var currentGroupIndex = currentGroupCount - 1;\r\n var groupCount = options.group ? options.group.length : 0;\r\n expandedInfo.skip = options.skips && options.skips[currentGroupIndex];\r\n if (options.takes && void 0 !== options.takes[currentGroupIndex]) {\r\n if (groupCount === currentGroupCount) {\r\n expandedInfo.take = expandedInfo.count ? expandedInfo.count - (expandedInfo.skip || 0) : 0\r\n } else {\r\n expandedInfo.take = 0\r\n }\r\n expandedInfo.take += options.takes[currentGroupIndex]\r\n }\r\n }(options, expandedInfo, loadedGroupCount)\r\n }\r\n var groupCount = options.group ? options.group.length : 0;\r\n if (expandedInfo.paths.length && groupCount - loadedGroupCount > 0) {\r\n makeDataDeferred(options);\r\n ! function(that, options, expandedInfo, loadedGroupCount, groupLevel, data) {\r\n var groups = options.group || [];\r\n var currentGroup = groups[groupLevel + 1];\r\n var deferreds = [];\r\n each(expandedInfo.paths, (function(expandedItemIndex) {\r\n var loadOptions = {\r\n requireTotalCount: false,\r\n requireGroupCount: true,\r\n group: [currentGroup],\r\n groupSummary: options.storeLoadOptions.groupSummary,\r\n filter: createGroupFilter(expandedInfo.paths[expandedItemIndex], {\r\n filter: options.storeLoadOptions.filter,\r\n group: groups\r\n }),\r\n select: options.storeLoadOptions.select\r\n };\r\n if (0 === expandedItemIndex) {\r\n loadOptions.skip = expandedInfo.skip || 0\r\n }\r\n if (expandedItemIndex === expandedInfo.paths.length - 1) {\r\n loadOptions.take = expandedInfo.take\r\n }\r\n var loadResult = 0 === loadOptions.take ? [] : that._dataSource.loadFromStore(loadOptions);\r\n when(loadResult).done((function(data) {\r\n var item = expandedInfo.items[expandedItemIndex];\r\n applyContinuationToGroupItem(options, expandedInfo, groupLevel, expandedItemIndex);\r\n item.items = data\r\n }));\r\n deferreds.push(loadResult)\r\n }));\r\n when.apply(null, deferreds).done((function() {\r\n updateGroupInfos(that, options, data, loadedGroupCount + 1);\r\n loadGroupItems(that, options, loadedGroupCount + 1, expandedInfo, groupLevel + 1, data)\r\n }))\r\n }(that, options, expandedInfo, loadedGroupCount, groupLevel, data)\r\n } else if (expandedInfo.paths.length && options.storeLoadOptions.group) {\r\n makeDataDeferred(options);\r\n ! function(that, options, expandedInfo, data) {\r\n var expandedFilters = [];\r\n var groups = options.group || [];\r\n each(expandedInfo.paths, (function(_, expandedPath) {\r\n expandedFilters.push(createGroupFilter(expandedPath, {\r\n group: options.isCustomLoading ? options.storeLoadOptions.group : groups\r\n }))\r\n }));\r\n var filter = options.storeLoadOptions.filter;\r\n if (!options.storeLoadOptions.isLoadingAll) {\r\n filter = dataGridCore.combineFilters([filter, dataGridCore.combineFilters(expandedFilters, \"or\")])\r\n }\r\n var loadOptions = extend({}, options.storeLoadOptions, {\r\n requireTotalCount: false,\r\n requireGroupCount: false,\r\n group: null,\r\n sort: groups.concat(dataGridCore.normalizeSortingInfo(options.storeLoadOptions.sort || [])),\r\n filter: filter\r\n });\r\n var isPagingLocal = that._dataSource.isLastLevelGroupItemsPagingLocal();\r\n if (!isPagingLocal) {\r\n loadOptions.skip = expandedInfo.skip;\r\n loadOptions.take = expandedInfo.take\r\n }\r\n when(0 === expandedInfo.take ? [] : that._dataSource.loadFromStore(loadOptions)).done((function(items, extra) {\r\n if (isPagingLocal) {\r\n items = that._dataSource.sortLastLevelGroupItems(items, groups, expandedInfo.paths);\r\n items = expandedInfo.skip ? items.slice(expandedInfo.skip) : items;\r\n items = expandedInfo.take ? items.slice(0, expandedInfo.take) : items\r\n }\r\n each(expandedInfo.items, (function(index, item) {\r\n var itemCount = item.count - (0 === index && expandedInfo.skip || 0);\r\n var expandedItems = items.splice(0, itemCount);\r\n applyContinuationToGroupItem(options, expandedInfo, groups.length - 1, index);\r\n item.items = expandedItems\r\n }));\r\n options.data.resolve(data)\r\n })).fail(options.data.reject)\r\n }(that, options, expandedInfo, data)\r\n } else if (isDataDeferred(options.data)) {\r\n options.data.resolve(data)\r\n }\r\n }\r\n var loadGroupTotalCount = function(dataSource, options) {\r\n var d = new Deferred;\r\n var isGrouping = !!(options.group && options.group.length);\r\n var loadOptions = extend({\r\n skip: 0,\r\n take: 1,\r\n requireGroupCount: isGrouping,\r\n requireTotalCount: !isGrouping\r\n }, options, {\r\n group: isGrouping ? options.group : null\r\n });\r\n dataSource.load(loadOptions).done((function(data, extra) {\r\n var count = extra && (isGrouping ? extra.groupCount : extra.totalCount);\r\n if (!isFinite(count)) {\r\n d.reject(dataErrors.Error(isGrouping ? \"E4022\" : \"E4021\"));\r\n return\r\n }\r\n d.resolve(count)\r\n })).fail(d.reject.bind(d));\r\n return d\r\n };\r\n return {\r\n updateTotalItemsCount: function(options) {\r\n var totalItemsCount = 0;\r\n var totalCount = options.extra && options.extra.totalCount || 0;\r\n var groupCount = options.extra && options.extra.groupCount || 0;\r\n var pageSize = this._dataSource.pageSize();\r\n var isVirtualPaging = this._isVirtualPaging();\r\n foreachExpandedGroups(this, (function(groupInfo) {\r\n groupInfo.childrenTotalCount = 0\r\n }));\r\n foreachExpandedGroups(this, (function(groupInfo, parents) {\r\n var totalOffset = getTotalOffset(parents, isVirtualPaging ? 0 : pageSize, totalItemsCount);\r\n var count = groupInfo.count + groupInfo.childrenTotalCount;\r\n if (!isVirtualPaging) {\r\n count += getContinuationGroupCount(totalOffset, pageSize, count, parents.length - 1)\r\n }\r\n if (parents[parents.length - 2]) {\r\n parents[parents.length - 2].childrenTotalCount += count\r\n } else {\r\n totalItemsCount += count\r\n }\r\n }));\r\n this.callBase(totalItemsCount - totalCount + groupCount)\r\n },\r\n _isGroupExpanded: function(groupIndex) {\r\n var groups = this._dataSource.group();\r\n return isGroupExpanded(groups, groupIndex)\r\n },\r\n _updatePagingOptions: function(options, callback) {\r\n var isVirtualPaging = this._isVirtualPaging();\r\n var pageSize = this._dataSource.pageSize();\r\n var skips = [];\r\n var takes = [];\r\n var skipChildrenTotalCount = 0;\r\n var childrenTotalCount = 0;\r\n if (options.take) {\r\n foreachExpandedGroups(this, (function(groupInfo) {\r\n groupInfo.childrenTotalCount = 0;\r\n groupInfo.skipChildrenTotalCount = 0\r\n }));\r\n foreachExpandedGroups(this, (function(groupInfo, parents) {\r\n var take;\r\n var takeCorrection = 0;\r\n var parentTakeCorrection = 0;\r\n var totalOffset = getTotalOffset(parents, isVirtualPaging ? 0 : pageSize, childrenTotalCount);\r\n var continuationGroupCount = 0;\r\n var skipContinuationGroupCount = 0;\r\n var groupInfoCount = groupInfo.count + groupInfo.childrenTotalCount;\r\n var childrenGroupInfoCount = groupInfoCount;\r\n callback && callback(groupInfo, totalOffset);\r\n var skip = options.skip - totalOffset;\r\n if (totalOffset <= options.skip + options.take && groupInfoCount) {\r\n take = options.take;\r\n if (!isVirtualPaging) {\r\n continuationGroupCount = getContinuationGroupCount(totalOffset, pageSize, groupInfoCount, parents.length - 1);\r\n groupInfoCount += continuationGroupCount * parents.length;\r\n childrenGroupInfoCount += continuationGroupCount;\r\n if (pageSize && skip >= 0) {\r\n takeCorrection = parents.length;\r\n parentTakeCorrection = parents.length - 1;\r\n skipContinuationGroupCount = Math.floor(skip / pageSize)\r\n }\r\n }\r\n if (skip >= 0) {\r\n if (totalOffset + groupInfoCount > options.skip) {\r\n skips.unshift(skip - skipContinuationGroupCount * takeCorrection - groupInfo.skipChildrenTotalCount)\r\n }\r\n if (totalOffset + groupInfoCount >= options.skip + take) {\r\n takes.unshift(take - takeCorrection - groupInfo.childrenTotalCount + groupInfo.skipChildrenTotalCount)\r\n }\r\n } else if (totalOffset + groupInfoCount >= options.skip + take) {\r\n takes.unshift(take + skip - groupInfo.childrenTotalCount)\r\n }\r\n }\r\n if (totalOffset <= options.skip) {\r\n if (parents[parents.length - 2]) {\r\n parents[parents.length - 2].skipChildrenTotalCount += Math.min(childrenGroupInfoCount, skip + 1 - skipContinuationGroupCount * parentTakeCorrection)\r\n } else {\r\n skipChildrenTotalCount += Math.min(childrenGroupInfoCount, skip + 1)\r\n }\r\n }\r\n if (totalOffset <= options.skip + take) {\r\n groupInfoCount = Math.min(childrenGroupInfoCount, skip + take - (skipContinuationGroupCount + 1) * parentTakeCorrection);\r\n if (parents[parents.length - 2]) {\r\n parents[parents.length - 2].childrenTotalCount += groupInfoCount\r\n } else {\r\n childrenTotalCount += groupInfoCount\r\n }\r\n }\r\n }));\r\n options.skip -= skipChildrenTotalCount;\r\n options.take -= childrenTotalCount - skipChildrenTotalCount\r\n }\r\n options.skips = skips;\r\n options.takes = takes\r\n },\r\n changeRowExpand: function(path) {\r\n var groupInfo = this.findGroupInfo(path);\r\n var dataSource = this._dataSource;\r\n var remoteGroupPaging = dataSource.remoteOperations().groupPaging;\r\n var groups = dataGridCore.normalizeSortingInfo(dataSource.group());\r\n if (groupInfo) {\r\n groupInfo.isExpanded = !groupInfo.isExpanded;\r\n if (remoteGroupPaging && groupInfo.isExpanded && path.length < groups.length) {\r\n return loadGroupTotalCount(dataSource, {\r\n filter: createGroupFilter(path, {\r\n filter: dataSource.lastLoadOptions().filter,\r\n group: dataSource.group()\r\n }),\r\n group: [groups[path.length]],\r\n select: dataSource.select()\r\n }).done((function(groupCount) {\r\n groupInfo.count = groupCount\r\n }))\r\n }\r\n return (new Deferred).resolve()\r\n }\r\n return (new Deferred).reject()\r\n },\r\n handleDataLoading: function(options) {\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var groups = dataGridCore.normalizeSortingInfo(storeLoadOptions.group || options.loadOptions.group);\r\n if (options.isCustomLoading || !groups.length) {\r\n return\r\n }\r\n if (options.remoteOperations.grouping) {\r\n var remotePaging = this._dataSource.remoteOperations().paging;\r\n storeLoadOptions.group = dataGridCore.normalizeSortingInfo(storeLoadOptions.group);\r\n storeLoadOptions.group.forEach((function(group, index) {\r\n var isLastGroup = index === storeLoadOptions.group.length - 1;\r\n group.isExpanded = !remotePaging || !isLastGroup\r\n }))\r\n }\r\n options.group = options.group || groups;\r\n if (options.remoteOperations.paging) {\r\n options.skip = storeLoadOptions.skip;\r\n options.take = storeLoadOptions.take;\r\n storeLoadOptions.requireGroupCount = true;\r\n storeLoadOptions.group = groups.slice(0, 1);\r\n this._updatePagingOptions(options);\r\n storeLoadOptions.skip = options.skip;\r\n storeLoadOptions.take = options.take\r\n } else {\r\n options.skip = options.loadOptions.skip;\r\n options.take = options.loadOptions.take;\r\n this._updatePagingOptions(options)\r\n }\r\n },\r\n handleDataLoadedCore: function(options, callBase) {\r\n var loadedGroupCount = dataGridCore.normalizeSortingInfo(options.storeLoadOptions.group || options.loadOptions.group).length;\r\n var groupCount = options.group ? options.group.length : 0;\r\n var totalCount;\r\n var expandedInfo = {};\r\n if (options.isCustomLoading) {\r\n callBase(options);\r\n processGroupItems(this, options.data, loadedGroupCount, expandedInfo, [], options.isCustomLoading, options.storeLoadOptions.isLoadingAll)\r\n } else {\r\n if (!options.remoteOperations.paging) {\r\n this.foreachGroups((function(groupInfo) {\r\n groupInfo.count = 0\r\n }))\r\n }\r\n totalCount = updateGroupInfos(this, options, options.data, loadedGroupCount);\r\n if (totalCount < 0) {\r\n options.data = (new Deferred).reject(errors.Error(\"E1037\"));\r\n return\r\n }\r\n if (!options.remoteOperations.paging) {\r\n if (loadedGroupCount && options.extra && options.loadOptions.requireTotalCount) {\r\n options.extra.totalCount = totalCount;\r\n options.extra.groupCount = options.data.length\r\n }\r\n }\r\n if (groupCount && options.storeLoadOptions.requireGroupCount && !isFinite(options.extra.groupCount)) {\r\n options.data = (new Deferred).reject(dataErrors.Error(\"E4022\"));\r\n return\r\n }\r\n this.updateTotalItemsCount(options);\r\n if (!options.remoteOperations.paging) {\r\n this._updatePagingOptions(options)\r\n }\r\n callBase(options);\r\n if (!options.remoteOperations.paging) {\r\n this._processPaging(options, loadedGroupCount)\r\n }\r\n }\r\n loadGroupItems(this, options, loadedGroupCount, expandedInfo, 0, options.data)\r\n },\r\n _processSkips: function(items, skips, groupCount) {\r\n if (!groupCount) {\r\n return\r\n }\r\n var firstItem = items[0];\r\n var skip = skips[0];\r\n var children = firstItem && firstItem.items;\r\n if (void 0 !== skip) {\r\n firstItem.isContinuation = true;\r\n if (children) {\r\n firstItem.items = children.slice(skip);\r\n this._processSkips(firstItem.items, skips.slice(1), groupCount - 1)\r\n }\r\n }\r\n },\r\n _processTakes: function(items, skips, takes, groupCount, parents) {\r\n if (!groupCount || !items) {\r\n return\r\n }\r\n parents = parents || [];\r\n var lastItem = items[items.length - 1];\r\n var children = lastItem && lastItem.items;\r\n var take = takes[0];\r\n var skip = skips[0];\r\n if (lastItem) {\r\n var maxTakeCount = lastItem.count - (lastItem.isContinuation && skip || 0) || children.length;\r\n if (void 0 !== take && maxTakeCount > take) {\r\n lastItem.isContinuationOnNextPage = true;\r\n parents.forEach((function(parent) {\r\n parent.isContinuationOnNextPage = true\r\n }));\r\n if (children) {\r\n children = children.slice(0, take);\r\n lastItem.items = children\r\n }\r\n }\r\n parents.push(lastItem);\r\n this._processTakes(children, skips.slice(1), takes.slice(1), groupCount - 1, parents)\r\n }\r\n },\r\n _processPaging: function(options, groupCount) {\r\n this._processSkips(options.data, options.skips, groupCount);\r\n this._processTakes(options.data, options.skips, options.takes, groupCount)\r\n },\r\n isLastLevelGroupItemsPagingLocal: function() {\r\n return false\r\n },\r\n sortLastLevelGroupItems: function(items) {\r\n return items\r\n },\r\n refresh: function(options, operationTypes) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var group = options.group || options.storeLoadOptions.group;\r\n var oldGroups = dataGridCore.normalizeSortingInfo(that._group);\r\n var isExpanded;\r\n var groupIndex;\r\n\r\n function handleGroup(groupInfo, parents) {\r\n if (parents.length === groupIndex + 1) {\r\n groupInfo.isExpanded = isExpanded\r\n }\r\n }\r\n for (groupIndex = 0; groupIndex < oldGroups.length; groupIndex++) {\r\n isExpanded = isGroupExpanded(group, groupIndex);\r\n if (isGroupExpanded(that._group, groupIndex) !== isExpanded) {\r\n that.foreachGroups(handleGroup)\r\n }\r\n }\r\n that.callBase.apply(this, arguments);\r\n if (group && options.remoteOperations.paging && operationTypes.reload) {\r\n return foreachExpandedGroups(that, (function(groupInfo) {\r\n var groupCountQuery = loadGroupTotalCount(dataSource, {\r\n filter: createGroupFilter(groupInfo.path, {\r\n filter: storeLoadOptions.filter,\r\n group: group\r\n }),\r\n group: group.slice(groupInfo.path.length),\r\n select: storeLoadOptions.select\r\n });\r\n var groupOffsetQuery = loadGroupTotalCount(dataSource, {\r\n filter: createOffsetFilter(groupInfo.path, {\r\n filter: storeLoadOptions.filter,\r\n group: group\r\n }, true),\r\n group: group.slice(groupInfo.path.length - 1, groupInfo.path.length),\r\n select: storeLoadOptions.select\r\n });\r\n return when(groupOffsetQuery, groupCountQuery).done((function(offset, count) {\r\n offset = parseInt(offset.length ? offset[0] : offset);\r\n count = parseInt(count.length ? count[0] : count);\r\n groupInfo.offset = offset;\r\n if (groupInfo.count !== count) {\r\n groupInfo.count = count;\r\n that.updateTotalItemsCount(options)\r\n }\r\n }))\r\n }), true)\r\n }\r\n }\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.grouping.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n GroupingHelper as ExpandedGroupingHelper\r\n} from \"./ui.data_grid.grouping.expanded\";\r\nimport {\r\n GroupingHelper as CollapsedGroupingHelper\r\n} from \"./ui.data_grid.grouping.collapsed\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport dataSourceAdapter from \"./ui.data_grid.data_source_adapter\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n registerKeyboardAction\r\n} from \"../grid_core/ui.grid_core.accessibility\";\r\nimport {\r\n setTabIndex,\r\n restoreFocus\r\n} from \"../shared/accessibility\";\r\nvar DATAGRID_GROUP_PANEL_CLASS = \"dx-datagrid-group-panel\";\r\nvar DATAGRID_GROUP_PANEL_MESSAGE_CLASS = \"dx-group-panel-message\";\r\nvar DATAGRID_GROUP_PANEL_ITEM_CLASS = \"dx-group-panel-item\";\r\nvar DATAGRID_GROUP_PANEL_LABEL_CLASS = \"dx-toolbar-label\";\r\nvar DATAGRID_GROUP_PANEL_CONTAINER_CLASS = \"dx-toolbar-item\";\r\nvar DATAGRID_EXPAND_CLASS = \"dx-datagrid-expand\";\r\nvar DATAGRID_GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar HEADER_FILTER_CLASS_SELECTOR = \".dx-header-filter\";\r\nvar GroupingDataSourceAdapterExtender = {\r\n init: function() {\r\n this.callBase.apply(this, arguments);\r\n this._initGroupingHelper()\r\n },\r\n _initGroupingHelper: function(options) {\r\n var grouping = this._grouping;\r\n var isAutoExpandAll = this.option(\"grouping.autoExpandAll\");\r\n var isFocusedRowEnabled = this.option(\"focusedRowEnabled\");\r\n var remoteOperations = options ? options.remoteOperations : this.remoteOperations();\r\n var isODataRemoteOperations = remoteOperations.filtering && remoteOperations.sorting && remoteOperations.paging;\r\n if (isODataRemoteOperations && !remoteOperations.grouping && (isAutoExpandAll || !isFocusedRowEnabled)) {\r\n if (!grouping || grouping instanceof CollapsedGroupingHelper) {\r\n this._grouping = new ExpandedGroupingHelper(this)\r\n }\r\n } else if (!grouping || grouping instanceof ExpandedGroupingHelper) {\r\n this._grouping = new CollapsedGroupingHelper(this)\r\n }\r\n },\r\n totalItemsCount: function() {\r\n var totalCount = this.callBase();\r\n return totalCount > 0 && this._dataSource.group() && this._dataSource.requireTotalCount() ? totalCount + this._grouping.totalCountCorrection() : totalCount\r\n },\r\n itemsCount: function() {\r\n return this._dataSource.group() ? this._grouping.itemsCount() || 0 : this.callBase.apply(this, arguments)\r\n },\r\n allowCollapseAll: function() {\r\n return this._grouping.allowCollapseAll()\r\n },\r\n isGroupItemCountable: function(item) {\r\n return this._grouping.isGroupItemCountable(item)\r\n },\r\n isRowExpanded: function(key) {\r\n var groupInfo = this._grouping.findGroupInfo(key);\r\n return groupInfo ? groupInfo.isExpanded : !this._grouping.allowCollapseAll()\r\n },\r\n collapseAll: function(groupIndex) {\r\n return this._collapseExpandAll(groupIndex, false)\r\n },\r\n expandAll: function(groupIndex) {\r\n return this._collapseExpandAll(groupIndex, true)\r\n },\r\n _collapseExpandAll: function(groupIndex, isExpand) {\r\n var dataSource = this._dataSource;\r\n var group = dataSource.group();\r\n var groups = gridCore.normalizeSortingInfo(group || []);\r\n if (groups.length) {\r\n for (var i = 0; i < groups.length; i++) {\r\n if (void 0 === groupIndex || groupIndex === i) {\r\n groups[i].isExpanded = isExpand\r\n } else if (group && group[i]) {\r\n groups[i].isExpanded = group[i].isExpanded\r\n }\r\n }\r\n dataSource.group(groups);\r\n this._grouping.foreachGroups((function(groupInfo, parents) {\r\n if (void 0 === groupIndex || groupIndex === parents.length - 1) {\r\n groupInfo.isExpanded = isExpand\r\n }\r\n }), false, true);\r\n this.resetPagesCache()\r\n }\r\n return true\r\n },\r\n refresh: function() {\r\n this.callBase.apply(this, arguments);\r\n return this._grouping.refresh.apply(this._grouping, arguments)\r\n },\r\n changeRowExpand: function(path) {\r\n var dataSource = this._dataSource;\r\n if (dataSource.group()) {\r\n dataSource.beginLoading();\r\n if (this._lastLoadOptions) {\r\n this._lastLoadOptions.groupExpand = true\r\n }\r\n return this._changeRowExpandCore(path).always((function() {\r\n dataSource.endLoading()\r\n }))\r\n }\r\n },\r\n _changeRowExpandCore: function(path) {\r\n return this._grouping.changeRowExpand(path)\r\n },\r\n _hasGroupLevelsExpandState: function(group, isExpanded) {\r\n if (group && Array.isArray(group)) {\r\n for (var i = 0; i < group.length; i++) {\r\n if (group[i].isExpanded === isExpanded) {\r\n return true\r\n }\r\n }\r\n }\r\n },\r\n _customizeRemoteOperations: function(options, operationTypes) {\r\n var remoteOperations = options.remoteOperations;\r\n if (options.storeLoadOptions.group) {\r\n if (remoteOperations.grouping && !options.isCustomLoading) {\r\n if (!remoteOperations.groupPaging || this._hasGroupLevelsExpandState(options.storeLoadOptions.group, true)) {\r\n remoteOperations.paging = false\r\n }\r\n }\r\n if (!remoteOperations.grouping && (!remoteOperations.sorting || !remoteOperations.filtering || options.isCustomLoading || this._hasGroupLevelsExpandState(options.storeLoadOptions.group, false))) {\r\n remoteOperations.paging = false\r\n }\r\n } else if (!options.isCustomLoading && remoteOperations.paging && operationTypes.grouping) {\r\n this.resetCache()\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _handleDataLoading: function(options) {\r\n this.callBase(options);\r\n this._initGroupingHelper(options);\r\n return this._grouping.handleDataLoading(options)\r\n },\r\n _handleDataLoaded: function(options) {\r\n return this._grouping.handleDataLoaded(options, this.callBase.bind(this))\r\n },\r\n _handleDataLoadedCore: function(options) {\r\n return this._grouping.handleDataLoadedCore(options, this.callBase.bind(this))\r\n }\r\n};\r\ndataSourceAdapter.extend(GroupingDataSourceAdapterExtender);\r\nvar GroupingDataControllerExtender = {\r\n init: function() {\r\n this.callBase();\r\n this.createAction(\"onRowExpanding\");\r\n this.createAction(\"onRowExpanded\");\r\n this.createAction(\"onRowCollapsing\");\r\n this.createAction(\"onRowCollapsed\")\r\n },\r\n _beforeProcessItems: function(items) {\r\n var groupColumns = this._columnsController.getGroupColumns();\r\n items = this.callBase(items);\r\n if (items.length && groupColumns.length) {\r\n items = this._processGroupItems(items, groupColumns.length)\r\n }\r\n return items\r\n },\r\n _processItem: function(item, options) {\r\n if (isDefined(item.groupIndex) && isString(item.rowType) && 0 === item.rowType.indexOf(\"group\")) {\r\n item = this._processGroupItem(item, options);\r\n options.dataIndex = 0\r\n } else {\r\n item = this.callBase.apply(this, arguments)\r\n }\r\n return item\r\n },\r\n _processGroupItem: function(item) {\r\n return item\r\n },\r\n _processGroupItems: function(items, groupsCount, options) {\r\n var groupedColumns = this._columnsController.getGroupColumns();\r\n var column = groupedColumns[groupedColumns.length - groupsCount];\r\n if (!options) {\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n options = {\r\n collectContinuationItems: \"virtual\" !== scrollingMode && \"infinite\" !== scrollingMode,\r\n resultItems: [],\r\n path: [],\r\n values: []\r\n }\r\n }\r\n var resultItems = options.resultItems;\r\n if (options.data) {\r\n if (options.collectContinuationItems || !options.data.isContinuation) {\r\n resultItems.push({\r\n rowType: \"group\",\r\n data: options.data,\r\n groupIndex: options.path.length - 1,\r\n isExpanded: !!options.data.items,\r\n key: options.path.slice(0),\r\n values: options.values.slice(0)\r\n })\r\n }\r\n }\r\n if (items) {\r\n if (0 === groupsCount) {\r\n resultItems.push.apply(resultItems, items)\r\n } else {\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (item && \"items\" in item) {\r\n options.data = item;\r\n options.path.push(item.key);\r\n options.values.push(column && column.deserializeValue && !column.calculateDisplayValue ? column.deserializeValue(item.key) : item.key);\r\n this._processGroupItems(item.items, groupsCount - 1, options);\r\n options.data = void 0;\r\n options.path.pop();\r\n options.values.pop()\r\n } else {\r\n resultItems.push(item)\r\n }\r\n }\r\n }\r\n }\r\n return resultItems\r\n },\r\n publicMethods: function() {\r\n return this.callBase().concat([\"collapseAll\", \"expandAll\", \"isRowExpanded\", \"expandRow\", \"collapseRow\"])\r\n },\r\n collapseAll: function(groupIndex) {\r\n var dataSource = this._dataSource;\r\n if (dataSource && dataSource.collapseAll(groupIndex)) {\r\n dataSource.pageIndex(0);\r\n dataSource.reload()\r\n }\r\n },\r\n expandAll: function(groupIndex) {\r\n var dataSource = this._dataSource;\r\n if (dataSource && dataSource.expandAll(groupIndex)) {\r\n dataSource.pageIndex(0);\r\n dataSource.reload()\r\n }\r\n },\r\n changeRowExpand: function(key) {\r\n var that = this;\r\n var expanded = that.isRowExpanded(key);\r\n var args = {\r\n key: key,\r\n expanded: expanded\r\n };\r\n that.executeAction(expanded ? \"onRowCollapsing\" : \"onRowExpanding\", args);\r\n if (!args.cancel) {\r\n return when(that._changeRowExpandCore(key)).done((function() {\r\n args.expanded = !expanded;\r\n that.executeAction(expanded ? \"onRowCollapsed\" : \"onRowExpanded\", args)\r\n }))\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n _changeRowExpandCore: function(key) {\r\n var that = this;\r\n var dataSource = this._dataSource;\r\n var d = new Deferred;\r\n if (!dataSource) {\r\n d.resolve()\r\n } else {\r\n when(dataSource.changeRowExpand(key)).done((function() {\r\n that.load().done(d.resolve).fail(d.reject)\r\n })).fail(d.reject)\r\n }\r\n return d\r\n },\r\n isRowExpanded: function(key) {\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.isRowExpanded(key)\r\n },\r\n expandRow: function(key) {\r\n if (!this.isRowExpanded(key)) {\r\n return this.changeRowExpand(key)\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n collapseRow: function(key) {\r\n if (this.isRowExpanded(key)) {\r\n return this.changeRowExpand(key)\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n optionChanged: function(args) {\r\n if (\"grouping\" === args.name) {\r\n args.name = \"dataSource\"\r\n }\r\n this.callBase(args)\r\n }\r\n};\r\nvar onGroupingMenuItemClick = function(column, params) {\r\n var columnsController = this._columnsController;\r\n switch (params.itemData.value) {\r\n case \"group\":\r\n var groups = columnsController._dataSource.group() || [];\r\n columnsController.columnOption(column.dataField, \"groupIndex\", groups.length);\r\n break;\r\n case \"ungroup\":\r\n columnsController.columnOption(column.dataField, \"groupIndex\", -1);\r\n break;\r\n case \"ungroupAll\":\r\n this.component.clearGrouping()\r\n }\r\n};\r\nexport var GroupingHeaderPanelExtender = {\r\n _getToolbarItems: function() {\r\n var items = this.callBase();\r\n return this._appendGroupingItem(items)\r\n },\r\n _appendGroupingItem: function(items) {\r\n if (this._isGroupPanelVisible()) {\r\n var isRendered = false;\r\n var toolbarItem = {\r\n template: () => {\r\n var $groupPanel = $(\"
\").addClass(DATAGRID_GROUP_PANEL_CLASS);\r\n this._updateGroupPanelContent($groupPanel);\r\n registerKeyboardAction(\"groupPanel\", this, $groupPanel, void 0, this._handleActionKeyDown.bind(this));\r\n return $groupPanel\r\n },\r\n name: \"groupPanel\",\r\n onItemRendered: () => {\r\n isRendered && this.renderCompleted.fire();\r\n isRendered = true\r\n },\r\n location: \"before\",\r\n locateInMenu: \"never\",\r\n sortIndex: 1\r\n };\r\n items.push(toolbarItem)\r\n }\r\n return items\r\n },\r\n _handleActionKeyDown: function(args) {\r\n var event = args.event;\r\n var $target = $(event.target);\r\n var groupColumnIndex = $target.closest(\".\".concat(DATAGRID_GROUP_PANEL_ITEM_CLASS)).index();\r\n var column = this._columnsController.getGroupColumns()[groupColumnIndex];\r\n var columnIndex = column && column.index;\r\n if ($target.is(HEADER_FILTER_CLASS_SELECTOR)) {\r\n this.getController(\"headerFilter\").showHeaderFilterMenu(columnIndex, true)\r\n } else {\r\n this._processGroupItemAction(columnIndex)\r\n }\r\n event.preventDefault()\r\n },\r\n _isGroupPanelVisible: function() {\r\n var groupPanelOptions = this.option(\"groupPanel\");\r\n var isVisible;\r\n if (groupPanelOptions) {\r\n isVisible = groupPanelOptions.visible;\r\n if (\"auto\" === isVisible) {\r\n isVisible = \"desktop\" === devices.current().deviceType ? true : false\r\n }\r\n }\r\n return isVisible\r\n },\r\n _renderGroupPanelItems: function($groupPanel, groupColumns) {\r\n var that = this;\r\n $groupPanel.empty();\r\n each(groupColumns, (function(index, groupColumn) {\r\n that._createGroupPanelItem($groupPanel, groupColumn)\r\n }));\r\n restoreFocus(this)\r\n },\r\n _createGroupPanelItem: function($rootElement, groupColumn) {\r\n var $groupPanelItem = $(\"
\").addClass(groupColumn.cssClass).addClass(DATAGRID_GROUP_PANEL_ITEM_CLASS).data(\"columnData\", groupColumn).appendTo($rootElement).text(groupColumn.caption);\r\n setTabIndex(this, $groupPanelItem);\r\n return $groupPanelItem\r\n },\r\n _columnOptionChanged: function(e) {\r\n if (!this._requireReady && !gridCore.checkChanges(e.optionNames, [\"width\", \"visibleWidth\"])) {\r\n var $toolbarElement = this.element();\r\n var $groupPanel = $toolbarElement && $toolbarElement.find(\".\" + DATAGRID_GROUP_PANEL_CLASS);\r\n if ($groupPanel && $groupPanel.length) {\r\n this._updateGroupPanelContent($groupPanel);\r\n this.renderCompleted.fire()\r\n }\r\n }\r\n this.callBase()\r\n },\r\n _updateGroupPanelContent: function($groupPanel) {\r\n var groupColumns = this.getController(\"columns\").getGroupColumns();\r\n var groupPanelOptions = this.option(\"groupPanel\");\r\n this._renderGroupPanelItems($groupPanel, groupColumns);\r\n if (groupPanelOptions.allowColumnDragging && !groupColumns.length) {\r\n $(\"
\").addClass(DATAGRID_GROUP_PANEL_MESSAGE_CLASS).text(groupPanelOptions.emptyPanelText).appendTo($groupPanel);\r\n $groupPanel.closest(\".\" + DATAGRID_GROUP_PANEL_CONTAINER_CLASS).addClass(DATAGRID_GROUP_PANEL_LABEL_CLASS);\r\n $groupPanel.closest(\".\" + DATAGRID_GROUP_PANEL_LABEL_CLASS).css(\"maxWidth\", \"none\");\r\n this.updateToolbarDimensions()\r\n }\r\n },\r\n allowDragging: function(column) {\r\n var groupPanelOptions = this.option(\"groupPanel\");\r\n return this._isGroupPanelVisible() && groupPanelOptions.allowColumnDragging && column && column.allowGrouping\r\n },\r\n getColumnElements: function() {\r\n var $element = this.element();\r\n return $element && $element.find(\".\" + DATAGRID_GROUP_PANEL_ITEM_CLASS)\r\n },\r\n getColumns: function() {\r\n return this.getController(\"columns\").getGroupColumns()\r\n },\r\n getBoundingRect: function() {\r\n var $element = this.element();\r\n if ($element && $element.find(\".\" + DATAGRID_GROUP_PANEL_CLASS).length) {\r\n var offset = $element.offset();\r\n return {\r\n top: offset.top,\r\n bottom: offset.top + getHeight($element)\r\n }\r\n }\r\n return null\r\n },\r\n getName: function() {\r\n return \"group\"\r\n },\r\n getContextMenuItems: function(options) {\r\n var contextMenuEnabled = this.option(\"grouping.contextMenuEnabled\");\r\n var $groupedColumnElement = $(options.targetElement).closest(\".\" + DATAGRID_GROUP_PANEL_ITEM_CLASS);\r\n var items;\r\n if ($groupedColumnElement.length) {\r\n options.column = $groupedColumnElement.data(\"columnData\")\r\n }\r\n if (contextMenuEnabled && options.column) {\r\n var column = options.column;\r\n var isGroupingAllowed = isDefined(column.allowGrouping) ? column.allowGrouping : true;\r\n if (isGroupingAllowed) {\r\n var isColumnGrouped = isDefined(column.groupIndex) && column.groupIndex > -1;\r\n var groupingTexts = this.option(\"grouping.texts\");\r\n var onItemClick = onGroupingMenuItemClick.bind(this, column);\r\n items = [{\r\n text: groupingTexts.ungroup,\r\n value: \"ungroup\",\r\n disabled: !isColumnGrouped,\r\n onItemClick: onItemClick\r\n }, {\r\n text: groupingTexts.ungroupAll,\r\n value: \"ungroupAll\",\r\n onItemClick: onItemClick\r\n }]\r\n }\r\n }\r\n return items\r\n },\r\n isVisible: function() {\r\n return this.callBase() || this._isGroupPanelVisible()\r\n },\r\n optionChanged: function(args) {\r\n if (\"groupPanel\" === 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\nvar GroupingRowsViewExtender = {\r\n getContextMenuItems: function(options) {\r\n var contextMenuEnabled = this.option(\"grouping.contextMenuEnabled\");\r\n var items;\r\n if (contextMenuEnabled && options.row && \"group\" === options.row.rowType) {\r\n var columnsController = this._columnsController;\r\n var column = columnsController.columnOption(\"groupIndex:\" + options.row.groupIndex);\r\n if (column && column.allowGrouping) {\r\n var groupingTexts = this.option(\"grouping.texts\");\r\n var onItemClick = onGroupingMenuItemClick.bind(this, column);\r\n items = [];\r\n items.push({\r\n text: groupingTexts.ungroup,\r\n value: \"ungroup\",\r\n onItemClick: onItemClick\r\n }, {\r\n text: groupingTexts.ungroupAll,\r\n value: \"ungroupAll\",\r\n onItemClick: onItemClick\r\n })\r\n }\r\n }\r\n return items\r\n },\r\n _rowClick: function(e) {\r\n var expandMode = this.option(\"grouping.expandMode\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var isGroupRowStateChanged = \"infinite\" !== scrollingMode && \"rowClick\" === expandMode && $(e.event.target).closest(\".\" + DATAGRID_GROUP_ROW_CLASS).length;\r\n var isExpandButtonClicked = $(e.event.target).closest(\".\" + DATAGRID_EXPAND_CLASS).length;\r\n if (isGroupRowStateChanged || isExpandButtonClicked) {\r\n this._changeGroupRowState(e)\r\n }\r\n this.callBase(e)\r\n },\r\n _changeGroupRowState: function(e) {\r\n var dataController = this.getController(\"data\");\r\n var row = dataController.items()[e.rowIndex];\r\n var allowCollapsing = this._columnsController.columnOption(\"groupIndex:\" + row.groupIndex, \"allowCollapsing\");\r\n if (\"data\" === row.rowType || \"group\" === row.rowType && false !== allowCollapsing) {\r\n dataController.changeRowExpand(row.key, true);\r\n e.event.preventDefault();\r\n e.handled = true\r\n }\r\n }\r\n};\r\nvar columnHeadersViewExtender = {\r\n getContextMenuItems: function(options) {\r\n var contextMenuEnabled = this.option(\"grouping.contextMenuEnabled\");\r\n var items = this.callBase(options);\r\n if (contextMenuEnabled && options.row && (\"header\" === options.row.rowType || \"detailAdaptive\" === options.row.rowType)) {\r\n var column = options.column;\r\n if (!column.command && (!isDefined(column.allowGrouping) || column.allowGrouping)) {\r\n var groupingTexts = this.option(\"grouping.texts\");\r\n var isColumnGrouped = isDefined(column.groupIndex) && column.groupIndex > -1;\r\n var onItemClick = onGroupingMenuItemClick.bind(this, column);\r\n items = items || [];\r\n items.push({\r\n text: groupingTexts.groupByThisColumn,\r\n value: \"group\",\r\n beginGroup: true,\r\n disabled: isColumnGrouped,\r\n onItemClick: onItemClick\r\n });\r\n if (column.showWhenGrouped) {\r\n items.push({\r\n text: groupingTexts.ungroup,\r\n value: \"ungroup\",\r\n disabled: !isColumnGrouped,\r\n onItemClick: onItemClick\r\n })\r\n }\r\n items.push({\r\n text: groupingTexts.ungroupAll,\r\n value: \"ungroupAll\",\r\n onItemClick: onItemClick\r\n })\r\n }\r\n }\r\n return items\r\n }\r\n};\r\ngridCore.registerModule(\"grouping\", {\r\n defaultOptions: function() {\r\n return {\r\n grouping: {\r\n autoExpandAll: true,\r\n allowCollapsing: true,\r\n contextMenuEnabled: false,\r\n expandMode: \"buttonClick\",\r\n texts: {\r\n groupContinuesMessage: messageLocalization.format(\"dxDataGrid-groupContinuesMessage\"),\r\n groupContinuedMessage: messageLocalization.format(\"dxDataGrid-groupContinuedMessage\"),\r\n groupByThisColumn: messageLocalization.format(\"dxDataGrid-groupHeaderText\"),\r\n ungroup: messageLocalization.format(\"dxDataGrid-ungroupHeaderText\"),\r\n ungroupAll: messageLocalization.format(\"dxDataGrid-ungroupAllText\")\r\n }\r\n },\r\n groupPanel: {\r\n visible: false,\r\n emptyPanelText: messageLocalization.format(\"dxDataGrid-groupPanelEmptyText\"),\r\n allowColumnDragging: true\r\n }\r\n }\r\n },\r\n extenders: {\r\n controllers: {\r\n data: GroupingDataControllerExtender,\r\n columns: {\r\n _getExpandColumnOptions: function() {\r\n var options = this.callBase.apply(this, arguments);\r\n options.cellTemplate = gridCore.getExpandCellTemplate();\r\n return options\r\n }\r\n },\r\n editing: {\r\n _isProcessedItem: function(item) {\r\n return isDefined(item.groupIndex) && isString(item.rowType) && 0 === item.rowType.indexOf(\"group\")\r\n }\r\n }\r\n },\r\n views: {\r\n headerPanel: GroupingHeaderPanelExtender,\r\n rowsView: GroupingRowsViewExtender,\r\n columnHeadersView: columnHeadersViewExtender\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.master_detail.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n grep\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 when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar MASTER_DETAIL_CELL_CLASS = \"dx-master-detail-cell\";\r\nvar MASTER_DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar ROW_LINES_CLASS = \"dx-row-lines\";\r\nexport var masterDetailModule = {\r\n defaultOptions: function() {\r\n return {\r\n masterDetail: {\r\n enabled: false,\r\n autoExpandAll: false,\r\n template: null\r\n }\r\n }\r\n },\r\n extenders: {\r\n controllers: {\r\n columns: {\r\n _getExpandColumnsCore: function() {\r\n var expandColumns = this.callBase();\r\n if (this.option(\"masterDetail.enabled\")) {\r\n expandColumns.push({\r\n type: \"detailExpand\",\r\n cellTemplate: gridCoreUtils.getExpandCellTemplate()\r\n })\r\n }\r\n return expandColumns\r\n }\r\n },\r\n data: function() {\r\n var initMasterDetail = function(that) {\r\n that._expandedItems = [];\r\n that._isExpandAll = that.option(\"masterDetail.autoExpandAll\")\r\n };\r\n return {\r\n init: function() {\r\n initMasterDetail(this);\r\n this.callBase()\r\n },\r\n expandAll: function(groupIndex) {\r\n var that = this;\r\n if (groupIndex < 0) {\r\n that._isExpandAll = true;\r\n that._expandedItems = [];\r\n that.updateItems()\r\n } else {\r\n that.callBase.apply(that, arguments)\r\n }\r\n },\r\n collapseAll: function(groupIndex) {\r\n var that = this;\r\n if (groupIndex < 0) {\r\n that._isExpandAll = false;\r\n that._expandedItems = [];\r\n that.updateItems()\r\n } else {\r\n that.callBase.apply(that, arguments)\r\n }\r\n },\r\n isRowExpanded: function(key) {\r\n var that = this;\r\n var expandIndex = gridCoreUtils.getIndexByKey(key, that._expandedItems);\r\n if (Array.isArray(key)) {\r\n return that.callBase.apply(that, arguments)\r\n } else {\r\n return !!(that._isExpandAll ^ (expandIndex >= 0 && that._expandedItems[expandIndex].visible))\r\n }\r\n },\r\n _getRowIndicesForExpand: function(key) {\r\n var rowIndex = this.getRowIndexByKey(key);\r\n return [rowIndex, rowIndex + 1]\r\n },\r\n _changeRowExpandCore: function(key) {\r\n var that = this;\r\n var result;\r\n if (Array.isArray(key)) {\r\n result = that.callBase.apply(that, arguments)\r\n } else {\r\n var expandIndex = gridCoreUtils.getIndexByKey(key, that._expandedItems);\r\n if (expandIndex >= 0) {\r\n var visible = that._expandedItems[expandIndex].visible;\r\n that._expandedItems[expandIndex].visible = !visible\r\n } else {\r\n that._expandedItems.push({\r\n key: key,\r\n visible: true\r\n })\r\n }\r\n that.updateItems({\r\n changeType: \"update\",\r\n rowIndices: that._getRowIndicesForExpand(key)\r\n });\r\n result = (new Deferred).resolve()\r\n }\r\n return result\r\n },\r\n _processDataItem: function(data, options) {\r\n var that = this;\r\n var dataItem = that.callBase.apply(that, arguments);\r\n dataItem.isExpanded = that.isRowExpanded(dataItem.key);\r\n if (void 0 === options.detailColumnIndex) {\r\n options.detailColumnIndex = -1;\r\n each(options.visibleColumns, (function(index, column) {\r\n if (\"expand\" === column.command && !isDefined(column.groupIndex)) {\r\n options.detailColumnIndex = index;\r\n return false\r\n }\r\n }))\r\n }\r\n if (options.detailColumnIndex >= 0) {\r\n dataItem.values[options.detailColumnIndex] = dataItem.isExpanded\r\n }\r\n return dataItem\r\n },\r\n _processItems: function(items, change) {\r\n var that = this;\r\n var changeType = change.changeType;\r\n var result = [];\r\n items = that.callBase.apply(that, arguments);\r\n if (\"loadingAll\" === changeType) {\r\n return items\r\n }\r\n if (\"refresh\" === changeType) {\r\n that._expandedItems = grep(that._expandedItems, (function(item) {\r\n return item.visible\r\n }))\r\n }\r\n each(items, (function(index, item) {\r\n result.push(item);\r\n var expandIndex = gridCoreUtils.getIndexByKey(item.key, that._expandedItems);\r\n if (\"data\" === item.rowType && (item.isExpanded || expandIndex >= 0) && !item.isNewRow) {\r\n result.push({\r\n visible: item.isExpanded,\r\n rowType: \"detail\",\r\n key: item.key,\r\n data: item.data,\r\n values: []\r\n })\r\n }\r\n }));\r\n return result\r\n },\r\n optionChanged: function(args) {\r\n var isEnabledChanged;\r\n var isAutoExpandAllChanged;\r\n if (\"masterDetail\" === args.name) {\r\n args.name = \"dataSource\";\r\n switch (args.fullName) {\r\n case \"masterDetail\":\r\n var value = args.value || {};\r\n var previousValue = args.previousValue || {};\r\n isEnabledChanged = value.enabled !== previousValue.enabled;\r\n isAutoExpandAllChanged = value.autoExpandAll !== previousValue.autoExpandAll;\r\n break;\r\n case \"masterDetail.template\":\r\n initMasterDetail(this);\r\n break;\r\n case \"masterDetail.enabled\":\r\n isEnabledChanged = true;\r\n break;\r\n case \"masterDetail.autoExpandAll\":\r\n isAutoExpandAllChanged = true\r\n }\r\n if (isEnabledChanged || isAutoExpandAllChanged) {\r\n initMasterDetail(this)\r\n }\r\n }\r\n this.callBase(args)\r\n }\r\n }\r\n }(),\r\n resizing: {\r\n fireContentReadyAction: function() {\r\n this.callBase.apply(this, arguments);\r\n this._updateParentDataGrids(this.component.$element())\r\n },\r\n _updateParentDataGrids: function($element) {\r\n var $masterDetailRow = $element.closest(\".\" + MASTER_DETAIL_ROW_CLASS);\r\n if ($masterDetailRow.length) {\r\n when(this._updateMasterDataGrid($masterDetailRow, $element)).done(() => {\r\n this._updateParentDataGrids($masterDetailRow.parent())\r\n })\r\n }\r\n },\r\n _updateMasterDataGrid: function($masterDetailRow, $detailElement) {\r\n var masterRowOptions = $($masterDetailRow).data(\"options\");\r\n var masterDataGrid = $($masterDetailRow).closest(\".\" + this.getWidgetContainerClass()).parent().data(\"dxDataGrid\");\r\n if (masterRowOptions && masterDataGrid) {\r\n return this._updateMasterDataGridCore(masterDataGrid, masterRowOptions)\r\n }\r\n },\r\n _updateMasterDataGridCore: function(masterDataGrid, masterRowOptions) {\r\n var d = Deferred();\r\n if (masterDataGrid.getView(\"rowsView\").isFixedColumns()) {\r\n this._updateFixedMasterDetailGrids(masterDataGrid, masterRowOptions.rowIndex, $(masterRowOptions.rowElement)).done(d.resolve)\r\n } else {\r\n if (true === masterDataGrid.option(\"scrolling.useNative\")) {\r\n masterDataGrid.updateDimensions().done(() => d.resolve(true));\r\n return\r\n }\r\n var scrollable = masterDataGrid.getScrollable();\r\n if (scrollable) {\r\n null === scrollable || void 0 === scrollable ? void 0 : scrollable.update().done(() => d.resolve())\r\n } else {\r\n d.resolve()\r\n }\r\n }\r\n return d.promise()\r\n },\r\n _updateFixedMasterDetailGrids: function(masterDataGrid, masterRowIndex, $detailElement) {\r\n var d = Deferred();\r\n var $rows = $(masterDataGrid.getRowElement(masterRowIndex));\r\n var $tables = $(masterDataGrid.getView(\"rowsView\").getTableElements());\r\n var rowsNotEqual = 2 === (null === $rows || void 0 === $rows ? void 0 : $rows.length) && getHeight($rows.eq(0)) !== getHeight($rows.eq(1));\r\n var tablesNotEqual = 2 === (null === $tables || void 0 === $tables ? void 0 : $tables.length) && getHeight($tables.eq(0)) !== getHeight($tables.eq(1));\r\n if (rowsNotEqual || tablesNotEqual) {\r\n var detailElementWidth = getWidth($detailElement);\r\n masterDataGrid.updateDimensions().done(() => {\r\n var isDetailHorizontalScrollCanBeShown = this.option(\"columnAutoWidth\") && true === masterDataGrid.option(\"scrolling.useNative\");\r\n var isDetailGridWidthChanged = isDetailHorizontalScrollCanBeShown && detailElementWidth !== getWidth($detailElement);\r\n if (isDetailHorizontalScrollCanBeShown && isDetailGridWidthChanged) {\r\n this.updateDimensions().done(() => d.resolve(true))\r\n } else {\r\n d.resolve(true)\r\n }\r\n });\r\n return d.promise()\r\n }\r\n return Deferred().resolve()\r\n },\r\n _toggleBestFitMode: function(isBestFit) {\r\n this.callBase.apply(this, arguments);\r\n if (this.option(\"masterDetail.template\")) {\r\n var $rowsTable = this._rowsView.getTableElement();\r\n if ($rowsTable) {\r\n $rowsTable.find(\".dx-master-detail-cell\").css(\"maxWidth\", isBestFit ? 0 : \"\")\r\n }\r\n }\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n _getCellTemplate: function(options) {\r\n var that = this;\r\n var column = options.column;\r\n var editingController = that.getController(\"editing\");\r\n var isEditRow = editingController && editingController.isEditRow(options.rowIndex);\r\n var template;\r\n if (\"detail\" === column.command && !isEditRow) {\r\n template = that.option(\"masterDetail.template\") || {\r\n allowRenderToDetachedContainer: false,\r\n render: that._getDefaultTemplate(column)\r\n }\r\n } else {\r\n template = that.callBase.apply(that, arguments)\r\n }\r\n return template\r\n },\r\n _isDetailRow: function(row) {\r\n return row && row.rowType && 0 === row.rowType.indexOf(\"detail\")\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row && this._isDetailRow(row)) {\r\n this.option(\"showRowLines\") && $row.addClass(ROW_LINES_CLASS);\r\n $row.addClass(MASTER_DETAIL_ROW_CLASS);\r\n if (isDefined(row.visible)) {\r\n $row.toggle(row.visible)\r\n }\r\n }\r\n return $row\r\n },\r\n _renderCells: function($row, options) {\r\n var row = options.row;\r\n var $detailCell;\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n if (row.rowType && this._isDetailRow(row)) {\r\n if (this._needRenderCell(0, options.columnIndices)) {\r\n $detailCell = this._renderCell($row, {\r\n value: null,\r\n row: row,\r\n rowIndex: row.rowIndex,\r\n column: {\r\n command: \"detail\"\r\n },\r\n columnIndex: 0,\r\n change: options.change\r\n });\r\n $detailCell.addClass(CELL_FOCUS_DISABLED_CLASS).addClass(MASTER_DETAIL_CELL_CLASS).attr(\"colSpan\", visibleColumns.length)\r\n }\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.master_detail.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n masterDetailModule\r\n} from \"../grid_core/ui.grid_core.master_detail\";\r\ngridCore.registerModule(\"masterDetail\", masterDetailModule);\r\n","/**\r\n * DevExtreme (esm/ui/number_box/utils.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n adjust\r\n} from \"../../core/utils/math\";\r\nvar getRealSeparatorIndex = function(str) {\r\n var quoteBalance = 0;\r\n var separatorCount = 0;\r\n for (var i = 0; i < str.length; ++i) {\r\n if (\"'\" === str[i]) {\r\n quoteBalance++\r\n }\r\n if (\".\" === str[i]) {\r\n ++separatorCount;\r\n if (quoteBalance % 2 === 0) {\r\n return {\r\n occurrence: separatorCount,\r\n index: i\r\n }\r\n }\r\n }\r\n }\r\n return {\r\n occurrence: 1,\r\n index: -1\r\n }\r\n};\r\nvar getNthOccurrence = function(str, c, n) {\r\n var i = -1;\r\n while (n-- && i++ < str.length) {\r\n i = str.indexOf(c, i)\r\n }\r\n return i\r\n};\r\nvar splitByIndex = function(str, index) {\r\n if (-1 === index) {\r\n return [str]\r\n }\r\n return [str.slice(0, index), str.slice(index + 1)]\r\n};\r\nvar adjustPercentValue = function(rawValue, precision) {\r\n return rawValue && adjust(rawValue / 100, precision)\r\n};\r\nexport {\r\n getRealSeparatorIndex,\r\n getNthOccurrence,\r\n splitByIndex,\r\n adjustPercentValue\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.caret.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n fitIntoRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n escapeRegExp\r\n} from \"../../core/utils/common\";\r\nimport number from \"../../localization/number\";\r\nimport {\r\n getRealSeparatorIndex,\r\n getNthOccurrence,\r\n splitByIndex\r\n} from \"./utils\";\r\nexport var getCaretBoundaries = function(text, format) {\r\n if (\"string\" === typeof format) {\r\n var signParts = format.split(\";\");\r\n var sign = number.getSign(text, format);\r\n signParts[1] = signParts[1] || \"-\" + signParts[0];\r\n format = signParts[sign < 0 ? 1 : 0];\r\n format = (str = format, str.replace(/'([^']*)'/g, str => str.split(\"\").map(() => \" \").join(\"\").substr(2)));\r\n var prefixStubLength = /^[^#0.,]*/.exec(format)[0].length;\r\n var postfixStubLength = /[^#0.,]*$/.exec(format)[0].length;\r\n return {\r\n start: prefixStubLength,\r\n end: text.length - postfixStubLength\r\n }\r\n } else {\r\n return {\r\n start: 0,\r\n end: text.length\r\n }\r\n }\r\n var str\r\n};\r\nvar _getDigitCountBeforeIndex = function(index, text) {\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var regExp = new RegExp(\"[^0-9\" + escapeRegExp(decimalSeparator) + \"]\", \"g\");\r\n var textBeforePosition = text.slice(0, index);\r\n return textBeforePosition.replace(regExp, \"\").length\r\n};\r\nvar _reverseText = function(text) {\r\n return text.split(\"\").reverse().join(\"\")\r\n};\r\nvar _getDigitPositionByIndex = function(digitIndex, text) {\r\n if (!digitIndex) {\r\n return -1\r\n }\r\n var regExp = /[0-9]/g;\r\n var counter = 1;\r\n var index = null;\r\n var result = regExp.exec(text);\r\n while (result) {\r\n index = result.index;\r\n if (counter >= digitIndex) {\r\n return index\r\n }\r\n counter++;\r\n result = regExp.exec(text)\r\n }\r\n return null === index ? text.length : index\r\n};\r\nvar _trimNonNumericCharsFromEnd = function(text) {\r\n return text.replace(/[^0-9e]+$/, \"\")\r\n};\r\nexport var getCaretWithOffset = function(caret, offset) {\r\n if (void 0 === caret.start) {\r\n caret = {\r\n start: caret,\r\n end: caret\r\n }\r\n }\r\n return {\r\n start: caret.start + offset,\r\n end: caret.end + offset\r\n }\r\n};\r\nexport var getCaretAfterFormat = function(text, formatted, caret, format) {\r\n caret = getCaretWithOffset(caret, 0);\r\n var point = number.getDecimalSeparator();\r\n var isSeparatorBasedText = isSeparatorBasedString(text);\r\n var realSeparatorOccurrenceIndex = getRealSeparatorIndex(format).occurrence;\r\n var pointPosition = isSeparatorBasedText ? 0 : getNthOccurrence(text, point, realSeparatorOccurrenceIndex);\r\n var newPointPosition = getNthOccurrence(formatted, point, realSeparatorOccurrenceIndex);\r\n var textParts = splitByIndex(text, pointPosition);\r\n var formattedParts = splitByIndex(formatted, newPointPosition);\r\n var isCaretOnFloat = -1 !== pointPosition && caret.start > pointPosition;\r\n if (isCaretOnFloat) {\r\n var relativeIndex = caret.start - pointPosition - 1;\r\n var digitsBefore = _getDigitCountBeforeIndex(relativeIndex, textParts[1]);\r\n var newPosition = formattedParts[1] ? newPointPosition + 1 + _getDigitPositionByIndex(digitsBefore, formattedParts[1]) + 1 : formatted.length;\r\n return getCaretInBoundaries(newPosition, formatted, format)\r\n } else {\r\n var formattedIntPart = _trimNonNumericCharsFromEnd(formattedParts[0]);\r\n var positionFromEnd = textParts[0].length - caret.start;\r\n var digitsFromEnd = _getDigitCountBeforeIndex(positionFromEnd, _reverseText(textParts[0]));\r\n var newPositionFromEnd = _getDigitPositionByIndex(digitsFromEnd, _reverseText(formattedIntPart));\r\n var newPositionFromBegin = formattedIntPart.length - (newPositionFromEnd + 1);\r\n return getCaretInBoundaries(newPositionFromBegin, formatted, format)\r\n }\r\n};\r\n\r\nfunction isSeparatorBasedString(text) {\r\n return 1 === text.length && !!text.match(/^[,.][0-9]*$/g)\r\n}\r\nexport var isCaretInBoundaries = function(caret, text, format) {\r\n caret = getCaretWithOffset(caret, 0);\r\n var boundaries = getCaretInBoundaries(caret, text, format);\r\n return caret.start >= boundaries.start && caret.end <= boundaries.end\r\n};\r\nexport function getCaretInBoundaries(caret, text, format) {\r\n caret = getCaretWithOffset(caret, 0);\r\n var boundaries = getCaretBoundaries(text, format);\r\n var adjustedCaret = {\r\n start: fitIntoRange(caret.start, boundaries.start, boundaries.end),\r\n end: fitIntoRange(caret.end, boundaries.start, boundaries.end)\r\n };\r\n return adjustedCaret\r\n}\r\nexport var getCaretOffset = function(previousText, newText, format) {\r\n var previousBoundaries = getCaretBoundaries(previousText, format);\r\n var newBoundaries = getCaretBoundaries(newText, format);\r\n return newBoundaries.start - previousBoundaries.start\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.spin.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n lock\r\n} from \"../../events/core/emitter.feedback\";\r\nimport holdEvent from \"../../events/hold\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar SPIN_CLASS = \"dx-numberbox-spin\";\r\nvar SPIN_BUTTON_CLASS = \"dx-numberbox-spin-button\";\r\nvar SPIN_HOLD_DELAY = 100;\r\nvar NUMBER_BOX = \"dxNumberBox\";\r\nvar POINTERUP_EVENT_NAME = addNamespace(pointerEvents.up, NUMBER_BOX);\r\nvar POINTERCANCEL_EVENT_NAME = addNamespace(pointerEvents.cancel, NUMBER_BOX);\r\nvar SpinButton = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n direction: \"up\",\r\n onChange: null,\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n var direction = SPIN_CLASS + \"-\" + this.option(\"direction\");\r\n this.$element().addClass(SPIN_BUTTON_CLASS).addClass(direction);\r\n this._spinIcon = $(\"
\").addClass(direction + \"-icon\").appendTo(this.$element())\r\n },\r\n _render: function() {\r\n this.callBase();\r\n var eventName = addNamespace(pointerEvents.down, this.NAME);\r\n var $element = this.$element();\r\n eventsEngine.off($element, eventName);\r\n eventsEngine.on($element, eventName, this._spinDownHandler.bind(this));\r\n this._spinChangeHandler = this._createActionByOption(\"onChange\")\r\n },\r\n _spinDownHandler: function(e) {\r\n e.preventDefault();\r\n this._clearTimer();\r\n eventsEngine.on(this.$element(), holdEvent.name, function() {\r\n this._feedBackDeferred = new Deferred;\r\n lock(this._feedBackDeferred);\r\n this._spinChangeHandler({\r\n event: e\r\n });\r\n this._holdTimer = setInterval(this._spinChangeHandler, SPIN_HOLD_DELAY, {\r\n event: e\r\n })\r\n }.bind(this));\r\n var document = domAdapter.getDocument();\r\n eventsEngine.on(document, POINTERUP_EVENT_NAME, this._clearTimer.bind(this));\r\n eventsEngine.on(document, POINTERCANCEL_EVENT_NAME, this._clearTimer.bind(this));\r\n this._spinChangeHandler({\r\n event: e\r\n })\r\n },\r\n _dispose: function() {\r\n this._clearTimer();\r\n this.callBase()\r\n },\r\n _clearTimer: function() {\r\n eventsEngine.off(this.$element(), holdEvent.name);\r\n var document = domAdapter.getDocument();\r\n eventsEngine.off(document, POINTERUP_EVENT_NAME);\r\n eventsEngine.off(document, POINTERCANCEL_EVENT_NAME);\r\n if (this._feedBackDeferred) {\r\n this._feedBackDeferred.resolve()\r\n }\r\n if (this._holdTimer) {\r\n clearInterval(this._holdTimer)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"onChange\":\r\n case \"direction\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default SpinButton;\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.spins.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport TextEditorButton from \"../text_box/texteditor_button_collection/button\";\r\nimport SpinButton from \"./number_box.spin\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointer from \"../../events/pointer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar SPIN_CLASS = \"dx-numberbox-spin\";\r\nvar SPIN_CONTAINER_CLASS = \"dx-numberbox-spin-container\";\r\nvar SPIN_TOUCH_FRIENDLY_CLASS = \"dx-numberbox-spin-touch-friendly\";\r\nexport default class SpinButtons extends TextEditorButton {\r\n _attachEvents(instance, $spinContainer) {\r\n var {\r\n editor: editor\r\n } = this;\r\n var eventName = addNamespace(pointer.down, editor.NAME);\r\n var $spinContainerChildren = $spinContainer.children();\r\n var pointerDownAction = editor._createAction(e => editor._spinButtonsPointerDownHandler(e));\r\n eventsEngine.off($spinContainer, eventName);\r\n eventsEngine.on($spinContainer, eventName, e => pointerDownAction({\r\n event: e\r\n }));\r\n SpinButton.getInstance($spinContainerChildren.eq(0)).option(\"onChange\", e => editor._spinUpChangeHandler(e));\r\n SpinButton.getInstance($spinContainerChildren.eq(1)).option(\"onChange\", e => editor._spinDownChangeHandler(e))\r\n }\r\n _create() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var $spinContainer = $(\"
\").addClass(SPIN_CONTAINER_CLASS);\r\n var $spinUp = $(\"
\").appendTo($spinContainer);\r\n var $spinDown = $(\"
\").appendTo($spinContainer);\r\n var options = this._getOptions();\r\n this._addToContainer($spinContainer);\r\n editor._createComponent($spinUp, SpinButton, extend({\r\n direction: \"up\"\r\n }, options));\r\n editor._createComponent($spinDown, SpinButton, extend({\r\n direction: \"down\"\r\n }, options));\r\n this._legacyRender(editor.$element(), this._isTouchFriendly(), options.visible);\r\n return {\r\n instance: $spinContainer,\r\n $element: $spinContainer\r\n }\r\n }\r\n _getOptions() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var visible = this._isVisible();\r\n var disabled = editor.option(\"disabled\");\r\n return {\r\n visible: visible,\r\n disabled: disabled\r\n }\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return super._isVisible() && editor.option(\"showSpinButtons\")\r\n }\r\n _isTouchFriendly() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return editor.option(\"showSpinButtons\") && editor.option(\"useLargeSpinButtons\")\r\n }\r\n _legacyRender($editor, isTouchFriendly, isVisible) {\r\n $editor.toggleClass(SPIN_TOUCH_FRIENDLY_CLASS, isTouchFriendly);\r\n $editor.toggleClass(SPIN_CLASS, isVisible)\r\n }\r\n update() {\r\n var shouldUpdate = super.update();\r\n if (shouldUpdate) {\r\n var {\r\n editor: editor,\r\n instance: instance\r\n } = this;\r\n var $editor = editor.$element();\r\n var isVisible = this._isVisible();\r\n var isTouchFriendly = this._isTouchFriendly();\r\n var $spinButtons = instance.children();\r\n var spinUp = SpinButton.getInstance($spinButtons.eq(0));\r\n var spinDown = SpinButton.getInstance($spinButtons.eq(1));\r\n var options = this._getOptions();\r\n spinUp.option(options);\r\n spinDown.option(options);\r\n this._legacyRender($editor, isTouchFriendly, isVisible)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.base.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n applyServerDecimalSeparator,\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n fitIntoRange,\r\n inRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport devices from \"../../core/devices\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport TextEditor from \"../text_box/ui.text_editor\";\r\nimport {\r\n addNamespace,\r\n getChar,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport SpinButtons from \"./number_box.spins\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar math = Math;\r\nvar WIDGET_CLASS = \"dx-numberbox\";\r\nvar FIREFOX_CONTROL_KEYS = [\"tab\", \"del\", \"backspace\", \"leftArrow\", \"rightArrow\", \"home\", \"end\", \"enter\"];\r\nvar FORCE_VALUECHANGE_EVENT_NAMESPACE = \"NumberBoxForceValueChange\";\r\nvar NumberBoxBase = TextEditor.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n upArrow: function(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._spinUpChangeHandler(e)\r\n }\r\n },\r\n downArrow: function(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._spinDownChangeHandler(e)\r\n }\r\n },\r\n enter: function() {}\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: 0,\r\n min: void 0,\r\n max: void 0,\r\n step: 1,\r\n showSpinButtons: false,\r\n useLargeSpinButtons: true,\r\n mode: \"text\",\r\n invalidValueMessage: messageLocalization.format(\"dxNumberBox-invalidValueMessage\"),\r\n buttons: void 0\r\n })\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n _getDefaultButtons: function() {\r\n return this.callBase().concat([{\r\n name: \"spins\",\r\n Ctor: SpinButtons\r\n }])\r\n },\r\n _isSupportInputMode: function() {\r\n var version = parseFloat(browser.version);\r\n return browser.chrome && version >= 66 || browser.safari && version >= 12\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return devices.real().generic && !devices.isSimulator()\r\n },\r\n options: {\r\n useLargeSpinButtons: false\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" !== devices.real().deviceType && !this._isSupportInputMode()\r\n }.bind(this),\r\n options: {\r\n mode: \"number\"\r\n }\r\n }])\r\n },\r\n _initMarkup: function() {\r\n this._renderSubmitElement();\r\n this.$element().addClass(WIDGET_CLASS);\r\n this.callBase()\r\n },\r\n _getDefaultAttributes: function() {\r\n var attributes = this.callBase();\r\n attributes.inputmode = \"decimal\";\r\n return attributes\r\n },\r\n _renderContentImpl: function() {\r\n this.option(\"isValid\") && this._validateValue(this.option(\"value\"));\r\n this.setAria(\"role\", \"spinbutton\")\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 this._getSubmitElement().val(applyServerDecimalSeparator(value))\r\n },\r\n _getSubmitElement: function() {\r\n return this._$submitElement\r\n },\r\n _keyPressHandler: function(e) {\r\n this.callBase(e);\r\n var char = getChar(e);\r\n var isInputCharValid = /[\\d.,eE\\-+]/.test(char);\r\n if (!isInputCharValid) {\r\n var keyName = normalizeKeyName(e);\r\n if (isCommandKeyPressed(e) || keyName && FIREFOX_CONTROL_KEYS.includes(keyName)) {\r\n return\r\n }\r\n e.preventDefault();\r\n return false\r\n }\r\n this._keyPressed = true\r\n },\r\n _onMouseWheel: function(dxEvent) {\r\n dxEvent.delta > 0 ? this._spinValueChange(1, dxEvent) : this._spinValueChange(-1, dxEvent)\r\n },\r\n _renderValue: function() {\r\n var inputValue = this._input().val();\r\n var value = this.option(\"value\");\r\n if (!inputValue.length || Number(inputValue) !== value) {\r\n this._forceValueRender();\r\n this._toggleEmptinessEventHandler()\r\n }\r\n var valueText = isDefined(value) ? null : messageLocalization.format(\"dxNumberBox-noDataText\");\r\n this.setAria({\r\n valuenow: ensureDefined(value, \"\"),\r\n valuetext: valueText\r\n });\r\n this.option(\"text\", this._input().val());\r\n this._updateButtons();\r\n return (new Deferred).resolve()\r\n },\r\n _forceValueRender: function() {\r\n var value = this.option(\"value\");\r\n var number = Number(value);\r\n var formattedValue = isNaN(number) ? \"\" : this._applyDisplayValueFormatter(value);\r\n this._renderDisplayText(formattedValue)\r\n },\r\n _applyDisplayValueFormatter: function(value) {\r\n return this.option(\"displayValueFormatter\")(value)\r\n },\r\n _renderProps: function() {\r\n this._input().prop({\r\n min: this.option(\"min\"),\r\n max: this.option(\"max\"),\r\n step: this.option(\"step\")\r\n });\r\n this.setAria({\r\n valuemin: ensureDefined(this.option(\"min\"), \"\"),\r\n valuemax: ensureDefined(this.option(\"max\"), \"\")\r\n })\r\n },\r\n _spinButtonsPointerDownHandler: function() {\r\n var $input = this._input();\r\n if (!this.option(\"useLargeSpinButtons\") && domAdapter.getActiveElement() !== $input[0]) {\r\n eventsEngine.trigger($input, \"focus\")\r\n }\r\n },\r\n _spinUpChangeHandler: function(e) {\r\n if (!this.option(\"readOnly\")) {\r\n this._spinValueChange(1, e.event || e)\r\n }\r\n },\r\n _spinDownChangeHandler: function(e) {\r\n if (!this.option(\"readOnly\")) {\r\n this._spinValueChange(-1, e.event || e)\r\n }\r\n },\r\n _spinValueChange: function(sign, dxEvent) {\r\n var step = parseFloat(this.option(\"step\"));\r\n if (0 === step) {\r\n return\r\n }\r\n var value = parseFloat(this._normalizeInputValue()) || 0;\r\n value = this._correctRounding(value, step * sign);\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n if (isDefined(min)) {\r\n value = Math.max(min, value)\r\n }\r\n if (isDefined(max)) {\r\n value = Math.min(max, value)\r\n }\r\n this._saveValueChangeEvent(dxEvent);\r\n this.option(\"value\", value)\r\n },\r\n _correctRounding: function(value, step) {\r\n var regex = /[,.](.*)/;\r\n var isFloatValue = regex.test(value);\r\n var isFloatStep = regex.test(step);\r\n if (isFloatValue || isFloatStep) {\r\n var valueAccuracy = isFloatValue ? regex.exec(value)[0].length : 0;\r\n var stepAccuracy = isFloatStep ? regex.exec(step)[0].length : 0;\r\n var accuracy = math.max(valueAccuracy, stepAccuracy);\r\n value = this._round(value + step, accuracy);\r\n return value\r\n }\r\n return value + step\r\n },\r\n _round: function(value, precision) {\r\n precision = precision || 0;\r\n var multiplier = Math.pow(10, precision);\r\n value *= multiplier;\r\n value = Math.round(value) / multiplier;\r\n return value\r\n },\r\n _renderValueChangeEvent: function() {\r\n this.callBase();\r\n var forceValueChangeEvent = addNamespace(\"focusout\", FORCE_VALUECHANGE_EVENT_NAMESPACE);\r\n eventsEngine.off(this.element(), forceValueChangeEvent);\r\n eventsEngine.on(this.element(), forceValueChangeEvent, this._forceRefreshInputValue.bind(this))\r\n },\r\n _forceRefreshInputValue: function() {\r\n if (\"number\" === this.option(\"mode\")) {\r\n return\r\n }\r\n var $input = this._input();\r\n var formattedValue = this._applyDisplayValueFormatter(this.option(\"value\"));\r\n $input.val(null);\r\n $input.val(formattedValue)\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n var $input = this._input();\r\n var inputValue = this._normalizeText();\r\n var value = this._parseValue(inputValue);\r\n var valueHasDigits = \".\" !== inputValue && \"-\" !== inputValue;\r\n if (this._isValueValid() && !this._validateValue(value)) {\r\n $input.val(this._applyDisplayValueFormatter(value));\r\n return\r\n }\r\n if (valueHasDigits) {\r\n this.callBase(e, isNaN(value) ? null : value)\r\n }\r\n this._applyValueBoundaries(inputValue, value);\r\n this.validationRequest.fire({\r\n value: value,\r\n editor: this\r\n })\r\n },\r\n _applyValueBoundaries: function(inputValue, parsedValue) {\r\n var isValueIncomplete = this._isValueIncomplete(inputValue);\r\n var isValueCorrect = this._isValueInRange(inputValue);\r\n if (!isValueIncomplete && !isValueCorrect && null !== parsedValue) {\r\n if (Number(inputValue) !== parsedValue) {\r\n this._input().val(this._applyDisplayValueFormatter(parsedValue))\r\n }\r\n }\r\n },\r\n _replaceCommaWithPoint: function(value) {\r\n return value.replace(\",\", \".\")\r\n },\r\n _inputIsInvalid: function() {\r\n var isNumberMode = \"number\" === this.option(\"mode\");\r\n var validityState = this._input().get(0).validity;\r\n return isNumberMode && validityState && validityState.badInput\r\n },\r\n _renderDisplayText: function(text) {\r\n if (this._inputIsInvalid()) {\r\n return\r\n }\r\n this.callBase(text)\r\n },\r\n _isValueIncomplete: function(value) {\r\n return /(^-$)|(^-?\\d*\\.$)|(\\d+e-?$)/i.test(value)\r\n },\r\n _isValueInRange: function(value) {\r\n return inRange(value, this.option(\"min\"), this.option(\"max\"))\r\n },\r\n _isNumber: function(value) {\r\n return null !== this._parseValue(value)\r\n },\r\n _validateValue: function(value) {\r\n var inputValue = this._normalizeText();\r\n var isValueValid = this._isValueValid();\r\n var isValid = true;\r\n var isNumber = this._isNumber(inputValue);\r\n if (isNaN(Number(value))) {\r\n isValid = false\r\n }\r\n if (!value && isValueValid) {\r\n isValid = true\r\n } else if (!isNumber && !isValueValid) {\r\n isValid = false\r\n }\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n editorSpecific: true,\r\n message: this.option(\"invalidValueMessage\")\r\n }\r\n });\r\n return isValid\r\n },\r\n _normalizeInputValue: function() {\r\n return this._parseValue(this._normalizeText())\r\n },\r\n _normalizeText: function() {\r\n var value = this._input().val().trim();\r\n return this._replaceCommaWithPoint(value)\r\n },\r\n _parseValue: function(value) {\r\n var number = parseFloat(value);\r\n if (isNaN(number)) {\r\n return null\r\n }\r\n return fitIntoRange(number, this.option(\"min\"), this.option(\"max\"))\r\n },\r\n _clearValue: function() {\r\n if (this._inputIsInvalid()) {\r\n this._input().val(\"\");\r\n this._validateValue()\r\n }\r\n this.callBase()\r\n },\r\n reset: function() {\r\n if (null === this.option(\"value\")) {\r\n this.option(\"text\", \"\");\r\n this._renderValue()\r\n } else {\r\n this.option(\"value\", null)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._validateValue(args.value);\r\n this._setSubmitValue(args.value);\r\n this.callBase(args);\r\n this._resumeValueChangeAction();\r\n break;\r\n case \"step\":\r\n this._renderProps();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this._renderProps();\r\n this.option(\"value\", this._parseValue(this.option(\"value\")));\r\n break;\r\n case \"showSpinButtons\":\r\n case \"useLargeSpinButtons\":\r\n this._updateButtons([\"spins\"]);\r\n break;\r\n case \"invalidValueMessage\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default NumberBoxBase;\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.mask.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isNumeric,\r\n isDefined,\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n fitIntoRange,\r\n inRange\r\n} from \"../../core/utils/math\";\r\nimport number from \"../../localization/number\";\r\nimport {\r\n getCaretWithOffset,\r\n isCaretInBoundaries,\r\n getCaretInBoundaries,\r\n getCaretBoundaries,\r\n getCaretAfterFormat,\r\n getCaretOffset\r\n} from \"./number_box.caret\";\r\nimport {\r\n getFormat as getLDMLFormat\r\n} from \"../../localization/ldml/number\";\r\nimport NumberBoxBase from \"./number_box.base\";\r\nimport {\r\n addNamespace,\r\n getChar,\r\n normalizeKeyName,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport {\r\n ensureDefined,\r\n escapeRegExp\r\n} from \"../../core/utils/common\";\r\nimport {\r\n getRealSeparatorIndex,\r\n getNthOccurrence,\r\n splitByIndex,\r\n adjustPercentValue\r\n} from \"./utils\";\r\nvar NUMBER_FORMATTER_NAMESPACE = \"dxNumberFormatter\";\r\nvar MOVE_FORWARD = 1;\r\nvar MOVE_BACKWARD = -1;\r\nvar MINUS = \"-\";\r\nvar MINUS_KEY = \"minus\";\r\nvar INPUT_EVENT = \"input\";\r\nvar CARET_TIMEOUT_DURATION = 0;\r\nvar NumberBoxMask = NumberBoxBase.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n useMaskBehavior: true,\r\n format: null\r\n })\r\n },\r\n _isDeleteKey: function(key) {\r\n return \"del\" === key\r\n },\r\n _supportedKeys: function() {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase()\r\n }\r\n return extend(this.callBase(), {\r\n minus: this._revertSign.bind(this),\r\n del: this._removeHandler.bind(this),\r\n backspace: this._removeHandler.bind(this),\r\n leftArrow: this._arrowHandler.bind(this, MOVE_BACKWARD),\r\n rightArrow: this._arrowHandler.bind(this, MOVE_FORWARD),\r\n home: this._moveCaretToBoundaryEventHandler.bind(this, MOVE_FORWARD),\r\n enter: this._updateFormattedValue.bind(this),\r\n end: this._moveCaretToBoundaryEventHandler.bind(this, MOVE_BACKWARD)\r\n })\r\n },\r\n _getTextSeparatorIndex: function(text) {\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var realSeparatorOccurrenceIndex = getRealSeparatorIndex(this.option(\"format\")).occurrence;\r\n return getNthOccurrence(text, decimalSeparator, realSeparatorOccurrenceIndex)\r\n },\r\n _focusInHandler: function(e) {\r\n if (!this._preventNestedFocusEvent(e)) {\r\n this.clearCaretTimeout();\r\n this._caretTimeout = setTimeout(function() {\r\n this._caretTimeout = void 0;\r\n var caret = this._caret();\r\n if (caret.start === caret.end && this._useMaskBehavior()) {\r\n var text = this._getInputVal();\r\n var decimalSeparatorIndex = this._getTextSeparatorIndex(text);\r\n if (decimalSeparatorIndex >= 0) {\r\n this._caret({\r\n start: decimalSeparatorIndex,\r\n end: decimalSeparatorIndex\r\n })\r\n } else {\r\n this._moveCaretToBoundaryEventHandler(MOVE_BACKWARD, e)\r\n }\r\n }\r\n }.bind(this), CARET_TIMEOUT_DURATION)\r\n }\r\n this.callBase(e)\r\n },\r\n _focusOutHandler: function(e) {\r\n var shouldHandleEvent = !this._preventNestedFocusEvent(e);\r\n if (shouldHandleEvent) {\r\n this._focusOutOccurs = true;\r\n if (this._useMaskBehavior()) {\r\n this._updateFormattedValue()\r\n }\r\n }\r\n this.callBase(e);\r\n if (shouldHandleEvent) {\r\n this._focusOutOccurs = false\r\n }\r\n },\r\n _hasValueBeenChanged(inputValue) {\r\n var format = this._getFormatPattern();\r\n var value = this.option(\"value\");\r\n var formatted = this._format(value, format) || \"\";\r\n return formatted !== inputValue\r\n },\r\n _updateFormattedValue: function() {\r\n var inputValue = this._getInputVal();\r\n if (this._hasValueBeenChanged(inputValue)) {\r\n this._updateParsedValue();\r\n this._adjustParsedValue();\r\n this._setTextByParsedValue();\r\n if (this._parsedValue !== this.option(\"value\")) {\r\n eventsEngine.trigger(this._input(), \"change\")\r\n }\r\n }\r\n },\r\n _arrowHandler: function(step, e) {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var text = this._getInputVal();\r\n var format = this._getFormatPattern();\r\n var nextCaret = getCaretWithOffset(this._caret(), step);\r\n if (!isCaretInBoundaries(nextCaret, text, format)) {\r\n nextCaret = step === MOVE_FORWARD ? nextCaret.end : nextCaret.start;\r\n e.preventDefault();\r\n this._caret(getCaretInBoundaries(nextCaret, text, format))\r\n }\r\n },\r\n _moveCaretToBoundary: function(direction) {\r\n var boundaries = getCaretBoundaries(this._getInputVal(), this._getFormatPattern());\r\n var newCaret = getCaretWithOffset(direction === MOVE_FORWARD ? boundaries.start : boundaries.end, 0);\r\n this._caret(newCaret)\r\n },\r\n _moveCaretToBoundaryEventHandler: function(direction, e) {\r\n if (!this._useMaskBehavior() || e && e.shiftKey) {\r\n return\r\n }\r\n this._moveCaretToBoundary(direction);\r\n e && e.preventDefault()\r\n },\r\n _shouldMoveCaret: function(text, caret) {\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var isDecimalSeparatorNext = text.charAt(caret.end) === decimalSeparator;\r\n var moveToFloat = (this._lastKey === decimalSeparator || \".\" === this._lastKey || \",\" === this._lastKey) && isDecimalSeparatorNext;\r\n return moveToFloat\r\n },\r\n _getInputVal: function() {\r\n return number.convertDigits(this._input().val(), true)\r\n },\r\n _keyboardHandler: function(e) {\r\n this.clearCaretTimeout();\r\n this._lastKey = number.convertDigits(getChar(e), true);\r\n this._lastKeyName = normalizeKeyName(e);\r\n if (!this._shouldHandleKey(e.originalEvent)) {\r\n return this.callBase(e)\r\n }\r\n var normalizedText = this._getInputVal();\r\n var caret = this._caret();\r\n var enteredChar = this._lastKeyName === MINUS_KEY ? \"\" : this._lastKey;\r\n var newValue = this._tryParse(normalizedText, caret, enteredChar);\r\n if (this._shouldMoveCaret(normalizedText, caret)) {\r\n this._moveCaret(1);\r\n e.originalEvent.preventDefault()\r\n }\r\n if (void 0 === newValue) {\r\n if (this._lastKeyName !== MINUS_KEY) {\r\n e.originalEvent.preventDefault()\r\n }\r\n } else {\r\n this._parsedValue = newValue\r\n }\r\n return this.callBase(e)\r\n },\r\n _keyPressHandler: function(e) {\r\n if (!this._useMaskBehavior()) {\r\n this.callBase(e)\r\n }\r\n },\r\n _removeHandler: function(e) {\r\n var caret = this._caret();\r\n var text = this._getInputVal();\r\n var start = caret.start;\r\n var end = caret.end;\r\n this._lastKey = getChar(e);\r\n this._lastKeyName = normalizeKeyName(e);\r\n var isDeleteKey = this._isDeleteKey(this._lastKeyName);\r\n var isBackspaceKey = !isDeleteKey;\r\n if (start === end) {\r\n var caretPosition = start;\r\n var canDelete = isBackspaceKey && caretPosition > 0 || isDeleteKey && caretPosition < text.length;\r\n if (canDelete) {\r\n isDeleteKey && end++;\r\n isBackspaceKey && start--\r\n } else {\r\n e.preventDefault();\r\n return\r\n }\r\n }\r\n var char = text.slice(start, end);\r\n if (this._isStub(char)) {\r\n this._moveCaret(isDeleteKey ? 1 : -1);\r\n if (this._parsedValue < 0 || 1 / this._parsedValue === -1 / 0) {\r\n this._revertSign(e);\r\n this._setTextByParsedValue()\r\n }\r\n e.preventDefault();\r\n return\r\n }\r\n var decimalSeparator = number.getDecimalSeparator();\r\n if (char === decimalSeparator) {\r\n var decimalSeparatorIndex = text.indexOf(decimalSeparator);\r\n if (this._isNonStubAfter(decimalSeparatorIndex + 1)) {\r\n this._moveCaret(isDeleteKey ? 1 : -1);\r\n e.preventDefault()\r\n }\r\n return\r\n }\r\n if (end - start < text.length) {\r\n var editedText = this._replaceSelectedText(text, {\r\n start: start,\r\n end: end\r\n }, \"\");\r\n var noDigits = editedText.search(/[0-9]/) < 0;\r\n if (noDigits && this._isValueInRange(0)) {\r\n this._parsedValue = this._parsedValue < 0 || 1 / this._parsedValue === -1 / 0 ? -0 : 0;\r\n return\r\n }\r\n }\r\n var valueAfterRemoving = this._tryParse(text, {\r\n start: start,\r\n end: end\r\n }, \"\");\r\n if (void 0 === valueAfterRemoving) {\r\n e.preventDefault()\r\n } else {\r\n this._parsedValue = valueAfterRemoving\r\n }\r\n },\r\n _isPercentFormat: function() {\r\n var format = this._getFormatPattern();\r\n var noEscapedFormat = format.replace(/'[^']+'/g, \"\");\r\n return -1 !== noEscapedFormat.indexOf(\"%\")\r\n },\r\n _parse: function(text, format) {\r\n var formatOption = this.option(\"format\");\r\n var isCustomParser = isFunction(formatOption.parser);\r\n var parser = isCustomParser ? formatOption.parser : number.parse;\r\n var integerPartStartIndex = 0;\r\n if (!isCustomParser) {\r\n var formatPointIndex = getRealSeparatorIndex(format).index;\r\n var textPointIndex = this._getTextSeparatorIndex(text);\r\n var formatIntegerPartLength = -1 !== formatPointIndex ? formatPointIndex : format.length;\r\n var textIntegerPartLength = -1 !== textPointIndex ? textPointIndex : text.length;\r\n if (textIntegerPartLength > formatIntegerPartLength && -1 === format.indexOf(\"#\")) {\r\n integerPartStartIndex = textIntegerPartLength - formatIntegerPartLength\r\n }\r\n }\r\n text = text.substr(integerPartStartIndex);\r\n return parser(text, format)\r\n },\r\n _format: function(value, format) {\r\n var formatOption = this.option(\"format\");\r\n var customFormatter = (null === formatOption || void 0 === formatOption ? void 0 : formatOption.formatter) || formatOption;\r\n var formatter = isFunction(customFormatter) ? customFormatter : number.format;\r\n var formattedValue = null === value ? \"\" : formatter(value, format);\r\n return formattedValue\r\n },\r\n _getFormatPattern: function() {\r\n if (!this._currentFormat) {\r\n this._updateFormat()\r\n }\r\n return this._currentFormat\r\n },\r\n _updateFormat: function() {\r\n var format = this.option(\"format\");\r\n var isCustomParser = isFunction(null === format || void 0 === format ? void 0 : format.parser);\r\n var isLDMLPattern = isString(format) && (format.indexOf(\"0\") >= 0 || format.indexOf(\"#\") >= 0);\r\n var isExponentialFormat = \"exponential\" === format || \"exponential\" === (null === format || void 0 === format ? void 0 : format.type);\r\n var shouldUseFormatAsIs = isCustomParser || isLDMLPattern || isExponentialFormat;\r\n this._currentFormat = shouldUseFormatAsIs ? format : getLDMLFormat(value => {\r\n var text = this._format(value, format);\r\n return number.convertDigits(text, true)\r\n })\r\n },\r\n _getFormatForSign: function(text) {\r\n var format = this._getFormatPattern();\r\n if (isString(format)) {\r\n var signParts = format.split(\";\");\r\n var sign = number.getSign(text, format);\r\n signParts[1] = signParts[1] || \"-\" + signParts[0];\r\n return sign < 0 ? signParts[1] : signParts[0]\r\n } else {\r\n var _sign = number.getSign(text);\r\n return _sign < 0 ? \"-\" : \"\"\r\n }\r\n },\r\n _removeStubs: function(text, excludeComma) {\r\n var format = this._getFormatForSign(text);\r\n var thousandsSeparator = number.getThousandsSeparator();\r\n var stubs = this._getStubs(format);\r\n var result = text;\r\n if (stubs.length) {\r\n var prefixStubs = stubs[0];\r\n var postfixRegex = new RegExp(\"(\" + escapeRegExp(stubs[1] || \"\") + \")$\", \"g\");\r\n var decoratorsRegex = new RegExp(\"[-\" + escapeRegExp(excludeComma ? \"\" : thousandsSeparator) + \"]\", \"g\");\r\n result = result.replace(prefixStubs, \"\").replace(postfixRegex, \"\").replace(decoratorsRegex, \"\")\r\n }\r\n return result\r\n },\r\n _getStubs: function(format) {\r\n var regExpResult = /[^']([#0.,]+)/g.exec(format);\r\n var pattern = regExpResult && regExpResult[0].trim();\r\n return format.split(pattern).map((function(stub) {\r\n return stub.replace(/'/g, \"\")\r\n }))\r\n },\r\n _truncateToPrecision: function(value, maxPrecision) {\r\n if (isDefined(value)) {\r\n var strValue = value.toString();\r\n var decimalSeparatorIndex = strValue.indexOf(\".\");\r\n if (strValue && decimalSeparatorIndex > -1) {\r\n var parsedValue = parseFloat(strValue.substr(0, decimalSeparatorIndex + maxPrecision + 1));\r\n return isNaN(parsedValue) ? value : parsedValue\r\n }\r\n }\r\n return value\r\n },\r\n _tryParse: function(text, selection, char) {\r\n var editedText = this._replaceSelectedText(text, selection, char);\r\n var format = this._getFormatPattern();\r\n var isTextSelected = selection.start !== selection.end;\r\n var parsedValue = this._getParsedValue(editedText, format);\r\n var maxPrecision = !format.parser && this._getPrecisionLimits(editedText).max;\r\n var isValueChanged = parsedValue !== this._parsedValue;\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var isDecimalPointRestricted = char === decimalSeparator && 0 === maxPrecision;\r\n var isUselessCharRestricted = !isTextSelected && !isValueChanged && char !== MINUS && !this._isValueIncomplete(editedText) && this._isStub(char);\r\n if (isDecimalPointRestricted || isUselessCharRestricted) {\r\n return\r\n }\r\n if (\"\" === this._removeStubs(editedText)) {\r\n parsedValue = Math.abs(0 * this._parsedValue)\r\n }\r\n if (isNaN(parsedValue)) {\r\n return\r\n }\r\n var value = null === parsedValue ? this._parsedValue : parsedValue;\r\n parsedValue = maxPrecision ? this._truncateToPrecision(value, maxPrecision) : parsedValue;\r\n return !format.parser && this._isPercentFormat() ? adjustPercentValue(parsedValue, maxPrecision) : parsedValue\r\n },\r\n _getParsedValue: function(text, format) {\r\n var sign = number.getSign(text, (null === format || void 0 === format ? void 0 : format.formatter) || format);\r\n var textWithoutStubs = this._removeStubs(text, true);\r\n var parsedValue = this._parse(textWithoutStubs, format);\r\n var parsedValueSign = parsedValue < 0 ? -1 : 1;\r\n var parsedValueWithSign = isNumeric(parsedValue) && sign !== parsedValueSign ? sign * parsedValue : parsedValue;\r\n return parsedValueWithSign\r\n },\r\n _isValueIncomplete: function(text) {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase(text)\r\n }\r\n var caret = this._caret();\r\n var point = number.getDecimalSeparator();\r\n var pointIndex = this._getTextSeparatorIndex(text);\r\n var isCaretOnFloat = pointIndex >= 0 && pointIndex < caret.start;\r\n var textParts = this._removeStubs(text, true).split(point);\r\n if (!isCaretOnFloat || 2 !== textParts.length) {\r\n return false\r\n }\r\n var floatLength = textParts[1].length;\r\n var format = this._getFormatPattern();\r\n var isCustomParser = !!format.parser;\r\n var precision = !isCustomParser && this._getPrecisionLimits(this._getFormatPattern(), text);\r\n var isPrecisionInRange = isCustomParser ? true : inRange(floatLength, precision.min, precision.max);\r\n var endsWithZero = \"0\" === textParts[1].charAt(floatLength - 1);\r\n return isPrecisionInRange && (endsWithZero || !floatLength)\r\n },\r\n _isValueInRange: function(value) {\r\n var min = ensureDefined(this.option(\"min\"), -1 / 0);\r\n var max = ensureDefined(this.option(\"max\"), 1 / 0);\r\n return inRange(value, min, max)\r\n },\r\n _setInputText: function(text) {\r\n var normalizedText = number.convertDigits(text, true);\r\n var newCaret = getCaretAfterFormat(this._getInputVal(), normalizedText, this._caret(), this._getFormatPattern());\r\n this._input().val(text);\r\n this._toggleEmptinessEventHandler();\r\n this._formattedValue = text;\r\n if (!this._focusOutOccurs) {\r\n this._caret(newCaret)\r\n }\r\n },\r\n _useMaskBehavior: function() {\r\n return !!this.option(\"format\") && this.option(\"useMaskBehavior\")\r\n },\r\n _renderInputType: function() {\r\n var isNumberType = \"number\" === this.option(\"mode\");\r\n var isDesktop = \"desktop\" === devices.real().deviceType;\r\n if (this._useMaskBehavior() && isNumberType) {\r\n this._setInputType(isDesktop || this._isSupportInputMode() ? \"text\" : \"tel\")\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n _isChar: function(str) {\r\n return isString(str) && 1 === str.length\r\n },\r\n _moveCaret: function(offset) {\r\n if (!offset) {\r\n return\r\n }\r\n var newCaret = getCaretWithOffset(this._caret(), offset);\r\n var adjustedCaret = getCaretInBoundaries(newCaret, this._getInputVal(), this._getFormatPattern());\r\n this._caret(adjustedCaret)\r\n },\r\n _shouldHandleKey: function(e) {\r\n var keyName = normalizeKeyName(e);\r\n var isSpecialChar = isCommandKeyPressed(e) || e.altKey || e.shiftKey || !this._isChar(keyName);\r\n var isMinusKey = keyName === MINUS_KEY;\r\n var useMaskBehavior = this._useMaskBehavior();\r\n return useMaskBehavior && !isSpecialChar && !isMinusKey\r\n },\r\n _renderInput: function() {\r\n this.callBase();\r\n this._renderFormatter()\r\n },\r\n _renderFormatter: function() {\r\n this._clearCache();\r\n this._detachFormatterEvents();\r\n if (this._useMaskBehavior()) {\r\n this._attachFormatterEvents()\r\n }\r\n },\r\n _detachFormatterEvents: function() {\r\n eventsEngine.off(this._input(), \".\" + NUMBER_FORMATTER_NAMESPACE)\r\n },\r\n _isInputFromPaste: function(e) {\r\n var inputType = e.originalEvent && e.originalEvent.inputType;\r\n if (isDefined(inputType)) {\r\n return \"insertFromPaste\" === inputType\r\n } else {\r\n return this._isValuePasted\r\n }\r\n },\r\n _attachFormatterEvents: function() {\r\n var $input = this._input();\r\n eventsEngine.on($input, addNamespace(INPUT_EVENT, NUMBER_FORMATTER_NAMESPACE), function(e) {\r\n this._formatValue(e);\r\n this._isValuePasted = false\r\n }.bind(this));\r\n eventsEngine.on($input, addNamespace(\"dxclick\", NUMBER_FORMATTER_NAMESPACE), function() {\r\n if (!this._caretTimeout) {\r\n this._caretTimeout = setTimeout(function() {\r\n this._caretTimeout = void 0;\r\n this._caret(getCaretInBoundaries(this._caret(), this._getInputVal(), this._getFormatPattern()))\r\n }.bind(this), CARET_TIMEOUT_DURATION)\r\n }\r\n }.bind(this));\r\n eventsEngine.on($input, \"dxdblclick\", function() {\r\n this.clearCaretTimeout()\r\n }.bind(this))\r\n },\r\n clearCaretTimeout: function() {\r\n clearTimeout(this._caretTimeout);\r\n this._caretTimeout = void 0\r\n },\r\n _forceRefreshInputValue: function() {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase()\r\n }\r\n },\r\n _isNonStubAfter: function(index) {\r\n var text = this._getInputVal().slice(index);\r\n return text && !this._isStub(text, true)\r\n },\r\n _isStub: function(str, isString) {\r\n var escapedDecimalSeparator = escapeRegExp(number.getDecimalSeparator());\r\n var regExpString = \"^[^0-9\" + escapedDecimalSeparator + \"]+$\";\r\n var stubRegExp = new RegExp(regExpString, \"g\");\r\n return stubRegExp.test(str) && (isString || this._isChar(str))\r\n },\r\n _parseValue: function(text) {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase(text)\r\n }\r\n return this._parsedValue\r\n },\r\n _getPrecisionLimits: function(text) {\r\n var currentFormat = this._getFormatForSign(text);\r\n var realSeparatorIndex = getRealSeparatorIndex(currentFormat).index;\r\n var floatPart = (splitByIndex(currentFormat, realSeparatorIndex)[1] || \"\").replace(/[^#0]/g, \"\");\r\n var minPrecision = floatPart.replace(/^(0*)#*/, \"$1\").length;\r\n var maxPrecision = floatPart.length;\r\n return {\r\n min: minPrecision,\r\n max: maxPrecision\r\n }\r\n },\r\n _revertSign: function(e) {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var caret = this._caret();\r\n if (caret.start !== caret.end) {\r\n if (normalizeKeyName(e) === MINUS_KEY) {\r\n this._applyRevertedSign(e, caret, true);\r\n return\r\n } else {\r\n this._caret(getCaretInBoundaries(0, this._getInputVal(), this._getFormatPattern()))\r\n }\r\n }\r\n this._applyRevertedSign(e, caret)\r\n },\r\n _applyRevertedSign: function(e, caret, preserveSelectedText) {\r\n var newValue = -1 * ensureDefined(this._parsedValue, null);\r\n if (this._isValueInRange(newValue)) {\r\n this._parsedValue = newValue;\r\n if (preserveSelectedText) {\r\n var format = this._getFormatPattern();\r\n var previousText = this._getInputVal();\r\n this._setTextByParsedValue();\r\n e.preventDefault();\r\n var currentText = this._getInputVal();\r\n var offset = getCaretOffset(previousText, currentText, format);\r\n caret = getCaretWithOffset(caret, offset);\r\n var caretInBoundaries = getCaretInBoundaries(caret, currentText, format);\r\n this._caret(caretInBoundaries)\r\n }\r\n }\r\n },\r\n _removeMinusFromText: function(text, caret) {\r\n var isMinusPressed = this._lastKeyName === MINUS_KEY && text.charAt(caret.start - 1) === MINUS;\r\n return isMinusPressed ? this._replaceSelectedText(text, {\r\n start: caret.start - 1,\r\n end: caret.start\r\n }, \"\") : text\r\n },\r\n _setTextByParsedValue: function() {\r\n var format = this._getFormatPattern();\r\n var parsed = this._parseValue();\r\n var formatted = this._format(parsed, format) || \"\";\r\n this._setInputText(formatted)\r\n },\r\n _formatValue: function(e) {\r\n var normalizedText = this._getInputVal();\r\n var caret = this._caret();\r\n var textWithoutMinus = this._removeMinusFromText(normalizedText, caret);\r\n var wasMinusRemoved = textWithoutMinus !== normalizedText;\r\n normalizedText = textWithoutMinus;\r\n if (!this._isInputFromPaste(e) && this._isValueIncomplete(textWithoutMinus)) {\r\n this._formattedValue = normalizedText;\r\n if (wasMinusRemoved) {\r\n this._setTextByParsedValue()\r\n }\r\n return\r\n }\r\n var textWasChanged = number.convertDigits(this._formattedValue, true) !== normalizedText;\r\n if (textWasChanged) {\r\n var value = this._tryParse(normalizedText, caret, \"\");\r\n if (isDefined(value)) {\r\n this._parsedValue = value\r\n }\r\n }\r\n this._setTextByParsedValue()\r\n },\r\n _renderDisplayText: function() {\r\n if (this._useMaskBehavior()) {\r\n this._toggleEmptinessEventHandler()\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _renderValue: function() {\r\n if (this._useMaskBehavior()) {\r\n this._parsedValue = this.option(\"value\");\r\n this._setTextByParsedValue()\r\n }\r\n return this.callBase()\r\n },\r\n _updateParsedValue: function() {\r\n var inputValue = this._getInputVal();\r\n this._parsedValue = this._tryParse(inputValue, this._caret())\r\n },\r\n _adjustParsedValue: function() {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var clearedText = this._removeStubs(this._getInputVal());\r\n var parsedValue = clearedText ? this._parseValue() : null;\r\n if (!isNumeric(parsedValue)) {\r\n this._parsedValue = parsedValue;\r\n return\r\n }\r\n this._parsedValue = fitIntoRange(parsedValue, this.option(\"min\"), this.option(\"max\"))\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase(e)\r\n }\r\n var caret = this._caret();\r\n this._saveValueChangeEvent(e);\r\n this._lastKey = null;\r\n this._lastKeyName = null;\r\n this._updateParsedValue();\r\n this._adjustParsedValue();\r\n this.option(\"value\", this._parsedValue);\r\n if (caret) {\r\n this._caret(caret)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"format\":\r\n case \"useMaskBehavior\":\r\n this._renderInputType();\r\n this._updateFormat();\r\n this._renderFormatter();\r\n this._renderValue();\r\n this._refreshValueChangeEvent();\r\n this._refreshEvents();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this._adjustParsedValue();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearCache: function() {\r\n delete this._formattedValue;\r\n delete this._lastKey;\r\n delete this._lastKeyName;\r\n delete this._parsedValue;\r\n delete this._focusOutOccurs;\r\n clearTimeout(this._caretTimeout);\r\n delete this._caretTimeout\r\n },\r\n _clean: function() {\r\n this._clearCache();\r\n this.callBase()\r\n }\r\n});\r\nexport default NumberBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport NumberBoxMask from \"./number_box.mask\";\r\nregisterComponent(\"dxNumberBox\", NumberBoxMask);\r\nexport default NumberBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/number_box.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport NumberBox from \"./number_box/number_box\";\r\nexport default NumberBox;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.mask.parts.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n 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/date_box/ui.date_utils.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ 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/events/gesture/swipeable.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n 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/calendar/ui.calendar.navigator.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport 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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n 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 = $(\"\");\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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport 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 = new Date(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 = new Date(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 = new Date(date);\r\n date.setMonth(date.getMonth() + 1);\r\n return date\r\n },\r\n _getCellByDate: function(date) {\r\n var foundDate = new Date(date);\r\n foundDate.setDate(1);\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n getCellAriaLabel: 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 = new Date(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 = new Date(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 = new Date(currentDate);\r\n var endDate = new Date(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 = new Date(date);\r\n foundDate.setDate(1);\r\n foundDate.setMonth(0);\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n isBoundary: 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 = new Date(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 = new Date(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 = new Date(date);\r\n date.setFullYear(date.getFullYear() + 10);\r\n return date\r\n },\r\n _getCellByDate: function(date) {\r\n var foundDate = new Date(date);\r\n foundDate.setDate(1);\r\n foundDate.setMonth(0);\r\n foundDate.setFullYear(dateUtils.getFirstYearInDecade(foundDate));\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n getNavigatorCaption: function() {\r\n var currentDate = this.option(\"date\");\r\n var firstDecadeInCentury = dateUtils.getFirstDecadeInCentury(currentDate);\r\n var startDate = new Date(currentDate);\r\n var endDate = new Date(currentDate);\r\n startDate.setFullYear(firstDecadeInCentury);\r\n endDate.setFullYear(firstDecadeInCentury + 99);\r\n return 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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\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} 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 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\n\r\nfunction elementHasFocus(element) {\r\n return element.hasClass(FOCUSED_STATE_CLASS)\r\n}\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 skipFocusCheck: false,\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 = new Date(baseDate);\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var isCurrentDateAvailable = !this._isDateNotAvailable(currentDate);\r\n var isDateForwardAvailable = isCurrentDateAvailable;\r\n var isDateBackwardAvailable = isCurrentDateAvailable;\r\n var isDateForwardInStartView;\r\n var isDateBackwardInStartView;\r\n var dateForward = new Date(currentDate);\r\n var dateBackward = new Date(currentDate);\r\n do {\r\n if (isDateForwardAvailable) {\r\n currentDate = dateForward;\r\n break\r\n }\r\n if (isDateBackwardAvailable) {\r\n currentDate = dateBackward;\r\n break\r\n }\r\n this._shiftDate(zoomLevel, dateForward, 1, 1);\r\n this._shiftDate(zoomLevel, dateBackward, 1, -1);\r\n isDateForwardInStartView = this._areDatesInSameView(zoomLevel, dateForward, baseDate);\r\n isDateBackwardInStartView = this._areDatesInSameView(zoomLevel, dateBackward, baseDate);\r\n isDateForwardAvailable = isDateForwardInStartView && !this._isDateNotAvailable(dateForward);\r\n isDateBackwardAvailable = isDateBackwardInStartView && !this._isDateNotAvailable(dateBackward)\r\n } while (isDateForwardInStartView || isDateBackwardInStartView);\r\n this.option(\"currentDate\", currentDate)\r\n },\r\n _isDateNotAvailable: 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\", new Date(normalizedDate));\r\n return\r\n }\r\n var offset = this._getViewsOffset(this._view.option(\"date\"), normalizedDate);\r\n if (0 !== offset && !this._isMaxZoomLevel() && this._isOtherViewCellClicked) {\r\n offset = 0\r\n }\r\n if (this._view && 0 !== offset && !this._suppressNavigation) {\r\n 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(\"skipFocusCheck\") || elementHasFocus(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\") ? -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 = new Date(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 = getWidth(this.$element())\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 => new Date(value),\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) ? new Date(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 \"skipFocusCheck\":\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 getContouredDate: function() {\r\n return this._view.option(\"contouredDate\")\r\n }\r\n});\r\nregisterComponent(\"dxCalendar\", Calendar);\r\nexport default Calendar;\r\n","/**\r\n * DevExtreme (esm/ui/calendar.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport 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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n 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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport 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 skipFocusCheck: true\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 value = e.value;\r\n var prevValue = e.previousValue;\r\n if (dateUtils.sameDate(value, prevValue) && dateUtils.sameHoursAndMinutes(value, prevValue)) {\r\n return\r\n }\r\n if (\"instantly\" === this.dateBox.option(\"applyValueMode\")) {\r\n this.dateBoxValue(this.getValue(), e.event)\r\n }\r\n },\r\n _updateValue: 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/renovation/ui/scroll_view/utils/scroll_direction.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n DIRECTION_VERTICAL,\r\n DIRECTION_HORIZONTAL,\r\n DIRECTION_BOTH\r\n} from \"../common/consts\";\r\nexport class ScrollDirection {\r\n constructor(direction) {\r\n this.DIRECTION_HORIZONTAL = \"horizontal\";\r\n this.DIRECTION_VERTICAL = \"vertical\";\r\n this.DIRECTION_BOTH = \"both\";\r\n this.direction = null !== direction && void 0 !== direction ? direction : DIRECTION_VERTICAL\r\n }\r\n get isHorizontal() {\r\n return this.direction === DIRECTION_HORIZONTAL || this.direction === DIRECTION_BOTH\r\n }\r\n get isVertical() {\r\n return this.direction === DIRECTION_VERTICAL || this.direction === DIRECTION_BOTH\r\n }\r\n get isBoth() {\r\n return this.direction === DIRECTION_BOTH\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/convert_location.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n ensureDefined\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n ScrollDirection\r\n} from \"./scroll_direction\";\r\nexport function convertToLocation(location, direction) {\r\n if (isPlainObject(location)) {\r\n var left = ensureDefined(location.left, location.x);\r\n var top = ensureDefined(location.top, location.y);\r\n return {\r\n left: isDefined(left) ? left : void 0,\r\n top: isDefined(top) ? top : void 0\r\n }\r\n }\r\n var {\r\n isHorizontal: isHorizontal,\r\n isVertical: isVertical\r\n } = new ScrollDirection(direction);\r\n return {\r\n left: isHorizontal && isDefined(location) ? location : void 0,\r\n top: isVertical && isDefined(location) ? location : void 0\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_view_roller.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport 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.old\";\r\nimport devices from \"../../core/devices\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n resetPosition\r\n} from \"../../animation/translator\";\r\nimport {\r\n convertToLocation\r\n} from \"../../renovation/ui/scroll_view/utils/convert_location\";\r\nvar DATEVIEW_ROLLER_CLASS = \"dx-dateviewroller\";\r\nvar DATEVIEW_ROLLER_ACTIVE_CLASS = \"dx-state-active\";\r\nvar DATEVIEW_ROLLER_CURRENT_CLASS = \"dx-dateviewroller-current\";\r\nvar DATEVIEW_ROLLER_ITEM_CLASS = \"dx-dateview-item\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_CLASS = \"dx-dateview-item-selected\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS = \"dx-dateview-item-selected-frame\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS = \"dx-dateview-item-selected-border\";\r\nclass DateViewRoller extends Scrollable {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n showScrollbar: \"never\",\r\n useNative: false,\r\n selectedIndex: 0,\r\n bounceEnabled: false,\r\n items: [],\r\n showOnClick: false,\r\n onClick: null,\r\n onSelectedIndexChanged: null,\r\n scrollByContent: true\r\n })\r\n }\r\n _init() {\r\n super._init();\r\n this.option(\"onVisibilityChange\", this._visibilityChangedHandler.bind(this));\r\n this.option(\"onEnd\", this._endActionHandler.bind(this))\r\n }\r\n _render() {\r\n super._render();\r\n this._renderSelectedItemFrame();\r\n this.$element().addClass(DATEVIEW_ROLLER_CLASS);\r\n this._renderContainerClick();\r\n this._renderItems();\r\n this._renderSelectedValue();\r\n this._renderItemsClick();\r\n this._renderWheelEvent();\r\n this._renderSelectedIndexChanged()\r\n }\r\n _renderSelectedIndexChanged() {\r\n this._selectedIndexChanged = this._createActionByOption(\"onSelectedIndexChanged\")\r\n }\r\n _renderWheelEvent() {\r\n eventsEngine.on($(this.container()), \"dxmousewheel\", e => {\r\n this._isWheelScrolled = true\r\n })\r\n }\r\n _renderContainerClick() {\r\n if (!this.option(\"showOnClick\")) {\r\n return\r\n }\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var clickAction = this._createActionByOption(\"onClick\");\r\n eventsEngine.off($(this.container()), eventName);\r\n eventsEngine.on($(this.container()), eventName, (function(e) {\r\n clickAction({\r\n event: e\r\n })\r\n }))\r\n }\r\n _renderItems() {\r\n var items = this.option(\"items\") || [];\r\n var $items = $();\r\n $(this.content()).empty();\r\n items.forEach((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() {\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(selectedIndex) {\r\n var index = this._fitIndex(null !== selectedIndex && void 0 !== selectedIndex ? selectedIndex : this.option(\"selectedIndex\"));\r\n this._moveTo({\r\n top: this._getItemPosition(index)\r\n });\r\n this._renderActiveStateItem()\r\n }\r\n _fitIndex(index) {\r\n var items = this.option(\"items\") || [];\r\n var itemCount = items.length;\r\n if (index >= itemCount) {\r\n return itemCount - 1\r\n }\r\n if (index < 0) {\r\n return 0\r\n }\r\n return index\r\n }\r\n _getItemPosition(index) {\r\n return Math.round(this._itemHeight() * index)\r\n }\r\n _renderItemsClick() {\r\n var itemSelector = this._getItemSelector();\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n eventsEngine.off(this.$element(), eventName, itemSelector);\r\n eventsEngine.on(this.$element(), eventName, itemSelector, this._itemClickHandler.bind(this))\r\n }\r\n _getItemSelector() {\r\n return \".\" + DATEVIEW_ROLLER_ITEM_CLASS\r\n }\r\n _itemClickHandler(e) {\r\n this.option(\"selectedIndex\", this._itemElementIndex(e.currentTarget))\r\n }\r\n _itemElementIndex(itemElement) {\r\n return this._itemElements().index(itemElement)\r\n }\r\n _itemElements() {\r\n return this.$element().find(this._getItemSelector())\r\n }\r\n _renderActiveStateItem() {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n each(this._$items, (function(index) {\r\n $(this).toggleClass(DATEVIEW_ROLLER_ITEM_SELECTED_CLASS, selectedIndex === index)\r\n }))\r\n }\r\n _shouldScrollToNeighborItem() {\r\n return \"desktop\" === devices.real().deviceType && this._isWheelScrolled\r\n }\r\n _moveTo(targetLocation) {\r\n var {\r\n top: top,\r\n left: left\r\n } = convertToLocation(targetLocation);\r\n var location = this.scrollOffset();\r\n var delta = {\r\n x: location.left - left,\r\n y: location.top - top\r\n };\r\n if (this._isVisible() && (delta.x || delta.y)) {\r\n this._prepareDirections(true);\r\n if (this._animation && !this._shouldScrollToNeighborItem()) {\r\n var that = this;\r\n fx.stop($(this.content()));\r\n fx.animate($(this.content()), {\r\n duration: 200,\r\n type: \"slide\",\r\n to: {\r\n top: Math.floor(delta.y)\r\n },\r\n complete() {\r\n resetPosition($(that.content()));\r\n that.handleMove({\r\n delta: delta\r\n })\r\n }\r\n });\r\n delete this._animation\r\n } else {\r\n this.handleMove({\r\n delta: delta\r\n })\r\n }\r\n }\r\n }\r\n _validate(e) {\r\n return this._moveIsAllowed(e)\r\n }\r\n _fitSelectedIndexInRange(index) {\r\n var itemsCount = this.option(\"items\").length;\r\n return Math.max(Math.min(index, itemsCount - 1), 0)\r\n }\r\n _isInNullNeighborhood(x) {\r\n return -.1 <= x && x <= .1\r\n }\r\n _getSelectedIndexAfterScroll(currentSelectedIndex) {\r\n var locationTop = this.scrollOffset().top;\r\n var currentSelectedIndexPosition = currentSelectedIndex * this._itemHeight();\r\n var dy = locationTop - currentSelectedIndexPosition;\r\n if (this._isInNullNeighborhood(dy)) {\r\n return currentSelectedIndex\r\n }\r\n var direction = dy > 0 ? 1 : -1;\r\n var newSelectedIndex = this._fitSelectedIndexInRange(currentSelectedIndex + direction);\r\n return newSelectedIndex\r\n }\r\n _getNewSelectedIndex(currentSelectedIndex) {\r\n if (this._shouldScrollToNeighborItem()) {\r\n return this._getSelectedIndexAfterScroll(currentSelectedIndex)\r\n }\r\n this._animation = true;\r\n var ratio = this.scrollOffset().top / this._itemHeight();\r\n return Math.round(ratio)\r\n }\r\n _endActionHandler() {\r\n var currentSelectedIndex = this.option(\"selectedIndex\");\r\n var newSelectedIndex = this._getNewSelectedIndex(currentSelectedIndex);\r\n if (newSelectedIndex === currentSelectedIndex) {\r\n this._renderSelectedValue(newSelectedIndex)\r\n } else {\r\n this.option(\"selectedIndex\", newSelectedIndex)\r\n }\r\n this._isWheelScrolled = false\r\n }\r\n _itemHeight() {\r\n var $item = this._$items.first();\r\n return getHeight($item)\r\n }\r\n _toggleActive(state) {\r\n this.$element().toggleClass(DATEVIEW_ROLLER_ACTIVE_CLASS, state)\r\n }\r\n _isVisible() {\r\n return $(this.container()).is(\":visible\")\r\n }\r\n _fireSelectedIndexChanged(value, previousValue) {\r\n this._selectedIndexChanged({\r\n value: value,\r\n previousValue: previousValue,\r\n event: void 0\r\n })\r\n }\r\n _visibilityChanged(visible) {\r\n super._visibilityChanged(visible);\r\n this._visibilityChangedHandler(visible)\r\n }\r\n _visibilityChangedHandler(visible) {\r\n if (visible) {\r\n this._visibilityTimer = setTimeout(() => {\r\n this._renderSelectedValue(this.option(\"selectedIndex\"))\r\n })\r\n }\r\n this.toggleActiveState(false)\r\n }\r\n toggleActiveState(state) {\r\n this.$element().toggleClass(DATEVIEW_ROLLER_CURRENT_CLASS, state)\r\n }\r\n _refreshSelectedIndex() {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var fitIndex = this._fitIndex(selectedIndex);\r\n if (fitIndex === selectedIndex) {\r\n this._renderActiveStateItem()\r\n } else {\r\n this.option(\"selectedIndex\", fitIndex)\r\n }\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"selectedIndex\":\r\n this._fireSelectedIndexChanged(args.value, args.previousValue);\r\n this._renderSelectedValue(args.value);\r\n break;\r\n case \"items\":\r\n this._renderItems();\r\n this._refreshSelectedIndex();\r\n break;\r\n case \"onClick\":\r\n case \"showOnClick\":\r\n this._renderContainerClick();\r\n break;\r\n case \"onSelectedIndexChanged\":\r\n this._renderSelectedIndexChanged();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _dispose() {\r\n clearTimeout(this._visibilityTimer);\r\n super._dispose()\r\n }\r\n}\r\nregisterComponent(\"dxDateViewRoller\", DateViewRoller);\r\nexport default DateViewRoller;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_view.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ 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: \"never\",\r\n scrollByContent: true,\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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport 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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport {\r\n inputType\r\n} from \"../../core/utils/support\";\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) {\r\n if (!text) {\r\n return null\r\n }\r\n if (\"datetime\" === this.dateBox.option(\"type\")) {\r\n return new Date(text.replace(/-/g, \"/\").replace(\"T\", \" \").split(\".\")[0])\r\n }\r\n return dateUtils.fromStandardDateFormat(text)\r\n },\r\n renderPopupContent: noop,\r\n _getWidgetName: noop,\r\n _getWidgetOptions: noop,\r\n _getDateBoxType: function() {\r\n var type = this.dateBox.option(\"type\");\r\n if (!dateUtils.SUPPORTED_FORMATS.includes(type)) {\r\n type = \"date\"\r\n } else if (\"datetime\" === type && !inputType(type)) {\r\n type = \"datetime-local\"\r\n }\r\n return type\r\n },\r\n customizeButtons: 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/box.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport 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 {\r\n getWidth,\r\n setWidth,\r\n getHeight,\r\n setHeight\r\n} from \"../core/utils/size\";\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: {\r\n name: \"width\",\r\n getter: getWidth,\r\n setter: setWidth\r\n },\r\n col: {\r\n name: \"height\",\r\n getter: getHeight,\r\n setter: setHeight\r\n }\r\n};\r\nvar FALLBACK_CROSS_SIZE_MAP = {\r\n row: FALLBACK_MAIN_SIZE_MAP.col,\r\n col: FALLBACK_MAIN_SIZE_MAP.row\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 = FALLBACK_MAIN_SIZE_MAP[direction].getter(this._$element);\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 = FALLBACK_CROSS_SIZE_MAP[direction].getter(this._$element);\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 = FALLBACK_CROSS_SIZE_MAP[direction].getter($item);\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 = FALLBACK_CROSS_SIZE_MAP[direction].getter($item);\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].name, \"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 FALLBACK_MAIN_SIZE_MAP[direction].setter($item, \"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].name, 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 FALLBACK_MAIN_SIZE_MAP[this._option(\"direction\")].getter($(item))\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(FALLBACK_MAIN_SIZE_MAP[this._option(\"direction\")].getter(this._$element))\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 _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/date_box/ui.time_view.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ 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: 5,\r\n stylingMode: void 0\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: \"auto\",\r\n template: this._renderField.bind(this)\r\n });\r\n this._createComponent($box, Box, {\r\n height: \"100%\",\r\n width: \"100%\",\r\n direction: \"col\",\r\n items: items\r\n })\r\n },\r\n _renderClock: 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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport 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 DATEBOX_TIMEVIEW_SIDE_CLASS = \"dx-datebox-datetime-time-side\";\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 getWidth(window) <= 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: \"stretch\",\r\n items: this._getBoxItems(),\r\n itemTemplate: function(data, i, element) {\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 this._timeView.$element().addClass(DATEBOX_TIMEVIEW_SIDE_CLASS);\r\n $container.append(this._timeView.$element())\r\n }\r\n break;\r\n case \"time\":\r\n $container.append(this._timeView.$element());\r\n $(element).addClass(DATEBOX_TIMEVIEW_SIDE_CLASS)\r\n }\r\n return $container\r\n }.bind(this)\r\n });\r\n 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 _this$_widget$option;\r\n var date = null !== (_this$_widget$option = this._widget.option(\"value\")) && void 0 !== _this$_widget$option ? _this$_widget$option : this._widget.getContouredDate();\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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport List from \"../list_light\";\r\nimport \"../list/modules/selection\";\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 var {\r\n opened: opened,\r\n applyValueMode: applyValueMode\r\n } = this.option();\r\n if (opened && \"instantly\" === applyValueMode) {\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 getValue: function() {\r\n var selectedIndex = this._widget.option(\"selectedIndex\");\r\n if (-1 === selectedIndex) {\r\n return this.dateBox.option(\"value\")\r\n }\r\n var itemData = this._widgetItems[selectedIndex];\r\n return this._getDateByItemData(itemData)\r\n },\r\n useCurrentDateByDefault: 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 if (\"useButtons\" === this.dateBox.option(\"applyValueMode\")) {\r\n return\r\n }\r\n var date = this._getDateByItemData(e.itemData);\r\n this.dateBox.option(\"opened\", false);\r\n this.dateBoxValue(date, e.event)\r\n },\r\n _getDateByItemData: function(itemData) {\r\n var date = this.dateBox.option(\"value\");\r\n var hours = itemData.getHours();\r\n var minutes = itemData.getMinutes();\r\n var seconds = itemData.getSeconds();\r\n var year = itemData.getFullYear();\r\n var month = itemData.getMonth();\r\n var day = itemData.getDate();\r\n if (date) {\r\n if (this.dateBox.option(\"dateSerializationFormat\")) {\r\n date = dateSerialization.deserializeDate(date)\r\n } else {\r\n date = new Date(date)\r\n }\r\n date.setHours(hours);\r\n date.setMinutes(minutes);\r\n date.setSeconds(seconds);\r\n date.setFullYear(year);\r\n date.setMonth(month);\r\n date.setDate(day)\r\n } else {\r\n date = new Date(year, month, day, hours, minutes, 0, 0)\r\n }\r\n return date\r\n },\r\n getKeyboardListener: function() {\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 = getOuterHeight(this._widget.$element());\r\n var maxHeight = .45 * getHeight(window);\r\n this.dateBox._setPopupOption(\"height\", Math.min(popupHeight, maxHeight))\r\n }\r\n this.dateBox._timeList && this.dateBox._timeList.updateDimensions()\r\n },\r\n getParsedText: 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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\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 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 DROPDOWNEDITOR_OVERLAY_CLASS = \"dx-dropdowneditor-overlay\";\r\nvar PICKER_TYPE = {\r\n calendar: \"calendar\",\r\n rollers: \"rollers\",\r\n list: \"list\",\r\n native: \"native\"\r\n};\r\nvar TYPE = {\r\n date: \"date\",\r\n datetime: \"datetime\",\r\n time: \"time\"\r\n};\r\nvar STRATEGY_NAME = {\r\n calendar: \"Calendar\",\r\n dateView: \"DateView\",\r\n native: \"Native\",\r\n calendarWithTime: \"CalendarWithTime\",\r\n list: \"List\"\r\n};\r\nvar STRATEGY_CLASSES = {\r\n Calendar: Calendar,\r\n DateView: DateView,\r\n Native: Native,\r\n CalendarWithTime: CalendarWithTime,\r\n List: List\r\n};\r\nvar DateBox = DropDownEditor.inherit({\r\n _supportedKeys: 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: {\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).addClass(DROPDOWNEDITOR_OVERLAY_CLASS)\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 {\r\n text: text,\r\n type: type,\r\n validationError: validationError\r\n } = this.option();\r\n var currentValue = this.dateOption(\"value\");\r\n if (text === this._getDisplayedText(currentValue)) {\r\n if (!validationError || validationError.editorSpecific) {\r\n this._applyInternalValidation(currentValue);\r\n this._applyCustomValidation(currentValue)\r\n }\r\n return\r\n }\r\n var parsedDate = this._getParsedDate(text);\r\n var value = null !== currentValue && void 0 !== currentValue ? currentValue : this._getDateByDefault();\r\n var newValue = uiDateUtils.mergeDates(value, parsedDate, type);\r\n var date = parsedDate && \"time\" === type ? newValue : parsedDate;\r\n if (this._applyInternalValidation(date).isValid) {\r\n var displayedText = this._getDisplayedText(newValue);\r\n if (value && newValue && value.getTime() === newValue.getTime() && displayedText !== text) {\r\n this._renderValue()\r\n } else {\r\n this.dateValue(newValue, e)\r\n }\r\n }\r\n },\r\n _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 _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 this.dateValue(value, e.event);\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 _updatePopupTitle: function() {\r\n var _this$_popup;\r\n null === (_this$_popup = this._popup) || void 0 === _this$_popup ? void 0 : _this$_popup.option(\"title\", this._getPopupTitle())\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.callBase.apply(this, arguments);\r\n this._updatePopupTitle();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n var isValid = this.option(\"isValid\");\r\n this._applyInternalValidation(this.dateOption(\"value\"));\r\n if (!isValid) {\r\n this._applyCustomValidation(this.dateOption(\"value\"))\r\n }\r\n this._invalidate();\r\n break;\r\n case \"dateSerializationFormat\":\r\n case \"interval\":\r\n case \"disabledDates\":\r\n case \"calendarOptions\":\r\n this._invalidate();\r\n break;\r\n case \"displayFormat\":\r\n this.option(\"text\", this._getDisplayedText(this.dateOption(\"value\")));\r\n this._renderInputValue();\r\n break;\r\n case \"text\":\r\n this._strategy.textChangedHandler(args.value);\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"isValid\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"showDropDownButton\":\r\n this._formatValidationIcon();\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"readOnly\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"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\nexport default DateBox;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.mask.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\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 || 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 return devices.real().android\r\n },\r\n _keyInputHandler(e, key) {\r\n var oldInputValue = this._input().val();\r\n this._processInputKey(key);\r\n e.preventDefault();\r\n var isValueChanged = oldInputValue !== this._input().val();\r\n isValueChanged && eventsEngine.trigger(this._input(), \"input\")\r\n },\r\n _keyboardHandler(e) {\r\n var 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._keyInputHandler(e.originalEvent, key)\r\n }\r\n return result\r\n },\r\n _maskBeforeInputHandler(e) {\r\n this._maskInputHandler = null;\r\n var {\r\n inputType: inputType\r\n } = e.originalEvent;\r\n if (\"insertCompositionText\" === inputType) {\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n }\r\n var isBackwardDeletion = \"deleteContentBackward\" === inputType;\r\n var isForwardDeletion = \"deleteContentForward\" === inputType;\r\n if (isBackwardDeletion || isForwardDeletion) {\r\n var direction = isBackwardDeletion ? BACKWARD : FORWARD;\r\n this._maskInputHandler = () => {\r\n this._revertPart();\r\n this._selectNextPart(direction)\r\n }\r\n }\r\n if (!this._useMaskBehavior() || !this._isSingleCharKey(e)) {\r\n return\r\n }\r\n var key = e.originalEvent.data;\r\n this._keyInputHandler(e, key);\r\n return true\r\n },\r\n _keyPressHandler(e) {\r\n var {\r\n originalEvent: event\r\n } = e;\r\n if (\"insertCompositionText\" === (null === event || void 0 === event ? void 0 : event.inputType) && this._isSingleDigitKey(e)) {\r\n this._processInputKey(event.data);\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart()\r\n }\r\n this.callBase(e);\r\n if (this._maskInputHandler) {\r\n this._maskInputHandler();\r\n this._maskInputHandler = null\r\n }\r\n },\r\n _processInputKey(key) {\r\n if (this._isAllSelected()) {\r\n this._activePartIndex = 0\r\n }\r\n this._setNewDateIfEmpty();\r\n if (isNaN(parseInt(key))) {\r\n this._searchString(key)\r\n } else {\r\n this._searchNumber(key)\r\n }\r\n },\r\n _isAllSelected() {\r\n var caret = this._caret();\r\n return caret.end - caret.start === this.option(\"text\").length\r\n },\r\n _getFormatPattern() {\r\n if (this._formatPattern) {\r\n return this._formatPattern\r\n }\r\n var format = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var isLDMLPattern = isString(format) && !dateLocalization._getPatternByFormat(format);\r\n if (isLDMLPattern) {\r\n this._formatPattern = format\r\n } else {\r\n this._formatPattern = getFormat((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 source = regexp.source;\r\n var flags = regexp.flags;\r\n var quantifierRegexp = new RegExp(/(\\{[0-9]+,?[0-9]*\\})/);\r\n var convertedSource = source.split(quantifierRegexp).map(sourcePart => quantifierRegexp.test(sourcePart) ? sourcePart : numberLocalization.convertDigits(sourcePart, false)).join(\"\");\r\n this._regExpInfo.regexp = new RegExp(convertedSource, flags)\r\n },\r\n _initMaskState() {\r\n this._activePartIndex = 0;\r\n this._formatPattern = null;\r\n this._prepareRegExpInfo();\r\n this._loadMaskValue()\r\n },\r\n _renderMask() {\r\n this.callBase();\r\n this._detachMaskEvents();\r\n this._clearMaskState();\r\n if (this._useMaskBehavior()) {\r\n this._attachMaskEvents();\r\n this._initMaskState();\r\n this._renderDateParts()\r\n }\r\n },\r\n _renderDateParts() {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var text = this.option(\"text\") || this._getDisplayedText(this._maskValue);\r\n if (text) {\r\n this._dateParts = renderDateParts(text, this._regExpInfo);\r\n if (!this._input().is(\":hidden\")) {\r\n this._selectNextPart()\r\n }\r\n }\r\n },\r\n _detachMaskEvents() {\r\n eventsEngine.off(this._input(), \".\" + 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 this._loadMaskValue(this._maskValue);\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = getDatePartIndexByPosition(this._dateParts, this._caret().start);\r\n if (!this._isAllSelected()) {\r\n if (isDefined(this._activePartIndex)) {\r\n this._caret(this._getActivePartProp(\"caret\"))\r\n } else {\r\n this._selectLastPart()\r\n }\r\n }\r\n }\r\n },\r\n _maskCompositionEndHandler(e) {\r\n this._input().val(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart();\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n },\r\n _maskPasteHandler(e) {\r\n var newText = this._replaceSelectedText(this.option(\"text\"), this._caret(), clipboardText(e));\r\n var date = dateLocalization.parse(newText, this._getFormatPattern());\r\n if (date && this._isDateValid(date)) {\r\n this._maskValue = date;\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._renderDateParts();\r\n this._selectNextPart()\r\n }\r\n e.preventDefault()\r\n },\r\n _isDateValid: date => isDate(date) && !isNaN(date),\r\n _isValueDirty() {\r\n var value = this.dateOption(\"value\");\r\n return (this._maskValue && this._maskValue.getTime()) !== (value && value.getTime())\r\n },\r\n _fireChangeEvent() {\r\n this._clearSearchValue();\r\n if (this._isValueDirty()) {\r\n eventsEngine.trigger(this._input(), \"change\")\r\n }\r\n },\r\n _enterHandler(e) {\r\n this._fireChangeEvent();\r\n this._selectNextPart(FORWARD);\r\n e.preventDefault()\r\n },\r\n _focusOutHandler(e) {\r\n var shouldFireChangeEvent = this._useMaskBehavior() && !e.isDefaultPrevented();\r\n if (shouldFireChangeEvent) {\r\n this._fireChangeEvent();\r\n this.callBase(e);\r\n this._selectFirstPart(e)\r\n } else {\r\n this.callBase(e)\r\n }\r\n },\r\n _valueChangeEventHandler(e) {\r\n var text = this.option(\"text\");\r\n if (this._useMaskBehavior()) {\r\n this._saveValueChangeEvent(e);\r\n if (!text) {\r\n this._maskValue = null\r\n } else if (null === this._maskValue) {\r\n this._loadMaskValue(text)\r\n }\r\n this._saveMaskValue()\r\n } else {\r\n this.callBase(e)\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"useMaskBehavior\":\r\n this._renderMask();\r\n break;\r\n case \"displayFormat\":\r\n case \"mode\":\r\n this.callBase(args);\r\n this._renderMask();\r\n break;\r\n case \"value\":\r\n this._loadMaskValue();\r\n this.callBase(args);\r\n this._renderDateParts();\r\n break;\r\n case \"emptyDateValue\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearMaskState() {\r\n this._clearSearchValue();\r\n delete this._dateParts;\r\n delete this._activePartIndex;\r\n delete this._maskValue\r\n },\r\n reset() {\r\n this._clearMaskState();\r\n this._activePartIndex = 0;\r\n this.callBase()\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._detachMaskEvents();\r\n this._clearMaskState()\r\n }\r\n});\r\nexport default DateBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport 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/shared/ui.editor_factory_mixin.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n isDefined,\r\n isObject,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport variableWrapper from \"../../core/utils/variable_wrapper\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../data/data_source/utils\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nvar {\r\n isWrapped: isWrapped\r\n} = variableWrapper;\r\nimport \"../text_box\";\r\nimport \"../number_box\";\r\nimport \"../check_box\";\r\nimport \"../select_box\";\r\nimport \"../date_box\";\r\nvar CHECKBOX_SIZE_CLASS = \"checkbox-size\";\r\nvar EDITOR_INLINE_BLOCK = \"dx-editor-inline-block\";\r\nvar EditorFactoryMixin = function() {\r\n var getResultConfig = function(config, options) {\r\n return extend(config, {\r\n readOnly: options.readOnly,\r\n placeholder: options.placeholder,\r\n inputAttr: {\r\n id: options.id\r\n },\r\n tabIndex: options.tabIndex\r\n }, options.editorOptions)\r\n };\r\n var checkEnterBug = function() {\r\n return browser.mozilla || devices.real().ios\r\n };\r\n var getTextEditorConfig = function(options) {\r\n var data = {};\r\n var isEnterBug = checkEnterBug();\r\n var sharedData = options.sharedData || data;\r\n return getResultConfig({\r\n placeholder: options.placeholder,\r\n width: options.width,\r\n value: options.value,\r\n onValueChanged: function(e) {\r\n var needDelayedUpdate = \"filterRow\" === options.parentType || \"searchPanel\" === options.parentType;\r\n var isInputOrKeyUpEvent = e.event && (\"input\" === e.event.type || \"keyup\" === e.event.type);\r\n var updateValue = function(e, notFireEvent) {\r\n options && options.setValue(e.value, notFireEvent)\r\n };\r\n clearTimeout(data.valueChangeTimeout);\r\n if (isInputOrKeyUpEvent && needDelayedUpdate) {\r\n sharedData.valueChangeTimeout = data.valueChangeTimeout = setTimeout((function() {\r\n updateValue(e, data.valueChangeTimeout !== sharedData.valueChangeTimeout)\r\n }), isDefined(options.updateValueTimeout) ? options.updateValueTimeout : 0)\r\n } else {\r\n updateValue(e)\r\n }\r\n },\r\n onKeyDown: function(e) {\r\n if (isEnterBug && \"enter\" === normalizeKeyName(e.event)) {\r\n eventsEngine.trigger($(e.component._input()), \"change\")\r\n }\r\n },\r\n valueChangeEvent: \"change\" + (\"filterRow\" === options.parentType ? \" keyup input\" : \"\")\r\n }, options)\r\n };\r\n var prepareBooleanEditor = function(options) {\r\n if (\"filterRow\" === options.parentType || \"filterBuilder\" === options.parentType) {\r\n prepareSelectBox(extend(options, {\r\n lookup: {\r\n displayExpr: function(data) {\r\n if (true === data) {\r\n return options.trueText || \"true\"\r\n } else if (false === data) {\r\n return options.falseText || \"false\"\r\n }\r\n },\r\n dataSource: [true, false]\r\n }\r\n }))\r\n } else {\r\n ! function(options) {\r\n options.editorName = \"dxCheckBox\";\r\n options.editorOptions = getResultConfig({\r\n elementAttr: {\r\n id: options.id\r\n },\r\n value: isDefined(options.value) ? options.value : void 0,\r\n hoverStateEnabled: !options.readOnly,\r\n focusStateEnabled: !options.readOnly,\r\n activeStateEnabled: false,\r\n onValueChanged: function(e) {\r\n options.setValue && options.setValue(e.value, e)\r\n }\r\n }, options)\r\n }(options)\r\n }\r\n };\r\n\r\n function prepareSelectBox(options) {\r\n var lookup = options.lookup;\r\n var displayGetter;\r\n var dataSource;\r\n var postProcess;\r\n var isFilterRow = \"filterRow\" === options.parentType;\r\n if (lookup) {\r\n displayGetter = compileGetter(lookup.displayExpr);\r\n dataSource = lookup.dataSource;\r\n if (isFunction(dataSource) && !isWrapped(dataSource)) {\r\n dataSource = dataSource(options.row || {});\r\n ! function(options) {\r\n if (options.row && options.row.watch && \"dataRow\" === options.parentType) {\r\n var editorOptions = options.editorOptions || {};\r\n options.editorOptions = editorOptions;\r\n var selectBox;\r\n var onInitialized = editorOptions.onInitialized;\r\n editorOptions.onInitialized = function(e) {\r\n onInitialized && onInitialized.apply(this, arguments);\r\n selectBox = e.component;\r\n selectBox.on(\"disposing\", stopWatch)\r\n };\r\n var dataSource;\r\n var stopWatch = options.row.watch(() => {\r\n dataSource = options.lookup.dataSource(options.row);\r\n return dataSource && dataSource.filter\r\n }, () => {\r\n selectBox.option(\"dataSource\", dataSource)\r\n }, row => {\r\n options.row = row\r\n })\r\n }\r\n }(options)\r\n }\r\n if (isObject(dataSource) || Array.isArray(dataSource)) {\r\n dataSource = normalizeDataSourceOptions(dataSource);\r\n if (isFilterRow) {\r\n postProcess = dataSource.postProcess;\r\n dataSource.postProcess = function(items) {\r\n if (0 === this.pageIndex()) {\r\n items = items.slice(0);\r\n items.unshift(null)\r\n }\r\n if (postProcess) {\r\n return postProcess.call(this, items)\r\n }\r\n return items\r\n }\r\n }\r\n }\r\n var allowClearing = Boolean(lookup.allowClearing && !isFilterRow);\r\n options.editorName = \"dxSelectBox\";\r\n options.editorOptions = getResultConfig({\r\n searchEnabled: true,\r\n value: options.value,\r\n valueExpr: options.lookup.valueExpr,\r\n searchExpr: options.lookup.searchExpr || options.lookup.displayExpr,\r\n allowClearing: allowClearing,\r\n showClearButton: allowClearing,\r\n displayExpr: function(data) {\r\n if (null === data) {\r\n return options.showAllText\r\n }\r\n return displayGetter(data)\r\n },\r\n dataSource: dataSource,\r\n onValueChanged: function(e) {\r\n var params = [e.value];\r\n !isFilterRow && params.push(e.component.option(\"text\"));\r\n options.setValue.apply(this, params)\r\n }\r\n }, options)\r\n }\r\n }\r\n return {\r\n createEditor: function($container, options) {\r\n options.cancel = false;\r\n options.editorElement = getPublicElement($container);\r\n if (!isDefined(options.tabIndex)) {\r\n options.tabIndex = this.option(\"tabIndex\")\r\n }\r\n if (options.lookup) {\r\n prepareSelectBox(options)\r\n } else {\r\n switch (options.dataType) {\r\n case \"date\":\r\n case \"datetime\":\r\n ! function(options) {\r\n options.editorName = \"dxDateBox\";\r\n options.editorOptions = getResultConfig({\r\n value: options.value,\r\n onValueChanged: function(args) {\r\n options.setValue(args.value)\r\n },\r\n onKeyDown: function(_ref) {\r\n var {\r\n component: component,\r\n event: event\r\n } = _ref;\r\n var useMaskBehavior = component.option(\"useMaskBehavior\");\r\n if ((checkEnterBug() || useMaskBehavior) && \"enter\" === normalizeKeyName(event)) {\r\n component.blur();\r\n component.focus()\r\n }\r\n },\r\n displayFormat: options.format,\r\n type: options.dataType,\r\n dateSerializationFormat: null,\r\n width: \"filterBuilder\" === options.parentType ? void 0 : \"auto\"\r\n }, options)\r\n }(options);\r\n break;\r\n case \"boolean\":\r\n prepareBooleanEditor(options);\r\n break;\r\n case \"number\":\r\n ! function(options) {\r\n var config = getTextEditorConfig(options);\r\n config.value = isDefined(options.value) ? options.value : null;\r\n options.editorName = \"dxNumberBox\";\r\n options.editorOptions = config\r\n }(options);\r\n break;\r\n default:\r\n ! function(options) {\r\n var config = getTextEditorConfig(options);\r\n var isSearching = \"searchPanel\" === options.parentType;\r\n if (options.editorType && \"dxTextBox\" !== options.editorType) {\r\n config.value = options.value\r\n } else {\r\n config.value = (value = options.value, isDefined(value) ? value.toString() : \"\")\r\n }\r\n var value;\r\n config.valueChangeEvent += isSearching ? \" keyup input search\" : \"\";\r\n config.mode = config.mode || (isSearching ? \"search\" : \"text\");\r\n options.editorName = \"dxTextBox\";\r\n options.editorOptions = config\r\n }(options)\r\n }\r\n }\r\n if (\"dataRow\" === options.parentType && options.editorType) {\r\n options.editorName = options.editorType\r\n }\r\n this.executeAction(\"onEditorPreparing\", options);\r\n if (options.cancel) {\r\n return\r\n }\r\n if (\"dataRow\" === options.parentType && !options.isOnForm && !isDefined(options.editorOptions.showValidationMark)) {\r\n options.editorOptions.showValidationMark = false\r\n }! function(that, options) {\r\n var $editorElement = $(options.editorElement);\r\n if (options.editorName && options.editorOptions && $editorElement[options.editorName]) {\r\n if (\"dxCheckBox\" === options.editorName || \"dxSwitch\" === options.editorName) {\r\n if (!options.isOnForm) {\r\n $editorElement.addClass(that.addWidgetPrefix(CHECKBOX_SIZE_CLASS));\r\n $editorElement.parent().addClass(EDITOR_INLINE_BLOCK)\r\n }\r\n }\r\n that._createComponent($editorElement, options.editorName, options.editorOptions);\r\n if (\"dxDateBox\" === options.editorName) {\r\n var dateBox = $editorElement.dxDateBox(\"instance\");\r\n var defaultEnterKeyHandler = dateBox._supportedKeys().enter;\r\n dateBox.registerKeyHandler(\"enter\", e => {\r\n if (dateBox.option(\"opened\")) {\r\n defaultEnterKeyHandler(e)\r\n }\r\n return true\r\n })\r\n }\r\n if (\"dxTextArea\" === options.editorName) {\r\n $editorElement.dxTextArea(\"instance\").registerKeyHandler(\"enter\", (function(event) {\r\n if (\"enter\" === normalizeKeyName(event) && !event.ctrlKey && !event.shiftKey) {\r\n event.stopPropagation()\r\n }\r\n }))\r\n }\r\n }\r\n }(this, options);\r\n this.executeAction(\"onEditorPrepared\", options)\r\n }\r\n }\r\n}();\r\nexport default EditorFactoryMixin;\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.editor_factory.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n setOuterWidth,\r\n getOuterWidth,\r\n setOuterHeight,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport positionUtils from \"../../animation/position\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport EditorFactoryMixin from \"../shared/ui.editor_factory_mixin\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nvar EDITOR_INLINE_BLOCK = \"dx-editor-inline-block\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar FOCUS_OVERLAY_CLASS = \"focus-overlay\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar FOCUSED_ELEMENT_CLASS = \"dx-focused\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar MODULE_NAMESPACE = \"dxDataGridEditorFactory\";\r\nvar UPDATE_FOCUS_EVENTS = addNamespace([pointerEvents.down, \"focusin\", clickEventName].join(\" \"), MODULE_NAMESPACE);\r\nvar DX_HIDDEN = \"dx-hidden\";\r\nvar EditorFactory = modules.ViewController.inherit({\r\n _getFocusedElement: function($dataGridElement) {\r\n var rowSelector = this.option(\"focusedRowEnabled\") ? \"tr[tabindex]:focus\" : \"tr[tabindex]:not(.dx-data-row):focus\";\r\n var focusedElementSelector = \"td[tabindex]:focus, \".concat(rowSelector, \", input:focus, textarea:focus, .dx-lookup-field:focus, .dx-checkbox:focus, .dx-switch:focus, .dx-dropdownbutton .dx-buttongroup:focus\");\r\n var $focusedElement = $dataGridElement.find(focusedElementSelector);\r\n return this.elementIsInsideGrid($focusedElement) && $focusedElement\r\n },\r\n _getFocusCellSelector: function() {\r\n return \".dx-row > td\"\r\n },\r\n _updateFocusCore: function() {\r\n var $dataGridElement = this.component && this.component.$element();\r\n var $focusCell;\r\n var hideBorders;\r\n if ($dataGridElement) {\r\n var $focus = this._getFocusedElement($dataGridElement);\r\n if ($focus && $focus.length) {\r\n if (!$focus.hasClass(CELL_FOCUS_DISABLED_CLASS) && !$focus.hasClass(ROW_CLASS)) {\r\n $focusCell = $focus.closest(this._getFocusCellSelector() + \", .\" + CELL_FOCUS_DISABLED_CLASS);\r\n hideBorders = $focusCell.get(0) !== $focus.get(0) && $focusCell.hasClass(EDITOR_INLINE_BLOCK);\r\n $focus = $focusCell\r\n }\r\n if ($focus.length && !$focus.hasClass(CELL_FOCUS_DISABLED_CLASS)) {\r\n this.focus($focus, hideBorders);\r\n return\r\n }\r\n }\r\n }\r\n this.loseFocus()\r\n },\r\n _updateFocus: function(e) {\r\n var that = this;\r\n var isFocusOverlay = e && e.event && $(e.event.target).hasClass(that.addWidgetPrefix(FOCUS_OVERLAY_CLASS));\r\n that._isFocusOverlay = that._isFocusOverlay || isFocusOverlay;\r\n clearTimeout(that._updateFocusTimeoutID);\r\n that._updateFocusTimeoutID = setTimeout((function() {\r\n delete that._updateFocusTimeoutID;\r\n if (!that._isFocusOverlay) {\r\n that._updateFocusCore()\r\n }\r\n that._isFocusOverlay = false\r\n }))\r\n },\r\n _updateFocusOverlaySize: function($element, position) {\r\n $element.hide();\r\n var location = positionUtils.calculate($element, extend({\r\n collision: \"fit\"\r\n }, position));\r\n if (location.h.oversize > 0) {\r\n setOuterWidth($element, getOuterWidth($element) - location.h.oversize)\r\n }\r\n if (location.v.oversize > 0) {\r\n setOuterHeight($element, getOuterHeight($element) - location.v.oversize)\r\n }\r\n $element.show()\r\n },\r\n callbackNames: function() {\r\n return [\"focused\"]\r\n },\r\n focus: function($element, hideBorder) {\r\n var that = this;\r\n if (void 0 === $element) {\r\n return that._$focusedElement\r\n } else if ($element) {\r\n if (!$element.is(that._$focusedElement)) {\r\n that._$focusedElement && that._$focusedElement.removeClass(FOCUSED_ELEMENT_CLASS)\r\n }\r\n that._$focusedElement = $element;\r\n clearTimeout(that._focusTimeoutID);\r\n that._focusTimeoutID = setTimeout((function() {\r\n delete that._focusTimeoutID;\r\n that.renderFocusOverlay($element, hideBorder);\r\n $element.addClass(FOCUSED_ELEMENT_CLASS);\r\n that.focused.fire($element)\r\n }))\r\n }\r\n },\r\n refocus: function() {\r\n var $focus = this.focus();\r\n this.focus($focus)\r\n },\r\n renderFocusOverlay: function($element, hideBorder) {\r\n if (!gridCoreUtils.isElementInCurrentGrid(this, $element)) {\r\n return\r\n }\r\n if (!this._$focusOverlay) {\r\n this._$focusOverlay = $(\"
\").addClass(this.addWidgetPrefix(FOCUS_OVERLAY_CLASS))\r\n }\r\n if (hideBorder) {\r\n this._$focusOverlay.addClass(DX_HIDDEN)\r\n } else if ($element.length) {\r\n var align = browser.mozilla ? \"right bottom\" : \"left top\";\r\n var $content = $element.closest(\".\" + this.addWidgetPrefix(CONTENT_CLASS));\r\n var elemCoord = getBoundingRect($element.get(0));\r\n this._$focusOverlay.removeClass(DX_HIDDEN).appendTo($content);\r\n setOuterHeight(this._$focusOverlay, elemCoord.bottom - elemCoord.top + 1);\r\n setOuterWidth(this._$focusOverlay, elemCoord.right - elemCoord.left + 1);\r\n var focusOverlayPosition = {\r\n precise: true,\r\n my: align,\r\n at: align,\r\n of: $element,\r\n boundary: $content.length && $content\r\n };\r\n this._updateFocusOverlaySize(this._$focusOverlay, focusOverlayPosition);\r\n positionUtils.setup(this._$focusOverlay, focusOverlayPosition);\r\n this._$focusOverlay.css(\"visibility\", \"visible\")\r\n }\r\n },\r\n resize: function() {\r\n var $focusedElement = this._$focusedElement;\r\n if ($focusedElement) {\r\n this.focus($focusedElement)\r\n }\r\n },\r\n loseFocus: function() {\r\n this._$focusedElement && this._$focusedElement.removeClass(FOCUSED_ELEMENT_CLASS);\r\n this._$focusedElement = null;\r\n this._$focusOverlay && this._$focusOverlay.addClass(DX_HIDDEN)\r\n },\r\n init: function() {\r\n this.createAction(\"onEditorPreparing\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n });\r\n this.createAction(\"onEditorPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n });\r\n this._updateFocusHandler = this._updateFocusHandler || this.createAction(this._updateFocus.bind(this));\r\n eventsEngine.on(domAdapter.getDocument(), UPDATE_FOCUS_EVENTS, this._updateFocusHandler);\r\n this._attachContainerEventHandlers()\r\n },\r\n _attachContainerEventHandlers: function() {\r\n var that = this;\r\n var $container = that.component && that.component.$element();\r\n if ($container) {\r\n eventsEngine.on($container, addNamespace(\"keydown\", MODULE_NAMESPACE), (function(e) {\r\n if (\"tab\" === normalizeKeyName(e)) {\r\n that._updateFocusHandler(e)\r\n }\r\n }))\r\n }\r\n },\r\n dispose: function() {\r\n clearTimeout(this._focusTimeoutID);\r\n clearTimeout(this._updateFocusTimeoutID);\r\n eventsEngine.off(domAdapter.getDocument(), UPDATE_FOCUS_EVENTS, this._updateFocusHandler)\r\n }\r\n}).include(EditorFactoryMixin);\r\nexport var editorFactoryModule = {\r\n defaultOptions: function() {\r\n return {}\r\n },\r\n controllers: {\r\n editorFactory: EditorFactory\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.editor_factory.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n editorFactoryModule\r\n} from \"../grid_core/ui.grid_core.editor_factory\";\r\ngridCore.registerModule(\"editorFactory\", editorFactoryModule);\r\n","/**\r\n * DevExtreme (esm/ui/dialog.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n Component\r\n} from \"../core/component\";\r\nimport Action from \"../core/action\";\r\nimport devices from \"../core/devices\";\r\nimport config from \"../core/config\";\r\nimport {\r\n resetActiveElement\r\n} from \"../core/utils/dom\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n isPlainObject\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 getWindow\r\n} from \"../core/utils/window\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n value as getViewport\r\n} from \"../core/utils/view_port\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport errors from \"./widget/ui.errors\";\r\nimport Popup from \"./popup\";\r\nimport {\r\n ensureDefined\r\n} from \"../core/utils/common\";\r\nvar window = getWindow();\r\nvar DEFAULT_BUTTON = {\r\n text: \"OK\",\r\n onClick: function() {\r\n return true\r\n }\r\n};\r\nvar DX_DIALOG_CLASSNAME = \"dx-dialog\";\r\nvar DX_DIALOG_WRAPPER_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-wrapper\");\r\nvar DX_DIALOG_ROOT_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-root\");\r\nvar DX_DIALOG_CONTENT_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-content\");\r\nvar DX_DIALOG_MESSAGE_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-message\");\r\nvar DX_DIALOG_BUTTONS_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-buttons\");\r\nvar DX_DIALOG_BUTTON_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-button\");\r\nvar DX_BUTTON_CLASSNAME = \"dx-button\";\r\nexport var FakeDialogComponent = Component.inherit({\r\n ctor: function(element, options) {\r\n this.callBase(options)\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 width: 276\r\n }\r\n }])\r\n }\r\n});\r\nexport var custom = function(options) {\r\n var _options$title;\r\n var deferred = new Deferred;\r\n var defaultOptions = (new FakeDialogComponent).option();\r\n options = extend(defaultOptions, options);\r\n var $element = $(\"
\").addClass(DX_DIALOG_CLASSNAME).appendTo(getViewport());\r\n var isMessageDefined = \"message\" in options;\r\n var isMessageHtmlDefined = \"messageHtml\" in options;\r\n if (isMessageDefined) {\r\n errors.log(\"W1013\")\r\n }\r\n var messageHtml = String(isMessageHtmlDefined ? options.messageHtml : options.message);\r\n var $message = $(\"
\").addClass(DX_DIALOG_MESSAGE_CLASSNAME).html(messageHtml);\r\n var popupToolbarItems = [];\r\n each(options.buttons || [DEFAULT_BUTTON], (function() {\r\n var action = new Action(this.onClick, {\r\n context: popupInstance\r\n });\r\n popupToolbarItems.push({\r\n toolbar: \"bottom\",\r\n location: devices.current().android ? \"after\" : \"center\",\r\n widget: \"dxButton\",\r\n options: extend({}, this, {\r\n onClick: function() {\r\n var result = action.execute(...arguments);\r\n hide(result)\r\n }\r\n })\r\n })\r\n }));\r\n var popupInstance = new Popup($element, extend({\r\n title: null !== (_options$title = options.title) && void 0 !== _options$title ? _options$title : \"\",\r\n showTitle: ensureDefined(options.showTitle, true),\r\n dragEnabled: ensureDefined(options.dragEnabled, true),\r\n height: \"auto\",\r\n width: options.width,\r\n showCloseButton: options.showCloseButton || false,\r\n ignoreChildEvents: false,\r\n container: $element,\r\n visualContainer: window,\r\n onContentReady: function(args) {\r\n args.component.$content().addClass(DX_DIALOG_CONTENT_CLASSNAME).append($message)\r\n },\r\n onShowing: function(e) {\r\n e.component.bottomToolbar().addClass(DX_DIALOG_BUTTONS_CLASSNAME).find(\".\".concat(DX_BUTTON_CLASSNAME)).addClass(DX_DIALOG_BUTTON_CLASSNAME);\r\n resetActiveElement()\r\n },\r\n onShown: function(e) {\r\n var $firstButton = e.component.bottomToolbar().find(\".\".concat(DX_BUTTON_CLASSNAME)).first();\r\n eventsEngine.trigger($firstButton, \"focus\")\r\n },\r\n onHiding: function() {\r\n deferred.reject()\r\n },\r\n toolbarItems: popupToolbarItems,\r\n animation: {\r\n show: {\r\n type: \"pop\",\r\n duration: 400\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 400,\r\n to: {\r\n opacity: 0,\r\n scale: 0\r\n },\r\n from: {\r\n opacity: 1,\r\n scale: 1\r\n }\r\n }\r\n },\r\n rtlEnabled: config().rtlEnabled,\r\n position: {\r\n boundaryOffset: {\r\n h: 10,\r\n v: 0\r\n }\r\n }\r\n }, options.popupOptions));\r\n popupInstance.$wrapper().addClass(DX_DIALOG_WRAPPER_CLASSNAME);\r\n if (options.position) {\r\n popupInstance.option(\"position\", options.position)\r\n }\r\n popupInstance.$wrapper().addClass(DX_DIALOG_ROOT_CLASSNAME);\r\n\r\n function hide(value) {\r\n deferred.resolve(value);\r\n popupInstance.hide().done((function() {\r\n popupInstance.$element().remove()\r\n }))\r\n }\r\n return {\r\n show: function() {\r\n if (\"android\" === devices.real().platform) {\r\n var isPortrait = getHeight(window) > getWidth(window);\r\n var width = isPortrait ? \"80%\" : \"60%\";\r\n popupInstance.option({\r\n width: width\r\n })\r\n }\r\n popupInstance.show();\r\n return deferred.promise()\r\n },\r\n hide: hide\r\n }\r\n};\r\nexport var alert = function(messageHtml) {\r\n var title = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"\";\r\n var showTitle = arguments.length > 2 ? arguments[2] : void 0;\r\n var options = isPlainObject(messageHtml) ? messageHtml : {\r\n title: title,\r\n messageHtml: messageHtml,\r\n showTitle: showTitle,\r\n dragEnabled: showTitle\r\n };\r\n return custom(options).show()\r\n};\r\nexport var confirm = function(messageHtml) {\r\n var title = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"\";\r\n var showTitle = arguments.length > 2 ? arguments[2] : void 0;\r\n var options = isPlainObject(messageHtml) ? messageHtml : {\r\n title: title,\r\n messageHtml: messageHtml,\r\n showTitle: showTitle,\r\n buttons: [{\r\n text: messageLocalization.format(\"Yes\"),\r\n onClick: function() {\r\n return true\r\n }\r\n }, {\r\n text: messageLocalization.format(\"No\"),\r\n onClick: function() {\r\n return false\r\n }\r\n }],\r\n dragEnabled: showTitle\r\n };\r\n return custom(options).show()\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.editing_constants.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nexport var ROW_CLASS = \"dx-row\";\r\nexport var CELL_MODIFIED_CLASS = \"dx-cell-modified\";\r\nexport var ROW_SELECTED_CLASS = \"dx-selection\";\r\nexport var EDIT_FORM_CLASS = \"edit-form\";\r\nexport var DATA_EDIT_DATA_INSERT_TYPE = \"insert\";\r\nexport var DATA_EDIT_DATA_REMOVE_TYPE = \"remove\";\r\nexport var EDITING_POPUP_OPTION_NAME = \"editing.popup\";\r\nexport var EDITING_FORM_OPTION_NAME = \"editing.form\";\r\nexport var EDITING_EDITROWKEY_OPTION_NAME = \"editing.editRowKey\";\r\nexport var EDITING_EDITCOLUMNNAME_OPTION_NAME = \"editing.editColumnName\";\r\nexport var TARGET_COMPONENT_NAME = \"targetComponent\";\r\nexport var EDITORS_INPUT_SELECTOR = \"input:not([type='hidden'])\";\r\nexport var FOCUSABLE_ELEMENT_SELECTOR = \"[tabindex], \" + EDITORS_INPUT_SELECTOR;\r\nexport var EDIT_MODE_BATCH = \"batch\";\r\nexport var EDIT_MODE_ROW = \"row\";\r\nexport var EDIT_MODE_CELL = \"cell\";\r\nexport var EDIT_MODE_FORM = \"form\";\r\nexport var EDIT_MODE_POPUP = \"popup\";\r\nexport var FIRST_NEW_ROW_POSITION = \"first\";\r\nexport var LAST_NEW_ROW_POSITION = \"last\";\r\nexport var PAGE_BOTTOM_NEW_ROW_POSITION = \"pageBottom\";\r\nexport var PAGE_TOP_NEW_ROW_POSITION = \"pageTop\";\r\nexport var VIEWPORT_BOTTOM_NEW_ROW_POSITION = \"viewportBottom\";\r\nexport var VIEWPORT_TOP_NEW_ROW_POSITION = \"viewportTop\";\r\nexport var EDIT_MODES = [EDIT_MODE_BATCH, EDIT_MODE_ROW, EDIT_MODE_CELL, EDIT_MODE_FORM, EDIT_MODE_POPUP];\r\nexport var ROW_BASED_MODES = [EDIT_MODE_ROW, EDIT_MODE_FORM, EDIT_MODE_POPUP];\r\nexport var MODES_WITH_DELAYED_FOCUS = [EDIT_MODE_ROW, EDIT_MODE_FORM];\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.editing.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ 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 {\r\n resetActiveElement\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n isDefined,\r\n isObject,\r\n isFunction,\r\n isEmptyObject\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 modules from \"./ui.grid_core.modules\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n createObjectWithChanges\r\n} from \"../../data/array_utils\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n confirm\r\n} from \"../dialog\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n when,\r\n Deferred,\r\n fromPromise\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n equalByValue,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport * as iconUtils from \"../../core/utils/icon\";\r\nimport {\r\n EDITOR_CELL_CLASS,\r\n ROW_CLASS,\r\n EDIT_FORM_CLASS,\r\n DATA_EDIT_DATA_INSERT_TYPE,\r\n DATA_EDIT_DATA_REMOVE_TYPE,\r\n EDITING_POPUP_OPTION_NAME,\r\n EDITING_EDITROWKEY_OPTION_NAME,\r\n EDITING_EDITCOLUMNNAME_OPTION_NAME,\r\n TARGET_COMPONENT_NAME,\r\n EDITORS_INPUT_SELECTOR,\r\n FOCUSABLE_ELEMENT_SELECTOR,\r\n EDIT_MODE_ROW,\r\n EDIT_MODES,\r\n ROW_BASED_MODES,\r\n FIRST_NEW_ROW_POSITION,\r\n LAST_NEW_ROW_POSITION,\r\n PAGE_BOTTOM_NEW_ROW_POSITION,\r\n PAGE_TOP_NEW_ROW_POSITION,\r\n VIEWPORT_BOTTOM_NEW_ROW_POSITION,\r\n VIEWPORT_TOP_NEW_ROW_POSITION\r\n} from \"./ui.grid_core.editing_constants\";\r\nvar READONLY_CLASS = \"readonly\";\r\nvar LINK_CLASS = \"dx-link\";\r\nvar ROW_SELECTED = \"dx-selection\";\r\nvar EDIT_BUTTON_CLASS = \"dx-edit-button\";\r\nvar COMMAND_EDIT_CLASS = \"dx-command-edit\";\r\nvar COMMAND_EDIT_WITH_ICONS_CLASS = COMMAND_EDIT_CLASS + \"-with-icons\";\r\nvar INSERT_INDEX = \"__DX_INSERT_INDEX__\";\r\nvar ROW_INSERTED = \"dx-row-inserted\";\r\nvar ROW_MODIFIED = \"dx-row-modified\";\r\nvar CELL_MODIFIED = \"dx-cell-modified\";\r\nvar EDITING_NAMESPACE = \"dxDataGridEditing\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar DATA_EDIT_DATA_UPDATE_TYPE = \"update\";\r\nvar DEFAULT_START_EDIT_ACTION = \"click\";\r\nvar EDIT_LINK_CLASS = {\r\n save: \"dx-link-save\",\r\n cancel: \"dx-link-cancel\",\r\n edit: \"dx-link-edit\",\r\n undelete: \"dx-link-undelete\",\r\n delete: \"dx-link-delete\",\r\n add: \"dx-link-add\"\r\n};\r\nvar EDIT_ICON_CLASS = {\r\n save: \"save\",\r\n cancel: \"revert\",\r\n edit: \"edit\",\r\n undelete: \"revert\",\r\n delete: \"trash\",\r\n add: \"add\"\r\n};\r\nvar METHOD_NAMES = {\r\n edit: \"editRow\",\r\n delete: \"deleteRow\",\r\n undelete: \"undeleteRow\",\r\n save: \"saveEditData\",\r\n cancel: \"cancelEditData\",\r\n add: \"addRowByRowIndex\"\r\n};\r\nvar ACTION_OPTION_NAMES = {\r\n add: \"allowAdding\",\r\n edit: \"allowUpdating\",\r\n delete: \"allowDeleting\"\r\n};\r\nvar BUTTON_NAMES = [\"edit\", \"save\", \"cancel\", \"delete\", \"undelete\"];\r\nvar EDITING_CHANGES_OPTION_NAME = \"editing.changes\";\r\nvar createFailureHandler = function(deferred) {\r\n return function(arg) {\r\n var error = arg instanceof Error ? arg : new Error(arg && String(arg) || \"Unknown error\");\r\n deferred.reject(error)\r\n }\r\n};\r\nvar isEditingCell = function(isEditRow, cellOptions) {\r\n return cellOptions.isEditing || isEditRow && cellOptions.column.allowEditing\r\n};\r\nvar isEditingOrShowEditorAlwaysDataCell = function(isEditRow, cellOptions) {\r\n var isCommandCell = !!cellOptions.column.command;\r\n var isEditing = isEditingCell(isEditRow, cellOptions);\r\n var isEditorCell = !isCommandCell && (isEditing || cellOptions.column.showEditorAlways);\r\n return \"data\" === cellOptions.rowType && isEditorCell\r\n};\r\nvar EditingController = modules.ViewController.inherit(function() {\r\n var getButtonIndex = (buttons, name) => {\r\n var result = -1;\r\n buttons.some((button, index) => {\r\n if (getButtonName(button) === name) {\r\n result = index;\r\n return true\r\n }\r\n });\r\n return result\r\n };\r\n\r\n function getButtonName(button) {\r\n return isObject(button) ? button.name : button\r\n }\r\n return {\r\n init: function() {\r\n this._columnsController = this.getController(\"columns\");\r\n this._dataController = this.getController(\"data\");\r\n this._rowsView = this.getView(\"rowsView\");\r\n this._lastOperation = null;\r\n if (this._deferreds) {\r\n this._deferreds.forEach(d => d.reject(\"cancel\"))\r\n }\r\n this._deferreds = [];\r\n if (!this._dataChangedHandler) {\r\n this._dataChangedHandler = this._handleDataChanged.bind(this);\r\n this._dataController.changed.add(this._dataChangedHandler)\r\n }\r\n if (!this._saveEditorHandler) {\r\n this.createAction(\"onInitNewRow\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowInserting\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowInserted\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onEditingStart\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowUpdating\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowUpdated\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowRemoving\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowRemoved\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onSaved\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onSaving\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onEditCanceling\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onEditCanceled\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }\r\n this._updateEditColumn();\r\n this._updateEditButtons();\r\n if (!this._internalState) {\r\n this._internalState = []\r\n }\r\n this.component._optionsByReference[EDITING_EDITROWKEY_OPTION_NAME] = true;\r\n this.component._optionsByReference[EDITING_CHANGES_OPTION_NAME] = true\r\n },\r\n getEditMode: function() {\r\n var editMode = this.option(\"editing.mode\");\r\n if (-1 !== EDIT_MODES.indexOf(editMode)) {\r\n return editMode\r\n }\r\n return EDIT_MODE_ROW\r\n },\r\n _getDefaultEditorTemplate: function() {\r\n return (container, options) => {\r\n var $editor = $(\"
\").appendTo(container);\r\n this.getController(\"editorFactory\").createEditor($editor, extend({}, options.column, {\r\n value: options.value,\r\n setValue: options.setValue,\r\n row: options.row,\r\n parentType: \"dataRow\",\r\n width: null,\r\n readOnly: !options.setValue,\r\n isOnForm: options.isOnForm,\r\n id: options.id\r\n }))\r\n }\r\n },\r\n _getNewRowPosition: function() {\r\n var newRowPosition = this.option(\"editing.newRowPosition\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n if (\"virtual\" === scrollingMode) {\r\n switch (newRowPosition) {\r\n case PAGE_TOP_NEW_ROW_POSITION:\r\n return VIEWPORT_TOP_NEW_ROW_POSITION;\r\n case PAGE_BOTTOM_NEW_ROW_POSITION:\r\n return VIEWPORT_BOTTOM_NEW_ROW_POSITION;\r\n default:\r\n return newRowPosition\r\n }\r\n }\r\n return newRowPosition\r\n },\r\n getChanges: function() {\r\n return this.option(EDITING_CHANGES_OPTION_NAME)\r\n },\r\n getInsertRowCount: function() {\r\n var changes = this.option(EDITING_CHANGES_OPTION_NAME);\r\n return changes.filter(change => \"insert\" === change.type).length\r\n },\r\n resetChanges: function() {\r\n var changes = this.getChanges();\r\n var needReset = null === changes || void 0 === changes ? void 0 : changes.length;\r\n if (needReset) {\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, [])\r\n }\r\n },\r\n _getInternalData: function(key) {\r\n return this._internalState.filter(item => equalByValue(item.key, key))[0]\r\n },\r\n _addInternalData: function(params) {\r\n var internalData = this._getInternalData(params.key);\r\n if (internalData) {\r\n return extend(internalData, params)\r\n }\r\n this._internalState.push(params);\r\n return params\r\n },\r\n _getOldData: function(key) {\r\n var _this$_getInternalDat;\r\n return null === (_this$_getInternalDat = this._getInternalData(key)) || void 0 === _this$_getInternalDat ? void 0 : _this$_getInternalDat.oldData\r\n },\r\n getUpdatedData: function(data) {\r\n var key = this._dataController.keyOf(data);\r\n var changes = this.getChanges();\r\n var editIndex = gridCoreUtils.getIndexByKey(key, changes);\r\n if (changes[editIndex]) {\r\n return createObjectWithChanges(data, changes[editIndex].data)\r\n }\r\n return data\r\n },\r\n getInsertedData: function() {\r\n return this.getChanges().filter(change => change.data && change.type === DATA_EDIT_DATA_INSERT_TYPE).map(change => change.data)\r\n },\r\n getRemovedData: function() {\r\n return this.getChanges().filter(change => this._getOldData(change.key) && change.type === DATA_EDIT_DATA_REMOVE_TYPE).map(change => this._getOldData(change.key))\r\n },\r\n _fireDataErrorOccurred: function(arg) {\r\n if (\"cancel\" === arg) {\r\n return\r\n }\r\n var $popupContent = this.getPopupContent();\r\n this._dataController.dataErrorOccurred.fire(arg, $popupContent)\r\n },\r\n _needToCloseEditableCell: noop,\r\n _closeEditItem: noop,\r\n _handleDataChanged: noop,\r\n _isDefaultButtonVisible: function(button, options) {\r\n var result = true;\r\n switch (button.name) {\r\n case \"delete\":\r\n result = this.allowDeleting(options);\r\n break;\r\n case \"undelete\":\r\n result = false\r\n }\r\n return result\r\n },\r\n _isButtonVisible: function(button, options) {\r\n var visible = button.visible;\r\n if (!isDefined(visible)) {\r\n return this._isDefaultButtonVisible(button, options)\r\n }\r\n return isFunction(visible) ? visible.call(button, {\r\n component: options.component,\r\n row: options.row,\r\n column: options.column\r\n }) : visible\r\n },\r\n _isButtonDisabled: function(button, options) {\r\n var disabled = button.disabled;\r\n return isFunction(disabled) ? disabled.call(button, {\r\n component: options.component,\r\n row: options.row,\r\n column: options.column\r\n }) : !!disabled\r\n },\r\n _getButtonConfig: function(button, options) {\r\n var config = isObject(button) ? button : {};\r\n var buttonName = getButtonName(button);\r\n var editingTexts = (options => {\r\n var editingTexts = options.component.option(\"editing.texts\") || {};\r\n return {\r\n save: editingTexts.saveRowChanges,\r\n cancel: editingTexts.cancelRowChanges,\r\n edit: editingTexts.editRow,\r\n undelete: editingTexts.undeleteRow,\r\n delete: editingTexts.deleteRow,\r\n add: editingTexts.addRowToNode\r\n }\r\n })(options);\r\n var methodName = METHOD_NAMES[buttonName];\r\n var editingOptions = this.option(\"editing\");\r\n var actionName = ACTION_OPTION_NAMES[buttonName];\r\n var allowAction = actionName ? editingOptions[actionName] : true;\r\n return extend({\r\n name: buttonName,\r\n text: editingTexts[buttonName],\r\n cssClass: EDIT_LINK_CLASS[buttonName]\r\n }, {\r\n onClick: methodName && (e => {\r\n var event = e.event;\r\n event.stopPropagation();\r\n event.preventDefault();\r\n setTimeout(() => {\r\n options.row && allowAction && this[methodName] && this[methodName](options.row.rowIndex)\r\n })\r\n })\r\n }, config)\r\n },\r\n _getEditingButtons: function(options) {\r\n var buttonIndex;\r\n var haveCustomButtons = !!options.column.buttons;\r\n var buttons = (options.column.buttons || []).slice();\r\n if (haveCustomButtons) {\r\n buttonIndex = getButtonIndex(buttons, \"edit\");\r\n if (buttonIndex >= 0) {\r\n if (getButtonIndex(buttons, \"save\") < 0) {\r\n buttons.splice(buttonIndex + 1, 0, \"save\")\r\n }\r\n if (getButtonIndex(buttons, \"cancel\") < 0) {\r\n buttons.splice(getButtonIndex(buttons, \"save\") + 1, 0, \"cancel\")\r\n }\r\n }\r\n buttonIndex = getButtonIndex(buttons, \"delete\");\r\n if (buttonIndex >= 0 && getButtonIndex(buttons, \"undelete\") < 0) {\r\n buttons.splice(buttonIndex + 1, 0, \"undelete\")\r\n }\r\n } else {\r\n buttons = BUTTON_NAMES.slice()\r\n }\r\n return buttons.map(button => this._getButtonConfig(button, options))\r\n },\r\n _renderEditingButtons: function($container, buttons, options, change) {\r\n buttons.forEach(button => {\r\n if (this._isButtonVisible(button, options)) {\r\n this._createButton($container, button, options, change)\r\n }\r\n })\r\n },\r\n _getEditCommandCellTemplate: function() {\r\n return (container, options, change) => {\r\n var $container = $(container);\r\n if (\"data\" === options.rowType) {\r\n var buttons = this._getEditingButtons(options);\r\n this._renderEditingButtons($container, buttons, options, change);\r\n options.watch && options.watch(() => buttons.map(button => this._isButtonVisible(button, options)), () => {\r\n $container.empty();\r\n this._renderEditingButtons($container, buttons, options)\r\n })\r\n } else {\r\n gridCoreUtils.setEmptyText($container)\r\n }\r\n }\r\n },\r\n isRowBasedEditMode: function() {\r\n var editMode = this.getEditMode();\r\n return -1 !== ROW_BASED_MODES.indexOf(editMode)\r\n },\r\n getFirstEditableColumnIndex: function() {\r\n var columnsController = this.getController(\"columns\");\r\n var columnIndex;\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n each(visibleColumns, (function(index, column) {\r\n if (column.allowEditing) {\r\n columnIndex = index;\r\n return false\r\n }\r\n }));\r\n return columnIndex\r\n },\r\n getFirstEditableCellInRow: function(rowIndex) {\r\n var rowsView = this.getView(\"rowsView\");\r\n return rowsView && rowsView._getCellElement(rowIndex ? rowIndex : 0, this.getFirstEditableColumnIndex())\r\n },\r\n getFocusedCellInRow: function(rowIndex) {\r\n return this.getFirstEditableCellInRow(rowIndex)\r\n },\r\n getIndexByKey: function(key, items) {\r\n return gridCoreUtils.getIndexByKey(key, items)\r\n },\r\n hasChanges: function(rowIndex) {\r\n var changes = this.getChanges();\r\n var result = false;\r\n for (var i = 0; i < (null === changes || void 0 === changes ? void 0 : changes.length); i++) {\r\n if (changes[i].type && (!isDefined(rowIndex) || this._dataController.getRowIndexByKey(changes[i].key) === rowIndex)) {\r\n result = true;\r\n break\r\n }\r\n }\r\n return result\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._inputFocusTimeoutID);\r\n eventsEngine.off(domAdapter.getDocument(), pointerEvents.up, this._pointerUpEditorHandler);\r\n eventsEngine.off(domAdapter.getDocument(), pointerEvents.down, this._pointerDownEditorHandler);\r\n eventsEngine.off(domAdapter.getDocument(), clickEventName, this._saveEditorHandler)\r\n },\r\n optionChanged: function(args) {\r\n if (\"editing\" === args.name) {\r\n var fullName = args.fullName;\r\n if (fullName === EDITING_EDITROWKEY_OPTION_NAME) {\r\n this._handleEditRowKeyChange(args)\r\n } else if (fullName === EDITING_CHANGES_OPTION_NAME) {\r\n this._handleChangesChange(args)\r\n } else if (!args.handled) {\r\n this._columnsController.reinit();\r\n this.init();\r\n this.resetChanges();\r\n this._resetEditColumnName();\r\n this._resetEditRowKey()\r\n }\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n },\r\n _handleEditRowKeyChange: function(args) {\r\n var rowIndex = this._dataController.getRowIndexByKey(args.value);\r\n var oldRowIndexCorrection = this._getEditRowIndexCorrection();\r\n var oldRowIndex = this._dataController.getRowIndexByKey(args.previousValue) + oldRowIndexCorrection;\r\n if (isDefined(args.value)) {\r\n if (args.value !== args.previousValue) {\r\n this._editRowFromOptionChanged(rowIndex, oldRowIndex)\r\n }\r\n } else {\r\n this.cancelEditData()\r\n }\r\n },\r\n _handleChangesChange: function(args) {\r\n var dataController = this._dataController;\r\n var changes = args.value;\r\n if (!args.value.length && !args.previousValue.length) {\r\n return\r\n }\r\n changes.forEach(change => {\r\n if (\"insert\" === change.type) {\r\n this._addInsertInfo(change)\r\n } else {\r\n var _items$rowIndex;\r\n var items = dataController.items();\r\n var rowIndex = dataController.getRowIndexByKey(change.key);\r\n this._addInternalData({\r\n key: change.key,\r\n oldData: null === (_items$rowIndex = items[rowIndex]) || void 0 === _items$rowIndex ? void 0 : _items$rowIndex.data\r\n })\r\n }\r\n });\r\n dataController.updateItems({\r\n repaintChangesOnly: true,\r\n isLiveUpdate: false\r\n })\r\n },\r\n publicMethods: function() {\r\n return [\"addRow\", \"deleteRow\", \"undeleteRow\", \"editRow\", \"saveEditData\", \"cancelEditData\", \"hasEditData\"]\r\n },\r\n refresh: function() {\r\n if (!isDefined(this._pageIndex)) {\r\n return\r\n }\r\n this._refreshCore.apply(this, arguments)\r\n },\r\n _refreshCore: noop,\r\n isEditing: function() {\r\n var isEditRowKeyDefined = isDefined(this.option(EDITING_EDITROWKEY_OPTION_NAME));\r\n return isEditRowKeyDefined\r\n },\r\n isEditRow: function() {\r\n return false\r\n },\r\n _setEditRowKey: function(value, silent) {\r\n if (silent) {\r\n this._silentOption(EDITING_EDITROWKEY_OPTION_NAME, value)\r\n } else {\r\n this.option(EDITING_EDITROWKEY_OPTION_NAME, value)\r\n }\r\n },\r\n _setEditRowKeyByIndex: function(rowIndex, silent) {\r\n var key = this._dataController.getKeyByRowIndex(rowIndex);\r\n if (void 0 === key) {\r\n this._dataController.fireError(\"E1043\");\r\n return\r\n }\r\n this._setEditRowKey(key, silent)\r\n },\r\n getEditRowIndex: function() {\r\n return this._getVisibleEditRowIndex()\r\n },\r\n getEditFormRowIndex: function() {\r\n return -1\r\n },\r\n isEditRowByIndex(rowIndex) {\r\n var key = this._dataController.getKeyByRowIndex(rowIndex);\r\n var isKeyEqual = isDefined(key) && equalByValue(this.option(EDITING_EDITROWKEY_OPTION_NAME), key);\r\n if (isKeyEqual) {\r\n return this._getVisibleEditRowIndex() === rowIndex\r\n }\r\n return isKeyEqual\r\n },\r\n isEditCell: function(visibleRowIndex, columnIndex) {\r\n return this.isEditRowByIndex(visibleRowIndex) && this._getVisibleEditColumnIndex() === columnIndex\r\n },\r\n getPopupContent: noop,\r\n _isProcessedItem: function(item) {\r\n return false\r\n },\r\n _getInsertRowIndex: function(items, change, isProcessedItems) {\r\n var result = -1;\r\n var dataController = this._dataController;\r\n var key = this._getInsertAfterOrBeforeKey(change);\r\n if (!isDefined(key) && 0 === items.length) {\r\n result = 0\r\n } else if (isDefined(key)) {\r\n items.some((item, index) => {\r\n var isProcessedItem = isProcessedItems || this._isProcessedItem(item);\r\n if (isObject(item)) {\r\n if (isProcessedItem || isDefined(item[INSERT_INDEX])) {\r\n if (equalByValue(item.key, key)) {\r\n result = index\r\n }\r\n } else if (equalByValue(dataController.keyOf(item), key)) {\r\n result = index\r\n }\r\n }\r\n if (result >= 0) {\r\n var nextItem = items[result + 1];\r\n if (nextItem && (\"detail\" === nextItem.rowType || \"detailAdaptive\" === nextItem.rowType) && isDefined(change.insertAfterKey)) {\r\n return\r\n }\r\n if (isDefined(change.insertAfterKey)) {\r\n result += 1\r\n }\r\n return true\r\n }\r\n })\r\n }\r\n return result\r\n },\r\n _generateNewItem: function(key) {\r\n var _this$_getInternalDat2;\r\n var item = {\r\n key: key\r\n };\r\n var insertInfo = null === (_this$_getInternalDat2 = this._getInternalData(key)) || void 0 === _this$_getInternalDat2 ? void 0 : _this$_getInternalDat2.insertInfo;\r\n if (null !== insertInfo && void 0 !== insertInfo && insertInfo[INSERT_INDEX]) {\r\n item[INSERT_INDEX] = insertInfo[INSERT_INDEX]\r\n }\r\n return item\r\n },\r\n _getLoadedRowIndex: function(items, change, isProcessedItems) {\r\n var loadedRowIndex = this._getInsertRowIndex(items, change, isProcessedItems);\r\n var dataController = this._dataController;\r\n if (loadedRowIndex < 0) {\r\n var newRowPosition = this._getNewRowPosition();\r\n var pageIndex = dataController.pageIndex();\r\n var insertAfterOrBeforeKey = this._getInsertAfterOrBeforeKey(change);\r\n if (newRowPosition !== LAST_NEW_ROW_POSITION && 0 === pageIndex && !isDefined(insertAfterOrBeforeKey)) {\r\n loadedRowIndex = 0\r\n } else if (newRowPosition === LAST_NEW_ROW_POSITION && dataController.isLastPageLoaded()) {\r\n loadedRowIndex = items.length\r\n }\r\n }\r\n return loadedRowIndex\r\n },\r\n processItems: function(items, e) {\r\n var changeType = e.changeType;\r\n this.update(changeType);\r\n var changes = this.getChanges();\r\n changes.forEach(change => {\r\n var _this$_getInternalDat3;\r\n var isInsert = change.type === DATA_EDIT_DATA_INSERT_TYPE;\r\n if (!isInsert) {\r\n return\r\n }\r\n var key = change.key;\r\n var insertInfo = null === (_this$_getInternalDat3 = this._getInternalData(key)) || void 0 === _this$_getInternalDat3 ? void 0 : _this$_getInternalDat3.insertInfo;\r\n if (!isDefined(key) || !isDefined(insertInfo)) {\r\n insertInfo = this._addInsertInfo(change);\r\n key = insertInfo.key\r\n }\r\n var loadedRowIndex = this._getLoadedRowIndex(items, change);\r\n var item = this._generateNewItem(key);\r\n if (loadedRowIndex >= 0) {\r\n items.splice(loadedRowIndex, 0, item)\r\n }\r\n });\r\n return items\r\n },\r\n processDataItem: function(item, options, generateDataValues) {\r\n var columns = options.visibleColumns;\r\n var key = item.data[INSERT_INDEX] ? item.data.key : item.key;\r\n var changes = this.getChanges();\r\n var editIndex = gridCoreUtils.getIndexByKey(key, changes);\r\n item.isEditing = false;\r\n if (editIndex >= 0) {\r\n this._processDataItemCore(item, changes[editIndex], key, columns, generateDataValues)\r\n }\r\n },\r\n _processDataItemCore: function(item, change, key, columns, generateDataValues) {\r\n var {\r\n data: data,\r\n type: type\r\n } = change;\r\n switch (type) {\r\n case DATA_EDIT_DATA_INSERT_TYPE:\r\n item.isNewRow = true;\r\n item.key = key;\r\n item.data = data;\r\n break;\r\n case DATA_EDIT_DATA_UPDATE_TYPE:\r\n item.modified = true;\r\n item.oldData = item.data;\r\n item.data = createObjectWithChanges(item.data, data);\r\n item.modifiedValues = generateDataValues(data, columns, true);\r\n break;\r\n case DATA_EDIT_DATA_REMOVE_TYPE:\r\n item.removed = true\r\n }\r\n },\r\n _initNewRow: function(options) {\r\n this.executeAction(\"onInitNewRow\", options);\r\n if (options.promise) {\r\n var deferred = new Deferred;\r\n when(fromPromise(options.promise)).done(deferred.resolve).fail(createFailureHandler(deferred)).fail(arg => this._fireDataErrorOccurred(arg));\r\n return deferred\r\n }\r\n },\r\n _createInsertInfo: function() {\r\n var insertInfo = {};\r\n insertInfo[INSERT_INDEX] = this._getInsertIndex();\r\n return insertInfo\r\n },\r\n _addInsertInfo: function(change, parentKey) {\r\n var _this$_getInternalDat4;\r\n var insertInfo;\r\n var {\r\n key: key\r\n } = change;\r\n if (!isDefined(key)) {\r\n key = String(new Guid);\r\n change.key = key\r\n }\r\n insertInfo = null === (_this$_getInternalDat4 = this._getInternalData(key)) || void 0 === _this$_getInternalDat4 ? void 0 : _this$_getInternalDat4.insertInfo;\r\n if (!isDefined(insertInfo)) {\r\n var insertAfterOrBeforeKey = this._getInsertAfterOrBeforeKey(change);\r\n insertInfo = this._createInsertInfo();\r\n if (!isDefined(insertAfterOrBeforeKey)) {\r\n this._setInsertAfterOrBeforeKey(change, parentKey)\r\n }\r\n }\r\n this._addInternalData({\r\n insertInfo: insertInfo,\r\n key: key\r\n });\r\n return {\r\n insertInfo: insertInfo,\r\n key: key\r\n }\r\n },\r\n _setInsertAfterOrBeforeKey: function(change, parentKey) {\r\n var dataController = this._dataController;\r\n var allItems = dataController.items(true);\r\n var rowsView = this.getView(\"rowsView\");\r\n var newRowPosition = this._getNewRowPosition();\r\n switch (newRowPosition) {\r\n case FIRST_NEW_ROW_POSITION:\r\n case LAST_NEW_ROW_POSITION:\r\n break;\r\n case PAGE_TOP_NEW_ROW_POSITION:\r\n case PAGE_BOTTOM_NEW_ROW_POSITION:\r\n if (allItems.length) {\r\n var itemIndex = newRowPosition === PAGE_TOP_NEW_ROW_POSITION ? 0 : allItems.length - 1;\r\n change[0 === itemIndex ? \"insertBeforeKey\" : \"insertAfterKey\"] = allItems[itemIndex].key\r\n }\r\n break;\r\n default:\r\n var isViewportBottom = newRowPosition === VIEWPORT_BOTTOM_NEW_ROW_POSITION;\r\n var visibleItemIndex = isViewportBottom ? null === rowsView || void 0 === rowsView ? void 0 : rowsView.getBottomVisibleItemIndex() : null === rowsView || void 0 === rowsView ? void 0 : rowsView.getTopVisibleItemIndex();\r\n var row = dataController.getVisibleRows()[visibleItemIndex];\r\n if (row && (!row.isEditing && \"detail\" === row.rowType || \"detailAdaptive\" === row.rowType)) {\r\n visibleItemIndex++\r\n }\r\n var insertKey = dataController.getKeyByRowIndex(visibleItemIndex);\r\n if (isDefined(insertKey)) {\r\n change.insertBeforeKey = insertKey\r\n }\r\n }\r\n },\r\n _getInsertIndex: function() {\r\n var maxInsertIndex = 0;\r\n this.getChanges().forEach(editItem => {\r\n var _this$_getInternalDat5;\r\n var insertInfo = null === (_this$_getInternalDat5 = this._getInternalData(editItem.key)) || void 0 === _this$_getInternalDat5 ? void 0 : _this$_getInternalDat5.insertInfo;\r\n if (isDefined(insertInfo) && editItem.type === DATA_EDIT_DATA_INSERT_TYPE && insertInfo[INSERT_INDEX] > maxInsertIndex) {\r\n maxInsertIndex = insertInfo[INSERT_INDEX]\r\n }\r\n });\r\n return maxInsertIndex + 1\r\n },\r\n _getInsertAfterOrBeforeKey: function(insertChange) {\r\n var _insertChange$insertA;\r\n return null !== (_insertChange$insertA = insertChange.insertAfterKey) && void 0 !== _insertChange$insertA ? _insertChange$insertA : insertChange.insertBeforeKey\r\n },\r\n _getPageIndexToInsertRow: function() {\r\n var newRowPosition = this._getNewRowPosition();\r\n var dataController = this._dataController;\r\n var pageIndex = dataController.pageIndex();\r\n var lastPageIndex = dataController.pageCount() - 1;\r\n if (newRowPosition === FIRST_NEW_ROW_POSITION && 0 !== pageIndex) {\r\n return 0\r\n } else if (newRowPosition === LAST_NEW_ROW_POSITION && pageIndex !== lastPageIndex) {\r\n return lastPageIndex\r\n }\r\n return -1\r\n },\r\n addRow: function(parentKey) {\r\n var dataController = this._dataController;\r\n var store = dataController.store();\r\n if (!store) {\r\n dataController.fireError(\"E1052\", this.component.NAME);\r\n return (new Deferred).reject()\r\n }\r\n return this._addRow(parentKey)\r\n },\r\n _addRow: function(parentKey) {\r\n var dataController = this._dataController;\r\n var store = dataController.store();\r\n var key = store && store.key();\r\n var param = {\r\n data: {}\r\n };\r\n var oldEditRowIndex = this._getVisibleEditRowIndex();\r\n var deferred = new Deferred;\r\n this.refresh({\r\n allowCancelEditing: true\r\n });\r\n if (!this._allowRowAdding()) {\r\n when(this._navigateToNewRow(oldEditRowIndex)).done(deferred.resolve).fail(deferred.reject);\r\n return deferred.promise()\r\n }\r\n if (!key) {\r\n param.data.__KEY__ = String(new Guid)\r\n }\r\n when(this._initNewRow(param, parentKey)).done(() => {\r\n if (this._allowRowAdding()) {\r\n when(this._addRowCore(param.data, parentKey, oldEditRowIndex)).done(deferred.resolve).fail(deferred.reject)\r\n } else {\r\n deferred.reject(\"cancel\")\r\n }\r\n }).fail(deferred.reject);\r\n return deferred.promise()\r\n },\r\n _allowRowAdding: function() {\r\n var insertIndex = this._getInsertIndex();\r\n if (insertIndex > 1) {\r\n return false\r\n }\r\n return true\r\n },\r\n _addRowCore: function(data, parentKey, initialOldEditRowIndex) {\r\n var change = {\r\n data: data,\r\n type: DATA_EDIT_DATA_INSERT_TYPE\r\n };\r\n var editRowIndex = this._getVisibleEditRowIndex();\r\n var insertInfo = this._addInsertInfo(change, parentKey);\r\n var key = insertInfo.key;\r\n this._setEditRowKey(key, true);\r\n this._addChange(change);\r\n return this._navigateToNewRow(initialOldEditRowIndex, change, editRowIndex)\r\n },\r\n _navigateToNewRow: function(oldEditRowIndex, change, editRowIndex) {\r\n var _editRowIndex, _change;\r\n var d = new Deferred;\r\n var dataController = this._dataController;\r\n var focusController = this.getController(\"focus\");\r\n editRowIndex = null !== (_editRowIndex = editRowIndex) && void 0 !== _editRowIndex ? _editRowIndex : -1;\r\n change = null !== (_change = change) && void 0 !== _change ? _change : this.getChanges().filter(c => c.type === DATA_EDIT_DATA_INSERT_TYPE)[0];\r\n if (!change) {\r\n return d.reject(\"cancel\").promise()\r\n }\r\n var pageIndexToInsertRow = this._getPageIndexToInsertRow();\r\n var rowIndex = this._getLoadedRowIndex(dataController.items(), change, true);\r\n var navigateToRowByKey = key => {\r\n when(null === focusController || void 0 === focusController ? void 0 : focusController.navigateToRow(key)).done(() => {\r\n rowIndex = dataController.getRowIndexByKey(change.key);\r\n d.resolve()\r\n })\r\n };\r\n var insertAfterOrBeforeKey = this._getInsertAfterOrBeforeKey(change);\r\n if (pageIndexToInsertRow >= 0) {\r\n dataController.pageIndex(pageIndexToInsertRow).done(() => {\r\n navigateToRowByKey(change.key)\r\n }).fail(d.reject)\r\n } else if (rowIndex < 0 && isDefined(insertAfterOrBeforeKey)) {\r\n navigateToRowByKey(insertAfterOrBeforeKey)\r\n } else {\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [oldEditRowIndex, editRowIndex, rowIndex]\r\n });\r\n rowIndex = dataController.getRowIndexByKey(change.key);\r\n if (rowIndex < 0) {\r\n navigateToRowByKey(change.key)\r\n } else {\r\n d.resolve()\r\n }\r\n }\r\n d.done(() => {\r\n this._showAddedRow(rowIndex);\r\n this._afterInsertRow(change.key)\r\n });\r\n return d.promise()\r\n },\r\n _showAddedRow: function(rowIndex) {\r\n this._focusFirstEditableCellInRow(rowIndex)\r\n },\r\n _beforeFocusElementInRow: noop,\r\n _focusFirstEditableCellInRow: function(rowIndex) {\r\n var dataController = this._dataController;\r\n var key = dataController.getKeyByRowIndex(rowIndex);\r\n var $firstCell = this.getFirstEditableCellInRow(rowIndex);\r\n this._editCellInProgress = true;\r\n this._delayedInputFocus($firstCell, () => {\r\n rowIndex = dataController.getRowIndexByKey(key);\r\n this._editCellInProgress = false;\r\n this._beforeFocusElementInRow(rowIndex)\r\n })\r\n },\r\n _isEditingStart: function(options) {\r\n this.executeAction(\"onEditingStart\", options);\r\n return options.cancel\r\n },\r\n _beforeUpdateItems: noop,\r\n _getVisibleEditColumnIndex: function() {\r\n var editColumnName = this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME);\r\n if (!isDefined(editColumnName)) {\r\n return -1\r\n }\r\n return this._columnsController.getVisibleColumnIndex(editColumnName)\r\n },\r\n _setEditColumnNameByIndex: function(index, silent) {\r\n var _visibleColumns$index;\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n this._setEditColumnName(null === (_visibleColumns$index = visibleColumns[index]) || void 0 === _visibleColumns$index ? void 0 : _visibleColumns$index.name, silent)\r\n },\r\n _setEditColumnName: function(name, silent) {\r\n if (silent) {\r\n this._silentOption(EDITING_EDITCOLUMNNAME_OPTION_NAME, name)\r\n } else {\r\n this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME, name)\r\n }\r\n },\r\n _resetEditColumnName: function() {\r\n this._setEditColumnName(null, true)\r\n },\r\n _getEditColumn: function() {\r\n var editColumnName = this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME);\r\n return this._getColumnByName(editColumnName)\r\n },\r\n _getColumnByName: function(name) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var editColumn;\r\n isDefined(name) && visibleColumns.some(column => {\r\n if (column.name === name) {\r\n editColumn = column;\r\n return true\r\n }\r\n });\r\n return editColumn\r\n },\r\n _getVisibleEditRowIndex: function(columnName) {\r\n var dataController = this._dataController;\r\n var editRowKey = this.option(EDITING_EDITROWKEY_OPTION_NAME);\r\n var rowIndex = dataController.getRowIndexByKey(editRowKey);\r\n if (-1 === rowIndex) {\r\n return rowIndex\r\n }\r\n return rowIndex + this._getEditRowIndexCorrection(columnName)\r\n },\r\n _getEditRowIndexCorrection: function(columnName) {\r\n var editColumn = columnName ? this._getColumnByName(columnName) : this._getEditColumn();\r\n var isColumnHidden = \"adaptiveHidden\" === (null === editColumn || void 0 === editColumn ? void 0 : editColumn.visibleWidth);\r\n return isColumnHidden ? 1 : 0\r\n },\r\n _resetEditRowKey: function() {\r\n this._setEditRowKey(null, true)\r\n },\r\n _resetEditIndices: function() {\r\n this._resetEditColumnName();\r\n this._resetEditRowKey()\r\n },\r\n editRow: function(rowIndex) {\r\n var _item$oldData;\r\n var dataController = this._dataController;\r\n var items = dataController.items();\r\n var item = items[rowIndex];\r\n var params = {\r\n data: item && item.data,\r\n cancel: false\r\n };\r\n var oldRowIndex = this._getVisibleEditRowIndex();\r\n if (!item) {\r\n return\r\n }\r\n if (rowIndex === oldRowIndex) {\r\n return true\r\n }\r\n if (void 0 === item.key) {\r\n this._dataController.fireError(\"E1043\");\r\n return\r\n }\r\n if (!item.isNewRow) {\r\n params.key = item.key\r\n }\r\n if (this._isEditingStart(params)) {\r\n return\r\n }\r\n this.resetChanges();\r\n this.init();\r\n this._resetEditColumnName();\r\n this._pageIndex = dataController.pageIndex();\r\n this._addInternalData({\r\n key: item.key,\r\n oldData: null !== (_item$oldData = item.oldData) && void 0 !== _item$oldData ? _item$oldData : item.data\r\n });\r\n this._setEditRowKey(item.key)\r\n },\r\n _editRowFromOptionChanged: function(rowIndex, oldRowIndex) {\r\n var rowIndices = [oldRowIndex, rowIndex];\r\n this._beforeUpdateItems(rowIndices, rowIndex, oldRowIndex);\r\n this._editRowFromOptionChangedCore(rowIndices, rowIndex)\r\n },\r\n _editRowFromOptionChangedCore: function(rowIndices, rowIndex, preventRendering) {\r\n this._needFocusEditor = true;\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: rowIndices,\r\n cancel: preventRendering\r\n })\r\n },\r\n _focusEditorIfNeed: noop,\r\n _showEditPopup: noop,\r\n _repaintEditPopup: noop,\r\n _getEditPopupHiddenHandler: function() {\r\n return e => {\r\n if (this.isEditing()) {\r\n this.cancelEditData()\r\n }\r\n }\r\n },\r\n _getPopupEditFormTemplate: noop,\r\n _getSaveButtonConfig: function() {\r\n return {\r\n text: this.option(\"editing.texts.saveRowChanges\"),\r\n onClick: this.saveEditData.bind(this)\r\n }\r\n },\r\n _getCancelButtonConfig: function() {\r\n return {\r\n text: this.option(\"editing.texts.cancelRowChanges\"),\r\n onClick: this.cancelEditData.bind(this)\r\n }\r\n },\r\n _removeInternalData: function(key) {\r\n var internalData = this._getInternalData(key);\r\n var index = this._internalState.indexOf(internalData);\r\n if (index > -1) {\r\n this._internalState.splice(index, 1)\r\n }\r\n },\r\n _updateInsertAfterOrBeforeKeys: function(changes, index) {\r\n var removeChange = changes[index];\r\n changes.forEach(change => {\r\n var insertAfterOrBeforeKey = this._getInsertAfterOrBeforeKey(change);\r\n if (equalByValue(insertAfterOrBeforeKey, removeChange.key)) {\r\n change[isDefined(change.insertAfterKey) ? \"insertAfterKey\" : \"insertBeforeKey\"] = this._getInsertAfterOrBeforeKey(removeChange)\r\n }\r\n })\r\n },\r\n _removeChange: function(index) {\r\n if (index >= 0) {\r\n var changes = [...this.getChanges()];\r\n var key = changes[index].key;\r\n this._removeInternalData(key);\r\n this._updateInsertAfterOrBeforeKeys(changes, index);\r\n changes.splice(index, 1);\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, changes);\r\n if (equalByValue(this.option(EDITING_EDITROWKEY_OPTION_NAME), key)) {\r\n this._resetEditIndices()\r\n }\r\n }\r\n },\r\n executeOperation: function(deferred, func) {\r\n this._lastOperation && this._lastOperation.reject();\r\n this._lastOperation = deferred;\r\n this.waitForDeferredOperations().done(() => {\r\n if (\"rejected\" === deferred.state()) {\r\n return\r\n }\r\n func();\r\n this._lastOperation = null\r\n }).fail(() => {\r\n deferred.reject();\r\n this._lastOperation = null\r\n })\r\n },\r\n waitForDeferredOperations: function() {\r\n return when(...this._deferreds)\r\n },\r\n _processCanceledEditingCell: noop,\r\n _repaintEditCell: function(column, oldColumn, oldEditRowIndex) {\r\n this._needFocusEditor = true;\r\n if (!column || !column.showEditorAlways || oldColumn && !oldColumn.showEditorAlways) {\r\n this._editCellInProgress = true;\r\n this.getController(\"editorFactory\").loseFocus();\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [oldEditRowIndex, this._getVisibleEditRowIndex()]\r\n })\r\n } else if (column !== oldColumn) {\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: []\r\n })\r\n }\r\n },\r\n _delayedInputFocus: function($cell, beforeFocusCallback, callBeforeFocusCallbackAlways) {\r\n var inputFocus = () => {\r\n if (beforeFocusCallback) {\r\n beforeFocusCallback()\r\n }\r\n if ($cell) {\r\n var $focusableElement = $cell.find(FOCUSABLE_ELEMENT_SELECTOR).first();\r\n gridCoreUtils.focusAndSelectElement(this, $focusableElement)\r\n }\r\n this._beforeFocusCallback = null\r\n };\r\n if (devices.real().ios || devices.real().android) {\r\n inputFocus()\r\n } else {\r\n if (this._beforeFocusCallback) {\r\n this._beforeFocusCallback()\r\n }\r\n clearTimeout(this._inputFocusTimeoutID);\r\n if (callBeforeFocusCallbackAlways) {\r\n this._beforeFocusCallback = beforeFocusCallback\r\n }\r\n this._inputFocusTimeoutID = setTimeout(inputFocus)\r\n }\r\n },\r\n _focusEditingCell: function(beforeFocusCallback, $editCell, callBeforeFocusCallbackAlways) {\r\n var rowsView = this.getView(\"rowsView\");\r\n var editColumnIndex = this._getVisibleEditColumnIndex();\r\n $editCell = $editCell || rowsView && rowsView._getCellElement(this._getVisibleEditRowIndex(), editColumnIndex);\r\n if ($editCell) {\r\n this._delayedInputFocus($editCell, beforeFocusCallback, callBeforeFocusCallbackAlways)\r\n }\r\n },\r\n deleteRow: function(rowIndex) {\r\n this._checkAndDeleteRow(rowIndex)\r\n },\r\n _checkAndDeleteRow: function(rowIndex) {\r\n var editingOptions = this.option(\"editing\");\r\n var editingTexts = null === editingOptions || void 0 === editingOptions ? void 0 : editingOptions.texts;\r\n var confirmDelete = null === editingOptions || void 0 === editingOptions ? void 0 : editingOptions.confirmDelete;\r\n var confirmDeleteMessage = null === editingTexts || void 0 === editingTexts ? void 0 : editingTexts.confirmDeleteMessage;\r\n var item = this._dataController.items()[rowIndex];\r\n var allowDeleting = !this.isEditing() || item.isNewRow;\r\n if (item && allowDeleting) {\r\n if (!confirmDelete || !confirmDeleteMessage) {\r\n this._deleteRowCore(rowIndex)\r\n } else {\r\n var confirmDeleteTitle = editingTexts && editingTexts.confirmDeleteTitle;\r\n var showDialogTitle = isDefined(confirmDeleteTitle) && confirmDeleteTitle.length > 0;\r\n confirm(confirmDeleteMessage, confirmDeleteTitle, showDialogTitle).done(confirmResult => {\r\n if (confirmResult) {\r\n this._deleteRowCore(rowIndex)\r\n }\r\n })\r\n }\r\n }\r\n },\r\n _deleteRowCore: function(rowIndex) {\r\n var dataController = this._dataController;\r\n var item = dataController.items()[rowIndex];\r\n var key = item && item.key;\r\n var oldEditRowIndex = this._getVisibleEditRowIndex();\r\n this.refresh();\r\n var changes = this.getChanges();\r\n var editIndex = gridCoreUtils.getIndexByKey(key, changes);\r\n if (editIndex >= 0) {\r\n if (changes[editIndex].type === DATA_EDIT_DATA_INSERT_TYPE) {\r\n this._removeChange(editIndex)\r\n } else {\r\n this._addChange({\r\n key: key,\r\n type: DATA_EDIT_DATA_REMOVE_TYPE\r\n })\r\n }\r\n } else {\r\n this._addChange({\r\n key: key,\r\n oldData: item.data,\r\n type: DATA_EDIT_DATA_REMOVE_TYPE\r\n })\r\n }\r\n return this._afterDeleteRow(rowIndex, oldEditRowIndex)\r\n },\r\n _afterDeleteRow: function(rowIndex, oldEditRowIndex) {\r\n return this.saveEditData()\r\n },\r\n undeleteRow: function(rowIndex) {\r\n var dataController = this._dataController;\r\n var item = dataController.items()[rowIndex];\r\n var oldEditRowIndex = this._getVisibleEditRowIndex();\r\n var key = item && item.key;\r\n var changes = this.getChanges();\r\n if (item) {\r\n var editIndex = gridCoreUtils.getIndexByKey(key, changes);\r\n if (editIndex >= 0) {\r\n var {\r\n data: data\r\n } = changes[editIndex];\r\n if (isEmptyObject(data)) {\r\n this._removeChange(editIndex)\r\n } else {\r\n this._addChange({\r\n key: key,\r\n type: DATA_EDIT_DATA_UPDATE_TYPE\r\n })\r\n }\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [oldEditRowIndex, rowIndex]\r\n })\r\n }\r\n }\r\n },\r\n _fireOnSaving: function() {\r\n var onSavingParams = {\r\n cancel: false,\r\n promise: null,\r\n changes: [...this.getChanges()]\r\n };\r\n this.executeAction(\"onSaving\", onSavingParams);\r\n var d = new Deferred;\r\n when(fromPromise(onSavingParams.promise)).done(() => {\r\n d.resolve(onSavingParams)\r\n }).fail(arg => {\r\n createFailureHandler(d);\r\n this._fireDataErrorOccurred(arg);\r\n d.resolve({\r\n cancel: true\r\n })\r\n });\r\n return d\r\n },\r\n _executeEditingAction: function(actionName, params, func) {\r\n if (this.component._disposed) {\r\n return null\r\n }\r\n var deferred = new Deferred;\r\n this.executeAction(actionName, params);\r\n when(fromPromise(params.cancel)).done((function(cancel) {\r\n if (cancel) {\r\n setTimeout((function() {\r\n deferred.resolve(\"cancel\")\r\n }))\r\n } else {\r\n func(params).done(deferred.resolve).fail(createFailureHandler(deferred))\r\n }\r\n })).fail(createFailureHandler(deferred));\r\n return deferred\r\n },\r\n _processChanges: function(deferreds, results, dataChanges, changes) {\r\n var store = this._dataController.store();\r\n each(changes, (index, change) => {\r\n var oldData = this._getOldData(change.key);\r\n var {\r\n data: data,\r\n type: type\r\n } = change;\r\n var changeCopy = _extends({}, change);\r\n var deferred;\r\n var params;\r\n if (this._beforeSaveEditData(change, index)) {\r\n return\r\n }\r\n switch (type) {\r\n case DATA_EDIT_DATA_REMOVE_TYPE:\r\n params = {\r\n data: oldData,\r\n key: change.key,\r\n cancel: false\r\n };\r\n deferred = this._executeEditingAction(\"onRowRemoving\", params, (function() {\r\n return store.remove(change.key).done((function(key) {\r\n dataChanges.push({\r\n type: \"remove\",\r\n key: key\r\n })\r\n }))\r\n }));\r\n break;\r\n case DATA_EDIT_DATA_INSERT_TYPE:\r\n params = {\r\n data: data,\r\n cancel: false\r\n };\r\n deferred = this._executeEditingAction(\"onRowInserting\", params, (function() {\r\n return store.insert(params.data).done((function(data, key) {\r\n if (isDefined(key)) {\r\n changeCopy.key = key\r\n }\r\n if (data && isObject(data) && data !== params.data) {\r\n changeCopy.data = data\r\n }\r\n dataChanges.push({\r\n type: \"insert\",\r\n data: data,\r\n index: 0\r\n })\r\n }))\r\n }));\r\n break;\r\n case DATA_EDIT_DATA_UPDATE_TYPE:\r\n params = {\r\n newData: data,\r\n oldData: oldData,\r\n key: change.key,\r\n cancel: false\r\n };\r\n deferred = this._executeEditingAction(\"onRowUpdating\", params, (function() {\r\n return store.update(change.key, params.newData).done((function(data, key) {\r\n if (data && isObject(data) && data !== params.newData) {\r\n changeCopy.data = data\r\n }\r\n dataChanges.push({\r\n type: \"update\",\r\n key: key,\r\n data: data\r\n })\r\n }))\r\n }))\r\n }\r\n changes[index] = changeCopy;\r\n if (deferred) {\r\n var doneDeferred = new Deferred;\r\n deferred.always((function(data) {\r\n results.push({\r\n key: change.key,\r\n result: data\r\n })\r\n })).always(doneDeferred.resolve);\r\n deferreds.push(doneDeferred.promise())\r\n }\r\n })\r\n },\r\n _processRemoveIfError: function(changes, editIndex) {\r\n var change = changes[editIndex];\r\n if ((null === change || void 0 === change ? void 0 : change.type) === DATA_EDIT_DATA_REMOVE_TYPE) {\r\n if (editIndex >= 0) {\r\n changes.splice(editIndex, 1)\r\n }\r\n }\r\n return true\r\n },\r\n _processRemove: function(changes, editIndex, cancel) {\r\n var change = changes[editIndex];\r\n if (!cancel || !change || change.type === DATA_EDIT_DATA_REMOVE_TYPE) {\r\n return this._processRemoveCore(changes, editIndex, !cancel || !change)\r\n }\r\n },\r\n _processRemoveCore: function(changes, editIndex) {\r\n if (editIndex >= 0) {\r\n changes.splice(editIndex, 1)\r\n }\r\n return true\r\n },\r\n _processSaveEditDataResult: function(results) {\r\n var hasSavedData = false;\r\n var changes = [...this.getChanges()];\r\n var changesLength = changes.length;\r\n for (var i = 0; i < results.length; i++) {\r\n var arg = results[i].result;\r\n var cancel = \"cancel\" === arg;\r\n var editIndex = gridCoreUtils.getIndexByKey(results[i].key, changes);\r\n var change = changes[editIndex];\r\n var isError = arg && arg instanceof Error;\r\n if (isError) {\r\n if (change) {\r\n this._addInternalData({\r\n key: change.key,\r\n error: arg\r\n })\r\n }\r\n this._fireDataErrorOccurred(arg);\r\n if (this._processRemoveIfError(changes, editIndex)) {\r\n break\r\n }\r\n } else if (this._processRemove(changes, editIndex, cancel)) {\r\n hasSavedData = !cancel\r\n }\r\n }\r\n if (changes.length < changesLength) {\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, changes)\r\n }\r\n return hasSavedData\r\n },\r\n _fireSaveEditDataEvents: function(changes) {\r\n each(changes, (_, _ref) => {\r\n var {\r\n data: data,\r\n key: key,\r\n type: type\r\n } = _ref;\r\n var internalData = this._addInternalData({\r\n key: key\r\n });\r\n var params = {\r\n key: key,\r\n data: data\r\n };\r\n if (internalData.error) {\r\n params.error = internalData.error\r\n }\r\n switch (type) {\r\n case DATA_EDIT_DATA_REMOVE_TYPE:\r\n this.executeAction(\"onRowRemoved\", extend({}, params, {\r\n data: internalData.oldData\r\n }));\r\n break;\r\n case DATA_EDIT_DATA_INSERT_TYPE:\r\n this.executeAction(\"onRowInserted\", params);\r\n break;\r\n case DATA_EDIT_DATA_UPDATE_TYPE:\r\n this.executeAction(\"onRowUpdated\", params)\r\n }\r\n });\r\n this.executeAction(\"onSaved\", {\r\n changes: changes\r\n })\r\n },\r\n saveEditData: function() {\r\n var deferred = new Deferred;\r\n this.waitForDeferredOperations().done(() => {\r\n if (this.isSaving()) {\r\n this._resolveAfterSave(deferred);\r\n return\r\n }\r\n when(this._beforeSaveEditData()).done(cancel => {\r\n if (cancel) {\r\n this._resolveAfterSave(deferred, {\r\n cancel: cancel\r\n });\r\n return\r\n }\r\n this._saving = true;\r\n var options = {};\r\n this._saveEditDataInner(options).always(() => {\r\n this._saving = false;\r\n options.needFocusEditCell && this._focusEditingCell()\r\n }).done(deferred.resolve).fail(deferred.reject)\r\n }).fail(deferred.reject)\r\n }).fail(deferred.reject);\r\n return deferred.promise()\r\n },\r\n _resolveAfterSave: function(deferred) {\r\n var {\r\n cancel: cancel,\r\n error: error\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n when(this._afterSaveEditData(cancel)).done((function() {\r\n deferred.resolve(error)\r\n })).fail(deferred.reject)\r\n },\r\n _saveEditDataInner: function(options) {\r\n var results = [];\r\n var deferreds = [];\r\n var dataChanges = [];\r\n var dataController = this._dataController;\r\n var dataSource = dataController.dataSource();\r\n var result = new Deferred;\r\n when(this._fireOnSaving()).done(_ref2 => {\r\n var {\r\n cancel: cancel,\r\n changes: changes\r\n } = _ref2;\r\n if (cancel) {\r\n return result.resolve().promise()\r\n }\r\n this._processChanges(deferreds, results, dataChanges, changes);\r\n if (deferreds.length) {\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.beginLoading();\r\n when(...deferreds).done(() => {\r\n if (this._processSaveEditDataResult(results)) {\r\n this._endSaving(dataChanges, changes, result)\r\n } else {\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.endLoading();\r\n result.resolve()\r\n }\r\n }).fail(error => {\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.endLoading();\r\n result.resolve(error)\r\n });\r\n return result.always(() => {\r\n options.needFocusEditCell = true\r\n }).promise()\r\n }\r\n this._cancelSaving(result)\r\n }).fail(result.reject);\r\n return result.promise()\r\n },\r\n _beforeEndSaving: function(changes) {\r\n this._resetEditIndices()\r\n },\r\n _endSaving: function(dataChanges, changes, deferred) {\r\n var dataSource = this._dataController.dataSource();\r\n this._beforeEndSaving(changes);\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.endLoading();\r\n this._refreshDataAfterSave(dataChanges, changes, deferred)\r\n },\r\n _cancelSaving: function(result) {\r\n this.executeAction(\"onSaved\", {\r\n changes: []\r\n });\r\n this._resolveAfterSave(result)\r\n },\r\n _refreshDataAfterSave: function(dataChanges, changes, deferred) {\r\n var dataController = this._dataController;\r\n var refreshMode = this.option(\"editing.refreshMode\");\r\n var isFullRefresh = \"reshape\" !== refreshMode && \"repaint\" !== refreshMode;\r\n if (!isFullRefresh) {\r\n dataController.push(dataChanges)\r\n }\r\n when(dataController.refresh({\r\n selection: isFullRefresh,\r\n reload: isFullRefresh,\r\n load: \"reshape\" === refreshMode,\r\n changesOnly: this.option(\"repaintChangesOnly\")\r\n })).always(() => {\r\n this._fireSaveEditDataEvents(changes)\r\n }).done(() => {\r\n this._resolveAfterSave(deferred)\r\n }).fail(error => {\r\n this._resolveAfterSave(deferred, {\r\n error: error\r\n })\r\n })\r\n },\r\n isSaving: function() {\r\n return this._saving\r\n },\r\n _updateEditColumn: function() {\r\n var isEditColumnVisible = this._isEditColumnVisible();\r\n var useIcons = this.option(\"editing.useIcons\");\r\n var cssClass = COMMAND_EDIT_CLASS + (useIcons ? \" \" + COMMAND_EDIT_WITH_ICONS_CLASS : \"\");\r\n this._columnsController.addCommandColumn({\r\n type: \"buttons\",\r\n command: \"edit\",\r\n visible: isEditColumnVisible,\r\n cssClass: cssClass,\r\n width: \"auto\",\r\n alignment: \"center\",\r\n cellTemplate: this._getEditCommandCellTemplate(),\r\n fixedPosition: \"right\"\r\n });\r\n this._columnsController.columnOption(\"command:edit\", {\r\n visible: isEditColumnVisible,\r\n cssClass: cssClass\r\n })\r\n },\r\n _isEditColumnVisible: function() {\r\n var editingOptions = this.option(\"editing\");\r\n return editingOptions.allowDeleting\r\n },\r\n _isEditButtonDisabled: function() {\r\n var hasChanges = this.hasChanges();\r\n var isEditRowDefined = isDefined(this.option(\"editing.editRowKey\"));\r\n return !(isEditRowDefined || hasChanges)\r\n },\r\n _updateEditButtons: function() {\r\n var headerPanel = this.getView(\"headerPanel\");\r\n var isButtonDisabled = this._isEditButtonDisabled();\r\n if (headerPanel) {\r\n headerPanel.setToolbarItemDisabled(\"saveButton\", isButtonDisabled);\r\n headerPanel.setToolbarItemDisabled(\"revertButton\", isButtonDisabled)\r\n }\r\n },\r\n _applyModified: function($element) {\r\n $element && $element.addClass(CELL_MODIFIED)\r\n },\r\n _beforeCloseEditCellInBatchMode: noop,\r\n cancelEditData: function() {\r\n var changes = this.getChanges();\r\n var params = {\r\n cancel: false,\r\n changes: changes\r\n };\r\n this.executeAction(\"onEditCanceling\", params);\r\n if (!params.cancel) {\r\n this._cancelEditDataCore();\r\n this.executeAction(\"onEditCanceled\", {\r\n changes: changes\r\n })\r\n }\r\n },\r\n _cancelEditDataCore: function() {\r\n var rowIndex = this._getVisibleEditRowIndex();\r\n this._beforeCancelEditData();\r\n this.init();\r\n this.resetChanges();\r\n this._resetEditColumnName();\r\n this._resetEditRowKey();\r\n this._afterCancelEditData(rowIndex)\r\n },\r\n _afterCancelEditData: function(rowIndex) {\r\n var dataController = this._dataController;\r\n dataController.updateItems({\r\n repaintChangesOnly: this.option(\"repaintChangesOnly\")\r\n })\r\n },\r\n _hideEditPopup: noop,\r\n hasEditData: function() {\r\n return this.hasChanges()\r\n },\r\n update: function(changeType) {\r\n var dataController = this._dataController;\r\n if (dataController && this._pageIndex !== dataController.pageIndex()) {\r\n if (\"refresh\" === changeType) {\r\n this.refresh({\r\n isPageChanged: true\r\n })\r\n }\r\n this._pageIndex = dataController.pageIndex()\r\n }\r\n this._updateEditButtons()\r\n },\r\n _getRowIndicesForCascadeUpdating: function(row, skipCurrentRow) {\r\n return skipCurrentRow ? [] : [row.rowIndex]\r\n },\r\n addDeferred: function(deferred) {\r\n if (this._deferreds.indexOf(deferred) < 0) {\r\n this._deferreds.push(deferred);\r\n deferred.always(() => {\r\n var index = this._deferreds.indexOf(deferred);\r\n if (index >= 0) {\r\n this._deferreds.splice(index, 1)\r\n }\r\n })\r\n }\r\n },\r\n _prepareChange: function(options, value, text) {\r\n var _options$row;\r\n var newData = {};\r\n var oldData = null === (_options$row = options.row) || void 0 === _options$row ? void 0 : _options$row.data;\r\n var rowKey = options.key;\r\n var deferred = new Deferred;\r\n if (void 0 !== rowKey) {\r\n options.value = value;\r\n var setCellValueResult = fromPromise(options.column.setCellValue(newData, value, extend(true, {}, oldData), text));\r\n setCellValueResult.done((function() {\r\n deferred.resolve({\r\n data: newData,\r\n key: rowKey,\r\n oldData: oldData,\r\n type: DATA_EDIT_DATA_UPDATE_TYPE\r\n })\r\n })).fail(createFailureHandler(deferred)).fail(arg => this._fireDataErrorOccurred(arg));\r\n if (isDefined(text) && options.column.displayValueMap) {\r\n options.column.displayValueMap[value] = text\r\n }\r\n this._updateRowValues(options);\r\n this.addDeferred(deferred)\r\n }\r\n return deferred\r\n },\r\n _updateRowValues: function(options) {\r\n if (options.values) {\r\n var dataController = this._dataController;\r\n var rowIndex = dataController.getRowIndexByKey(options.key);\r\n var row = dataController.getVisibleRows()[rowIndex];\r\n if (row) {\r\n options.values = row.values\r\n }\r\n options.values[options.columnIndex] = options.value\r\n }\r\n },\r\n updateFieldValue: function(options, value, text, forceUpdateRow) {\r\n var rowKey = options.key;\r\n var deferred = new Deferred;\r\n if (void 0 === rowKey) {\r\n this._dataController.fireError(\"E1043\")\r\n }\r\n if (options.column.setCellValue) {\r\n this._prepareChange(options, value, text).done(params => {\r\n when(this._applyChange(options, params, forceUpdateRow)).always(() => {\r\n deferred.resolve()\r\n })\r\n })\r\n } else {\r\n deferred.resolve()\r\n }\r\n return deferred.promise()\r\n },\r\n _focusPreviousEditingCellIfNeed: function(options) {\r\n if (this.hasEditData() && !this.isEditCell(options.rowIndex, options.columnIndex)) {\r\n this._focusEditingCell();\r\n this._updateEditRow(options.row, true);\r\n return true\r\n }\r\n },\r\n _needUpdateRow: function(column) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n if (!column) {\r\n column = this._getEditColumn()\r\n }\r\n var isCustomSetCellValue = column && column.setCellValue !== column.defaultSetCellValue;\r\n var isCustomCalculateCellValue = visibleColumns.some(visibleColumn => visibleColumn.calculateCellValue !== visibleColumn.defaultCalculateCellValue);\r\n return isCustomSetCellValue || isCustomCalculateCellValue\r\n },\r\n _applyChange: function(options, params, forceUpdateRow) {\r\n var changeOptions = _extends({}, options, {\r\n forceUpdateRow: forceUpdateRow\r\n });\r\n this._addChange(params, changeOptions);\r\n this._updateEditButtons();\r\n return this._applyChangeCore(options, changeOptions.forceUpdateRow)\r\n },\r\n _applyChangeCore: function(options, forceUpdateRow) {\r\n var isCustomSetCellValue = options.column.setCellValue !== options.column.defaultSetCellValue;\r\n var row = options.row;\r\n if (row) {\r\n if (forceUpdateRow || isCustomSetCellValue) {\r\n this._updateEditRow(row, forceUpdateRow, isCustomSetCellValue)\r\n } else if (row.update) {\r\n row.update()\r\n }\r\n }\r\n },\r\n _updateEditRowCore: function(row, skipCurrentRow, isCustomSetCellValue) {\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: this._getRowIndicesForCascadeUpdating(row, skipCurrentRow)\r\n })\r\n },\r\n _updateEditRow: function(row, forceUpdateRow, isCustomSetCellValue) {\r\n if (forceUpdateRow) {\r\n this._updateRowImmediately(row, forceUpdateRow, isCustomSetCellValue)\r\n } else {\r\n this._updateRowWithDelay(row, isCustomSetCellValue)\r\n }\r\n },\r\n _updateRowImmediately: function(row, forceUpdateRow, isCustomSetCellValue) {\r\n this._updateEditRowCore(row, !forceUpdateRow, isCustomSetCellValue);\r\n this._validateEditFormAfterUpdate(row, isCustomSetCellValue);\r\n if (!forceUpdateRow) {\r\n this._focusEditingCell()\r\n }\r\n },\r\n _updateRowWithDelay: function(row, isCustomSetCellValue) {\r\n var deferred = new Deferred;\r\n this.addDeferred(deferred);\r\n setTimeout(() => {\r\n var $focusedElement = $(domAdapter.getActiveElement());\r\n var columnIndex = this._rowsView.getCellIndex($focusedElement, row.rowIndex);\r\n var focusedElement = $focusedElement.get(0);\r\n var selectionRange = gridCoreUtils.getSelectionRange(focusedElement);\r\n this._updateEditRowCore(row, false, isCustomSetCellValue);\r\n this._validateEditFormAfterUpdate(row, isCustomSetCellValue);\r\n if (columnIndex >= 0) {\r\n var $focusedItem = this._rowsView._getCellElement(row.rowIndex, columnIndex);\r\n this._delayedInputFocus($focusedItem, () => {\r\n setTimeout(() => {\r\n focusedElement = domAdapter.getActiveElement();\r\n if (selectionRange.selectionStart >= 0) {\r\n gridCoreUtils.setSelectionRange(focusedElement, selectionRange)\r\n }\r\n })\r\n })\r\n }\r\n deferred.resolve()\r\n })\r\n },\r\n _validateEditFormAfterUpdate: noop,\r\n _addChange: function(changeParams, options) {\r\n var _this$getChanges;\r\n var row = null === options || void 0 === options ? void 0 : options.row;\r\n var changes = [...this.getChanges()];\r\n var index = gridCoreUtils.getIndexByKey(changeParams.key, changes);\r\n if (index < 0) {\r\n index = changes.length;\r\n this._addInternalData({\r\n key: changeParams.key,\r\n oldData: changeParams.oldData\r\n });\r\n delete changeParams.oldData;\r\n changes.push(changeParams)\r\n }\r\n var change = _extends({}, changes[index]);\r\n if (change) {\r\n if (changeParams.data) {\r\n change.data = createObjectWithChanges(change.data, changeParams.data)\r\n }\r\n if ((!change.type || !changeParams.data) && changeParams.type) {\r\n change.type = changeParams.type\r\n }\r\n if (row) {\r\n row.oldData = this._getOldData(row.key);\r\n row.data = createObjectWithChanges(row.data, changeParams.data)\r\n }\r\n }\r\n changes[index] = change;\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, changes);\r\n if (options && change !== (null === (_this$getChanges = this.getChanges()) || void 0 === _this$getChanges ? void 0 : _this$getChanges[index])) {\r\n options.forceUpdateRow = true\r\n }\r\n return change\r\n },\r\n _getFormEditItemTemplate: function(cellOptions, column) {\r\n return column.editCellTemplate || this._getDefaultEditorTemplate()\r\n },\r\n getColumnTemplate: function(options) {\r\n var column = options.column;\r\n var rowIndex = options.row && options.row.rowIndex;\r\n var template;\r\n var isRowMode = this.isRowBasedEditMode();\r\n var isRowEditing = this.isEditRow(rowIndex);\r\n var isCellEditing = this.isEditCell(rowIndex, options.columnIndex);\r\n var editingStartOptions;\r\n if ((column.showEditorAlways || column.setCellValue && (isRowEditing && column.allowEditing || isCellEditing)) && (\"data\" === options.rowType || \"detailAdaptive\" === options.rowType) && !column.command) {\r\n var allowUpdating = this.allowUpdating(options);\r\n if (((allowUpdating || isRowEditing) && column.allowEditing || isCellEditing) && (isRowEditing || !isRowMode)) {\r\n if (column.showEditorAlways && !isRowMode) {\r\n editingStartOptions = {\r\n cancel: false,\r\n key: options.row.isNewRow ? void 0 : options.row.key,\r\n data: options.row.data,\r\n column: column\r\n };\r\n this._isEditingStart(editingStartOptions)\r\n }\r\n if (!editingStartOptions || !editingStartOptions.cancel) {\r\n options.setValue = (value, text) => {\r\n this.updateFieldValue(options, value, text)\r\n }\r\n }\r\n }\r\n template = column.editCellTemplate || this._getDefaultEditorTemplate()\r\n } else if (\"detail\" === column.command && \"detail\" === options.rowType && isRowEditing) {\r\n template = null === this || void 0 === this ? void 0 : this.getEditFormTemplate(options)\r\n }\r\n return template\r\n },\r\n _createButton: function($container, button, options, change) {\r\n var icon = EDIT_ICON_CLASS[button.name];\r\n var useIcons = this.option(\"editing.useIcons\");\r\n var useLegacyColumnButtonTemplate = this.option(\"useLegacyColumnButtonTemplate\");\r\n var $button = $(\"\").attr(\"href\", \"#\").addClass(LINK_CLASS).addClass(button.cssClass);\r\n if (button.template && useLegacyColumnButtonTemplate) {\r\n this._rowsView.renderTemplate($container, button.template, options, true)\r\n } else {\r\n if (button.template) {\r\n $button = $(\"\").addClass(button.cssClass)\r\n } else if (useIcons && icon || button.icon) {\r\n icon = button.icon || icon;\r\n var iconType = iconUtils.getImageSourceType(icon);\r\n if (\"image\" === iconType || \"svg\" === iconType) {\r\n $button = iconUtils.getImageContainer(icon).addClass(button.cssClass)\r\n } else {\r\n $button.addClass(\"dx-icon\" + (\"dxIcon\" === iconType ? \"-\" : \" \") + icon).attr(\"title\", button.text)\r\n }\r\n $button.addClass(\"dx-link-icon\");\r\n $container.addClass(COMMAND_EDIT_WITH_ICONS_CLASS);\r\n var localizationName = this.getButtonLocalizationNames()[button.name];\r\n localizationName && $button.attr(\"aria-label\", messageLocalization.format(localizationName))\r\n } else {\r\n $button.text(button.text)\r\n }\r\n if (isDefined(button.hint)) {\r\n $button.attr(\"title\", button.hint)\r\n }\r\n if (this._isButtonDisabled(button, options)) {\r\n $button.addClass(\"dx-state-disabled\")\r\n } else if (!button.template || button.onClick) {\r\n eventsEngine.on($button, addNamespace(\"click\", EDITING_NAMESPACE), this.createAction((function(e) {\r\n var _button$onClick;\r\n null === (_button$onClick = button.onClick) || void 0 === _button$onClick ? void 0 : _button$onClick.call(button, extend({}, e, {\r\n row: options.row,\r\n column: options.column\r\n }));\r\n e.event.preventDefault();\r\n e.event.stopPropagation()\r\n })))\r\n }\r\n $container.append($button, \" \");\r\n if (button.template) {\r\n this._rowsView.renderTemplate($button, button.template, options, true, change)\r\n }\r\n }\r\n },\r\n getButtonLocalizationNames: () => ({\r\n edit: \"dxDataGrid-editingEditRow\",\r\n save: \"dxDataGrid-editingSaveRowChanges\",\r\n delete: \"dxDataGrid-editingDeleteRow\",\r\n undelete: \"dxDataGrid-editingUndeleteRow\",\r\n cancel: \"dxDataGrid-editingCancelRowChanges\"\r\n }),\r\n prepareButtonItem: function(headerPanel, name, methodName, sortIndex) {\r\n var editingTexts = this.option(\"editing.texts\") || {};\r\n var titleButtonTextByClassNames = {\r\n revert: editingTexts.cancelAllChanges,\r\n save: editingTexts.saveAllChanges,\r\n addRow: editingTexts.addRow\r\n };\r\n var className = {\r\n revert: \"cancel\",\r\n save: \"save\",\r\n addRow: \"addrow\"\r\n } [name];\r\n var hintText = titleButtonTextByClassNames[name];\r\n var isButtonDisabled = (\"save\" === className || \"cancel\" === className) && this._isEditButtonDisabled();\r\n return {\r\n widget: \"dxButton\",\r\n options: {\r\n onInitialized: e => {\r\n $(e.element).addClass(headerPanel._getToolbarButtonClass(EDIT_BUTTON_CLASS + \" \" + this.addWidgetPrefix(className) + \"-button\"))\r\n },\r\n icon: \"edit-button-\" + className,\r\n disabled: isButtonDisabled,\r\n onClick: () => {\r\n setTimeout(() => {\r\n this[methodName]()\r\n })\r\n },\r\n text: hintText,\r\n hint: hintText\r\n },\r\n showText: \"inMenu\",\r\n name: name + \"Button\",\r\n location: \"after\",\r\n locateInMenu: \"auto\",\r\n sortIndex: sortIndex\r\n }\r\n },\r\n prepareEditButtons: function(headerPanel) {\r\n var editingOptions = this.option(\"editing\") || {};\r\n var buttonItems = [];\r\n if (editingOptions.allowAdding) {\r\n buttonItems.push(this.prepareButtonItem(headerPanel, \"addRow\", \"addRow\", 20))\r\n }\r\n return buttonItems\r\n },\r\n highlightDataCell: function($cell, params) {\r\n this.shouldHighlightCell(params) && $cell.addClass(CELL_MODIFIED)\r\n },\r\n _afterInsertRow: noop,\r\n _beforeSaveEditData: function(change) {\r\n if (change && !isDefined(change.key) && isDefined(change.type)) {\r\n return true\r\n }\r\n },\r\n _afterSaveEditData: noop,\r\n _beforeCancelEditData: noop,\r\n _allowEditAction: function(actionName, options) {\r\n var allowEditAction = this.option(\"editing.\" + actionName);\r\n if (isFunction(allowEditAction)) {\r\n allowEditAction = allowEditAction({\r\n component: this.component,\r\n row: options.row\r\n })\r\n }\r\n return allowEditAction\r\n },\r\n allowUpdating: function(options, eventName) {\r\n var startEditAction = this.option(\"editing.startEditAction\") || DEFAULT_START_EDIT_ACTION;\r\n var needCallback = arguments.length > 1 ? startEditAction === eventName || \"down\" === eventName : true;\r\n return needCallback && this._allowEditAction(\"allowUpdating\", options)\r\n },\r\n allowDeleting: function(options) {\r\n return this._allowEditAction(\"allowDeleting\", options)\r\n },\r\n isCellModified: function(parameters) {\r\n var columnIndex = parameters.columnIndex;\r\n var modifiedValues = parameters.row && (parameters.row.isNewRow ? parameters.row.values : parameters.row.modifiedValues);\r\n return !!modifiedValues && void 0 !== modifiedValues[columnIndex]\r\n },\r\n isNewRowInEditMode: function() {\r\n var visibleEditRowIndex = this._getVisibleEditRowIndex();\r\n var rows = this._dataController.items();\r\n return visibleEditRowIndex >= 0 ? rows[visibleEditRowIndex].isNewRow : false\r\n },\r\n shouldHighlightCell: function(parameters) {\r\n var cellModified = this.isCellModified(parameters);\r\n return cellModified && parameters.column.setCellValue && (this.getEditMode() !== EDIT_MODE_ROW || !parameters.row.isEditing)\r\n }\r\n }\r\n}());\r\nexport var editingModule = {\r\n defaultOptions: function() {\r\n return {\r\n editing: {\r\n mode: \"row\",\r\n refreshMode: \"full\",\r\n newRowPosition: VIEWPORT_TOP_NEW_ROW_POSITION,\r\n allowAdding: false,\r\n allowUpdating: false,\r\n allowDeleting: false,\r\n useIcons: false,\r\n selectTextOnEditStart: false,\r\n confirmDelete: true,\r\n texts: {\r\n editRow: messageLocalization.format(\"dxDataGrid-editingEditRow\"),\r\n saveAllChanges: messageLocalization.format(\"dxDataGrid-editingSaveAllChanges\"),\r\n saveRowChanges: messageLocalization.format(\"dxDataGrid-editingSaveRowChanges\"),\r\n cancelAllChanges: messageLocalization.format(\"dxDataGrid-editingCancelAllChanges\"),\r\n cancelRowChanges: messageLocalization.format(\"dxDataGrid-editingCancelRowChanges\"),\r\n addRow: messageLocalization.format(\"dxDataGrid-editingAddRow\"),\r\n deleteRow: messageLocalization.format(\"dxDataGrid-editingDeleteRow\"),\r\n undeleteRow: messageLocalization.format(\"dxDataGrid-editingUndeleteRow\"),\r\n confirmDeleteMessage: messageLocalization.format(\"dxDataGrid-editingConfirmDeleteMessage\"),\r\n confirmDeleteTitle: \"\"\r\n },\r\n form: {\r\n colCount: 2\r\n },\r\n popup: {},\r\n startEditAction: \"click\",\r\n editRowKey: null,\r\n editColumnName: null,\r\n changes: []\r\n },\r\n useLegacyColumnButtonTemplate: false\r\n }\r\n },\r\n controllers: {\r\n editing: EditingController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n init: function() {\r\n this._editingController = this.getController(\"editing\");\r\n this.callBase()\r\n },\r\n reload: function(full, repaintChangesOnly) {\r\n !repaintChangesOnly && this._editingController.refresh();\r\n return this.callBase.apply(this, arguments)\r\n },\r\n repaintRows: function() {\r\n if (this.getController(\"editing\").isSaving()) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _updateEditRow: function(items) {\r\n var editRowKey = this.option(EDITING_EDITROWKEY_OPTION_NAME);\r\n var editRowIndex = gridCoreUtils.getIndexByKey(editRowKey, items);\r\n var editItem = items[editRowIndex];\r\n if (editItem) {\r\n var _this$_updateEditItem;\r\n editItem.isEditing = true;\r\n null === (_this$_updateEditItem = this._updateEditItem) || void 0 === _this$_updateEditItem ? void 0 : _this$_updateEditItem.call(this, editItem)\r\n }\r\n },\r\n _updateItemsCore: function(change) {\r\n this.callBase(change);\r\n this._updateEditRow(this.items(true))\r\n },\r\n _applyChangeUpdate: function(change) {\r\n this._updateEditRow(change.items);\r\n this.callBase(change)\r\n },\r\n _applyChangesOnly: function(change) {\r\n this._updateEditRow(change.items);\r\n this.callBase(change)\r\n },\r\n _processItems: function(items, change) {\r\n items = this._editingController.processItems(items, change);\r\n return this.callBase(items, change)\r\n },\r\n _processDataItem: function(dataItem, options) {\r\n this._editingController.processDataItem(dataItem, options, this.generateDataValues);\r\n return this.callBase(dataItem, options)\r\n },\r\n _processItem: function(item, options) {\r\n item = this.callBase(item, options);\r\n if (item.isNewRow) {\r\n options.dataIndex--;\r\n delete item.dataIndex\r\n }\r\n return item\r\n },\r\n _getChangedColumnIndices: function(oldItem, newItem, rowIndex, isLiveUpdate) {\r\n if (oldItem.isNewRow !== newItem.isNewRow || oldItem.removed !== newItem.removed) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _isCellChanged: function(oldRow, newRow, visibleRowIndex, columnIndex, isLiveUpdate) {\r\n var editingController = this.getController(\"editing\");\r\n var cell = oldRow.cells && oldRow.cells[columnIndex];\r\n var isEditing = editingController && editingController.isEditCell(visibleRowIndex, columnIndex);\r\n if (isLiveUpdate && isEditing) {\r\n return false\r\n }\r\n if (cell && cell.column && !cell.column.showEditorAlways && cell.isEditing !== isEditing) {\r\n return true\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n needToRefreshOnDataSourceChange: function(args) {\r\n var editingController = this.getController(\"editing\");\r\n var isParasiteChange = Array.isArray(args.value) && args.value === args.previousValue && editingController.isSaving();\r\n return !isParasiteChange\r\n },\r\n _handleDataSourceChange(args) {\r\n var result = this.callBase(args);\r\n var changes = this.option(\"editing.changes\");\r\n var dataSource = args.value;\r\n if (Array.isArray(dataSource) && changes.length) {\r\n var dataSourceKeys = dataSource.map(item => this.keyOf(item));\r\n var newChanges = changes.filter(change => \"insert\" === change.type || dataSourceKeys.some(key => equalByValue(change.key, key)));\r\n if (newChanges.length !== changes.length) {\r\n this.option(\"editing.changes\", newChanges)\r\n }\r\n var editRowKey = this.option(\"editing.editRowKey\");\r\n var isEditNewItem = newChanges.some(change => \"insert\" === change.type && equalByValue(editRowKey, change.key));\r\n if (!isEditNewItem && dataSourceKeys.every(key => !equalByValue(editRowKey, key))) {\r\n this.option(\"editing.editRowKey\", null)\r\n }\r\n }\r\n return result\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n init: function() {\r\n this.callBase();\r\n this._editingController = this.getController(\"editing\")\r\n },\r\n getCellIndex: function($cell, rowIndex) {\r\n if (!$cell.is(\"td\") && rowIndex >= 0) {\r\n var $cellElements = this.getCellElements(rowIndex);\r\n var cellIndex = -1;\r\n each($cellElements, (function(index, cellElement) {\r\n if ($(cellElement).find($cell).length) {\r\n cellIndex = index\r\n }\r\n }));\r\n return cellIndex\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n publicMethods: function() {\r\n return this.callBase().concat([\"cellValue\"])\r\n },\r\n _getCellTemplate: function(options) {\r\n var template = this._editingController.getColumnTemplate(options);\r\n return template || this.callBase(options)\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row) {\r\n var isRowRemoved = !!row.removed;\r\n var isRowInserted = !!row.isNewRow;\r\n var isRowModified = !!row.modified;\r\n isRowInserted && $row.addClass(ROW_INSERTED);\r\n isRowModified && $row.addClass(ROW_MODIFIED);\r\n if (isRowInserted || isRowRemoved) {\r\n $row.removeClass(ROW_SELECTED)\r\n }\r\n }\r\n return $row\r\n },\r\n _getColumnIndexByElement: function($element) {\r\n var $tableElement = $element.closest(\"table\");\r\n var $tableElements = this.getTableElements();\r\n while ($tableElement.length && !$tableElements.filter($tableElement).length) {\r\n $element = $tableElement.closest(\"td\");\r\n $tableElement = $element.closest(\"table\")\r\n }\r\n return this._getColumnIndexByElementCore($element)\r\n },\r\n _getColumnIndexByElementCore: function($element) {\r\n var $targetElement = $element.closest(\".\" + ROW_CLASS + \"> td:not(.dx-master-detail-cell)\");\r\n return this.getCellIndex($targetElement)\r\n },\r\n _editCellByClick: function(e, eventName) {\r\n var editingController = this._editingController;\r\n var $targetElement = $(e.event.target);\r\n var columnIndex = this._getColumnIndexByElement($targetElement);\r\n var row = this._dataController.items()[e.rowIndex];\r\n var allowUpdating = editingController.allowUpdating({\r\n row: row\r\n }, eventName) || row && row.isNewRow;\r\n var column = this._columnsController.getVisibleColumns()[columnIndex];\r\n var isEditedCell = editingController.isEditCell(e.rowIndex, columnIndex);\r\n var allowEditing = allowUpdating && column && (column.allowEditing || isEditedCell);\r\n var startEditAction = this.option(\"editing.startEditAction\") || \"click\";\r\n if (\"down\" === eventName) {\r\n if ((devices.real().ios || devices.real().android) && !isEditedCell) {\r\n resetActiveElement()\r\n }\r\n return column && column.showEditorAlways && allowEditing && editingController.editCell(e.rowIndex, columnIndex)\r\n }\r\n if (\"click\" === eventName && \"dblClick\" === startEditAction && !isEditedCell) {\r\n var withoutSaveEditData = null === row || void 0 === row ? void 0 : row.isNewRow;\r\n editingController.closeEditCell(false, withoutSaveEditData)\r\n }\r\n if (allowEditing && eventName === startEditAction) {\r\n return editingController.editCell(e.rowIndex, columnIndex) || editingController.isEditRow(e.rowIndex)\r\n }\r\n },\r\n _rowPointerDown: function(e) {\r\n this._pointerDownTimeout = setTimeout(() => {\r\n this._editCellByClick(e, \"down\")\r\n })\r\n },\r\n _rowClick: function(e) {\r\n var isEditForm = $(e.rowElement).hasClass(this.addWidgetPrefix(EDIT_FORM_CLASS));\r\n e.event[TARGET_COMPONENT_NAME] = this.component;\r\n if (!this._editCellByClick(e, \"click\") && !isEditForm) {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _rowDblClick: function(e) {\r\n if (!this._editCellByClick(e, \"dblClick\")) {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _cellPrepared: function($cell, parameters) {\r\n var _parameters$column;\r\n var editingController = this._editingController;\r\n var isCommandCell = !!parameters.column.command;\r\n var isEditableCell = parameters.setValue;\r\n var isEditRow = editingController.isEditRow(parameters.rowIndex);\r\n var isEditing = isEditingCell(isEditRow, parameters);\r\n if (isEditingOrShowEditorAlwaysDataCell(isEditRow, parameters)) {\r\n var alignment = parameters.column.alignment;\r\n $cell.toggleClass(this.addWidgetPrefix(READONLY_CLASS), !isEditableCell).toggleClass(CELL_FOCUS_DISABLED_CLASS, !isEditableCell);\r\n if (alignment) {\r\n $cell.find(EDITORS_INPUT_SELECTOR).first().css(\"textAlign\", alignment)\r\n }\r\n }\r\n if (isEditing) {\r\n this._editCellPrepared($cell)\r\n }\r\n var hasTemplate = !!(null !== (_parameters$column = parameters.column) && void 0 !== _parameters$column && _parameters$column.cellTemplate);\r\n if (parameters.column && !isCommandCell && (!hasTemplate || editingController.shouldHighlightCell(parameters))) {\r\n editingController.highlightDataCell($cell, parameters)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _editCellPrepared: noop,\r\n _formItemPrepared: noop,\r\n _getCellOptions: function(options) {\r\n var cellOptions = this.callBase(options);\r\n cellOptions.isEditing = this._editingController.isEditCell(cellOptions.rowIndex, cellOptions.columnIndex);\r\n return cellOptions\r\n },\r\n _createCell: function(options) {\r\n var $cell = this.callBase(options);\r\n var isEditRow = this._editingController.isEditRow(options.rowIndex);\r\n isEditingOrShowEditorAlwaysDataCell(isEditRow, options) && $cell.addClass(EDITOR_CELL_CLASS);\r\n return $cell\r\n },\r\n cellValue: function(rowIndex, columnIdentifier, value, text) {\r\n var cellOptions = this.getCellOptions(rowIndex, columnIdentifier);\r\n if (cellOptions) {\r\n if (void 0 === value) {\r\n return cellOptions.value\r\n } else {\r\n this._editingController.updateFieldValue(cellOptions, value, text, true)\r\n }\r\n }\r\n },\r\n dispose: function() {\r\n this.callBase.apply(this, arguments);\r\n clearTimeout(this._pointerDownTimeout)\r\n },\r\n _renderCore: function() {\r\n this.callBase.apply(this, arguments);\r\n this._editingController._focusEditorIfNeed()\r\n }\r\n },\r\n headerPanel: {\r\n _getToolbarItems: function() {\r\n var items = this.callBase();\r\n var editButtonItems = this.getController(\"editing\").prepareEditButtons(this);\r\n return editButtonItems.concat(items)\r\n },\r\n optionChanged: function(args) {\r\n var fullName = args.fullName;\r\n switch (args.name) {\r\n case \"editing\":\r\n var excludedOptions = [EDITING_POPUP_OPTION_NAME, EDITING_CHANGES_OPTION_NAME, EDITING_EDITCOLUMNNAME_OPTION_NAME, EDITING_EDITROWKEY_OPTION_NAME];\r\n var shouldInvalidate = fullName && !excludedOptions.some(optionName => optionName === fullName);\r\n shouldInvalidate && this._invalidate();\r\n this.callBase(args);\r\n break;\r\n case \"useLegacyColumnButtonTemplate\":\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n isVisible: function() {\r\n var editingOptions = this.getController(\"editing\").option(\"editing\");\r\n return this.callBase() || (null === editingOptions || void 0 === editingOptions ? void 0 : editingOptions.allowAdding)\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.editing.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"./ui.data_grid.editor_factory\";\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n editingModule\r\n} from \"../grid_core/ui.grid_core.editing\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\ngridCore.registerModule(\"editing\", extend(true, {}, editingModule, {\r\n extenders: {\r\n controllers: {\r\n data: {\r\n _changeRowExpandCore: function(key) {\r\n var editingController = this._editingController;\r\n if (Array.isArray(key)) {\r\n editingController && editingController.refresh()\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/grid_core/ui.grid_core.editing_row_based.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n EDIT_MODE_ROW,\r\n MODES_WITH_DELAYED_FOCUS,\r\n ROW_SELECTED_CLASS,\r\n EDIT_FORM_CLASS\r\n} from \"./ui.grid_core.editing_constants\";\r\nvar EDIT_ROW = \"dx-edit-row\";\r\nexport var editingRowBasedModule = {\r\n extenders: {\r\n controllers: {\r\n editing: {\r\n isRowEditMode: function() {\r\n return this.getEditMode() === EDIT_MODE_ROW\r\n },\r\n _afterCancelEditData: function(rowIndex) {\r\n var dataController = this._dataController;\r\n if (this.isRowBasedEditMode() && rowIndex >= 0) {\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [rowIndex, rowIndex + 1]\r\n })\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _isDefaultButtonVisible: function(button, options) {\r\n var isRowMode = this.isRowBasedEditMode();\r\n var isEditRow = options.row && options.row.rowIndex === this._getVisibleEditRowIndex();\r\n if (isRowMode) {\r\n switch (button.name) {\r\n case \"edit\":\r\n return !isEditRow && this.allowUpdating(options);\r\n case \"delete\":\r\n return this.callBase.apply(this, arguments) && !isEditRow;\r\n case \"save\":\r\n case \"cancel\":\r\n return isEditRow;\r\n default:\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n isEditRow: function(rowIndex) {\r\n return this.isRowBasedEditMode() && this.isEditRowByIndex(rowIndex)\r\n },\r\n _cancelSaving: function() {\r\n if (this.isRowBasedEditMode()) {\r\n if (!this.hasChanges()) {\r\n this._cancelEditDataCore()\r\n }\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _refreshCore: function(params) {\r\n var {\r\n allowCancelEditing: allowCancelEditing\r\n } = null !== params && void 0 !== params ? params : {};\r\n if (this.isRowBasedEditMode()) {\r\n var hasUpdateChanges = this.getChanges().filter(it => \"update\" === it.type).length > 0;\r\n this.init();\r\n allowCancelEditing && hasUpdateChanges && this._cancelEditDataCore()\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _isEditColumnVisible: function() {\r\n var result = this.callBase.apply(this, arguments);\r\n var editingOptions = this.option(\"editing\");\r\n var isRowEditMode = this.isRowEditMode();\r\n var isVisibleInRowEditMode = editingOptions.allowUpdating || editingOptions.allowAdding;\r\n return result || isRowEditMode && isVisibleInRowEditMode\r\n },\r\n _focusEditorIfNeed: function() {\r\n var editMode = this.getEditMode();\r\n if (this._needFocusEditor) {\r\n if (-1 !== MODES_WITH_DELAYED_FOCUS.indexOf(editMode)) {\r\n var $editingCell = this.getFocusedCellInRow(this._getVisibleEditRowIndex());\r\n this._delayedInputFocus($editingCell, () => {\r\n $editingCell && this.component.focus($editingCell)\r\n })\r\n }\r\n this._needFocusEditor = false\r\n }\r\n }\r\n },\r\n data: {\r\n _getChangedColumnIndices: function(oldItem, newItem, rowIndex, isLiveUpdate) {\r\n var editingController = this.getController(\"editing\");\r\n if (editingController.isRowBasedEditMode() && oldItem.isEditing !== newItem.isEditing) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n _createRow: function(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row) {\r\n var editingController = this._editingController;\r\n var isEditRow = editingController.isEditRow(row.rowIndex);\r\n if (isEditRow) {\r\n $row.addClass(EDIT_ROW);\r\n $row.removeClass(ROW_SELECTED_CLASS);\r\n if (\"detail\" === row.rowType) {\r\n $row.addClass(this.addWidgetPrefix(EDIT_FORM_CLASS))\r\n }\r\n }\r\n }\r\n return $row\r\n },\r\n _update: function(change) {\r\n this.callBase(change);\r\n if (\"updateSelection\" === change.changeType) {\r\n this.getTableElements().children(\"tbody\").children(\".\" + EDIT_ROW).removeClass(ROW_SELECTED_CLASS)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.editing_row_based.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n editingRowBasedModule\r\n} from \"../grid_core/ui.grid_core.editing_row_based\";\r\ngridCore.registerModule(\"editingRowBased\", editingRowBasedModule);\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.items_runtime_info.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport 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 findGroupOrTabLayoutManagerByPath(targetPath) {\r\n return this._findFieldByCondition(_ref2 => {\r\n var {\r\n path: path\r\n } = _ref2;\r\n return path === targetPath\r\n }, \"layoutManager\")\r\n }\r\n findKeyByPath(targetPath) {\r\n return this._findFieldByCondition(_ref3 => {\r\n var {\r\n path: path\r\n } = _ref3;\r\n return path === targetPath\r\n }, \"guid\")\r\n }\r\n findWidgetInstanceByName(name) {\r\n return this._findWidgetInstance(item => name === item.name)\r\n }\r\n findWidgetInstanceByDataField(dataField) {\r\n return this._findWidgetInstance(item => dataField === (isString(item) ? item : item.dataField))\r\n }\r\n findItemContainerByItem(item) {\r\n for (var key in this._map) {\r\n if (this._map[key].item === item) {\r\n return this._map[key].$itemContainer\r\n }\r\n }\r\n return null\r\n }\r\n findItemIndexByItem(targetItem) {\r\n return this._findFieldByCondition(_ref4 => {\r\n var {\r\n item: item\r\n } = _ref4;\r\n return item === targetItem\r\n }, \"itemIndex\")\r\n }\r\n findPreparedItemByItem(item) {\r\n return this._findFieldByCondition(_ref5 => {\r\n var {\r\n item: currentItem\r\n } = _ref5;\r\n return currentItem === item\r\n }, \"preparedItem\")\r\n }\r\n getItems() {\r\n return this._map\r\n }\r\n each(handler) {\r\n each(this._map, (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 => {\r\n if (this._map[key].path) {\r\n return this._map[key].path.indexOf(path, 0) > -1\r\n }\r\n return false\r\n });\r\n filteredKeys.forEach(key => this.removeItemByKey(key))\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/multi_view/ui.multi_view.animation.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nexport var _translator = {\r\n move($element, position) {\r\n move($element, {\r\n left: position\r\n })\r\n }\r\n};\r\nexport var animation = {\r\n moveTo($element, position, duration, completeAction) {\r\n fx.animate($element, {\r\n type: \"slide\",\r\n to: {\r\n left: position\r\n },\r\n duration: duration,\r\n complete: completeAction\r\n })\r\n },\r\n complete($element) {\r\n fx.stop($element, true)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/multi_view.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n locate\r\n} from \"../animation/translator\";\r\nimport {\r\n _translator,\r\n animation\r\n} from \"./multi_view/ui.multi_view.animation\";\r\nimport {\r\n sign\r\n} from \"../core/utils/math\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n noop,\r\n deferRender\r\n} from \"../core/utils/common\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../events/visibility_change\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport devices from \"../core/devices\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.live_update\";\r\nimport Swipeable from \"../events/gesture/swipeable\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nvar MULTIVIEW_CLASS = \"dx-multiview\";\r\nvar MULTIVIEW_WRAPPER_CLASS = \"dx-multiview-wrapper\";\r\nvar MULTIVIEW_ITEM_CONTAINER_CLASS = \"dx-multiview-item-container\";\r\nvar MULTIVIEW_ITEM_CLASS = \"dx-multiview-item\";\r\nvar MULTIVIEW_ITEM_HIDDEN_CLASS = \"dx-multiview-item-hidden\";\r\nvar MULTIVIEW_ITEM_DATA_KEY = \"dxMultiViewItemData\";\r\nvar MULTIVIEW_ANIMATION_DURATION = 200;\r\nvar toNumber = value => +value;\r\nvar position = $element => locate($element).left;\r\nvar MultiView = CollectionWidget.inherit({\r\n _activeStateUnit: \".\" + MULTIVIEW_ITEM_CLASS,\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n pageUp: noop,\r\n pageDown: noop\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n selectedIndex: 0,\r\n swipeEnabled: true,\r\n animationEnabled: true,\r\n loop: false,\r\n deferRendering: true,\r\n _itemAttributes: {\r\n role: \"tabpanel\"\r\n },\r\n loopItemFocus: false,\r\n selectOnFocus: true,\r\n selectionMode: \"single\",\r\n selectionRequired: true,\r\n selectionByClick: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _itemClass: function() {\r\n return MULTIVIEW_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return MULTIVIEW_ITEM_DATA_KEY\r\n },\r\n _itemContainer: function() {\r\n return this._$itemContainer\r\n },\r\n _itemElements: function() {\r\n return this._itemContainer().children(this._itemSelector())\r\n },\r\n _itemWidth: function() {\r\n if (!this._itemWidthValue) {\r\n this._itemWidthValue = getWidth(this._$wrapper)\r\n }\r\n return this._itemWidthValue\r\n },\r\n _clearItemWidthCache: function() {\r\n delete this._itemWidthValue\r\n },\r\n _itemsCount: function() {\r\n return this.option(\"items\").length\r\n },\r\n _normalizeIndex: function(index) {\r\n var count = this._itemsCount();\r\n if (index < 0) {\r\n index += count\r\n }\r\n if (index >= count) {\r\n index -= count\r\n }\r\n return index\r\n },\r\n _getRTLSignCorrection: function() {\r\n return this.option(\"rtlEnabled\") ? -1 : 1\r\n },\r\n _init: function() {\r\n this.callBase.apply(this, arguments);\r\n var $element = this.$element();\r\n $element.addClass(MULTIVIEW_CLASS);\r\n this._$wrapper = $(\"
\").addClass(MULTIVIEW_WRAPPER_CLASS);\r\n this._$wrapper.appendTo($element);\r\n this._$itemContainer = $(\"
\").addClass(MULTIVIEW_ITEM_CONTAINER_CLASS);\r\n this._$itemContainer.appendTo(this._$wrapper);\r\n this.option(\"loopItemFocus\", this.option(\"loop\"));\r\n this._initSwipeable()\r\n },\r\n _initMarkup: function() {\r\n this._deferredItems = [];\r\n this.callBase();\r\n var selectedItemIndices = this._getSelectedItemIndices();\r\n this._updateItemsVisibility(selectedItemIndices[0])\r\n },\r\n _afterItemElementDeleted: function($item, deletedActionArgs) {\r\n this.callBase($item, deletedActionArgs);\r\n if (this._deferredItems) {\r\n this._deferredItems.splice(deletedActionArgs.itemIndex, 1)\r\n }\r\n },\r\n _beforeItemElementInserted: function(change) {\r\n this.callBase.apply(this, arguments);\r\n if (this._deferredItems) {\r\n this._deferredItems.splice(change.index, 0, null)\r\n }\r\n },\r\n _executeItemRenderAction: function(index, itemData, itemElement) {\r\n index = (this.option(\"items\") || []).indexOf(itemData);\r\n this.callBase(index, itemData, itemElement)\r\n },\r\n _renderItemContent: function(args) {\r\n var renderContentDeferred = new Deferred;\r\n var that = this;\r\n var callBase = this.callBase;\r\n var deferred = new Deferred;\r\n deferred.done((function() {\r\n var $itemContent = callBase.call(that, args);\r\n renderContentDeferred.resolve($itemContent)\r\n }));\r\n this._deferredItems[args.index] = deferred;\r\n this.option(\"deferRendering\") || deferred.resolve();\r\n return renderContentDeferred.promise()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n deferRender(() => {\r\n var selectedItemIndices = this._getSelectedItemIndices();\r\n this._updateItems(selectedItemIndices[0])\r\n })\r\n },\r\n _updateItems: function(selectedIndex, newIndex) {\r\n this._updateItemsPosition(selectedIndex, newIndex);\r\n this._updateItemsVisibility(selectedIndex, newIndex)\r\n },\r\n _modifyByChanges: function() {\r\n this.callBase.apply(this, arguments);\r\n var selectedItemIndices = this._getSelectedItemIndices();\r\n this._updateItemsVisibility(selectedItemIndices[0])\r\n },\r\n _updateItemsPosition: function(selectedIndex, newIndex) {\r\n var $itemElements = this._itemElements();\r\n var positionSign = isDefined(newIndex) ? -this._animationDirection(newIndex, selectedIndex) : void 0;\r\n var $selectedItem = $itemElements.eq(selectedIndex);\r\n _translator.move($selectedItem, 0);\r\n if (isDefined(newIndex)) {\r\n _translator.move($itemElements.eq(newIndex), 100 * positionSign + \"%\")\r\n }\r\n },\r\n _updateItemsVisibility: function(selectedIndex, newIndex) {\r\n var $itemElements = this._itemElements();\r\n $itemElements.each(function(itemIndex, item) {\r\n var $item = $(item);\r\n var isHidden = itemIndex !== selectedIndex && itemIndex !== newIndex;\r\n if (!isHidden) {\r\n this._renderSpecificItem(itemIndex)\r\n }\r\n $item.toggleClass(MULTIVIEW_ITEM_HIDDEN_CLASS, isHidden);\r\n this.setAria(\"hidden\", isHidden || void 0, $item)\r\n }.bind(this))\r\n },\r\n _renderSpecificItem: function(index) {\r\n var $item = this._itemElements().eq(index);\r\n var hasItemContent = $item.find(this._itemContentClass()).length > 0;\r\n if (isDefined(index) && !hasItemContent) {\r\n this._deferredItems[index].resolve();\r\n triggerResizeEvent($item)\r\n }\r\n },\r\n _refreshItem: function($item, item) {\r\n this.callBase($item, item);\r\n this._updateItemsVisibility(this.option(\"selectedIndex\"))\r\n },\r\n _setAriaSelected: noop,\r\n _updateSelection: function(addedSelection, removedSelection) {\r\n var newIndex = addedSelection[0];\r\n var prevIndex = removedSelection[0];\r\n animation.complete(this._$itemContainer);\r\n this._updateItems(prevIndex, newIndex);\r\n var animationDirection = this._animationDirection(newIndex, prevIndex);\r\n this._animateItemContainer(animationDirection * this._itemWidth(), function() {\r\n _translator.move(this._$itemContainer, 0);\r\n this._updateItems(newIndex);\r\n getWidth(this._$itemContainer)\r\n }.bind(this))\r\n },\r\n _animateItemContainer: function(position, completeCallback) {\r\n var duration = this.option(\"animationEnabled\") ? MULTIVIEW_ANIMATION_DURATION : 0;\r\n animation.moveTo(this._$itemContainer, position, duration, completeCallback)\r\n },\r\n _animationDirection: function(newIndex, prevIndex) {\r\n var containerPosition = position(this._$itemContainer);\r\n var indexDifference = (prevIndex - newIndex) * this._getRTLSignCorrection() * this._getItemFocusLoopSignCorrection();\r\n var isSwipePresent = 0 !== containerPosition;\r\n var directionSignVariable = isSwipePresent ? containerPosition : indexDifference;\r\n return sign(directionSignVariable)\r\n },\r\n _getSwipeDisabledState() {\r\n return !this.option(\"swipeEnabled\") || this._itemsCount() <= 1\r\n },\r\n _initSwipeable() {\r\n this._createComponent(this.$element(), Swipeable, {\r\n disabled: this._getSwipeDisabledState(),\r\n elastic: false,\r\n itemSizeFunc: this._itemWidth.bind(this),\r\n onStart: args => this._swipeStartHandler(args.event),\r\n onUpdated: args => this._swipeUpdateHandler(args.event),\r\n onEnd: args => this._swipeEndHandler(args.event)\r\n })\r\n },\r\n _swipeStartHandler: function(e) {\r\n animation.complete(this._$itemContainer);\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var loop = this.option(\"loop\");\r\n var lastIndex = this._itemsCount() - 1;\r\n var rtl = this.option(\"rtlEnabled\");\r\n e.maxLeftOffset = toNumber(loop || (rtl ? selectedIndex > 0 : selectedIndex < lastIndex));\r\n e.maxRightOffset = toNumber(loop || (rtl ? selectedIndex < lastIndex : selectedIndex > 0));\r\n this._swipeDirection = null\r\n },\r\n _swipeUpdateHandler: function(e) {\r\n var offset = e.offset;\r\n var swipeDirection = sign(offset) * this._getRTLSignCorrection();\r\n _translator.move(this._$itemContainer, offset * this._itemWidth());\r\n if (swipeDirection !== this._swipeDirection) {\r\n this._swipeDirection = swipeDirection;\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var newIndex = this._normalizeIndex(selectedIndex - swipeDirection);\r\n this._updateItems(selectedIndex, newIndex)\r\n }\r\n },\r\n _swipeEndHandler: function(e) {\r\n var targetOffset = e.targetOffset * this._getRTLSignCorrection();\r\n if (targetOffset) {\r\n this.option(\"selectedIndex\", this._normalizeIndex(this.option(\"selectedIndex\") - targetOffset));\r\n var $selectedElement = this.itemElements().filter(\".dx-item-selected\");\r\n this.option(\"focusStateEnabled\") && this.option(\"focusedElement\", getPublicElement($selectedElement))\r\n } else {\r\n this._animateItemContainer(0, noop)\r\n }\r\n },\r\n _getItemFocusLoopSignCorrection: function() {\r\n return this._itemFocusLooped ? -1 : 1\r\n },\r\n _moveFocus: function() {\r\n this.callBase.apply(this, arguments);\r\n this._itemFocusLooped = false\r\n },\r\n _prevItem: function($items) {\r\n var $result = this.callBase.apply(this, arguments);\r\n this._itemFocusLooped = $result.is($items.last());\r\n return $result\r\n },\r\n _nextItem: function($items) {\r\n var $result = this.callBase.apply(this, arguments);\r\n this._itemFocusLooped = $result.is($items.first());\r\n return $result\r\n },\r\n _dimensionChanged: function() {\r\n this._clearItemWidthCache()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _updateSwipeDisabledState() {\r\n var disabled = this._getSwipeDisabledState();\r\n Swipeable.getInstance(this.$element()).option(\"disabled\", disabled)\r\n },\r\n _optionChanged: function(args) {\r\n var value = args.value;\r\n switch (args.name) {\r\n case \"loop\":\r\n this.option(\"loopItemFocus\", value);\r\n break;\r\n case \"animationEnabled\":\r\n break;\r\n case \"swipeEnabled\":\r\n this._updateSwipeDisabledState();\r\n break;\r\n case \"deferRendering\":\r\n this._invalidate();\r\n break;\r\n case \"items\":\r\n this._updateSwipeDisabledState();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxMultiView\", MultiView);\r\nexport default MultiView;\r\n","/**\r\n * DevExtreme (esm/ui/tabs/item.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport CollectionWidgetItem from \"../collection/item\";\r\nvar TABS_ITEM_BADGE_CLASS = \"dx-tabs-item-badge\";\r\nvar BADGE_CLASS = \"dx-badge\";\r\nvar TabsItem = CollectionWidgetItem.inherit({\r\n _renderWatchers: function() {\r\n this.callBase();\r\n this._startWatcher(\"badge\", this._renderBadge.bind(this))\r\n },\r\n _renderBadge: function(badge) {\r\n this._$element.children(\".\" + BADGE_CLASS).remove();\r\n if (!badge) {\r\n return\r\n }\r\n var $badge = $(\"
\").addClass(TABS_ITEM_BADGE_CLASS).addClass(BADGE_CLASS).text(badge);\r\n this._$element.append($badge)\r\n }\r\n});\r\nexport default TabsItem;\r\n","/**\r\n * DevExtreme (esm/ui/tabs/constants.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var TABS_EXPANDED_CLASS = \"dx-tabs-expanded\";\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_scroll_left_max.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function getScrollLeftMax(element) {\r\n return element.scrollWidth - element.clientWidth\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_boundary_props.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getScrollLeftMax\r\n} from \"./get_scroll_left_max\";\r\nimport {\r\n getScrollTopMax\r\n} from \"./get_scroll_top_max\";\r\nimport {\r\n ScrollDirection\r\n} from \"./scroll_direction\";\r\nexport function isReachedLeft(scrollOffsetLeft, epsilon) {\r\n return Math.round(scrollOffsetLeft) <= epsilon\r\n}\r\nexport function isReachedRight(element, scrollOffsetLeft, epsilon) {\r\n return Math.round(getScrollLeftMax(element) - scrollOffsetLeft) <= epsilon\r\n}\r\nexport function isReachedTop(scrollOffsetTop, epsilon) {\r\n return Math.round(scrollOffsetTop) <= epsilon\r\n}\r\nexport function isReachedBottom(element, scrollOffsetTop, pocketHeight, epsilon) {\r\n return Math.round(getScrollTopMax(element) - scrollOffsetTop - pocketHeight) <= epsilon\r\n}\r\nexport function getBoundaryProps(direction, scrollOffset, element) {\r\n var pocketHeight = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0;\r\n var {\r\n left: left,\r\n top: top\r\n } = scrollOffset;\r\n var boundaryProps = {};\r\n var {\r\n isHorizontal: isHorizontal,\r\n isVertical: isVertical\r\n } = new ScrollDirection(direction);\r\n if (isHorizontal) {\r\n boundaryProps.reachedLeft = isReachedLeft(left, 0);\r\n boundaryProps.reachedRight = isReachedRight(element, left, 0)\r\n }\r\n if (isVertical) {\r\n boundaryProps.reachedTop = isReachedTop(top, 0);\r\n boundaryProps.reachedBottom = isReachedBottom(element, top, pocketHeight, 0)\r\n }\r\n return boundaryProps\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/tabs.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getOuterWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport devices from \"../core/devices\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport Button from \"./button\";\r\nimport {\r\n render\r\n} from \"./widget/utils.ink_ripple\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport pointerEvents from \"../events/pointer\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport TabsItem from \"./tabs/item\";\r\nimport {\r\n TABS_EXPANDED_CLASS\r\n} from \"./tabs/constants\";\r\nimport {\r\n isMaterial,\r\n current as currentTheme\r\n} from \"./themes\";\r\nimport holdEvent from \"../events/hold\";\r\nimport Scrollable from \"./scroll_view/ui.scrollable\";\r\nimport {\r\n default as CollectionWidget\r\n} from \"./collection/ui.collection_widget.live_update\";\r\nimport {\r\n getImageContainer\r\n} from \"../core/utils/icon\";\r\nimport {\r\n BindableTemplate\r\n} from \"../core/templates/bindable_template\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n isReachedLeft,\r\n isReachedRight\r\n} from \"../renovation/ui/scroll_view/utils/get_boundary_props\";\r\nimport {\r\n getScrollLeftMax\r\n} from \"../renovation/ui/scroll_view/utils/get_scroll_left_max\";\r\nvar TABS_CLASS = \"dx-tabs\";\r\nvar TABS_WRAPPER_CLASS = \"dx-tabs-wrapper\";\r\nvar TABS_STRETCHED_CLASS = \"dx-tabs-stretched\";\r\nvar TABS_SCROLLABLE_CLASS = \"dx-tabs-scrollable\";\r\nvar TABS_NAV_BUTTONS_CLASS = \"dx-tabs-nav-buttons\";\r\nvar OVERFLOW_HIDDEN_CLASS = \"dx-overflow-hidden\";\r\nvar TABS_ITEM_CLASS = \"dx-tab\";\r\nvar TABS_ITEM_SELECTED_CLASS = \"dx-tab-selected\";\r\nvar TABS_NAV_BUTTON_CLASS = \"dx-tabs-nav-button\";\r\nvar TABS_LEFT_NAV_BUTTON_CLASS = \"dx-tabs-nav-button-left\";\r\nvar TABS_RIGHT_NAV_BUTTON_CLASS = \"dx-tabs-nav-button-right\";\r\nvar TABS_ITEM_TEXT_CLASS = \"dx-tab-text\";\r\nvar TABS_ITEM_DATA_KEY = \"dxTabData\";\r\nvar BUTTON_NEXT_ICON = \"chevronnext\";\r\nvar BUTTON_PREV_ICON = \"chevronprev\";\r\nvar FEEDBACK_HIDE_TIMEOUT = 100;\r\nvar FEEDBACK_DURATION_INTERVAL = 5;\r\nvar FEEDBACK_SCROLL_TIMEOUT = 300;\r\nvar TAB_OFFSET = 30;\r\nvar Tabs = CollectionWidget.inherit({\r\n _activeStateUnit: \".\" + TABS_ITEM_CLASS,\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n showNavButtons: true,\r\n scrollByContent: true,\r\n scrollingEnabled: true,\r\n selectionMode: \"single\",\r\n activeStateEnabled: true,\r\n selectionRequired: false,\r\n selectOnFocus: true,\r\n loopItemFocus: false,\r\n useInkRipple: false,\r\n badgeExpr: function(data) {\r\n return data ? data.badge : void 0\r\n },\r\n _itemAttributes: {\r\n role: \"tab\"\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = currentTheme();\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" !== devices.real().deviceType\r\n },\r\n options: {\r\n showNavButtons: false\r\n }\r\n }, {\r\n device: {\r\n deviceType: \"desktop\"\r\n },\r\n options: {\r\n scrollByContent: false\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n useInkRipple: true,\r\n selectOnFocus: false\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.setAria(\"role\", \"tablist\");\r\n this.$element().addClass(TABS_CLASS);\r\n this._renderWrapper();\r\n this._renderMultiple();\r\n this._feedbackHideTimeout = FEEDBACK_HIDE_TIMEOUT\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(function($container, data) {\r\n if (isPlainObject(data)) {\r\n this._prepareDefaultItemTemplate(data, $container)\r\n } else {\r\n $container.text(String(data))\r\n }\r\n var $iconElement = getImageContainer(data.icon);\r\n $iconElement && $iconElement.prependTo($container);\r\n $container.wrapInner($(\"\").addClass(TABS_ITEM_TEXT_CLASS))\r\n }.bind(this), [\"text\", \"html\", \"icon\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _createItemByTemplate: function(itemTemplate, renderArgs) {\r\n var {\r\n itemData: itemData,\r\n container: container,\r\n index: index\r\n } = renderArgs;\r\n this._deferredTemplates[index] = new Deferred;\r\n return itemTemplate.render({\r\n model: itemData,\r\n container: container,\r\n index: index,\r\n onRendered: () => this._deferredTemplates[index].resolve()\r\n })\r\n },\r\n _itemClass: function() {\r\n return TABS_ITEM_CLASS\r\n },\r\n _selectedItemClass: function() {\r\n return TABS_ITEM_SELECTED_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return TABS_ITEM_DATA_KEY\r\n },\r\n _initMarkup: function() {\r\n this._deferredTemplates = [];\r\n this.callBase();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this.$element().addClass(OVERFLOW_HIDDEN_CLASS)\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._deferRenderScrolling()\r\n },\r\n _deferRenderScrolling() {\r\n when.apply(this, this._deferredTemplates).done(() => this._renderScrolling())\r\n },\r\n _renderScrolling: function() {\r\n var removeClasses = [TABS_STRETCHED_CLASS, TABS_EXPANDED_CLASS, OVERFLOW_HIDDEN_CLASS];\r\n this.$element().removeClass(removeClasses.join(\" \"));\r\n if (this.option(\"scrollingEnabled\") && this._isItemsWidthExceeded()) {\r\n if (!this._scrollable) {\r\n this._renderScrollable();\r\n this._renderNavButtons()\r\n }\r\n var scrollable = this.getScrollable();\r\n scrollable.update();\r\n if (this.option(\"rtlEnabled\")) {\r\n var maxLeftOffset = getScrollLeftMax($(this.getScrollable().container()).get(0));\r\n scrollable.scrollTo({\r\n left: maxLeftOffset\r\n })\r\n }\r\n this._updateNavButtonsVisibility();\r\n this._scrollToItem(this.option(\"selectedItem\"))\r\n }\r\n if (!(this.option(\"scrollingEnabled\") && this._isItemsWidthExceeded())) {\r\n this._cleanScrolling();\r\n if (this._needStretchItems() && !this._isItemsWidthExceeded()) {\r\n this.$element().addClass(TABS_STRETCHED_CLASS)\r\n }\r\n this.$element().removeClass(TABS_NAV_BUTTONS_CLASS).addClass(TABS_EXPANDED_CLASS)\r\n }\r\n },\r\n _isItemsWidthExceeded: function() {\r\n var tabItemsWidth = this._getSummaryItemsWidth(this._getVisibleItems(), true);\r\n return tabItemsWidth - 1 > getWidth(this.$element())\r\n },\r\n _needStretchItems: function() {\r\n var $visibleItems = this._getVisibleItems();\r\n var elementWidth = getWidth(this.$element());\r\n var itemsWidth = [];\r\n each($visibleItems, (_, item) => {\r\n itemsWidth.push(getOuterWidth(item, true))\r\n });\r\n var maxTabWidth = Math.max.apply(null, itemsWidth);\r\n return maxTabWidth > elementWidth / $visibleItems.length\r\n },\r\n _cleanNavButtons: function() {\r\n if (!this._leftButton || !this._rightButton) {\r\n return\r\n }\r\n this._leftButton.$element().remove();\r\n this._rightButton.$element().remove();\r\n this._leftButton = null;\r\n this._rightButton = null\r\n },\r\n _cleanScrolling: function() {\r\n if (!this._scrollable) {\r\n return\r\n }\r\n this._$wrapper.appendTo(this.$element());\r\n this._scrollable.$element().remove();\r\n this._scrollable = null;\r\n this._cleanNavButtons()\r\n },\r\n _renderInkRipple: function() {\r\n this._inkRipple = render()\r\n },\r\n _toggleActiveState: function($element, value, e) {\r\n this.callBase.apply(this, arguments);\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: $element,\r\n event: e\r\n };\r\n if (value) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n },\r\n _renderMultiple: function() {\r\n if (\"multiple\" === this.option(\"selectionMode\")) {\r\n this.option(\"selectOnFocus\", false)\r\n }\r\n },\r\n _renderWrapper: function() {\r\n this._$wrapper = $(\"
\").addClass(TABS_WRAPPER_CLASS);\r\n this.$element().append(this._$wrapper)\r\n },\r\n _itemContainer: function() {\r\n return this._$wrapper\r\n },\r\n _renderScrollable: function() {\r\n var $itemContainer = this.$element().wrapInner($(\"
\").addClass(TABS_SCROLLABLE_CLASS)).children();\r\n this._scrollable = this._createComponent($itemContainer, Scrollable, {\r\n direction: \"horizontal\",\r\n showScrollbar: \"never\",\r\n useKeyboard: false,\r\n useNative: false,\r\n scrollByContent: this.option(\"scrollByContent\"),\r\n onScroll: () => {\r\n this._updateNavButtonsVisibility()\r\n }\r\n });\r\n this.$element().append(this._scrollable.$element())\r\n },\r\n _scrollToItem: function(itemData) {\r\n if (!this._scrollable) {\r\n return\r\n }\r\n var $item = this._editStrategy.getItemElement(itemData);\r\n this._scrollable.scrollToElement($item)\r\n },\r\n _renderNavButtons: function() {\r\n this.$element().toggleClass(TABS_NAV_BUTTONS_CLASS, this.option(\"showNavButtons\"));\r\n if (!this.option(\"showNavButtons\")) {\r\n return\r\n }\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n this._leftButton = this._createNavButton(-TAB_OFFSET, rtlEnabled ? BUTTON_NEXT_ICON : BUTTON_PREV_ICON);\r\n var $leftButton = this._leftButton.$element();\r\n $leftButton.addClass(TABS_LEFT_NAV_BUTTON_CLASS);\r\n this.$element().prepend($leftButton);\r\n this._rightButton = this._createNavButton(TAB_OFFSET, rtlEnabled ? BUTTON_PREV_ICON : BUTTON_NEXT_ICON);\r\n var $rightButton = this._rightButton.$element();\r\n $rightButton.addClass(TABS_RIGHT_NAV_BUTTON_CLASS);\r\n this.$element().append($rightButton)\r\n },\r\n _updateNavButtonsVisibility: function() {\r\n var scrollable = this.getScrollable();\r\n this._leftButton && this._leftButton.option(\"disabled\", isReachedLeft(scrollable.scrollLeft(), 1));\r\n this._rightButton && this._rightButton.option(\"disabled\", isReachedRight($(scrollable.container()).get(0), scrollable.scrollLeft(), 1))\r\n },\r\n _updateScrollPosition: function(offset, duration) {\r\n this._scrollable.update();\r\n this._scrollable.scrollBy(offset / duration)\r\n },\r\n _createNavButton: function(offset, icon) {\r\n var that = this;\r\n var holdAction = that._createAction((function() {\r\n that._holdInterval = setInterval((function() {\r\n that._updateScrollPosition(offset, FEEDBACK_DURATION_INTERVAL)\r\n }), FEEDBACK_DURATION_INTERVAL)\r\n }));\r\n var holdEventName = addNamespace(holdEvent.name, \"dxNavButton\");\r\n var pointerUpEventName = addNamespace(pointerEvents.up, \"dxNavButton\");\r\n var pointerOutEventName = addNamespace(pointerEvents.out, \"dxNavButton\");\r\n var navButton = this._createComponent($(\"
\").addClass(TABS_NAV_BUTTON_CLASS), Button, {\r\n focusStateEnabled: false,\r\n icon: icon,\r\n onClick: function() {\r\n that._updateScrollPosition(offset, 1)\r\n },\r\n integrationOptions: {}\r\n });\r\n var $navButton = navButton.$element();\r\n eventsEngine.on($navButton, holdEventName, {\r\n timeout: FEEDBACK_SCROLL_TIMEOUT\r\n }, function(e) {\r\n holdAction({\r\n event: e\r\n })\r\n }.bind(this));\r\n eventsEngine.on($navButton, pointerUpEventName, (function() {\r\n that._clearInterval()\r\n }));\r\n eventsEngine.on($navButton, pointerOutEventName, (function() {\r\n that._clearInterval()\r\n }));\r\n return navButton\r\n },\r\n _clearInterval: function() {\r\n if (this._holdInterval) {\r\n clearInterval(this._holdInterval)\r\n }\r\n },\r\n _updateSelection: function(addedSelection) {\r\n this._scrollable && this._scrollable.scrollToElement(this.itemElements().eq(addedSelection[0]), {\r\n left: 1,\r\n right: 1\r\n })\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n this._renderScrolling()\r\n },\r\n _itemSelectHandler: function(e) {\r\n if (\"single\" === this.option(\"selectionMode\") && this.isItemSelected(e.currentTarget)) {\r\n return\r\n }\r\n this.callBase(e)\r\n },\r\n _clean: function() {\r\n this._deferredTemplates = [];\r\n this._cleanScrolling();\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"useInkRipple\":\r\n case \"scrollingEnabled\":\r\n case \"showNavButtons\":\r\n this._invalidate();\r\n break;\r\n case \"scrollByContent\":\r\n this._scrollable && this._scrollable.option(args.name, args.value);\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._dimensionChanged();\r\n break;\r\n case \"selectionMode\":\r\n this._renderMultiple();\r\n this.callBase(args);\r\n break;\r\n case \"badgeExpr\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _afterItemElementInserted() {\r\n this.callBase();\r\n this._deferRenderScrolling()\r\n },\r\n _afterItemElementDeleted($item, deletedActionArgs) {\r\n this.callBase($item, deletedActionArgs);\r\n this._renderScrolling()\r\n },\r\n getScrollable() {\r\n return this._scrollable\r\n }\r\n});\r\nTabs.ItemClass = TabsItem;\r\nregisterComponent(\"dxTabs\", Tabs);\r\nexport default Tabs;\r\n","/**\r\n * DevExtreme (esm/ui/tab_panel/item.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport CollectionWidgetItem from \"../collection/item\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nexport default class TabPanelItem extends CollectionWidgetItem {\r\n _renderWatchers() {\r\n this._startWatcher(\"badge\", noop);\r\n return super._renderWatchers()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/tab_panel.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n touch\r\n} from \"../core/utils/support\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport devices from \"../core/devices\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport MultiView from \"./multi_view\";\r\nimport Tabs from \"./tabs\";\r\nimport {\r\n default as TabPanelItem\r\n} from \"./tab_panel/item\";\r\nimport {\r\n getImageContainer\r\n} from \"../core/utils/icon\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n isPlainObject,\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n BindableTemplate\r\n} from \"../core/templates/bindable_template\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nvar TABPANEL_CLASS = \"dx-tabpanel\";\r\nvar TABPANEL_TABS_CLASS = \"dx-tabpanel-tabs\";\r\nvar TABPANEL_CONTAINER_CLASS = \"dx-tabpanel-container\";\r\nvar TABS_ITEM_TEXT_CLASS = \"dx-tab-text\";\r\nvar TabPanel = MultiView.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n itemTitleTemplate: \"title\",\r\n hoverStateEnabled: true,\r\n showNavButtons: false,\r\n scrollByContent: true,\r\n scrollingEnabled: true,\r\n onTitleClick: null,\r\n onTitleHold: null,\r\n onTitleRendered: null,\r\n badgeExpr: function(data) {\r\n return data ? data.badge : void 0\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n 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 device: function() {\r\n return !touch\r\n },\r\n options: {\r\n swipeEnabled: false\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n animationEnabled: false\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(TABPANEL_CLASS);\r\n this.setAria(\"role\", \"tabpanel\")\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._createTitleActions();\r\n this._renderLayout()\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n title: new BindableTemplate((function($container, data) {\r\n if (isPlainObject(data)) {\r\n var $iconElement = getImageContainer(data.icon);\r\n if ($iconElement) {\r\n $container.append($iconElement)\r\n }\r\n if (isDefined(data.title) && !isPlainObject(data.title)) {\r\n $container.append(domAdapter.createTextNode(data.title))\r\n }\r\n } else if (isDefined(data)) {\r\n $container.text(String(data))\r\n }\r\n $container.wrapInner($(\"\").addClass(TABS_ITEM_TEXT_CLASS))\r\n }), [\"title\", \"icon\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _createTitleActions: function() {\r\n this._createTitleClickAction();\r\n this._createTitleHoldAction();\r\n this._createTitleRenderedAction()\r\n },\r\n _createTitleClickAction: function() {\r\n this._titleClickAction = this._createActionByOption(\"onTitleClick\")\r\n },\r\n _createTitleHoldAction: function() {\r\n this._titleHoldAction = this._createActionByOption(\"onTitleHold\")\r\n },\r\n _createTitleRenderedAction: function() {\r\n this._titleRenderedAction = this._createActionByOption(\"onTitleRendered\")\r\n },\r\n _renderContent: function() {\r\n var that = this;\r\n this.callBase();\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n this._resizeEventTimer = setTimeout((function() {\r\n that._updateLayout()\r\n }), 0)\r\n }\r\n },\r\n _renderLayout: function() {\r\n if (this._tabs) {\r\n this._updateLayout();\r\n return\r\n }\r\n var $element = this.$element();\r\n this._$tabContainer = $(\"
\").addClass(TABPANEL_TABS_CLASS).appendTo($element);\r\n var $tabs = $(\"
\").appendTo(this._$tabContainer);\r\n this._tabs = this._createComponent($tabs, Tabs, this._tabConfig());\r\n this._$container = $(\"
\").addClass(TABPANEL_CONTAINER_CLASS).appendTo($element);\r\n this._$container.append(this._$wrapper);\r\n this._updateLayout()\r\n },\r\n _updateLayout: function() {\r\n if (hasWindow()) {\r\n var tabsHeight = getOuterHeight(this._$tabContainer);\r\n this._$container.css({\r\n marginTop: -tabsHeight,\r\n paddingTop: tabsHeight\r\n })\r\n }\r\n },\r\n _refreshActiveDescendant: function() {\r\n if (!this._tabs) {\r\n return\r\n }\r\n var tabs = this._tabs;\r\n var tabItems = tabs.itemElements();\r\n var $activeTab = $(tabItems[tabs.option(\"selectedIndex\")]);\r\n var id = this.getFocusedItemId();\r\n this.setAria(\"controls\", void 0, $(tabItems));\r\n this.setAria(\"controls\", id, $activeTab)\r\n },\r\n _tabConfig: function() {\r\n return {\r\n selectOnFocus: true,\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n repaintChangesOnly: this.option(\"repaintChangesOnly\"),\r\n tabIndex: this.option(\"tabIndex\"),\r\n selectedIndex: this.option(\"selectedIndex\"),\r\n badgeExpr: this.option(\"badgeExpr\"),\r\n onItemClick: this._titleClickAction.bind(this),\r\n onItemHold: this._titleHoldAction.bind(this),\r\n itemHoldTimeout: this.option(\"itemHoldTimeout\"),\r\n onSelectionChanged: function(e) {\r\n this.option(\"selectedIndex\", e.component.option(\"selectedIndex\"));\r\n this._refreshActiveDescendant()\r\n }.bind(this),\r\n onItemRendered: this._titleRenderedAction.bind(this),\r\n itemTemplate: this._getTemplateByOption(\"itemTitleTemplate\"),\r\n items: this.option(\"items\"),\r\n noDataText: null,\r\n scrollingEnabled: this.option(\"scrollingEnabled\"),\r\n scrollByContent: this.option(\"scrollByContent\"),\r\n showNavButtons: this.option(\"showNavButtons\"),\r\n itemTemplateProperty: \"tabTemplate\",\r\n loopItemFocus: this.option(\"loop\"),\r\n selectionRequired: true,\r\n onOptionChanged: function(args) {\r\n if (\"focusedElement\" === args.name) {\r\n if (args.value) {\r\n var $value = $(args.value);\r\n var $newItem = this._itemElements().eq($value.index());\r\n this.option(\"focusedElement\", getPublicElement($newItem))\r\n } else {\r\n this.option(\"focusedElement\", args.value)\r\n }\r\n }\r\n }.bind(this),\r\n onFocusIn: function(args) {\r\n this._focusInHandler(args.event)\r\n }.bind(this),\r\n onFocusOut: function(args) {\r\n if (!this._isFocusOutHandlerExecuting) {\r\n this._focusOutHandler(args.event)\r\n }\r\n }.bind(this)\r\n }\r\n },\r\n _renderFocusTarget: function() {\r\n this._focusTarget().attr(\"tabIndex\", -1)\r\n },\r\n _updateFocusState: function(e, isFocused) {\r\n this.callBase(e, isFocused);\r\n if (e.target === this._tabs._focusTarget().get(0)) {\r\n this._toggleFocusClass(isFocused, this._focusTarget())\r\n }\r\n },\r\n _focusOutHandler: function(e) {\r\n this._isFocusOutHandlerExecuting = true;\r\n this.callBase.apply(this, arguments);\r\n this._tabs._focusOutHandler(e);\r\n this._isFocusOutHandlerExecuting = false\r\n },\r\n _setTabsOption: function(name, value) {\r\n if (this._tabs) {\r\n this._tabs.option(name, value)\r\n }\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._tabs._dimensionChanged();\r\n this._updateLayout()\r\n }\r\n },\r\n registerKeyHandler: function(key, handler) {\r\n this.callBase(key, handler);\r\n if (this._tabs) {\r\n this._tabs.registerKeyHandler(key, handler)\r\n }\r\n },\r\n repaint: function() {\r\n this.callBase();\r\n this._tabs.repaint()\r\n },\r\n _optionChanged: function(args) {\r\n var name = args.name;\r\n var value = args.value;\r\n var fullName = args.fullName;\r\n switch (name) {\r\n case \"dataSource\":\r\n this.callBase(args);\r\n break;\r\n case \"items\":\r\n this._setTabsOption(name, this.option(name));\r\n this._updateLayout();\r\n if (!this.option(\"repaintChangesOnly\")) {\r\n this._tabs.repaint()\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._tabs.repaint();\r\n break;\r\n case \"selectedIndex\":\r\n case \"selectedItem\":\r\n this._setTabsOption(fullName, value);\r\n this.callBase(args);\r\n if (true === this.option(\"focusStateEnabled\")) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var selectedTabContent = this._itemElements().eq(selectedIndex);\r\n this.option(\"focusedElement\", getPublicElement(selectedTabContent))\r\n }\r\n break;\r\n case \"itemHoldTimeout\":\r\n case \"focusStateEnabled\":\r\n case \"hoverStateEnabled\":\r\n this._setTabsOption(fullName, value);\r\n this.callBase(args);\r\n break;\r\n case \"scrollingEnabled\":\r\n case \"scrollByContent\":\r\n case \"showNavButtons\":\r\n this._setTabsOption(fullName, value);\r\n break;\r\n case \"focusedElement\":\r\n var id = value ? $(value).index() : value;\r\n var newItem = value ? this._tabs._itemElements().eq(id) : value;\r\n this._setTabsOption(\"focusedElement\", getPublicElement(newItem));\r\n this.callBase(args);\r\n break;\r\n case \"itemTitleTemplate\":\r\n this._setTabsOption(\"itemTemplate\", this._getTemplateByOption(\"itemTitleTemplate\"));\r\n break;\r\n case \"onTitleClick\":\r\n this._createTitleClickAction();\r\n this._setTabsOption(\"onItemClick\", this._titleClickAction.bind(this));\r\n break;\r\n case \"onTitleHold\":\r\n this._createTitleHoldAction();\r\n this._setTabsOption(\"onItemHold\", this._titleHoldAction.bind(this));\r\n break;\r\n case \"onTitleRendered\":\r\n this._createTitleRenderedAction();\r\n this._setTabsOption(\"onItemRendered\", this._titleRenderedAction.bind(this));\r\n break;\r\n case \"loop\":\r\n this._setTabsOption(\"loopItemFocus\", value);\r\n break;\r\n case \"badgeExpr\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean: function() {\r\n clearTimeout(this._resizeEventTimer);\r\n this.callBase()\r\n }\r\n});\r\nTabPanel.ItemClass = TabPanelItem;\r\nregisterComponent(\"dxTabPanel\", TabPanel);\r\nexport default TabPanel;\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.item_option_action.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nexport default class ItemOptionAction {\r\n constructor(options) {\r\n this._options = options;\r\n this._itemsRunTimeInfo = this._options.itemsRunTimeInfo\r\n }\r\n findInstance() {\r\n return this._itemsRunTimeInfo.findWidgetInstanceByItem(this._options.item)\r\n }\r\n findItemContainer() {\r\n return this._itemsRunTimeInfo.findItemContainerByItem(this._options.item)\r\n }\r\n findPreparedItem() {\r\n return this._itemsRunTimeInfo.findPreparedItemByItem(this._options.item)\r\n }\r\n tryExecute() {\r\n Class.abstract()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.utils.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nexport var createItemPathByIndex = (index, isTabs) => \"\".concat(isTabs ? \"tabs\" : \"items\", \"[\").concat(index, \"]\");\r\nexport var concatPaths = (path1, path2) => {\r\n if (isDefined(path1) && isDefined(path2)) {\r\n return \"\".concat(path1, \".\").concat(path2)\r\n }\r\n return path1 || path2\r\n};\r\nexport var getTextWithoutSpaces = text => text ? text.replace(/\\s/g, \"\") : void 0;\r\nexport var isEqualToDataFieldOrNameOrTitleOrCaption = (item, fieldName) => {\r\n if (item) {\r\n return item.dataField === fieldName || item.name === fieldName || getTextWithoutSpaces(item.title) === fieldName || \"group\" === item.itemType && getTextWithoutSpaces(item.caption) === fieldName\r\n }\r\n return false\r\n};\r\nexport var getFullOptionName = (path, optionName) => \"\".concat(path, \".\").concat(optionName);\r\nexport var getOptionNameFromFullName = fullName => {\r\n var parts = fullName.split(\".\");\r\n return parts[parts.length - 1].replace(/\\[\\d+]/, \"\")\r\n};\r\nexport var tryGetTabPath = fullPath => {\r\n var pathParts = fullPath.split(\".\");\r\n var resultPathParts = [...pathParts];\r\n for (var i = pathParts.length - 1; i >= 0; i--) {\r\n if (isFullPathContainsTabs(pathParts[i])) {\r\n return resultPathParts.join(\".\")\r\n }\r\n resultPathParts.splice(i, 1)\r\n }\r\n return \"\"\r\n};\r\nexport var isFullPathContainsTabs = fullPath => fullPath.indexOf(\"tabs\") > -1;\r\nexport var getItemPath = (items, item, isTabs) => {\r\n var index = items.indexOf(item);\r\n if (index > -1) {\r\n return createItemPathByIndex(index, isTabs)\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var targetItem = items[i];\r\n var tabOrGroupItems = targetItem.tabs || targetItem.items;\r\n if (tabOrGroupItems) {\r\n var itemPath = getItemPath(tabOrGroupItems, item, targetItem.tabs);\r\n if (itemPath) {\r\n return concatPaths(createItemPathByIndex(i, isTabs), itemPath)\r\n }\r\n }\r\n }\r\n};\r\nexport function convertToLayoutManagerOptions(_ref) {\r\n var {\r\n form: form,\r\n $formElement: $formElement,\r\n formOptions: formOptions,\r\n items: items,\r\n validationGroup: validationGroup,\r\n extendedLayoutManagerOptions: extendedLayoutManagerOptions,\r\n onFieldDataChanged: onFieldDataChanged,\r\n onContentReady: onContentReady,\r\n onDisposing: onDisposing,\r\n onFieldItemRendered: onFieldItemRendered\r\n } = _ref;\r\n var baseOptions = {\r\n form: form,\r\n items: items,\r\n $formElement: $formElement,\r\n validationGroup: validationGroup,\r\n onFieldDataChanged: onFieldDataChanged,\r\n onContentReady: onContentReady,\r\n onDisposing: onDisposing,\r\n onFieldItemRendered: onFieldItemRendered,\r\n validationBoundary: formOptions.scrollingEnabled ? $formElement : void 0,\r\n scrollingEnabled: formOptions.scrollingEnabled,\r\n showRequiredMark: formOptions.showRequiredMark,\r\n showOptionalMark: formOptions.showOptionalMark,\r\n requiredMark: formOptions.requiredMark,\r\n optionalMark: formOptions.optionalMark,\r\n requiredMessage: formOptions.requiredMessage,\r\n screenByWidth: formOptions.screenByWidth,\r\n layoutData: formOptions.formData,\r\n labelLocation: formOptions.labelLocation,\r\n customizeItem: formOptions.customizeItem,\r\n minColWidth: formOptions.minColWidth,\r\n showColonAfterLabel: formOptions.showColonAfterLabel,\r\n onEditorEnterKey: formOptions.onEditorEnterKey,\r\n labelMode: formOptions.labelMode\r\n };\r\n var result = extend(baseOptions, {\r\n isRoot: extendedLayoutManagerOptions.isRoot,\r\n colCount: extendedLayoutManagerOptions.colCount,\r\n alignItemLabels: extendedLayoutManagerOptions.alignItemLabels,\r\n cssItemClass: extendedLayoutManagerOptions.cssItemClass,\r\n colCountByScreen: extendedLayoutManagerOptions.colCountByScreen,\r\n onLayoutChanged: extendedLayoutManagerOptions.onLayoutChanged,\r\n width: extendedLayoutManagerOptions.width\r\n });\r\n return result\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.item_options_actions.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport 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 SimpleItemTemplateChangedAction extends ItemOptionAction {\r\n tryExecute() {\r\n return false\r\n }\r\n}\r\nclass GroupItemTemplateChangedAction extends ItemOptionAction {\r\n tryExecute() {\r\n var preparedItem = this.findPreparedItem();\r\n if (null != preparedItem && preparedItem._prepareGroupItemTemplate && preparedItem._renderGroupContentTemplate) {\r\n preparedItem._prepareGroupItemTemplate(this._options.item.template);\r\n preparedItem._renderGroupContentTemplate();\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nclass TabsOptionItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var tabPanel = this.findInstance();\r\n if (tabPanel) {\r\n var {\r\n value: value\r\n } = this._options;\r\n tabPanel.option(\"dataSource\", value);\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nclass ValidationRulesItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var {\r\n item: item\r\n } = this._options;\r\n var instance = this.findInstance();\r\n var validator = instance && data(instance.$element()[0], \"dxValidator\");\r\n if (validator && item) {\r\n var filterRequired = item => \"required\" === item.type;\r\n var oldContainsRequired = (validator.option(\"validationRules\") || []).some(filterRequired);\r\n var newContainsRequired = (item.validationRules || []).some(filterRequired);\r\n if (!oldContainsRequired && !newContainsRequired || oldContainsRequired && newContainsRequired) {\r\n validator.option(\"validationRules\", item.validationRules);\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n}\r\nclass CssClassItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var $itemContainer = this.findItemContainer();\r\n var {\r\n previousValue: previousValue,\r\n value: value\r\n } = this._options;\r\n if ($itemContainer) {\r\n $itemContainer.removeClass(previousValue).addClass(value);\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nvar tryCreateItemOptionAction = (optionName, itemActionOptions) => {\r\n switch (optionName) {\r\n case \"editorOptions\":\r\n case \"buttonOptions\":\r\n return new WidgetOptionItemOptionAction(itemActionOptions);\r\n case \"validationRules\":\r\n return new ValidationRulesItemOptionAction(itemActionOptions);\r\n case \"cssClass\":\r\n return new CssClassItemOptionAction(itemActionOptions);\r\n case \"badge\":\r\n case \"disabled\":\r\n case \"icon\":\r\n case \"tabTemplate\":\r\n case \"title\":\r\n return new TabOptionItemOptionAction(extend(itemActionOptions, {\r\n optionName: optionName\r\n }));\r\n case \"tabs\":\r\n return new TabsOptionItemOptionAction(itemActionOptions);\r\n case \"template\":\r\n var _itemActionOptions$it, _itemActionOptions$it2, _itemActionOptions$it3;\r\n var itemType = null !== (_itemActionOptions$it = null === itemActionOptions || void 0 === itemActionOptions ? void 0 : null === (_itemActionOptions$it2 = itemActionOptions.item) || void 0 === _itemActionOptions$it2 ? void 0 : _itemActionOptions$it2.itemType) && void 0 !== _itemActionOptions$it ? _itemActionOptions$it : null === (_itemActionOptions$it3 = itemActionOptions.itemsRunTimeInfo.findPreparedItemByItem(null === itemActionOptions || void 0 === itemActionOptions ? void 0 : itemActionOptions.item)) || void 0 === _itemActionOptions$it3 ? void 0 : _itemActionOptions$it3.itemType;\r\n if (\"simple\" === itemType) {\r\n return new SimpleItemTemplateChangedAction(itemActionOptions)\r\n } else if (\"group\" === itemType) {\r\n return new GroupItemTemplateChangedAction(itemActionOptions)\r\n }\r\n return new TabOptionItemOptionAction(extend(itemActionOptions, {\r\n optionName: optionName\r\n }));\r\n default:\r\n return null\r\n }\r\n};\r\nexport default tryCreateItemOptionAction;\r\n","/**\r\n * DevExtreme (esm/ui/responsive_box.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n 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() ? getWidth(window) : 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: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var WIDGET_CLASS = \"dx-widget\";\r\nexport var FORM_CLASS = \"dx-form\";\r\nexport var FORM_GROUP_CLASS = \"dx-form-group\";\r\nexport var FORM_GROUP_CAPTION_CLASS = \"dx-form-group-caption\";\r\nexport var FORM_FIELD_ITEM_COL_CLASS = \"dx-col-\";\r\nexport var FIELD_ITEM_CLASS = \"dx-field-item\";\r\nexport var LAYOUT_MANAGER_ONE_COLUMN = \"dx-layout-manager-one-col\";\r\nexport var FIELD_ITEM_LABEL_CONTENT_CLASS = \"dx-field-item-label-content\";\r\nexport var FORM_LAYOUT_MANAGER_CLASS = \"dx-layout-manager\";\r\nexport var FIELD_ITEM_LABEL_CLASS = \"dx-field-item-label\";\r\nexport var FIELD_ITEM_CONTENT_CLASS = \"dx-field-item-content\";\r\nexport var SINGLE_COLUMN_ITEM_CONTENT = \"dx-single-column-item-content\";\r\nexport var ROOT_SIMPLE_ITEM_CLASS = \"dx-root-simple-item\";\r\nexport var FORM_GROUP_CONTENT_CLASS = \"dx-form-group-content\";\r\nexport var FIELD_ITEM_CONTENT_HAS_GROUP_CLASS = \"dx-field-item-has-group\";\r\nexport var FIELD_ITEM_CONTENT_HAS_TABS_CLASS = \"dx-field-item-has-tabs\";\r\nexport var FORM_GROUP_WITH_CAPTION_CLASS = \"dx-form-group-with-caption\";\r\nexport var FIELD_ITEM_TAB_CLASS = \"dx-field-item-tab\";\r\nexport var GROUP_COL_COUNT_CLASS = \"dx-group-colcount-\";\r\nexport var GROUP_COL_COUNT_ATTR = \"group-col-count\";\r\nexport var FORM_VALIDATION_SUMMARY = \"dx-form-validation-summary\";\r\nexport var FORM_UNDERLINED_CLASS = \"dx-form-styling-mode-underlined\";\r\nexport var SIMPLE_ITEM_TYPE = \"simple\";\r\n","/**\r\n * DevExtreme (esm/ui/validation/default_adapter.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nvar DefaultAdapter = Class.inherit({\r\n ctor(editor, validator) {\r\n this.editor = editor;\r\n this.validator = validator;\r\n this.validationRequestsCallbacks = [];\r\n var handler = args => {\r\n this.validationRequestsCallbacks.forEach(item => item(args))\r\n };\r\n editor.validationRequest.add(handler);\r\n editor.on(\"disposing\", (function() {\r\n editor.validationRequest.remove(handler)\r\n }))\r\n },\r\n getValue() {\r\n return this.editor.option(\"value\")\r\n },\r\n getCurrentValidationError() {\r\n return this.editor.option(\"validationError\")\r\n },\r\n bypass() {\r\n return this.editor.option(\"disabled\")\r\n },\r\n applyValidationResults(params) {\r\n this.editor.option({\r\n validationErrors: params.brokenRules,\r\n validationStatus: params.status\r\n })\r\n },\r\n reset() {\r\n this.editor.reset()\r\n },\r\n focus() {\r\n this.editor.focus()\r\n }\r\n});\r\nexport default DefaultAdapter;\r\n","/**\r\n * DevExtreme (esm/ui/validator.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n data as elementData\r\n} from \"../core/element_data\";\r\nimport Callbacks from \"../core/utils/callbacks\";\r\nimport errors from \"./widget/ui.errors\";\r\nimport DOMComponent from \"../core/dom_component\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport ValidationEngine from \"./validation_engine\";\r\nimport DefaultAdapter from \"./validation/default_adapter\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport Guid from \"../core/guid\";\r\nvar VALIDATOR_CLASS = \"dx-validator\";\r\nvar VALIDATION_STATUS_VALID = \"valid\";\r\nvar VALIDATION_STATUS_INVALID = \"invalid\";\r\nvar VALIDATION_STATUS_PENDING = \"pending\";\r\nvar Validator = DOMComponent.inherit({\r\n _initOptions: function(options) {\r\n this.callBase.apply(this, arguments);\r\n this.option(ValidationEngine.initValidationOptions(options))\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n validationRules: []\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initGroupRegistration();\r\n this.focused = Callbacks();\r\n this._initAdapter();\r\n this._validationInfo = {\r\n result: null,\r\n deferred: null,\r\n skipValidation: false\r\n }\r\n },\r\n _initGroupRegistration() {\r\n var group = this._findGroup();\r\n if (!this._groupWasInit) {\r\n this.on(\"disposing\", (function(args) {\r\n ValidationEngine.removeRegisteredValidator(args.component._validationGroup, args.component)\r\n }))\r\n }\r\n if (!this._groupWasInit || this._validationGroup !== group) {\r\n ValidationEngine.removeRegisteredValidator(this._validationGroup, this);\r\n this._groupWasInit = true;\r\n this._validationGroup = group;\r\n ValidationEngine.registerValidatorInGroup(group, this)\r\n }\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n validationGroup: true\r\n })\r\n },\r\n _getEditor() {\r\n var element = this.$element()[0];\r\n return elementData(element, \"dx-validation-target\")\r\n },\r\n _initAdapter() {\r\n var dxStandardEditor = this._getEditor();\r\n var adapter = this.option(\"adapter\");\r\n if (!adapter) {\r\n if (dxStandardEditor) {\r\n adapter = new DefaultAdapter(dxStandardEditor, this);\r\n adapter.validationRequestsCallbacks.push(args => {\r\n if (this._validationInfo.skipValidation) {\r\n return\r\n }\r\n this.validate(args)\r\n });\r\n this.option(\"adapter\", adapter);\r\n return\r\n }\r\n throw errors.Error(\"E0120\")\r\n }\r\n var callbacks = adapter.validationRequestsCallbacks;\r\n if (callbacks) {\r\n callbacks.push(args => {\r\n this.validate(args)\r\n })\r\n }\r\n },\r\n _toggleRTLDirection(isRtl) {\r\n var _this$option$editor$o, _this$option, _this$option$editor;\r\n var rtlEnabled = null !== (_this$option$editor$o = null === (_this$option = this.option(\"adapter\")) || void 0 === _this$option ? void 0 : null === (_this$option$editor = _this$option.editor) || void 0 === _this$option$editor ? void 0 : _this$option$editor.option(\"rtlEnabled\")) && void 0 !== _this$option$editor$o ? _this$option$editor$o : isRtl;\r\n this.callBase(rtlEnabled)\r\n },\r\n _initMarkup() {\r\n this.$element().addClass(VALIDATOR_CLASS);\r\n this.callBase()\r\n },\r\n _render() {\r\n this.callBase();\r\n this._toggleAccessibilityAttributes()\r\n },\r\n _toggleAccessibilityAttributes() {\r\n var dxStandardEditor = this._getEditor();\r\n if (dxStandardEditor) {\r\n var rules = this.option(\"validationRules\") || [];\r\n var isRequired = rules.some(_ref => {\r\n var {\r\n type: type\r\n } = _ref;\r\n return \"required\" === type\r\n }) || null;\r\n if (dxStandardEditor.isInitialized()) {\r\n dxStandardEditor.setAria(\"required\", isRequired)\r\n }\r\n dxStandardEditor.option(\"_onMarkupRendered\", () => {\r\n dxStandardEditor.setAria(\"required\", isRequired)\r\n })\r\n }\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._initGroupRegistration()\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"validationGroup\":\r\n this._initGroupRegistration();\r\n return;\r\n case \"validationRules\":\r\n this._resetValidationRules();\r\n this._toggleAccessibilityAttributes();\r\n void 0 !== this.option(\"isValid\") && this.validate();\r\n return;\r\n case \"adapter\":\r\n this._initAdapter();\r\n break;\r\n case \"isValid\":\r\n case \"validationStatus\":\r\n this.option(ValidationEngine.synchronizeValidationOptions(args, this.option()));\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _getValidationRules() {\r\n if (!this._validationRules) {\r\n this._validationRules = map(this.option(\"validationRules\"), (rule, index) => extend({}, rule, {\r\n validator: this,\r\n index: index\r\n }))\r\n }\r\n return this._validationRules\r\n },\r\n _findGroup() {\r\n var $element = this.$element();\r\n return this.option(\"validationGroup\") || ValidationEngine.findGroup($element, this._modelByElement($element))\r\n },\r\n _resetValidationRules() {\r\n delete this._validationRules\r\n },\r\n validate(args) {\r\n var adapter = this.option(\"adapter\");\r\n var name = this.option(\"name\");\r\n var bypass = adapter.bypass && adapter.bypass();\r\n var value = args && void 0 !== args.value ? args.value : adapter.getValue();\r\n var currentError = adapter.getCurrentValidationError && adapter.getCurrentValidationError();\r\n var rules = this._getValidationRules();\r\n var currentResult = this._validationInfo && this._validationInfo.result;\r\n if (currentResult && currentResult.status === VALIDATION_STATUS_PENDING && currentResult.value === value) {\r\n return extend({}, currentResult)\r\n }\r\n var result;\r\n if (bypass) {\r\n result = {\r\n isValid: true,\r\n status: VALIDATION_STATUS_VALID\r\n }\r\n } else if (currentError && currentError.editorSpecific) {\r\n currentError.validator = this;\r\n result = {\r\n isValid: false,\r\n status: VALIDATION_STATUS_INVALID,\r\n brokenRule: currentError,\r\n brokenRules: [currentError]\r\n }\r\n } else {\r\n result = ValidationEngine.validate(value, rules, name)\r\n }\r\n result.id = (new Guid).toString();\r\n this._applyValidationResult(result, adapter);\r\n result.complete && result.complete.then(res => {\r\n if (res.id === this._validationInfo.result.id) {\r\n this._applyValidationResult(res, adapter)\r\n }\r\n });\r\n return extend({}, this._validationInfo.result)\r\n },\r\n reset() {\r\n var adapter = this.option(\"adapter\");\r\n var result = {\r\n id: null,\r\n isValid: true,\r\n brokenRule: null,\r\n brokenRules: null,\r\n pendingRules: null,\r\n status: VALIDATION_STATUS_VALID,\r\n complete: null\r\n };\r\n this._validationInfo.skipValidation = true;\r\n adapter.reset();\r\n this._validationInfo.skipValidation = false;\r\n this._resetValidationRules();\r\n this._applyValidationResult(result, adapter)\r\n },\r\n _updateValidationResult(result) {\r\n if (!this._validationInfo.result || this._validationInfo.result.id !== result.id) {\r\n var complete = this._validationInfo.deferred && this._validationInfo.result.complete;\r\n this._validationInfo.result = extend({}, result, {\r\n complete: complete\r\n })\r\n } else {\r\n for (var prop in result) {\r\n if (\"id\" !== prop && \"complete\" !== prop) {\r\n this._validationInfo.result[prop] = result[prop]\r\n }\r\n }\r\n }\r\n },\r\n _applyValidationResult(result, adapter) {\r\n var validatedAction = this._createActionByOption(\"onValidated\", {\r\n excludeValidators: [\"readOnly\"]\r\n });\r\n result.validator = this;\r\n this._updateValidationResult(result);\r\n adapter.applyValidationResults && adapter.applyValidationResults(this._validationInfo.result);\r\n this.option({\r\n validationStatus: this._validationInfo.result.status\r\n });\r\n if (this._validationInfo.result.status === VALIDATION_STATUS_PENDING) {\r\n if (!this._validationInfo.deferred) {\r\n this._validationInfo.deferred = new Deferred;\r\n this._validationInfo.result.complete = this._validationInfo.deferred.promise()\r\n }\r\n this._eventsStrategy.fireEvent(\"validating\", [this._validationInfo.result]);\r\n return\r\n }\r\n if (this._validationInfo.result.status !== VALIDATION_STATUS_PENDING) {\r\n validatedAction(result);\r\n if (this._validationInfo.deferred) {\r\n this._validationInfo.deferred.resolve(result);\r\n this._validationInfo.deferred = null\r\n }\r\n }\r\n },\r\n focus() {\r\n var adapter = this.option(\"adapter\");\r\n adapter && adapter.focus && adapter.focus()\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\nregisterComponent(\"dxValidator\", Validator);\r\nexport default Validator;\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.layout_manager.utils.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\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 captionize\r\n} from \"../../core/utils/inflector\";\r\nimport Guid from \"../../core/guid\";\r\nimport {\r\n SIMPLE_ITEM_TYPE\r\n} from \"./constants\";\r\nvar EDITORS_WITH_ARRAY_VALUE = [\"dxTagBox\", \"dxRangeSlider\"];\r\nexport var EDITORS_WITHOUT_LABELS = [\"dxCalendar\", \"dxCheckBox\", \"dxHtmlEditor\", \"dxRadioGroup\", \"dxRangeSlider\", \"dxSlider\", \"dxSwitch\"];\r\nexport function convertToRenderFieldItemOptions(_ref) {\r\n var {\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n formOrLayoutManager: formOrLayoutManager,\r\n createComponentCallback: createComponentCallback,\r\n useFlexLayout: useFlexLayout,\r\n item: item,\r\n template: template,\r\n name: name,\r\n formLabelLocation: formLabelLocation,\r\n requiredMessageTemplate: requiredMessageTemplate,\r\n validationGroup: validationGroup,\r\n editorValue: editorValue,\r\n canAssignUndefinedValueToEditor: canAssignUndefinedValueToEditor,\r\n editorValidationBoundary: editorValidationBoundary,\r\n editorStylingMode: editorStylingMode,\r\n showColonAfterLabel: showColonAfterLabel,\r\n managerLabelLocation: managerLabelLocation,\r\n itemId: itemId,\r\n managerMarkOptions: managerMarkOptions,\r\n labelMode: labelMode\r\n } = _ref;\r\n var isRequired = isDefined(item.isRequired) ? item.isRequired : !!_hasRequiredRuleInSet(item.validationRules);\r\n var isSimpleItem = item.itemType === SIMPLE_ITEM_TYPE;\r\n var helpID = item.helpText ? \"dx-\" + new Guid : null;\r\n var labelOptions = _convertToLabelOptions({\r\n item: item,\r\n id: itemId,\r\n isRequired: isRequired,\r\n managerMarkOptions: managerMarkOptions,\r\n showColonAfterLabel: showColonAfterLabel,\r\n labelLocation: managerLabelLocation,\r\n formLabelMode: labelMode\r\n });\r\n var needRenderLabel = labelOptions.visible && labelOptions.text;\r\n var {\r\n location: labelLocation,\r\n labelID: labelID\r\n } = labelOptions;\r\n var labelNeedBaselineAlign = \"top\" !== labelLocation && (!!item.helpText && !useFlexLayout || [\"dxTextArea\", \"dxRadioGroup\", \"dxCalendar\", \"dxHtmlEditor\"].includes(item.editorType));\r\n var editorOptions = _convertToEditorOptions({\r\n editorType: item.editorType,\r\n editorValue: editorValue,\r\n defaultEditorName: item.dataField,\r\n canAssignUndefinedValueToEditor: canAssignUndefinedValueToEditor,\r\n externalEditorOptions: item.editorOptions,\r\n editorInputId: itemId,\r\n editorValidationBoundary: editorValidationBoundary,\r\n editorStylingMode: editorStylingMode,\r\n formLabelMode: labelMode,\r\n labelText: labelOptions.textWithoutColon,\r\n labelMark: labelOptions.markOptions.showRequiredMark ? String.fromCharCode(160) + labelOptions.markOptions.requiredMark : \"\"\r\n });\r\n var needRenderOptionalMarkAsHelpText = labelOptions.markOptions.showOptionalMark && !labelOptions.visible && \"hidden\" !== editorOptions.labelMode && !isDefined(item.helpText);\r\n var helpText = needRenderOptionalMarkAsHelpText ? labelOptions.markOptions.optionalMark : item.helpText;\r\n return {\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n formOrLayoutManager: formOrLayoutManager,\r\n createComponentCallback: createComponentCallback,\r\n useFlexLayout: useFlexLayout,\r\n labelOptions: labelOptions,\r\n labelNeedBaselineAlign: labelNeedBaselineAlign,\r\n labelLocation: labelLocation,\r\n needRenderLabel: needRenderLabel,\r\n item: item,\r\n isSimpleItem: isSimpleItem,\r\n isRequired: isRequired,\r\n template: template,\r\n helpID: helpID,\r\n labelID: labelID,\r\n name: name,\r\n helpText: helpText,\r\n formLabelLocation: formLabelLocation,\r\n requiredMessageTemplate: requiredMessageTemplate,\r\n validationGroup: validationGroup,\r\n editorOptions: editorOptions\r\n }\r\n}\r\nexport function getLabelMarkText(_ref2) {\r\n var {\r\n showRequiredMark: showRequiredMark,\r\n requiredMark: requiredMark,\r\n showOptionalMark: showOptionalMark,\r\n optionalMark: optionalMark\r\n } = _ref2;\r\n if (!showRequiredMark && !showOptionalMark) {\r\n return \"\"\r\n }\r\n return String.fromCharCode(160) + (showRequiredMark ? requiredMark : optionalMark)\r\n}\r\nexport function convertToLabelMarkOptions(_ref3, isRequired) {\r\n var {\r\n showRequiredMark: showRequiredMark,\r\n requiredMark: requiredMark,\r\n showOptionalMark: showOptionalMark,\r\n optionalMark: optionalMark\r\n } = _ref3;\r\n return {\r\n showRequiredMark: showRequiredMark && isRequired,\r\n requiredMark: requiredMark,\r\n showOptionalMark: showOptionalMark && !isRequired,\r\n optionalMark: optionalMark\r\n }\r\n}\r\n\r\nfunction _convertToEditorOptions(_ref4) {\r\n var {\r\n editorType: editorType,\r\n defaultEditorName: defaultEditorName,\r\n editorValue: editorValue,\r\n canAssignUndefinedValueToEditor: canAssignUndefinedValueToEditor,\r\n externalEditorOptions: externalEditorOptions,\r\n editorInputId: editorInputId,\r\n editorValidationBoundary: editorValidationBoundary,\r\n editorStylingMode: editorStylingMode,\r\n formLabelMode: formLabelMode,\r\n labelText: labelText,\r\n labelMark: labelMark\r\n } = _ref4;\r\n var editorOptionsWithValue = {};\r\n if (void 0 !== editorValue || canAssignUndefinedValueToEditor) {\r\n editorOptionsWithValue.value = editorValue\r\n }\r\n if (-1 !== EDITORS_WITH_ARRAY_VALUE.indexOf(editorType)) {\r\n editorOptionsWithValue.value = editorOptionsWithValue.value || []\r\n }\r\n var labelMode = null === externalEditorOptions || void 0 === externalEditorOptions ? void 0 : externalEditorOptions.labelMode;\r\n if (!isDefined(labelMode)) {\r\n labelMode = \"outside\" === formLabelMode ? \"hidden\" : formLabelMode\r\n }\r\n var stylingMode = (null === externalEditorOptions || void 0 === externalEditorOptions ? void 0 : externalEditorOptions.stylingMode) || editorStylingMode;\r\n var result = extend(true, editorOptionsWithValue, externalEditorOptions, {\r\n inputAttr: {\r\n id: editorInputId\r\n },\r\n validationBoundary: editorValidationBoundary,\r\n stylingMode: stylingMode,\r\n label: labelText,\r\n labelMode: labelMode,\r\n labelMark: labelMark\r\n });\r\n if (externalEditorOptions) {\r\n if (result.dataSource) {\r\n result.dataSource = externalEditorOptions.dataSource\r\n }\r\n if (result.items) {\r\n result.items = externalEditorOptions.items\r\n }\r\n }\r\n if (defaultEditorName && !result.name) {\r\n result.name = defaultEditorName\r\n }\r\n return result\r\n}\r\n\r\nfunction _hasRequiredRuleInSet(rules) {\r\n var hasRequiredRule;\r\n if (rules && rules.length) {\r\n each(rules, (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\r\nfunction _convertToLabelOptions(_ref5) {\r\n var {\r\n item: item,\r\n id: id,\r\n isRequired: isRequired,\r\n managerMarkOptions: managerMarkOptions,\r\n showColonAfterLabel: showColonAfterLabel,\r\n labelLocation: labelLocation,\r\n formLabelMode: formLabelMode\r\n } = _ref5;\r\n var isEditorWithoutLabels = EDITORS_WITHOUT_LABELS.includes(item.editorType);\r\n var labelOptions = extend({\r\n showColon: showColonAfterLabel,\r\n location: labelLocation,\r\n id: id,\r\n visible: \"outside\" === formLabelMode || isEditorWithoutLabels && \"hidden\" !== formLabelMode,\r\n isRequired: isRequired\r\n }, item ? item.label : {}, {\r\n markOptions: convertToLabelMarkOptions(managerMarkOptions, isRequired)\r\n });\r\n if ([\"dxRadioGroup\", \"dxCheckBox\", \"dxLookup\", \"dxSlider\", \"dxRangeSlider\", \"dxSwitch\", \"dxHtmlEditor\"].includes(item.editorType)) {\r\n labelOptions.labelID = \"dx-label-\".concat(new Guid)\r\n }\r\n if (!labelOptions.text && item.dataField) {\r\n labelOptions.text = captionize(item.dataField)\r\n }\r\n if (labelOptions.text) {\r\n labelOptions.textWithoutColon = labelOptions.text;\r\n labelOptions.text += labelOptions.showColon ? \":\" : \"\"\r\n }\r\n return labelOptions\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/form/components/label.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"$FIELD_ITEM_LABEL_CONTENT_CLASS\"];\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n isEmpty\r\n} from \"../../../core/utils/string\";\r\nimport {\r\n getLabelMarkText\r\n} from \"../ui.form.layout_manager.utils\";\r\nimport {\r\n WIDGET_CLASS,\r\n FIELD_ITEM_LABEL_CONTENT_CLASS,\r\n FIELD_ITEM_LABEL_CLASS\r\n} from \"../constants\";\r\nexport var GET_LABEL_WIDTH_BY_TEXT_CLASS = \"dx-layout-manager-hidden-label\";\r\nexport var FIELD_ITEM_REQUIRED_MARK_CLASS = \"dx-field-item-required-mark\";\r\nexport var FIELD_ITEM_LABEL_LOCATION_CLASS = \"dx-field-item-label-location-\";\r\nexport var FIELD_ITEM_OPTIONAL_MARK_CLASS = \"dx-field-item-optional-mark\";\r\nexport var FIELD_ITEM_LABEL_TEXT_CLASS = \"dx-field-item-label-text\";\r\nexport function renderLabel(_ref) {\r\n var {\r\n text: text,\r\n id: id,\r\n location: location,\r\n alignment: alignment,\r\n labelID: labelID = null,\r\n markOptions: markOptions = {}\r\n } = _ref;\r\n if (!isDefined(text) || text.length <= 0) {\r\n return null\r\n }\r\n return $(\"