{"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/user/user.vue?ad10","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:///./src/views/modules/user/user.vue?a7b6","webpack:///./src/views/modules/user/user.js","webpack:///./src/views/modules/user/user.js?ec42","webpack:///./src/views/modules/user/user.vue","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:///./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","_vm","_h","$createElement","_c","_self","attrs","model","keyWord","callback","$$v","$set","expression","staticStyle","$event","search","_v","_s","$t","staticClass","optionPerPage","perPage","updateUser","ref","scopedSlots","_u","fn","Caddy","Cashier","Business","Receptionist","Accountant","GM","_l","field","isShow","caption","alignment","cellTemplate","band","j","bands","customText","_e","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","dataTemp","listRoll","label","UserName","Roles","listRoles","listUser","computed","dataGrid","$refs","created","_this","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","getListRoles","getListUser","stop","methods","_this2","_callee2","dataUpdateUser","body","_context2","RoleTemp","IsRole","Id","Role","UserRoles","commonServices","api_URO01","res","showResToast","Status","_this3","toLocaleUpperCase","_this4","_callee3","_context3","api_RRO01","Data","listUserRoles","_this5","_callee4","_context4","RoleName","z","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","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","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","concat","timeSeparator","w","parseNumber","caseInsensitiveIndexOf","array","monthPatternParser","monthNames","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","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","Blob","size","self","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","append","getBlob","31","leftOver","applyFromCharCode","Utf8DecodeWorker","Utf8EncodeWorker","32","stringifyByChunk","stringifyByChar","applyCanBeUsed","buffer","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","editorOptions","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","watch","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","getCell","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","headerRow","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","getRow","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","localStorage","getUniqueStorageKey","_loadState","getItem","_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","firstDay","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","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","heightTable","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","saveAs","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","horizontal","copy","areEqual","leftTag","rightTag","tag","colorHelper","_tryConvertColor","colorCode","rgb","theme","patternFillHelper","patternType","backgroundColor","foregroundColor","fillHelper","patternFill","tryCreateFillFromSimpleFormat","fillPatternType","fillPatternColor","copySimpleFormat","fontHelper","family","scheme","bold","italic","underline","color","cellFormatHelper","sharedItemsContainer","numberFormatId","numberFormat","registerNumberFormat","fontId","registerFont","font","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","autoFilterEnabled","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","gridCell","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","excelCell","_isHeaderCell","isCellInMergedRanges","isMasterCellOfMergedRange","allowToMergeRange","_allowToMergeRange","updateMergedCells","masterCell","unmerged","worksheet","range","startRowIndex","fullAddress","endRowIndex","mergeCells","MAX_EXCEL_COLUMN_WIDTH","Export","fullOptions","topLeftCell","keepColumnWidths","convertDateForExcelJS","numFmt","tryConvertToExcelNumberFormat","formatObjectConverter","getColumn","_component$_getIntern","exportLoadPanel","customizeCell","internalComponent","_getInternalInstance","initialLoadPanelEnabledOption","_getLoadPanelTargetElement","_getLoadPanelContainer","outlineProperties","summaryBelow","summaryRight","cellRange","dataRowsCount","setColumnsWidth","mergedRangesManager","getCellStyles","_trySetOutlineLevel","exportRow","applyMergedRages","worksheetViewSettings","rightToLeft","_isFrozenZone","_getWorksheetFrozenState","_trySetAutoFilter","cellCount","updateMergedRanges","cellInfo","findMergedCellInfo","setNumberFormat","_trySetFont","setAlignment","_getCustomizeCellOptions","autoFilter","dataRange","ySplit","outlineLevel","exportDataGrid","_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-58e0aa46.0bb38131.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!./user.vue?vue&type=style&index=0&id=62e58966&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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-card',[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"10\"}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"3\"}},[_c('b-form-group',{attrs:{\"label\":\"Tài khoản\"}},[_c('b-form-input',{attrs:{\"placeholder\":\"Tài khoản\"},model:{value:(_vm.keyWord.UserName),callback:function ($$v) {_vm.$set(_vm.keyWord, \"UserName\", $$v)},expression:\"keyWord.UserName\"}})],1)],1)],1)],1),_c('b-col',{attrs:{\"cols\":\"2\"}},[_c('b-button',{staticStyle:{\"float\":\"right\"},attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.search()}}},[_vm._v(\" \"+_vm._s(_vm.$t('golf_common_search'))+\" \")])],1)],1)],1),_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',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"mr-2 mt-auto mb-auto\"},[_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.updateUser}},[_vm._v(\" Lưu \")])],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\":475,\"show-borders\":false,\"data-source\":_vm.items,\"show-column-lines\":true,\"show-row-lines\":true,\"allow-column-reordering\":true,\"allow-column-resizing\":true,\"column-resizing-mode\":\"widget\",\"column-auto-width\":true},scopedSlots:_vm._u([{key:\"Caddy\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('b-form-checkbox',{model:{value:(data.data.Caddy.IsRole),callback:function ($$v) {_vm.$set(data.data.Caddy, \"IsRole\", $$v)},expression:\"data.data.Caddy.IsRole\"}})],1)]}},{key:\"Cashier\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('b-form-checkbox',{model:{value:(data.data.Cashier.IsRole),callback:function ($$v) {_vm.$set(data.data.Cashier, \"IsRole\", $$v)},expression:\"data.data.Cashier.IsRole\"}})],1)]}},{key:\"Business\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('b-form-checkbox',{model:{value:(data.data.Business.IsRole),callback:function ($$v) {_vm.$set(data.data.Business, \"IsRole\", $$v)},expression:\"data.data.Business.IsRole\"}})],1)]}},{key:\"Receptionist\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('b-form-checkbox',{model:{value:(data.data.Receptionist.IsRole),callback:function ($$v) {_vm.$set(data.data.Receptionist, \"IsRole\", $$v)},expression:\"data.data.Receptionist.IsRole\"}})],1)]}},{key:\"Accountant\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('b-form-checkbox',{model:{value:(data.data.Accountant.IsRole),callback:function ($$v) {_vm.$set(data.data.Accountant, \"IsRole\", $$v)},expression:\"data.data.Accountant.IsRole\"}})],1)]}},{key:\"GM\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('b-form-checkbox',{model:{value:(data.data.GM.IsRole),callback:function ($$v) {_vm.$set(data.data.GM, \"IsRole\", $$v)},expression:\"data.data.GM.IsRole\"}})],1)]}}])},[_vm._l((_vm.configTable),function(item,i){return ((item.field != 'action') ? item.isShow : true)?_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,\"width\":item.width}},_vm._l((item.bands),function(band,j){return (band.isShow && item.bands.length > 0)?_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}}):_vm._e()}),1):_vm._e()}),_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)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { booking } from '@/api/booking'\r\nimport { commonServices } from '@/api/common-services'\r\nimport { Workbook } from 'exceljs'\r\nimport 'devextreme/dist/css/dx.light.css'\r\nimport { exportDataGrid } from 'devextreme/excel_exporter'\r\nimport { saveAs } from 'file-saver-es'\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\nimport jquery from 'jquery'\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 isLoading: false,\r\n currentPage:1,\r\n perPage: 10,\r\n dataGridRef: 'tablePackage',\r\n optionPerPage: [10, 20, 50],\r\n configTable: [\r\n {\r\n caption: 'Tài khoản',\r\n field: 'UserName',\r\n isShow: true,\r\n alignment: 'center',\r\n width: '20%',\r\n },\r\n {\r\n caption: 'Tên người dùng',\r\n field: 'CashierName',\r\n isShow: true,\r\n alignment: 'center',\r\n width: '20%',\r\n },\r\n {\r\n caption: 'Caddy',\r\n field: 'Caddy',\r\n isShow: true,\r\n alignment: 'center',\r\n width: '10%',\r\n cellTemplate: 'Caddy',\r\n },\r\n {\r\n caption: 'Thu Ngân',\r\n field: 'Cashier',\r\n isShow: true,\r\n alignment: 'center',\r\n width: '10%',\r\n cellTemplate: 'Cashier',\r\n },\r\n {\r\n caption: 'Kinh doanh',\r\n field: 'Business',\r\n isShow: true,\r\n alignment: 'center',\r\n width: '10%',\r\n cellTemplate: 'Business',\r\n },\r\n {\r\n caption: 'Lễ tân',\r\n field: 'Receptionist',\r\n isShow: true,\r\n alignment: 'center',\r\n width: '10%',\r\n cellTemplate: 'Receptionist',\r\n },\r\n {\r\n caption: 'Kế toán',\r\n field: 'Accountant',\r\n isShow: true,\r\n alignment: 'center',\r\n width: '10%',\r\n cellTemplate: 'Accountant',\r\n },\r\n {\r\n caption: 'GM',\r\n field: 'GM',\r\n isShow: true,\r\n alignment: 'center',\r\n width: '10%',\r\n cellTemplate: 'GM',\r\n },\r\n ],\r\n items: [],\r\n dataTemp: [],\r\n listRoll: [\r\n {\r\n label:\"Caddy\",\r\n value: \"Caddy\"\r\n },\r\n {\r\n label:\"Thu Ngân\",\r\n value: \"Cashier\"\r\n },\r\n {\r\n label:\"PM\",\r\n value: \"PM\"\r\n },\r\n {\r\n label:\"Kinh doanh\",\r\n value: \"Business\"\r\n },\r\n {\r\n label:\"Lễ Tân\",\r\n value: \"Receptionist\"\r\n },\r\n {\r\n label:\"Kế toán\",\r\n value: \"Accountant\"\r\n }\r\n ],\r\n keyWord: {\r\n UserName: '',\r\n Roles: []\r\n },\r\n listRoles: [],\r\n listUser: []\r\n }\r\n },\r\n computed: {\r\n dataGrid() {\r\n return this.$refs[dataGridRef].instance\r\n },\r\n },\r\n async created() {\r\n await this.getListRoles()\r\n await this.getListUser()\r\n },\r\n methods: {\r\n async updateUser() {\r\n var dataUpdateUser = []\r\n this.items.forEach(x => {\r\n var RoleTemp = []\r\n if(x.Receptionist.IsRole == true) {\r\n RoleTemp.push(x.Receptionist.Id)\r\n }\r\n if(x.Caddy.IsRole == true) {\r\n RoleTemp.push(x.Caddy.Id)\r\n }\r\n if(x.Cashier.IsRole == true) {\r\n RoleTemp.push(x.Cashier.Id)\r\n }\r\n if(x.Business.IsRole == true) {\r\n RoleTemp.push(x.Business.Id)\r\n }\r\n if(x.Accountant.IsRole == true) {\r\n RoleTemp.push(x.Accountant.Id)\r\n }\r\n if(x.GM.IsRole == true) {\r\n RoleTemp.push(x.GM.Id)\r\n }\r\n dataUpdateUser.push({\r\n Id: x.Id,\r\n Role: RoleTemp\r\n })\r\n })\r\n const body = {\r\n UserRoles: dataUpdateUser\r\n }\r\n await commonServices.api_URO01(body).then(res => {\r\n this.showResToast(res)\r\n if(res.Status === '200') {\r\n this.getListRoles()\r\n this.getListUser()\r\n }\r\n })\r\n },\r\n search() {\r\n if(this.keyWord.UserName) {\r\n var listUser = []\r\n if(this.keyWord.UserName) {\r\n this.dataTemp.forEach(x => {\r\n if(x.UserName.toLocaleUpperCase().includes(this.keyWord.UserName.toLocaleUpperCase())) {\r\n listUser.push(x)\r\n }\r\n })\r\n }\r\n this.items = listUser\r\n } else {\r\n this.items = this.dataTemp\r\n }\r\n },\r\n async getListRoles() {\r\n await commonServices.api_RRO01().then(res => {\r\n this.listRoles = res.Data.Roles\r\n this.listUserRoles = res.Data.UserRoles\r\n })\r\n },\r\n async getListUser() {\r\n await booking.api_RCS01().then(res => {\r\n this.listUser = res.Data.Cashier\r\n this.listUser.forEach(x => {\r\n this.listRoles.forEach(y => {\r\n if(y.RoleName === 'Thu ngân') {\r\n x.Cashier = {\r\n RoleName: y.RoleName,\r\n Id: y.Id,\r\n IsRole: false\r\n }\r\n }\r\n if(y.RoleName === 'Kinh doanh') {\r\n x.Business = {\r\n RoleName: y.RoleName,\r\n Id: y.Id,\r\n IsRole: false\r\n }\r\n }\r\n if(y.RoleName === 'Lễ tân') {\r\n x.Receptionist = {\r\n RoleName: y.RoleName,\r\n Id: y.Id,\r\n IsRole: false\r\n }\r\n }\r\n if(y.RoleName === 'Caddie') {\r\n x.Caddy = {\r\n RoleName: y.RoleName,\r\n Id: y.Id,\r\n IsRole: false\r\n }\r\n }\r\n if(y.RoleName === 'Kế toán') {\r\n x.Accountant = {\r\n RoleName: y.RoleName,\r\n Id: y.Id,\r\n IsRole: false\r\n }\r\n }\r\n if(y.RoleName === 'GM') {\r\n x.GM = {\r\n RoleName: y.RoleName,\r\n Id: y.Id,\r\n IsRole: false\r\n }\r\n }\r\n })\r\n })\r\n this.listUser.forEach(x => {\r\n this.listUserRoles.forEach(y => {\r\n if(x.Id === y.Id) {\r\n if(y.Role.length > 0) {\r\n y.Role.forEach(z => {\r\n if(x.Cashier.Id === z ) {\r\n x.Cashier.IsRole = true\r\n }\r\n if(x.Business.Id === z) {\r\n x.Business.IsRole = true\r\n }\r\n if(x.Receptionist.Id === z) {\r\n x.Receptionist.IsRole = true\r\n }\r\n if(x.Caddy.Id === z) {\r\n x.Caddy.IsRole = true\r\n }\r\n if(x.Accountant.Id === z) {\r\n x.Accountant.IsRole = true\r\n }\r\n if(x.GM.Id === z) {\r\n x.GM.IsRole = true\r\n }\r\n })\r\n }\r\n }\r\n })\r\n })\r\n this.dataTemp = this.listUser\r\n this.items = this.listUser\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!./user.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!./user.js?vue&type=script&lang=js&external\"","import { render, staticRenderFns } from \"./user.vue?vue&type=template&id=62e58966\"\nimport script from \"./user.js?vue&type=script&lang=js&external\"\nexport * from \"./user.js?vue&type=script&lang=js&external\"\nimport style0 from \"./user.vue?vue&type=style&index=0&id=62e58966&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/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","/**\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 $(\"