{"version":3,"sources":["webpack:///./node_modules/get-intrinsic/index.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/devextreme/esm/localization/language_codes.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack:///./node_modules/pako/lib/zlib/trees.js","webpack:///./node_modules/readable-stream/duplex-browser.js","webpack:///./node_modules/has-proto/index.js","webpack:///./node_modules/es-errors/type.js","webpack:///./node_modules/function-bind/index.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:///./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/es-errors/ref.js","webpack:///./node_modules/has-symbols/shams.js","webpack:///./node_modules/object.assign/implementation.js","webpack:///./node_modules/devextreme/esm/ui/drop_down_editor/utils.js","webpack:///./src/views/modules/config-system-parameters/config-system-parameters.vue?c1f0","webpack:///./src/views/modules/config-system-parameters/configSystemParameters.js","webpack:///./src/views/modules/config-system-parameters/configSystemParameters.js?0a8a","webpack:///./src/views/modules/config-system-parameters/config-system-parameters.vue","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/devextreme/esm/ui/load_panel.js","webpack:///./node_modules/lodash/once.js","webpack:///./node_modules/vue-cleave-component/dist/vue-cleave.min.js","webpack:///./node_modules/devextreme/esm/ui/list/item.js","webpack:///./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_element_style.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.base.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack:///./node_modules/is-promise/index.js","webpack:///./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack:///./node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/util/node_modules/inherits/inherits_browser.js","webpack:///./node_modules/devextreme/esm/renovation/ui/resizable/utils.js","webpack:///./node_modules/devextreme/esm/ui/popover/popover_position_controller.js","webpack:///./node_modules/devextreme/esm/ui/popover/ui.popover.js","webpack:///./node_modules/devextreme/esm/ui/popover.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/gopd/index.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/readable-stream/writable-browser.js","webpack:///./node_modules/pako/lib/zlib/constants.js","webpack:///./node_modules/fuzzysearch/index.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator_registry.js","webpack:///./node_modules/util/util.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./src/api/config-setting.js","webpack:///./node_modules/core-util-is/lib/util.js","webpack:///./node_modules/devextreme/esm/ui/drop_down_editor/ui.drop_down_button.js","webpack:///./node_modules/devextreme/esm/ui/drop_down_editor/ui.drop_down_editor.js","webpack:///./node_modules/call-bind/index.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/lodash/now.js","webpack:///./node_modules/es-errors/eval.js","webpack:///./node_modules/devextreme/esm/ui/collection/ui.collection_widget.live_update.js","webpack:///./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/lodash/last.js","webpack:///./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack:///./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/browserify-zlib/lib/index.js","webpack:///./node_modules/lodash/toInteger.js","webpack:///./node_modules/lodash/_trimmedEndIndex.js","webpack:///./node_modules/pako/lib/zlib/messages.js","webpack:///./src/api/golf-class.js","webpack:///./node_modules/has-symbols/index.js","webpack:///./node_modules/call-bind/callBound.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack:///./src/assets/images/flags sync ^\\.\\/.*\\.svg$","webpack:///./node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack:///./node_modules/devextreme/esm/localization/ldml/date.formatter.js","webpack:///./node_modules/lodash/toFinite.js","webpack:///./node_modules/has-property-descriptors/index.js","webpack:///./node_modules/devextreme/esm/ui/editor/ui.data_expression.js","webpack:///./node_modules/devextreme/esm/ui/drop_down_editor/ui.drop_down_list.js","webpack:///./node_modules/devextreme/esm/ui/select_box.js","webpack:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.native.pull_down.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.native.swipe_down.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.simulated.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view.js","webpack:///./node_modules/es-errors/uri.js","webpack:///./node_modules/es-errors/syntax.js","webpack:///./node_modules/pako/lib/zlib/inftrees.js","webpack:///./node_modules/function-bind/implementation.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/constants.js","webpack:///./node_modules/browserify-zlib/lib/binding.js","webpack:///./node_modules/devextreme/esm/ui/shared/grouped_data_converter_mixin.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/es-define-property/index.js","webpack:///./node_modules/lodash/constant.js","webpack:///./src/assets/images/flags/en_gb.svg","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.js","webpack:///./node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/define-data-property/index.js","webpack:///./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.utils.js","webpack:///./node_modules/string_decoder/lib/string_decoder.js","webpack:///./node_modules/pako/lib/zlib/inffast.js","webpack:///./node_modules/cleave.js/dist/cleave-esm.js","webpack:///./node_modules/devextreme/esm/localization/ldml/date.format.js","webpack:///./node_modules/safe-buffer/index.js","webpack:///./node_modules/pako/lib/zlib/zstream.js","webpack:///./node_modules/devextreme/esm/localization/default_date_names.js","webpack:///./node_modules/devextreme/esm/events/swipe.js","webpack:///./src/api/members.js","webpack:///./node_modules/lodash/_baseTrim.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/process-nextick-args/index.js","webpack:///./node_modules/hasown/index.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack:///./node_modules/devextreme/esm/format_helper.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/pako/lib/zlib/inflate.js","webpack:///./node_modules/devextreme/esm/ui/popup/popup_drag.js","webpack:///./node_modules/devextreme/esm/ui/resizable.js","webpack:///./node_modules/devextreme/esm/ui/popup/popup_position_controller.js","webpack:///./node_modules/devextreme/esm/ui/popup/ui.popup.js","webpack:///./node_modules/devextreme/esm/ui/popup.js","webpack:///./node_modules/pako/lib/zlib/deflate.js","webpack:///./node_modules/node-gzip/dist/index.js","webpack:///./node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack:///./node_modules/core-js/modules/es.array.splice.js","webpack:///./node_modules/es-errors/index.js","webpack:///./node_modules/devextreme/esm/ui/shared/filtering.js","webpack:///./node_modules/devextreme/esm/localization/ldml/date.parser.js","webpack:///./node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.strategy.grouped.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.provider.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.search.js","webpack:///./node_modules/devextreme/esm/ui/list_light.js","webpack:///./node_modules/lodash/debounce.js","webpack:///./node_modules/object-keys/implementation.js","webpack:///./node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///./node_modules/devextreme/esm/ui/collection/ui.collection_widget.async.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/ui.toolbar.base.js","webpack:///./node_modules/util-deprecate/browser.js","webpack:///./node_modules/devextreme/esm/ui/list/modules/search.js","webpack:///./node_modules/lodash/noop.js","webpack:///./node_modules/pako/lib/utils/common.js","webpack:///./src/views/modules/config-system-parameters/config-system-parameters.vue?2909","webpack:///./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack:///./node_modules/readable-stream/passthrough.js","webpack:///./node_modules/devextreme/esm/ui/radio_group/radio_button.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.selection.js","webpack:///./node_modules/jszip/dist/jszip.min.js","webpack:///./node_modules/pako/lib/zlib/adler32.js","webpack:///./node_modules/object.assign/polyfill.js","webpack:///./node_modules/@riophae/vue-treeselect/dist/vue-treeselect.cjs.js","webpack:///./node_modules/devextreme/esm/renovation/utils/type_conversion.js","webpack:///./node_modules/lodash/identity.js","webpack:///./node_modules/set-function-length/index.js","webpack:///./src/assets/images/flags/vi_vn.svg","webpack:///./node_modules/readable-stream/transform.js","webpack:///./node_modules/devextreme-vue/data-grid.js","webpack:///./node_modules/stream-browserify/index.js","webpack:///./node_modules/object-keys/isArguments.js","webpack:///./node_modules/util/support/isBufferBrowser.js","webpack:///./node_modules/object-keys/index.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/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/es-errors/range.js","webpack:///./node_modules/watch-size/index.es.mjs","webpack:///./node_modules/lodash/before.js","webpack:///./node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/@babel/runtime/helpers/toPrimitive.js","webpack:///./node_modules/devextreme/esm/core/utils/date.js","webpack:///./node_modules/pako/lib/zlib/crc32.js","webpack:///./node_modules/devextreme/esm/ui/draggable.js","webpack:///./node_modules/devextreme/esm/ui/sortable.js","webpack:///./node_modules/assert/assert.js","webpack:///./node_modules/events/events.js","webpack:///./node_modules/lodash/isSymbol.js"],"names":["undefined","$Error","$EvalError","$RangeError","$ReferenceError","$SyntaxError","$TypeError","$URIError","$Function","Function","getEvalledConstructor","expressionSyntax","e","$gOPD","Object","getOwnPropertyDescriptor","throwTypeError","ThrowTypeError","calleeThrows","arguments","get","gOPDthrows","hasSymbols","hasProto","getProto","getPrototypeOf","x","__proto__","needsEval","TypedArray","Uint8Array","INTRINSICS","AggregateError","Array","ArrayBuffer","Symbol","iterator","Atomics","BigInt","BigInt64Array","BigUint64Array","Boolean","DataView","Date","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","eval","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","isFinite","isNaN","JSON","Map","Math","Number","parseFloat","parseInt","Promise","Proxy","Reflect","RegExp","Set","SharedArrayBuffer","String","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","WeakRef","WeakSet","error","errorProto","doEval","name","value","fn","prototype","gen","LEGACY_ALIASES","bind","hasOwn","$concat","call","concat","$spliceApply","apply","splice","$replace","replace","$strSlice","slice","$exec","exec","rePropName","reEscapeChar","stringToPath","string","first","last","result","match","number","quote","subString","length","getBaseIntrinsic","allowMissing","alias","intrinsicName","module","exports","parts","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","i","isOwn","part","desc","objectProto","hasOwnProperty","nativeObjectToString","toString","symToStringTag","toStringTag","getRawTag","tag","unmasked","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","_nonIterableSpread","TypeError","__esModule","utils","Z_FIXED","Z_BINARY","Z_TEXT","Z_UNKNOWN","zero","buf","len","STORED_BLOCK","STATIC_TREES","DYN_TREES","MIN_MATCH","MAX_MATCH","LENGTH_CODES","LITERALS","L_CODES","D_CODES","BL_CODES","HEAP_SIZE","MAX_BITS","Buf_size","MAX_BL_BITS","END_BLOCK","REP_3_6","REPZ_3_10","REPZ_11_138","extra_lbits","extra_dbits","extra_blbits","bl_order","DIST_CODE_LEN","static_ltree","static_dtree","_dist_code","_length_code","base_length","static_l_desc","static_d_desc","static_bl_desc","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","this","has_stree","TreeDesc","dyn_tree","stat_desc","max_code","d_code","dist","put_short","s","w","pending_buf","pending","send_bits","bi_valid","bi_buf","send_code","c","tree","bi_reverse","code","res","bi_flush","gen_bitlen","h","n","m","bits","xbits","f","stree","extra","base","overflow","bl_count","heap","heap_max","opt_len","static_len","gen_codes","next_code","tr_static_init","init_block","dyn_ltree","dyn_dtree","bl_tree","last_lit","matches","bi_windup","copy_block","header","arraySet","window","smaller","depth","_n2","_m2","pqdownheap","k","v","j","heap_len","compress_block","ltree","dtree","lc","lx","d_buf","l_buf","build_tree","node","scan_tree","curlen","prevlen","nextlen","count","max_count","min_count","send_tree","build_bl_tree","max_blindex","l_desc","d_desc","bl_desc","send_all_trees","lcodes","dcodes","blcodes","rank","detect_data_type","black_mask","static_init_done","_tr_init","_tr_stored_block","stored_len","_tr_align","_tr_flush_block","opt_lenb","static_lenb","level","strm","data_type","strategy","_tr_tally","lit_bufsize","test","foo","$Object","implementation","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","temporaryYearValue","utcDate","UTC","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","setFullYear","utcFormat","extend","timeZone","formatDateTime","formattersCache","getFormatter","key","stringify","Intl","DateTimeFormat","formatNumber","NumberFormat","getAlternativeNumeralsMap","numeralsMapCache","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","defineProperty","defaultOptions","resolvedOptions","getIntlFormat","toLowerCase","monthNameStrategies","standalone","monthIndex","monthFormat","filter","indexOf","engine","getMonthNames","type","wide","abbreviated","narrow","_","getDayNames","dayIndex","short","getPeriodNames","hour12Formatter","hour12","hours","hourNumberText","timeParts","biggerPart","trim","_format","formatter","intlFormat","formatType","callBase","parse","parser","_parseDateBySimpleFormat","formatParts","getFormatParts","dateParts","dateArgs","_generateDateArgs","constructValidDate","ampmShift","parsedDate","hoursShift","minutes","seconds","currentDate","forEach","formatPart","index","datePart","parsed","formatUsesMonthName","formatUsesDayName","getTimeSeparator","formattedDate","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","convertDigits","ldmlFormat","that","errors","log","getTime","firstDayOfWeekIndex","getValueByClosestLocale","inject","_iterableToArray","r","from","isObjectLike","ReferenceError","getOwnPropertySymbols","obj","sym","symObj","symVal","keys","getOwnPropertyNames","syms","propertyIsEnumerable","descriptor","enumerable","objectKeys","callBound","toObject","$push","$propIsEnumerable","originalGetSymbols","target","source1","getSymbols","nextKey","propValue","getElementWidth","$element","getSizeValue","size","render","_vm","_h","$createElement","_c","_self","staticClass","model","callback","$$v","tabIndex","expression","attrs","staticStyle","on","$event","UpdateInfoBo","_v","$store","state","appConfig","isRTL","listGolfClass","item","Id","scopedSlots","_u","ref","GolfClassName","Color","style","backgroundColor","_s","BookingOnlineGolfClassDefault","$set","_e","companies","option","$t","BookingOnlineTaDefault","BookingOnlineMinGolfer","BookingOnlineMaxGolfer","BookingOnlineGolferShowTeeTime","TimeDeleteBooking","listSex","KeyCode","BookingOnlineSexCode","countries","ID","BookingOnlineNation","addTimeShift","UpdateTimeSHift","_l","BookingOnlineShowTeeTime","refInFor","daysOfWeek","monthNames","firstDay","inputMaskTime","deleteTimeShift","UpdateOptionAdv","listLanguages","find","LangId","LangCode","UpdateBoTerm","UpdateServiceTerm","UpdateBookingEmail","listBarLocation","getListService","listZoneSelect","ListService","ListServiceSelect","updateServiceAnnual","ListServiceConfigSelected","data","deleteService","field","caption","alignment","cellTemplate","width","band","isShow","bands","customText","perPage","staticRenderFns","_require","require","gzip","ungzip","components","ValidationProvider","ValidationObserver","Cleave","DxDataGrid","DxColumn","DxEditing","DxFilterRow","DxHeaderFilter","DxGroupPanel","DxGrouping","DxScrolling","DxPaging","DxPager","DxSummary","DxLookup","DxTotalItem","DxGroupItem","DxMasterDetail","DxStringLengthRule","DxRequiredRule","DxRangeRule","DxValueFormat","DxColumnChooser","DxColumnFixing","DxSelection","DxExport","Treeselect","KeyValue","time","timePattern","BookingOnlineTerm","ServiceAnnualFee","ServiceOnlineTerm","BookingOnlineEmail","OptionAdvan","localStorage","getItem","BarLocation","hotelId","currentPage","dataGridRef","optionPerPage","configTable","currentLang","$i18n","listEmailBookingOnlineConfig","listPaymetOnlineTerm","listServiceOnlineTerm","listOptionAdvan","watch","_this","call_api_RCFV01","then","Data","ConfigValue","getServiceDetail","created","getApiListGolfClass","getCompanies_RCL01","getListSex","getCountries_RNA01","getListLanguages","methods","_this2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","response","wrap","_context","prev","next","members","getCountries","sent","Country","stop","ChannelCode","SaleDateFrom","SaleDateTo","TimeFrom","TimeTo","_this3","_callee2","_context2","commonServices","getCommon","KeyGroup","_callee3","body","_context3","config","API_RCFV01","abrupt","_this4","_callee4","check","_context4","API_UCFV01","showResToast","showToast","_this5","golfClass","getListGolfClass","KeyWord","CourseId","Lang","GolfClass","_this6","_callee5","_context5","getCompanies","Client","_this7","_callee6","_context6","_this8","_callee8","_context8","_ref","_callee7","_context7","Zipped","_x","_x2","_this9","_callee10","_context10","_ref2","_callee9","_context9","_x3","_x4","_this10","_callee12","_context12","_ref3","_callee11","_context11","_x5","_x6","_this11","_callee14","_context14","_ref4","_callee13","_context13","_x7","_x8","_this12","_callee15","_context15","HotelId","ZoneId","BookingType","Status","Menu","MenuDetail","y","z","ProductId","label","ProductName","_this13","_callee16","dataServiceId","_context16","_toConsumableArray","call_api_updateServiceAnnual","_this14","_callee17","_context17","_this15","_callee18","_context18","Service","ServiceType","api_RSVAR","_this16","_callee19","_context19","getLanguages","LangCategory","Active","component","isObject","LOADPANEL_CLASS","LOADPANEL_WRAPPER_CLASS","LOADPANEL_INDICATOR_CLASS","LOADPANEL_MESSAGE_CLASS","LOADPANEL_CONTENT_CLASS","LOADPANEL_CONTENT_WRAPPER_CLASS","LOADPANEL_PANE_HIDDEN_CLASS","LoadPanel","inherit","_supportedKeys","escape","_getDefaultOptions","message","height","animation","showIndicator","indicatorSrc","showPane","delay","templatesRenderAsynchronously","hideTopOverlayHandler","focusStateEnabled","propagateOutsideClick","_defaultOptionsRules","device","platform","options","shadingColor","maxHeight","maxWidth","_init","_render","addClass","$wrapper","_renderContentImpl","$content","_$loadPanelContentWrapper","appendTo","_togglePaneVisible","_cleanPreviousContent","_renderLoadIndicator","_renderMessage","_show","deferred","_clearShowTimeout","_showTimeout","setTimeout","done","resolve","promise","_hide","clearTimeout","$message","append","_$indicator","_createComponent","remove","toggleClass","_optionChanged","args","_dispose","before","once","func","t","self","o","l","d","create","default","p","u","assign","blur","onBlur","props","required","validator","raw","cleave","onValueChangedFn","mounted","$el","getOptions","onValueChanged","rawValue","$emit","deep","handler","destroy","setRawValue","getRawValue","beforeDestroy","install","LIST_ITEM_BADGE_CONTAINER_CLASS","LIST_ITEM_BADGE_CLASS","BADGE_CLASS","LIST_ITEM_CHEVRON_CONTAINER_CLASS","LIST_ITEM_CHEVRON_CLASS","ListItem","_renderWatchers","_startWatcher","_renderBadge","_renderShowChevron","badge","_$element","children","$badge","$chevron","insertBefore","showChevron","$chevronContainer","getElementStyle","_getWindow$getCompute","_getWindow","getComputedStyle","getElementMargin","element","side","_scrollView","LIST_CLASS","LIST_ITEM_CLASS","LIST_ITEM_SELECTOR","LIST_ITEM_ICON_CONTAINER_CLASS","LIST_ITEM_ICON_CLASS","LIST_GROUP_CLASS","LIST_GROUP_HEADER_CLASS","LIST_GROUP_BODY_CLASS","LIST_COLLAPSIBLE_GROUPS_CLASS","LIST_GROUP_COLLAPSED_CLASS","LIST_GROUP_HEADER_INDICATOR_CLASS","LIST_HAS_NEXT_CLASS","LIST_NEXT_BUTTON_CLASS","WRAP_ITEM_TEXT_CLASS","SELECT_ALL_ITEM_SELECTOR","LIST_ITEM_DATA_KEY","LIST_FEEDBACK_SHOW_TIMEOUT","groupItemsGetter","ListBase","_activeStateUnit","moveFocusPerPage","direction","$item","getEdgeVisibleItem","isFocusedItem","resultPosition","position","top","scrollTo","scrollToItem","scrollTop","containerHeight","isItemVisible","$nextItem","nextItemLocation","leftArrow","rightArrow","pageUp","pageDown","hoverStateEnabled","pullRefreshEnabled","scrollingEnabled","showScrollbar","useNativeScrolling","bounceEnabled","scrollByContent","scrollByThumb","pullingDownText","pulledDownText","refreshingText","pageLoadingText","onScroll","onPullRefresh","onPageLoading","pageLoadMode","nextButtonText","onItemSwipe","grouped","onGroupRendered","collapsibleGroups","groupTemplate","indicateLoading","activeStateEnabled","_itemAttributes","role","_listAttributes","useInkRipple","wrapItemText","_swipeEnabled","showChevronExpr","badgeExpr","themeName","_device","devices","isSimulator","real","deviceType","_visibilityChanged","visible","_updateLoadingState","_itemClass","_itemDataKey","_itemContainer","_$container","_saveSelectionChangeEvent","_selectionChangeEventInstance","_getSelectionChangeEvent","_refreshItemElements","_itemElementsCache","_itemSelector","_modifyByChanges","reorderItem","itemElement","toItemElement","deleteItem","_itemElements","_itemSelectHandler","isItemSelected","currentTarget","_allowDynamicItemsAppend","_resetDataSourcePageIndex","currentDataSource","getDataSource","pageIndex","load","_initScrollView","_feedbackShowTimeout","_createGroupRenderAction","_scrollBottomMode","_nextButtonMode","_dataSourceOptions","scrollBottom","nextButton","paginate","_getGroupedOption","_getGroupContainerByIndex","groupIndex","eq","_dataSourceFromUrlLoadMode","autoPagingEnabled","_dataSource","getScrollView","disabled","_scrollHandler","onPullDown","_pullDownHandler","onReachBottom","_scrollBottomHandler","useNative","reachBottomText","useKeyboard","content","_createScrollViewActions","_scrollAction","_createActionByOption","_pullRefreshAction","_pageLoadingAction","_initTemplates","_templateManager","addDefaultTemplates","group","$container","_prepareDefaultItemTemplate","icon","$icon","$iconContainer","prepend","_getBindableFields","tryLoadMore","shouldLoadNextPage","_isDataSourceLoading","_isLastPage","_shouldContinueLoading","_infiniteDataLoading","release","_toggleNextButton","_shouldRenderNextButton","_loadIndicationSuppressed","isLoaded","_isDataSourceFirstLoadCompleted","newValue","_isFirstLoadCompleted","_dataSourceLoadingChangedHandler","isLoading","_showLoadingIndicatorTimer","_this$_scrollView","isEmpty","shouldIndicateLoading","startLoading","finishLoading","_dataSourceChangedHandler","_shouldAppendItems","_refreshContent","_prepareContent","_fireContentReadyAction","_hideLoadingIfLoadIndicationOff","_isLoadIndicationSuppressed","_scrollViewIsFull","scrollView","container","_clearSelectedItems","reload","_this$_scrollView$scr","_this$_scrollView$scr2","isBottomReached","scrollOffset","isElementVisible","_loadNextPageTimer","_loadNextPage","_renderItems","items","_renderGroup","_attachGroupCollapseEvent","_renderEmptyMessage","attachGroupHeaderInkRippleEvents","eventName","click","NAME","selector","off","_createAction","$group","event","parent","_collapseGroupHandler","validatingTargetName","toggle","hasClass","$groupBody","startHeight","endHeight","fx","animate","duration","complete","updateDimensions","_dataSourceLoadErrorHandler","_forgetNextPageLoading","_initialized","_initMarkup","_renderInkRipple","setAria","_inkRipple","_toggleActiveState","_inkRippleTimer","showWave","hideWave","_postprocessRenderItem","_attachSwipeEvent","$itemElement","endEventName","swipe","_itemSwipeEndHandler","_itemDXEventHandler","offset","_nextButtonHandler","source","toggleLoading","_$nextButton","detach","$groupElement","$groupHeaderElement","groupTemplateName","_getTemplate","template","renderArgs","itemData","_createItemByTemplate","prependTo","_renderingGroupIndex","itemIndex","_renderItem","_groupRenderAction","groupElement","groupData","downInkRippleHandler","upInkRippleHandler","_downInkRippleHandler","_upInkRippleHandler","downArguments","upArguments","_clean","_holdTimer","_toggleDisabledState","dataSource","$nextButton","_getNextButton","_createNextButton","$result","$button","onClick","integrationOptions","_moveFocus","_refresh","_invalidate","update","_extendActionArgs","closest","expandGroup","resolveWith","collapseGroup","repaint","clientHeight","scrollHeight","scrollBy","distance","location","_editStrategy","getItemElement","scrollToElement","bottom","_dimensionChanged","include","ItemClass","arrayLikeToArray","_arrayWithoutHoles","isArray","isPromise","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","_slicedToArray","Transform","Duplex","util","afterTransform","er","ts","_transformState","transforming","cb","writecb","emit","Error","writechunk","rs","_readableState","reading","needReadable","highWaterMark","_read","needTransform","writeencoding","sync","transform","_transform","flush","_flush","prefinish","stream","_writableState","inherits","chunk","encoding","_write","_destroy","err","err2","ctor","superCtor","super_","constructor","writable","configurable","TempCtor","borderWidthStyles","left","right","_excluded","WEIGHT_OF_SIDES","center","POPOVER_POSITION_ALIASES","my","at","collision","POPOVER_DEFAULT_BOUNDARY_OFFSET","shading","$arrow","super","_props","_$arrow","_positionSide","updatePosition","_$wrapper","css","_position","hOffset","vOffset","isVerticalSide","_isVerticalSide","isHorizontalSide","_isHorizontalSide","isPopoverInside","_isPopoverInside","arrowSize","arrowSizeCorrection","_getContentBorderWidth","arrowOffset","borderWidth","_$content","setup","normalizeAlign","weightSign","horizontalWeight","abs","verticalWeight","positionProp","defaultPositionConfig","of","boundaryOffset","_positionToObject","_getDisplaySide","POPOVER_CLASS","POPOVER_WRAPPER_CLASS","POPOVER_ARROW_CLASS","POPOVER_WITHOUT_TITLE_CLASS","POSITION_FLIP_MAP","getEventNameByOption","optionValue","getEventName","optionName","getEventDelay","attachEvent","hideEvent","isSelector","shouldIgnoreHideEvent","action","_clearEventsTimeouts","_timeouts","EVENT_HANDLER_NAME","getDocument","targetElement","detachEvent","Popover","hideOnOutsideClick","show","hide","showTitle","dragEnabled","resizeEnabled","fullScreen","hideOnParentScroll","arrowPosition","_fixWrapperPosition","_renderArrow","_detachEvents","_attachEvents","$overlayContent","_documentDownHandler","_isOutsideClick","_animate","_getContainerPosition","_stopAnimation","_renderTitle","_renderPosition","_renderOverlayPosition","_actions","onPositioned","_resetOverlayPosition","_updateContentSize","contentPosition","resultLocation","positionSide","_getSideByLocation","_togglePositionClass","_toggleFlippedClass","flip","isArrowVisible","_renderArrowPosition","_setContentHeight","_positionController","containerLocation","calculate","oversize","fit","newContainerWidth","newOverlayContentHeight","newPopupContentHeight","_hideOnParentScrollTarget","isFlippedByVertical","isFlippedByHorizontal","positionClass","removeClass","isFlippedHorizontal","isFlippedVertical","arrowRect","arrowFlip","arrowLocation","axis","sizeProperty","$target","targetOffset","contentOffset","contentLocation","contentSize","targetLocation","targetSize","preventDefault","min","max","finalArrowLocation","fullUpdate","_getPositionControllerConfig","_renderWrapperDimensions","_clearEventTimeout","_renderGeometry","previousValue","updateTarget","substring","objectToString","GetIntrinsic","freeGlobal","freeSelf","root","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","Z_TREES","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_DEFAULT_STRATEGY","Z_DEFLATED","fuzzysearch","needle","haystack","tlen","qlen","outer","nch","charCodeAt","registry","register","decoratorClass","decoratorsRegistry","decoratorConfig","getOwnPropertyDescriptors","descriptors","formatRegExp","isString","objects","inspect","isNull","deprecate","msg","process","noDeprecation","warned","deprecated","throwDeprecation","traceDeprecation","console","trace","debugEnviron","debugs","opts","ctx","seen","stylize","stylizeNoColor","colors","isBoolean","showHidden","_extend","isUndefined","customInspect","stylizeWithColor","formatValue","styleType","styles","arrayToHash","array","hash","val","idx","recurseTimes","isFunction","ret","primitive","formatPrimitive","visibleKeys","isError","formatError","isRegExp","isDate","output","braces","toUTCString","formatArray","formatProperty","pop","reduceToSingleString","simple","isNumber","set","line","substr","reduce","cur","numLinesEst","arg","isNullOrUndefined","isSymbol","re","isPrimitive","pad","debuglog","NODE_DEBUG","toUpperCase","pid","isBuffer","months","timestamp","prop","origin","add","kCustomPromisifiedSymbol","callbackifyOnRejected","reason","newReason","callbackify","original","callbackified","maybeCb","nextTick","rej","setPrototypeOf","defineProperties","promisify","promiseResolve","promiseReject","reject","custom","nullTag","undefinedTag","baseGetTag","API_RRCF03","fetch","ROOT","api_RRCF03","requestOptions","postBody","handleResponse","API_IRCF02","api_IRCF02","API_RBAAR","api_RBAAR","API_RCF01","api_RCF01","API_RCF02","api_RCF02","api_RCFV01","API_RCFV02","api_RCFV02","API_ICF01","api_ICF01","API_UCF01","api_UCF01","API_ICFV01","api_ICFV01","api_UCFV01","API_DCFV01","api_DCFV01","API_DCF01","api_DCF01","API_DCF02","api_DCF02","API_RRCF01","api_RRCF01","API_RRCF02","api_RRCF02","API_RRCFV01","api_RRCFV01","API_RRCFV02","api_RRCFV02","API_IRCF01","api_IRCF01","API_URCF01","api_URCF01","API_IRCFV01","api_IRCFV01","API_URCFV01","api_URCFV01","API_DRCFV01","api_DRCFV01","API_DRCF01","api_DRCF01","API_DRCF02","api_DRCF02","Buffer","DROP_DOWN_EDITOR_BUTTON_CLASS","DROP_DOWN_EDITOR_BUTTON_VISIBLE","BUTTON_MESSAGE","editor","currentTemplate","instance","_openHandler","_getOptions","_addToContainer","elementAttr","_legacyRender","_isVisible","isReadOnly","_addTemplate","$editor","isVisible","_isSameTemplate","_getTemplateByOption","shouldUpdate","DROP_DOWN_EDITOR_CLASS","DROP_DOWN_EDITOR_INPUT_WRAPPER","DROP_DOWN_EDITOR_BUTTON_ICON","DROP_DOWN_EDITOR_OVERLAY","DROP_DOWN_EDITOR_OVERLAY_FLIPPED","DROP_DOWN_EDITOR_ACTIVE","DROP_DOWN_EDITOR_FIELD_CLICKABLE","DROP_DOWN_EDITOR_FIELD_TEMPLATE_WRAPPER","isIOs","current","DropDownEditor","tab","$focusableElement","shiftKey","_getLastPopupElement","_getFirstPopupElement","trigger","close","upArrow","stopPropagation","altKey","downArrow","_validatedOpening","enter","_valueChangeEventHandler","_getDefaultButtons","Ctor","onOpened","onClosed","opened","acceptCustomValue","applyValueMode","deferRendering","dropDownButtonTemplate","fieldTemplate","openOnFieldClick","showDropDownButton","buttons","dropDownOptions","popupPosition","_getDefaultPopupPosition","onPopupInitialized","applyButtonText","cancelButtonText","buttonsLocation","useHiddenSubmitElement","_useTemplates","isRtlEnabled","isGeneric","_inputWrapper","_initVisibilityActions","_initPopupInitializedAction","_updatePopupPosition","_options","cache","currentPosition","_openAction","excludeValidators","_closeAction","_popupInitializedAction","_renderSubmitElement","_renderOpenHandler","_attachFocusOutHandler","_renderOpenedState","_createPopup","_renderInput","_wrapInput","_setDefaultAria","wrapInner","haspopup","autocomplete","_readOnlyPropValue","_isEditable","_cleanFocusState","_detachFocusEvents","_getFieldTemplate","_renderMask","_renderField","_renderTemplatedField","_fieldRenderData","_renderPlaceholder","hasFieldTemplate","_renderValue","_setSubmitValue","always","_this$_fieldRenderQue","_fieldRenderQueueLength","isFocused","_input","_detachKeyboardEvents","_refreshButtonsContainer","_detachWrapperContent","empty","$templateWrapper","onRendered","$input","_integrateInput","_attachWrapperContent","_this$_$submitElement","_this$_$beforeButtons","_this$_$afterButtonsC","_$submitElement","beforeButtonsContainerParent","_$beforeButtonsContainer","parentNode","afterButtonsContainerParent","_$afterButtonsContainer","removeChild","_this$_$submitElement2","_$buttonsContainer","_renderFocusState","_refreshValueChangeEvent","_refreshEvents","_refreshEmptinessEvent","_toggleEmptinessEventHandler","_renderEmptinessEvent","dropDownButton","$inputWrapper","_getInputClickHandler","_openOnFieldClickAction","_detachFocusOutEvents","newTarget","relatedTarget","popupWrapper","_$popup","isNewTargetOutside","_executeOpenAction","_focusInput","_toggleOpenState","_keyboardEventBindingTarget","_resetCaretPosition","ignoreEditable","inputElement","caretPosition","_caret","start","end","_setPopupOption","expanded","_popupContentId","_renderPopup","_renderPopupContent","popupConfig","_popupConfig","_popup","showing","_popupShowingHandler","shown","_popupShownHandler","hiding","_popupHidingHandler","hidden","_popupHiddenHandler","contentReady","_contentReadyHandler","_setPopupContentId","_bindInnerWidgetOptions","$popupContent","onInitialized","_popupInitializedHandler","_ignoreFunctionValueDeprecation","wrapperAttr","class","_closeOutsideDropDownHandler","showCloseButton","toolbarItems","_getPopupToolbarItems","_popupPositionedHandler","contentTemplate","popup","popupWidth","_e$position","_e$position$v","labelMode","stylingMode","$popupOverlayContent","isOverlayFlipped","shouldIndentForLabel","_label","$label","_this$_validationMess","_validationMessage","_getValidationMessagePositionRequest","_this$_validationMess2","positionRequest","myTop","popupTop","getButton","$dropDownButton","isInputClicked","isDropDownButtonClicked","isOutsideClick","_setWidgetOption","_popupToolbarItemsConfig","_popupElementTabHandler","_popupElementEscHandler","_popupButtonInitializedHandler","registerKeyHandler","buttonsConfig","shortcut","_applyButtonHandler","_cancelButtonHandler","_applyButtonsLocation","resultConfig","toolbar","focus","_popupOptionChanged","getOptionsFromContainer","optionsKeys","attr","_getSubmitElement","_this$_popup","_updateButtons","open","setFunctionLength","$apply","$call","$reflectApply","$defineProperty","$max","originalFunction","applyBind","now","EvalError","PRIVATE_KEY_FIELD","repaintChangesOnly","_customizeStoreLoadOptions","_correctionIndex","storeLoadOptions","skip","_refreshItemsCache","_findItemElementByKey","keyExpr","itemElements","each","_getItemData","keyOf","_isItemEquals","newItems","changes","item1","item2","_isItemStrictEquals","_shouldAddNewGroup","change","_partialRefresh","_itemsCache","itemsGetter","itemCache","_updateByChange","keyInfo","isPartialRefresh","changedItem","_insertByChange","_change$index","_beforeItemElementInserted","$itemContainer","_getItemContainer","_afterItemElementInserted","changeData","_updateSelectionAfterRemoveByChange","removeIndex","selectedIndex","_normalizeSelectedItems","_removeByChange","removedItem","oldItem","$removedItemElement","deletedActionArgs","_waitDeletingPrepare","_updateIndicesAfterIndex","_afterItemElementDeleted","_deleteItemElementByIndex","_renderedItemsCount","_appendItemToContainer","$itemFrame","nextSiblingElement","insertElement","isItemsUpdated","EventEmitter","arrayWithoutHoles","iterableToArray","nonIterableSpread","pna","readableDestroyed","destroyed","writableDestroyed","errorEmitted","emitErrorNT","undestroy","ended","endEmitted","ending","finalCalled","prefinished","finished","binding","assert","ok","kMaxLength","kRangeErrorMessage","Z_MIN_WINDOWBITS","Z_MAX_WINDOWBITS","Z_DEFAULT_WINDOWBITS","Z_MIN_CHUNK","Z_MAX_CHUNK","Infinity","Z_DEFAULT_CHUNK","Z_MIN_MEMLEVEL","Z_MAX_MEMLEVEL","Z_DEFAULT_MEMLEVEL","Z_MIN_LEVEL","Z_MAX_LEVEL","Z_DEFAULT_LEVEL","bkeys","bk","bkey","codes","Z_MEM_ERROR","Z_VERSION_ERROR","ckeys","ck","ckey","zlibBuffer","buffer","buffers","nread","flow","read","onError","removeListener","onEnd","RangeError","zlibBufferSync","flushFlag","_finishFlushFlag","_processChunk","Deflate","Zlib","DEFLATE","Inflate","INFLATE","Gzip","GZIP","Gunzip","GUNZIP","DeflateRaw","DEFLATERAW","InflateRaw","INFLATERAW","Unzip","UNZIP","isValidFlushFlag","flag","mode","_opts","_chunkSize","chunkSize","finishFlush","_flushFlag","windowBits","memLevel","dictionary","_handle","_hadError","onerror","errno","_close","init","_buffer","allocUnsafe","_offset","_level","_strategy","emitCloseNT","freeze","createDeflate","createInflate","createDeflateRaw","createInflateRaw","createGzip","createGunzip","createUnzip","deflate","deflateSync","gzipSync","deflateRaw","deflateRawSync","unzip","unzipSync","inflate","inflateSync","gunzip","gunzipSync","inflateRaw","inflateRawSync","params","reset","alloc","kind","ws","needDrain","write","availInBefore","availOutBefore","inOff","async","writeSync","req","availInAfter","availOutAfter","have","out","newReq","toFinite","toInteger","remainder","reWhitespace","trimmedEndIndex","charAt","2","1","0","GET_LIST_GOLF_CLASS","addNewGolfClass","ADD_NEW_GOLF_CLASS","updateGolfClass","UPDATE_GOLF_CLASS","changeStatusGolfClass","status","ACTIVE_GOLF_CLASS","DEACTIVE_GOLF_CLASS","deleteGolfClass","DELETE_GOLF_CLASS","origSymbol","hasSymbolSham","callBind","$indexOf","global","_arrayLikeToArray","webpackContext","webpackContextResolve","__webpack_require__","_classCallCheck","Constructor","copyBuffer","src","copy","BufferList","head","tail","entry","unshift","shift","clear","leftPad","FORMAT_TYPES","3","4","5","LDML_FORMATTERS","useUtc","M","L","Q","floor","E","period","H","S","timezoneOffset","getTimezoneOffset","signPart","timezoneOffsetAbs","hoursPart","minutesPart","X","Z","charIndex","char","isCurrentCharEqualsNext","charCount","isEscaping","toNumber","INFINITY","MAX_INTEGER","hasPropertyDescriptors","hasArrayLengthDefineBug","DataExpressionMixin","_dataExpressionDefaultOptions","itemTemplate","valueExpr","displayExpr","_initDataExpressions","_compileValueGetter","_compileDisplayGetter","_initDynamicTemplates","_initDataSource","_itemsToDataSource","store","pageSize","_displayGetter","_displayGetterExpr","_valueGetter","_valueGetterExpr","_loadValue","_unwrappedValue","_loadSingle","_isValueEquals","fail","_loadValueDeferred","_rejectValueLoading","_this$_loadValueDefer","shouldSkipCallback","_getCurrentValue","_value","_getItemKey","unwrap","value1","value2","dataSourceKey","_compareValues","_compareByCompositeKey","_compareByKey","unwrapObservable","valueKey1","valueKey2","_setCollectionWidgetItemTemplate","_setCollectionWidgetOption","_getCollectionKeyExpr","isValueExprField","_dataExpressionOptionChanged","DROPDOWNLIST_POPUP_WRAPPER_CLASS","SEARCH_EVENT","SEARCH_MODES","useCompositionEvents","DropDownList","_allowSelectItemByTab","_saveValueChangeEvent","$focusedItem","_list","_setSelectedElement","space","home","_setValue","displayValue","searchEnabled","searchMode","searchTimeout","minSearchLength","searchExpr","valueChangeEvent","selectedItem","noDataText","onSelectionChanged","onItemClick","showDataBeforeSearch","useItemTextAsTitle","_setOptionsByReference","_optionsByReference","_initActions","_setListDataSource","_validateSearchMode","_clearSelectedItem","_initItems","_setListFocusedElementOptionChange","_updateParentActiveDescendant","_updateActiveDescendant","_initContentReadyAction","_initSelectionChangedAction","_initItemClickAction","_contentReadyAction","_selectionChangedAction","_itemClickAction","_saveFocusOnWidget","initialOption","_fitIntoRange","_items","_getPlainItems","availableItems","toArray","_calcNextItem","step","nextIndex","_getSelectedIndex","_updateCustomBoundaryContainer","_popupWrapperClass","customContainer","$containerWithParents","parents","overflowY","_$customBoundaryContainer","_renderInputValue","_loadInputValue","_setSelectedItem","_loadItem","_getItemFromPlain","plainItems","itemByValue","_this$_list","listFocusedItemId","getFocusedItemId","isElementOnDom","activedescendant","_displayValue","_refreshSelected","_listItemElements","itemValue","_isSelectedValue","selectItem","unselectItem","_setFocusPolicy","normalizedSearchMode","_processDataSourceChanging","_isCustomValueAllowed","_clearFilter","_$list","autoResizeEnabled","_getMaxHeight","_renderList","canListHaveFocus","_canListHaveFocus","_setAriaTargetForList","_getAriaTarget","_listId","$list","_listConfig","_refreshList","_renderPreventBlurOnListClick","controls","owns","_shouldRefreshDataSource","dataSourceProvided","_needPassDataSourceToList","_isDesktopDevice","selectionMode","_templates","templateProvider","onContentReady","_listContentReadyHandler","_listItemClickAction","_getDataSource","dxList","_setListOption","_listItemClickHandler","_isMinSearchLengthExceeded","_searchValue","_needClearFilter","_canKeepDataSource","_this$_dataSource","isMinSearchLengthExceeded","_isLastMinSearchLengthExceeded","_getSearchEvent","_getCompositionStartEvent","_getCompositionEndEvent","_getSetFocusPolicyEvent","_renderEvents","_shouldRenderSearchEvent","_searchHandler","_isTextCompositionInProgress","_isTextComposition","searchValue","_clearSearchTimer","_searchTimer","_searchDataSource","_searchCanceled","_filterDataSource","searchOperation","_dataSourceFiltered","_refreshPopupVisibility","_shouldOpenPopup","_hasItemsToShow","shouldOpenPopup","_isFocused","resultItems","resultAmount","_updatePopupDimensions","_needPopupRepaint","currentPageIndex","needRepaint","_pageIndex","isLastPage","$customBoundaryContainer","offsetTop","windowHeight","submitValue","_shouldUseDisplayValue","DISABLED_STATE_SELECTOR","SELECTBOX_CLASS","SELECTBOX_POPUP_CLASS","SELECTBOX_CONTAINER_CLASS","SELECTBOX_POPUP_WRAPPER_CLASS","SelectBox","clearSelectBox","isEditable","_valueSubstituted","_preventFiltering","_savedTextRemoveEvent","_preventSubstitution","searchIfNeeded","_cancelSearchIfNeed","_setNextValue","_cancelEditing","isOpened","inputText","isCustomText","isSearchEnabled","backspace","del","placeholder","onCustomItemCreating","customItem","showSelectionControls","allowClearing","tooltipEnabled","displayCustomValue","_initCustomItemCreatingAction","_renderTooltip","_focusListElement","_updateField","_scrollToSelectedItem","_focusSelectedElement","_items$indexOf","$listItems","focusedElement","_isCustomItemSelected","_renderFocusedElement","not","_preventInputValueRender","isPaginate","_renderInputValueAsync","_renderInputValueImpl","_setNextItem","dataSourceIsLoaded","hasPages","isLastItem","isUnknownItem","_getSelectionChangeHandler","onFocusedItemChanged","_listFocusedItemChangeHandler","selectionByClick","list","focusedItem","_renderDisplayText","_selectionChangeHandler","addedItems","addedItem","_getActualSearchValue","_shouldClearFilter","_restoreInputText","_wasSearch","showDataImmediately","_renderDimensions","_isValueEqualInputText","initialSelectedItem","_shouldCancelSearch","saveEditingValue","_loadItemDeferred","_isValueChanging","_createCustomItem","_clearTextValue","newSelectedItem","_focusOutHandler","_preventNestedFocusEvent","isOverlayTarget","_isOverlayNestedTarget","shouldCancelSearch","isPopupVisible","_hideAnimationProcessing","_shouldCancelSearchValue","activeElement","getActiveElement","_renderValueChangeEvent","$listFocused","_shouldCloseOnItemClick","_completeSelection","selectedItemText","_customItemAddedHandler","_customItemCreatingAction","actionResult","_setCustomItem","_disposed","_clearValueHandler","_wasSearchValue","_renderInputSubstitution","input","currentSearchLength","isAllSelected","selectionStart","selectionEnd","inputHasSelection","isLastSymbolSelected","_shouldSubstitutionBeRendered","valueLength","_unsupportedIterableToArray","SCROLLVIEW_PULLDOWN_REFRESHING_CLASS","SCROLLVIEW_PULLDOWN_READY_CLASS","SCROLLVIEW_PULLDOWN_IMAGE_CLASS","SCROLLVIEW_PULLDOWN_INDICATOR_CLASS","SCROLLVIEW_PULLDOWN_TEXT_CLASS","SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS","STATE_RELEASED","STATE_READY","STATE_REFRESHING","STATE_LOADING","PULLDOWN_RELEASE_TIME","PullDownNativeScrollViewStrategy","_$topPocket","_$pullDown","_$refreshingText","_$scrollViewContent","_initCallbacks","pullDownCallbacks","releaseCallbacks","reachBottomCallbacks","_renderPullDown","_releaseState","$image","$loadContainer","$loadIndicator","$text","_$pullDownText","_$pullingDownText","_$pulledDownText","_state","_refreshPullDownText","pullDownTextItems","visibleState","_setTopPocketOffset","_updateDimensions","_topPocketSize","contentEl","containerEl","_bottomBoundary","_allowedDirections","allowedDirections","vertical","_pullDownEnabled","handleEnd","_complete","handleStop","_setPullDownOffset","_pullDownRefreshTimeout","_pullDownRefreshing","handleScroll","currentLocation","scrollDelta","_location","_isPullDown","_pullDownReady","_isReachBottom","_reachBottom","_stateReleased","_reachBottomEnabled","round","fire","pullDownEnable","enabled","reachBottomEnable","pendingRelease","_releaseTimeout","_updateAction","dispose","SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS","PULLDOWN_ICON_CLASS","STATE_TOUCHED","STATE_PULLED","SwipeDownNativeScrollViewStrategy","_$icon","_releasePullDown","opacity","handleInit","_startClientY","originalEvent","handleMove","_deltaY","_movePullDown","pullDownHeight","_getPullDownHeight","_getPullDownStartPosition","angle","_pullDownRefreshHandler","_refreshPullDown","math","ScrollViewScroller","_bottomPocketSize","_updateBounds","considerPockets","_direction","_$bottomPocket","_updateScrollbar","_scrollbar","containerSize","_containerSize","_contentSize","scaleRatio","_getScaleRatio","_moveContent","_reachBottomReady","_moveScrollbar","moveTo","ceil","_scrollComplete","_inBounds","_reachBottomLoading","_minOffset","_getMinOffset","_getMaxOffset","_maxOffset","_releaseHandler","_moveToBounds","_update","_releaseTask","abort","_release","_reachBottomEnablingHandler","_pullDownEnablingHandler","_considerTopPocketChange","_updateHandler","_move","_pendingReleaseHandler","SimulatedScrollViewStrategy","_eventHandler","_createScroller","scroller","_scrollers","_scrollerOptions","$topPocket","$bottomPocket","$pullDown","$pullDownText","$pullingDownText","$pulledDownText","$refreshingText","SCROLLVIEW_CLASS","SCROLLVIEW_CONTENT_CLASS","SCROLLVIEW_TOP_POCKET_CLASS","SCROLLVIEW_BOTTOM_POCKET_CLASS","SCROLLVIEW_PULLDOWN_CLASS","SCROLLVIEW_REACHBOTTOM_CLASS","SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS","SCROLLVIEW_REACHBOTTOM_TEXT_CLASS","SCROLLVIEW_LOADPANEL","refreshStrategies","pullDown","swipeDown","simulated","isServerSide","scrollViewServerConfig","refresh","ScrollView","refreshStrategy","realDevice","_loadingIndicatorEnabled","_initScrollableMarkup","_initContent","_initTopPocket","_initBottomPocket","_initLoadPanel","$reachBottom","_$reachBottom","_$reachBottomText","_updateReachBottomText","$loadPanelElement","loadPanelOptions","_loadPanel","_createStrategy","strategyName","strategyClass","_reachBottomHandler","_createActions","_pullDownAction","_reachBottomAction","_tryRefreshPocketState","_pullDownEnable","hasActionSubscription","_reachBottomEnable","_loadingIndicator","_pullDownLoading","preventReachBottom","showOrHide","_lock","_unlock","URIError","SyntaxError","MAXBITS","ENOUGH_LENS","ENOUGH_DISTS","CODES","LENS","DISTS","lbase","lext","dbase","dext","lens","lens_index","table","table_index","work","incr","fill","low","mask","here_bits","here_op","here_val","curr","drop","used","huff","base_index","Buf16","offs","extra_index","ERROR_MESSAGE","toStr","funcType","concatty","arr","slicy","arrLike","joiny","joiner","bound","binder","boundLength","boundArgs","Empty","TOOLBAR_CLASS","Zstream","zlib_deflate","zlib_inflate","constants","NONE","GZIP_HEADER_ID1","GZIP_HEADER_ID2","init_done","write_in_progress","pending_close","gzip_id_bytes_read","deflateEnd","inflateEnd","in_off","in_len","out_off","out_len","equal","avail_in","next_in","avail_out","next_out","_process","_checkError","_afterSync","_after","next_expected_header_byte","inflateSetDictionary","_error","_setDictionary","_reset","deflateInit2","inflateInit2","deflateSetDictionary","deflateReset","inflateReset","isCorrectStructure","every","hasTwoFields","hasCorrectFields","_getSpecificDataSourceOption","hasSimpleItems","accumulator","innerItem","keepInitialKeyOrder","_typeof","constant","LIST_EDIT_DECORATOR","SWIPE_START_EVENT_NAME","SWIPE_UPDATE_EVENT_NAME","SWIPE_END_EVENT_NAME","EditDecorator","_shouldHandleSwipe","swipeConfig","itemSizeFunc","_clearSwipeCache","_itemWidthCache","_itemSwipeStartHandler","_itemSwipeUpdateHandler","cancel","_swipeStartHandler","_swipeUpdateHandler","_swipeEndHandler","beforeBag","afterBag","_commonOptions","modifyElement","afterRender","handleClick","handleKeyboardEvents","handleEnterPressing","handleContextMenu","visibilityChange","getExcludedSelectors","PassThrough","gopd","property","nonEnumerable","nonWritable","nonConfigurable","loose","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","equalSelectors","selector1","selector2","originalCallback","columnIndex","setEmptyText","textContent","normalizeSortingInfo","isExpanded","valueText","formatObject","getDisplayFormat","customizeText","getSummaryText","summaryItem","summaryTexts","displayFormat","columnCaption","summaryType","valueFormat","getWidgetInstance","editorData","dxComponents","widgetName","equalFilterParameters","filter1","filter2","filterValue","normalizeGroupingLoadOptions","renderNoDataText","noDataClass","addWidgetPrefix","noDataElement","_dataController","_getNoDataText","renderLoadPanel","isLocalStore","$window","boundary","getIndexByKey","keyName","combineFilters","filters","operation","resultFilter","_filters$i","checkChanges","changeNames","changesWithChangeNamesCount","proxyMethod","methodName","defaultResult","getFormatOptionsByColumn","column","trueText","falseText","getDisplayValue","rowType","displayValueMap","calculateDisplayValue","lookup","calculateGroupValue","getGroupRowSummaryText","summaryItems","getFormatByDataType","getHeaderFilterGroupParameters","remoteGrouping","dataField","getGroupInterval","interval","sortingMethod","compare","sortParameters1","sortParameters2","ignoreIsExpanded","getPointsByColumns","pointCreated","isVertical","startColumnIndex","rtlEnabled","cellsLength","notCreatePoint","point","prevItemOffset","getExpandCellTemplate","allowRenderToDetachedContainer","isContinuation","row","isNewRow","rowsView","getView","localize","getSelectionRange","setSelectionRange","selectionRange","focusAndSelectElement","isSelectTextOnEditingStart","select","getLastResizableColumnIndex","columns","resultWidths","lastColumnIndex","hasResizableColumns","some","command","fixed","allowResizing","isElementInCurrentGrid","controller","$grid","getWidgetContainerClass","isVirtualRowRendering","rowRenderingMode","isVirtualMode","isAppendMode","getPixelRatio","devicePixelRatio","browser","mozilla","lookupDataSourceOptions","isWrapped","normalizeLookupDataSource","defaultCalculateCellValue","cachedUniqueRelevantItems","hasGroupPaging","remoteOperations","groupPaging","hasLookupOptimization","displayField","lookupDataSource","loadOptions","take","newDataSource","lookupItems","_column$displayValueM","_filter","flatMap","isEncoding","_normalizeEncoding","enc","retried","normalizeEncoding","nenc","StringDecoder","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","utf8CheckIncomplete","utf8CheckExtraBytes","utf8Text","total","utf8End","BAD","TYPE","_in","_out","beg","dmax","wsize","whave","wnext","s_window","hold","lcode","dcode","lmask","dmask","here","op","from_source","lencode","distcode","lenbits","distbits","dolen","dodist","sane","NumeralFormatter","numeralDecimalMark","numeralIntegerScale","numeralDecimalScale","numeralThousandsGroupStyle","numeralPositiveOnly","stripLeadingZeroes","prefix","signBeforePrefix","tailPrefix","delimiter","owner","groupStyle","thousand","delimiterRE","lakh","wan","none","partSign","partSignAndPrefix","partInteger","partDecimal","NumeralFormatter_1","DateFormatter","datePattern","dateMin","dateMax","blocks","reverse","initBlocks","getISOFormatDate","addLeadingZero","getBlocks","getValidatedDate","sub","sub0","rest","getFixedDateString","yearIndex","dayStartIndex","monthStartIndex","yearStartIndex","fullYearDone","getFixedDate","getRangeFixedDate","previous","addLeadingZeroForYear","isLeapYear","fullYearMode","DateFormatter_1","TimeFormatter","timeFormat","getISOFormatTime","getTimeFormatOptions","maxHourFirstDigit","maxHours","maxMinutesFirstDigit","maxMinutes","getValidatedTime","timeFormatOptions","getFixedTimeString","secondIndex","minuteIndex","hourIndex","secondStartIndex","minuteStartIndex","hourStartIndex","getFixedTime","TimeFormatter_1","PhoneFormatter","setFormatter","phoneNumber","validated","iMax","inputDigit","PhoneFormatter_1","CreditCardDetector","uatp","amex","diners","discover","mastercard","dankort","instapayment","jcb15","jcb","maestro","visa","mir","unionPay","general","getStrictBlocks","block","getInfo","strictMode","matchedBlocks","CreditCardDetector_1","Util","noop","strip","getPostDelimiter","delimiters","matchedDelimiter","getDelimiterREByDelimiter","getNextCursorPosition","prevPos","oldValue","getPositionOffset","oldRawValue","newRawValue","lengthOffset","stripDelimiters","letter","headStr","getMaxLength","getPrefixStrippedValue","prefixLength","prevResult","noImmediatePrefix","prevValue","getFirstDiffIndex","getFormattedValue","blocksLength","delimiterLazyShow","multipleDelimiters","currentDelimiter","fixPrefixCursor","appendix","checkFullSelection","selection","getSelection","document","ex","setSelection","doc","createTextRange","range","move","warn","shadowRoot","isAndroid","navigator","userAgent","isAndroidBackspaceKeydown","lastInputValue","currentInputValue","Util_1","DefaultProperties","creditCard","creditCardStrictMode","creditCardType","onCreditCardTypeChanged","phone","phoneRegionCode","phoneFormatter","timeFormatter","dateFormatter","numeral","swapHiddenInput","numericOnly","uppercase","lowercase","rawValueTrimPrefix","copyDelimiter","initValue","delimiterLength","commonjsGlobal","maxLength","DefaultProperties_1","hasMultipleElements","querySelector","querySelectorAll","properties","pps","isBackward","onChangeListener","onChange","onKeyDownListener","onKeyDown","onFocusListener","onFocus","onCutListener","onCut","onCopyListener","onCopy","initSwapHiddenInput","addEventListener","initPhoneFormatter","initDateFormatter","initTimeFormatter","initNumeralFormatter","onInput","inputFormatter","cloneNode","elementSwapHidden","numeralFormatter","AsYouTypeFormatter","charCode","which","keyCode","inputType","postDelimiter","postDelimiterBackspace","copyClipboardData","inputValue","textToCopy","clipboardData","setData","postDelimiterAfter","updateValueState","updateCreditCardPropsByValue","creditCardInfo","endPos","callOnValueChanged","setPhoneRegionCode","removeEventListener","Cleave_1","ARABIC_COMMA","FORMAT_SEPARATORS","AM_PM_PATTERN","checkDigit","zeroCode","checkPatternContinue","patterns","isDigit","nextChar","isDigitChanged","getPatternStartIndex","defaultPattern","getDifference","processedIndexes","patternsFilter","replaceCharsCore","indexes","patternPositions","baseCharIndex","patternIndex","replaceChars","letterCount","ESCAPE_CHARS_REGEXP","escapeChars","escapeIndexes","isCurrentCharEscaped","isPrevCharEscaped","isNextCharEscaped","getFormat","replacedPatterns","datePatterns","diff","copyProps","dst","SafeBuffer","encodingOrOffset","allocUnsafeSlow","SlowBuffer","ZStream","total_in","total_out","adler","MONTHS","DAYS","PERIODS","QUARTERS","cutCaptions","captions","lengthByFormat","SWIPE_START_EVENT","SWIPE_EVENT","SWIPE_END_EVENT","HorizontalStrategy","defaultItemSizeFunc","getElement","getBounds","_maxLeftOffset","_maxRightOffset","calcOffsetRatio","endEventData","_savedEventData","_itemSizeFunc","isFastSwipe","FAST_SWIPE_SPEED_LIMIT","_tickData","VerticalStrategy","_maxTopOffset","_maxBottomOffset","STRATEGIES","horizontal","SwipeEmitter","TICK_INTERVAL","elastic","_getStrategy","_defaultItemSizeFunc","_start","_fireEvent","maxLeftOffset","maxRightOffset","maxTopOffset","maxBottomOffset","moveEventData","_fitOffset","_end","offsetRatio","isFast","startOffset","_calcTargetOffset","bounds","emitter","events","getListMember","GET_LIST_MEMBER_API","CheckMember_RME07","CHECK_MEMBER_DUP_VGA","api_IME02","API_IME02","createMember","CREATE_MEMBER_API","mergeMember","MERGE_MEMBER_API","updateMember","UPDATE_MEMBER_API","activeMember","ACTIVE_MEMBER_API","deActiveMember","DEACTIVE_MEMBER_API","deleteMember","DELETE_MEMBER_API","detailMember","DETAIL_MEMBER_API","GET_COUNTRIES_API","GET_COMPANIES_API","getSubscriptions","GET_LIST_SUBSCRIPTION_API","getSubscriptionDetail","GET_DETAIL_SUBSCRIPTION_API","updateSubscription","UPDATE_SUBSCRIPTION_API","deleteSubscription","DELETE_SUBSCRIPTION_API","createSubscription","CREATE_SUBSCRIPTION_API","bansSubscription","BANS_SUBSCRIPTION_API","unBansSubscription","UNBANS_SUBSCRIPTION_API","transferSubscription","TRANSFER_SUBSCRIPTION_API","getListCombo","GET_LIST_COMBO_API","getHistoryPlaying","GET_HISTORY_API","addPackageRetail","ADD_PACKAGE_RETAIL","updatePackageRetail","UPDATE_PACKAGE_RETAIL","createPaymentRetail","CREATE_PAYMENT_RETAIL","addPaymentRetail","ADD_PAYMENT_RETAIL","getPaymentRetail","GET_PAYMENT_RETAIL","getPackageRetailDetail","GET_PACKAGE_RETAIL_DETAIL","api_RMEH02","API_RMEH02","reTrimStart","baseTrim","toPropertyKey","_defineProperty","arg1","arg2","arg3","version","$hasOwn","_iterableToArrayLimit","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","adler32","crc32","inflate_fast","inflate_table","HEAD","FLAGS","TIME","OS","EXLEN","EXTRA","COMMENT","HCRC","DICTID","DICT","TYPEDO","STORED","COPY_","COPY","TABLE","LENLENS","CODELENS","LEN_","LEN","LENEXT","DIST","DISTEXT","MATCH","LIT","CHECK","LENGTH","DONE","MEM","SYNC","MAX_WBITS","DEF_WBITS","zswap32","q","InflateState","havedict","flags","wbits","ncode","nlen","ndist","lendyn","distdyn","back","was","inflateResetKeep","Buf32","inflateReset2","inflateInit","lenfix","distfix","virgin","fixedtables","updatewindow","Buf8","put","last_bits","last_op","last_val","hbuf","order","inf_leave","xflags","extra_len","fromCharCode","comment","hcrc","inflateGetHeader","dictid","dictLength","inflateInfo","KEYBOARD_DRAG_STEP","handle","draggableElement","positionController","_draggableElement","_dragEnabled","unsubscribe","subscribe","_moveTo","eventNames","_getEventNames","startEventName","_dragStartHandler","updateEventName","_dragUpdateHandler","_dragEndHandler","drag","allowedOffsets","_getAllowedOffsets","_prevOffset","targetElements","_moveByOffset","dragHandled","detectVisualPositionChange","_fitOffsetIntoAllowedRange","$dragResizeContainer","containerWidth","clientWidth","containerDimensions","_getContainerDimensions","elementDimensions","_getElementDimensions","outsideDragFactor","fullDelta","_getInnerDelta","outerDelta","_getOuterDelta","offsetWidth","offsetHeight","_getFullDelta","isDragAllowed","elementPosition","_getElementPosition","containerPosition","newPosition","RESIZABLE","RESIZABLE_CLASS","RESIZABLE_RESIZING_CLASS","RESIZABLE_HANDLE_CLASS","RESIZABLE_HANDLE_TOP_CLASS","RESIZABLE_HANDLE_BOTTOM_CLASS","RESIZABLE_HANDLE_LEFT_CLASS","RESIZABLE_HANDLE_RIGHT_CLASS","RESIZABLE_HANDLE_CORNER_CLASS","DRAGSTART_START_EVENT_NAME","DRAGSTART_EVENT_NAME","DRAGSTART_END_EVENT_NAME","SIDE_BORDER_WIDTH_STYLES","Resizable","handles","stepPrecision","area","minWidth","minHeight","onResizeStart","onResize","onResizeEnd","roundStepValue","keepAspectRatio","_renderHandles","_renderActions","_resizeStartAction","_resizeEndAction","_resizeAction","_handles","directions","activeHandlesMap","handleName","_renderHandle","_attachEventHandlers","$handle","handlers","_dragHandler","handleElement","immediate","_detachEventHandlers","_toggleEventHandlers","shouldAttachEvents","_getElementSize","_toggleResizingClass","_movingSides","_getMovingSides","_elementLocation","_elementSize","_renderDragOffsets","_getArea","handleWidth","handleHeight","handleOffset","areaOffset","_getAreaScrollOffset","_leftMaxOffset","scrollX","_rightMaxOffset","_topMaxOffset","scrollY","_bottomMaxOffset","_getBorderWidth","_proportionate","factor","_getProportionalDelta","proportionalY","proportionalX","_getDirectionName","sides","_fitIntoArea","directionName","_fitDeltaProportionally","delta","fittedDelta","getWidth","getHeight","isInArea","isFittedX","isFittedY","_fitDelta","_getDeltaByOffset","shouldKeepAspectRatio","_isCornerHandler","proportionalDelta","fittedProportionalDelta","roundedFittedDelta","_roundByStep","_updatePosition","elementRect","offsetLeft","_getOffset","dimensions","_triggerResizeAction","isAbsoluteSize","isStepPrecisionStrict","elementStyle","shouldRenderWidth","shouldRenderHeight","values","xor","_roundStrict","_roundNotStrict","_getSteps","steps","xPos","yPos","newXShift","newYShift","separatorOffset","isSmallOffset","newOffsetX","newOffsetY","roundedOffset_x","roundedOffset_y","hasCornerTopLeftClass","hasCornerTopRightClass","hasCornerBottomLeftClass","hasCornerBottomRightClass","_getAreaFromObject","_getAreaFromElement","isElement","areaElement","pageXOffset","pageYOffset","_correctAreaGeometry","$area","areaBorderLeft","areaBorderTop","_renderWidth","_renderHeight","forceApplyBindings","dragOutsideBoundary","dragAndResizeArea","_$dragResizeContainer","_outsideDragFactor","_lastPositionBeforeFullScreen","_updateDragResizeContainer","_updateOutsideDragFactor","_fullScreenEnabled","_fullScreenDisabled","containerProp","updateContainer","restorePositionOnNextRender","_this$_props$forceApp","_this$_props","_shouldRenderContentInitialPosition","positionContent","_getOutsideDragFactor","_getDragResizeContainer","isContainerDefined","_$markupContainer","_getVisualContainer","_visualPosition","POPUP_CLASS","POPUP_WRAPPER_CLASS","POPUP_FULL_SCREEN_CLASS","POPUP_FULL_SCREEN_WIDTH_CLASS","POPUP_NORMAL_CLASS","POPUP_CONTENT_CLASS","DISABLED_STATE_CLASS","POPUP_DRAGGABLE_CLASS","POPUP_TITLE_CLASS","POPUP_TITLE_CLOSEBUTTON_CLASS","POPUP_BOTTOM_CLASS","POPUP_HAS_CLOSE_BUTTON_CLASS","TEMPLATE_WRAPPER_CLASS","POPUP_CONTENT_FLEX_HEIGHT_CLASS","POPUP_CONTENT_INHERIT_HEIGHT_CLASS","ALLOWED_TOOLBAR_ITEM_ALIASES","BUTTON_DEFAULT_TYPE","BUTTON_NORMAL_TYPE","BUTTON_TEXT_MODE","BUTTON_CONTAINED_MODE","IS_OLD_SAFARI","safari","HEIGHT_STRATEGIES","static","flex","getButtonPlace","Popup","_this$_drag","_drag","moveUp","_this$_drag2","moveDown","_this$_drag3","moveLeft","_this$_drag4","moveRight","title","titleTemplate","onTitleRendered","bottomTemplate","useDefaultToolbarButtons","useFlatToolbarButtons","_iosAnimation","_androidAnimation","_updateResizeCallbackSkipCondition","_$popupContent","isFullscreen","_toggleFullScreenClass","_getActionsList","_contentResizeHandler","_shouldSkipContentResize","shouldOnlyReposition","_doesShowAnimationChangeDimensions","_animation$show","doesShowAnimationChangeDimensions","_showAnimationProcessing","_areContentDimensionsRendered","_observeContentResize","shouldObserve","contentElement","observe","unobserve","_renderResize","_renderBottom","_getToolbarItems","titleText","ios","_$title","$title","_renderTemplateByType","_renderDrag","_executeTitleRenderAction","_hasCloseButton","additionalToolbarOptions","toolbarTemplate","skipTemplates","toolbarOptions","useDefaultButtons","useFlatButtons","widget","$toolbar","replaceWith","_renderVisibilityAnimate","$titleElement","_getTitleRenderAction","titleElement","_titleRenderAction","_createTitleRenderAction","_getCloseButton","_getCloseButtonRenderer","__","_createToolbarItemAction","toolbarsItems","_toolbarItemClasses","currentPlatform","isShortcut","_getToolbarItemByAlias","isLTROrder","_getLocalizationKey","itemType","itemConfig","itemClass","$toolbarItem","clickAction","afterExecute","_$bottom","$bottom","insertAfter","compactMode","_toggleClasses","aliases","className","_zIndex","zIndex","_zIndexInitValue","_getDragTarget","topToolbar","useResizeObserver","isAnimated","shouldRepeatAnimation","forceStopAnimation","_isAnimationPaused","_renderGeometryImpl","isDimensionChange","_animateShowing","_cacheDimensions","_renderedDimensions","_resetContentHeight","_getOptionValue","$dragTarget","_resizable","_resizeEndHandler","_setOptionWithoutOptionChange","resizeHandled","overlayContent","currentHeightStrategyClass","_chooseHeightStrategy","_getHeightCssStyles","_setHeightClasses","_heightStrategyChangeOffset","popupVerticalPaddings","isAutoWidth","_isAutoHeight","cssStyles","contentMaxHeight","contentMinHeight","popupHeightParts","_splitPopupHeight","toolbarsAndVerticalOffsetsHeight","footer","contentVerticalOffsets","popupVerticalOffsets","overlayHeight","innerHeight","contentHeight","$visualContainer","maxHeightValue","minHeightValue","currentClass","excessClasses","bottomToolbar","_isAllWindowCovered","_renderFullscreenWidthClass","refreshPosition","_this$_resizable2","_this$_resizable","shouldRenderGeometry","fullName","_toggleSafariScrolling","configuration_table","trees","MAX_MEM_LEVEL","DEF_MEM_LEVEL","MIN_LOOKAHEAD","PRESET_DICT","INIT_STATE","EXTRA_STATE","NAME_STATE","COMMENT_STATE","HCRC_STATE","BUSY_STATE","FINISH_STATE","BS_NEED_MORE","BS_BLOCK_DONE","BS_FINISH_STARTED","BS_FINISH_DONE","OS_CODE","errorCode","flush_pending","pending_out","flush_block_only","block_start","strstart","put_byte","putShortMSB","read_buf","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","limit","w_size","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","more","_w_size","window_size","hash_size","insert","ins_h","hash_shift","hash_mask","deflate_stored","max_block_size","pending_buf_size","max_start","deflate_fast","hash_head","bflush","match_length","max_lazy_match","deflate_slow","max_insert","prev_match","match_available","deflate_rle","deflate_huff","Config","good_length","max_lazy","nice_length","max_chain","lm_init","DeflateState","gzhead","gzindex","method","last_flush","w_bits","hash_bits","deflateResetKeep","deflateSetHeader","deflateInit","old_flush","level_flags","bstate","avail","tmpDict","deflateInfo","zlib","toPrimitive","$","toAbsoluteIndex","toLength","arraySpeciesCreate","createProperty","arrayMethodHasSpeciesSupport","arrayMethodUsesToLength","HAS_SPECIES_SUPPORT","USES_TO_LENGTH","ACCESSORS","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","proto","forced","deleteCount","insertCount","actualDeleteCount","A","O","actualStart","argumentsLength","DEFAULT_DATE_INTERVAL","DEFAULT_DATETIME_INTERVAL","dateIntervals","headerFilter","getFilterSelector","getFilterExpressionByRange","endFilterValue","startFilterExpression","endFilterExpression","setDate","getFilterExpressionForDate","selectedFilterOperation","dateStart","dateEnd","dateInterval","dateValue","getFilterExpressionForNumber","startFilterValue","condition","defaultCalculateFilterExpression","isSearchByDisplayValue","monthRegExpGenerator","PATTERN_REGEXPS","countSuffix","timeSeparator","parseNumber","caseInsensitiveIndexOf","monthPatternParser","PATTERN_PARSERS","dayNames","periodNames","ORDERED_PATTERNS","PATTERN_SETTERS","datePartValues","hourPartValue","setHours","getSameCharCount","createPattern","getRegExpInfo","regexpText","stubText","addPreviousStub","isEscapeChar","regexpPart","isPossibleForParsingFormat","regexp","digitFieldSymbols","isDigitPattern","possibleForParsing","ambiguousDigitPatternsCount","getPatternSetters","setPatternPart","patternChar","partSetter","partParser","setPatternPartFromNow","setterName","getterName","getShortPatterns","fullPatterns","getMaxOrderedPatternIndex","getOrderedFormatPatterns","formatPatterns","otherPatterns","getParser","regExpInfo","regExpResult","maxPatternIndex","orderedFormatPatterns","regExpPattern","regExpText","Readable","ReadableState","EElistenerCount","listeners","Stream","OurUint8Array","_uint8ArrayToBuffer","_isUint8Array","debugUtil","debug","destroyImpl","kProxyEvents","prependListener","_events","isDuplex","objectMode","readableObjectMode","hwm","readableHwm","readableHighWaterMark","defaultHwm","pipes","pipesCount","flowing","emittedReadable","readableListening","resumeScheduled","defaultEncoding","awaitDrain","readingMore","decoder","readable","readableAddChunk","addToFront","skipChunkCheck","onEofChunk","chunkInvalid","addChunk","maybeReadMore","needMoreData","emitReadable","_undestroy","isPaused","setEncoding","MAX_HWM","computeNewHighWaterMark","howMuchToRead","emitReadable_","maybeReadMore_","pipeOnDrain","nReadingNextTick","resume","resume_","fromList","fromListPartial","hasStrings","copyFromBufferString","copyFromBuffer","endReadable","endReadableNT","xs","nOrig","doRead","pipe","dest","pipeOpts","doEnd","stdout","stderr","endFn","onend","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanup","ondrain","cleanedUp","onclose","onfinish","ondata","increasedAwaitDrain","pause","dests","ev","addListener","paused","_fromList","SELECTION_SHIFT","SELECTION_MASK","combineIndex","indices","splitIndex","combinedIndex","GroupedEditStrategy","_groupElements","_collectionWidget","_groupItemElements","getIndexByItemData","groups","getItemDataByIndex","deleteItemAtIndex","itemGroup","getKeysByItems","itemKey","_equalKeys","_getGroups","queryByOptions","query","getItemsByKeys","groupItemByKeyMap","getItemMeta","groupKey","itemMeta","selectedGroup","moveItemAtIndexToIndex","movingIndex","destinationIndex","movingIndices","destinationIndices","movingItemGroup","destinationItemGroup","movedItemData","_isItemIndex","_getNormalizedItemIndex","_normalizeItemIndex","_denormalizeItemIndex","_getItemByNormalizedIndex","_itemsFromSameParent","firstIndex","editOptionsRegistry","registerOption","enabledFunc","decoratorTypeFunc","decoratorSubTypeFunc","decoratorType","decoratorSubType","LIST_ITEM_BEFORE_BAG_CLASS","LIST_ITEM_AFTER_BAG_CLASS","DECORATOR_BEFORE_BAG_CREATE_METHOD","DECORATOR_AFTER_BAG_CREATE_METHOD","DECORATOR_MODIFY_ELEMENT_METHOD","DECORATOR_AFTER_RENDER_METHOD","DECORATOR_GET_EXCLUDED_SELECTORS_METHOD","EditProvider","_fetchRequiredDecorators","_decorators","decorator","optionEnabled","_createDecorator","subType","_findDecorator","_registry$type","foundDecorator","modifyItemElement","_prependBeforeBags","_appendAfterBags","_applyDecorators","afterItemsRendered","$beforeBags","_collectDecoratorsMarkup","$afterBags","containerClass","$collector","_handlerExists","decorators","currentFocusedIndex","moveFocusUp","contextMenuHandlerExists","getExcludedItemSelectors","excludedSelectors","LIST_ITEM_SELECTED_CLASS","LIST_ITEM_RESPONSE_WAIT_CLASS","ListEdit","moveFocusedItem","editStrategy","focusedItemIndex","getNormalizedIndex","isLastIndexFocused","_getLastItemIndex","nextItemIndex","editProvider","_editProvider","isInternalMoving","privateKey","__dx_key__","_selection","selectAllMode","onSelectAllValueChanged","selectAllText","menuItems","menuMode","allowItemDeleting","itemDeleteMode","itemDragging","_initEditProvider","_isPageSelectAll","requireTotalCount","_disposeEditProvider","_refreshEditProvider","_selectedItemClass","_itemResponseWaitClass","handledByEditProvider","_this$_editStrategy$g","_initEditStrategy","selectAll","deselectAll","getSelectAllState","flatIndex","$itemElements","ListSearch","_addWidgetPrefix","_getCombinedFilter","_addSearchFilter","expr","getOperationBySearchMode","FUNC_ERROR_TEXT","nativeMax","nativeMin","debounce","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","thisArg","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","debounced","isInvoking","keysShim","has","isArgs","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","hasAutomationEqualityBug","equalsConstructorPrototypeIfNotBuggy","object","isArguments","theKeys","skipProto","skipConstructor","Writable","allowHalfOpen","onEndNT","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","other","valueOf","isBinary","AsyncCollectionWidget","_deferredItems","renderContentDeferred","itemDeferred","$itemContent","_postProcessRenderItems","TOOLBAR_BEFORE_CLASS","TOOLBAR_CENTER_CLASS","TOOLBAR_AFTER_CLASS","TOOLBAR_MINI_CLASS","TOOLBAR_ITEM_CLASS","TOOLBAR_LABEL_CLASS","TOOLBAR_BUTTON_CLASS","TOOLBAR_ITEMS_CONTAINER_CLASS","TOOLBAR_GROUP_CLASS","TOOLBAR_COMPACT_CLASS","TOOLBAR_LABEL_SELECTOR","TOOLBAR_MULTILINE_CLASS","TEXT_BUTTON_MODE","DEFAULT_BUTTON_TYPE","DEFAULT_DROPDOWNBUTTON_STYLING_MODE","TOOLBAR_ITEM_DATA_KEY","ToolbarBase","_userOptions","_getSynchronizableOptionsForCreateComponent","rawModel","html","menuItem","renderAs","multiline","_$toolbarItemsContainer","_buttonClass","_arrangeItems","_applyCompactMode","_renderToolbar","_renderSections","_waitParentAnimationFinished","runCheck","_waitParentAnimationTimeout","readyToResolve","isAnimating","_renderItemsAsync","all","_checkWebFontForLabelsLoaded","sectionClass","$section","$labels","promises","fontWeight","elementWidth","_$centerSection","margin","float","beforeRect","_$beforeSection","afterRect","_$afterSection","_alignCenterSection","labelOffset","widthBeforeSection","widthAfterSection","elemsAtSectionWidth","freeSpace","sectionMaxWidth","_alignSection","labelPaddings","leftRect","rightRect","centerRect","marginLeft","marginRight","labels","_getCurrentLabelsPaddings","currentWidth","_getCurrentLabelsWidth","difference","_alignSectionLabels","expanding","getRealLabelWidth","currentLabelWidth","labelMaxWidth","possibleLabelWidth","_getSummaryItemsWidth","padding","itemContainer","$after","itemHasText","cssClass","_renderGroupedItems","groupItems","_getIndexByItem","_itemOptionChanged","setEditorClass","TYPED_OK","_has","sources","shrinkBuf","subarray","fnTyped","src_offs","dest_offs","flattenChunks","chunks","pos","fnUntyped","setTyped","_arrayWithHoles","_nonIterableRest","RADIO_BUTTON_CLASS","RADIO_BUTTON_ICON_CLASS","RADIO_BUTTON_ICON_DOT_CLASS","RADIO_BUTTON_CHECKED_CLASS","RADIO_BUTTON_ICON_CHECKED_CLASS","RadioButton","_clickAction","_canValueBeChangedByClick","_renderIcon","_renderCheckedState","_renderClick","checked","_clickHandler","SELECT_DECORATOR_ENABLED_CLASS","SELECT_DECORATOR_SELECT_ALL_CLASS","SELECT_DECORATOR_SELECT_ALL_CHECKBOX_CLASS","SELECT_DECORATOR_SELECT_ALL_LABEL_CLASS","SELECT_CHECKBOX_CONTAINER_CLASS","SELECT_CHECKBOX_CLASS","SELECT_RADIO_BUTTON_CONTAINER_CLASS","SELECT_RADIO_BUTTON_CLASS","FOCUSED_STATE_CLASS","CLICK_EVENT_NAME","_singleStrategy","_containerClass","_controlClass","_controlWidget","$control","_isSelected","_processCheckedState","control","getInstance","_updateSelectAllState","_$selectAll","_selectAllCheckBox","isSelectAll","_renderSelectAll","moveFocusDown","$selectAll","lastItemIndex","isFocusOutOfList","hasSelectAllItem","downArrowHandler","itemsContainer","_attachSelectAllHandler","_selectAllHandler","_selectAllClickHandler","isSelectedAll","_selectAllItems","_unselectAllItems","_checkSelectAllCapability","_disposeSelectAll","encode","getTypeOf","decode","uint8array","compressedSize","uncompressedSize","compression","compressedContent","getContentWorker","uncompressWorker","streamInfo","data_length","getCompressedWorker","withStreamInfo","createWorkerFrom","compressWorker","STORE","magic","base64","binary","dir","createFolders","compressionOptions","unixPermissions","dosPermissions","6","lie","7","_pako","_pakoAction","_pakoOptions","meta","processChunk","_createPako","transformTo","cleanUp","onData","pako","8","file","utf8encode","I","g","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","CENTRAL_DIRECTORY_END","prepareNextSource","registerPrevious","generatedError","lock","9","generateWorker","_compressWorker","10","files","clone","loadAsync","support","defaults","external","11","decompressed","checkCRC32","optimizedBinaryString","decodeFileName","utf8decode","isNode","isStream","prepareContent","fileNameStr","fileCommentStr","unsafeOriginalName","12","_upstreamEnded","_bindStream","_stream","13","_helper","14","newBufferFrom","allocBuffer","15","lastIndexOf","folder","generate","generateInternalStream","mimeType","checkSupport","generateAsync","generateNodeStream","toNodejsStream","16","17","byteAt","lastIndexOfSignature","readAndCheckSignature","readData","checkOffset","18","checkIndex","setIndex","readInt","readString","readDate","19","20","21","22","23","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","24","destType","25","26","propName","27","dataIsReady","_tickScheduled","_tickAndRepeat","isFinished","_tick","28","extraStreamInfo","isLocked","_listeners","mergeStreamInfo","29","nodestream","_internalType","_outputType","_mimeType","newBlob","_worker","30","arraybuffer","nodebuffer","blob","Blob","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","getBlob","31","leftOver","applyFromCharCode","Utf8DecodeWorker","Utf8EncodeWorker","32","stringifyByChunk","stringifyByChar","applyCanBeUsed","byteLength","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","setImmediate","FileReader","onload","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","nodeStream","36","MutationObserver","WebKitMutationObserver","createTextNode","characterData","MessageChannel","createElement","onreadystatechange","documentElement","appendChild","port1","onmessage","port2","postMessage","37","queue","outcome","onFulfilled","callFulfilled","otherCallFulfilled","onRejected","callRejected","otherCallRejected","finally","catch","race","38","39","string2buf","_dict_set","buf2binstring","40","binstring2buf","utf8border","buf2string","41","42","43","44","45","46","T","D","F","N","U","P","W","G","K","Y","47","48","49","50","51","52","V","J","53","54","importScripts","random","clearImmediate","s1","s2","lacksProperEnumerationOrder","letters","assignHasPendingExceptions","preventExtensions","thrower","modules","installedModules","moduleId","getter","ns","__webpack_exports__","slicedToArray_","slicedToArray_default","toConsumableArray_","toConsumableArray_default","defineProperty_","defineProperty_default","external_fuzzysearch_","external_fuzzysearch_default","noop_","noop_default","warning_warning","onLeftClick","mouseDownHandler","evt","button","_len","_key","scrollIntoView","$scrollingEl","$focusedEl","scrollingReact","getBoundingClientRect","focusedRect","overScroll","intervalId","debounce_","debounce_default","external_watch_size_","external_watch_size_default","removeFromArray","elem","registered","INTERVAL_DURATION","run","setInterval","clearInterval","listener","lastWidth","lastHeight","watchSizeForIE9","unwatch","watchSize","isIE9","documentMode","locked","wrappedListener","removeSizeWatcher","findScrollParents","$scrollParents","nodeName","nodeType","ELEMENT_NODE","isScrollElment","_getComputedStyle","overflowX","setupResizeAndScrollEventListeners","passive","scrollParent","$scrollParent","isNaN_isNaN","external_is_promise_","external_is_promise_default","once_","once_default","identity_","identity_default","constant_","constant_default","createMap","typeof_","typeof_default","isPlainObject","deepExtend","last_","last_default","arrOrStr","predicate","quickDiff","arrA","arrB","NO_PARENT_NODE","UNCHECKED","INDETERMINATE","CHECKED","ALL_CHILDREN","ALL_DESCENDANTS","LEAF_CHILDREN","LEAF_DESCENDANTS","LOAD_ROOT_OPTIONS","LOAD_CHILDREN_OPTIONS","ASYNC_SEARCH","ALL","BRANCH_PRIORITY","LEAF_PRIORITY","ALL_WITH_INDETERMINATE","ORDER_SELECTED","LEVEL","INDEX","KEY_CODES","BACKSPACE","ENTER","ESCAPE","END","HOME","ARROW_LEFT","ARROW_UP","ARROW_RIGHT","ARROW_DOWN","DELETE","INPUT_DEBOUNCE_DELAY","MIN_INPUT_WIDTH","MENU_BUFFER","ownKeys","enumerableOnly","symbols","_objectSpread","sortValueByIndex","sortValueByLevel","createAsyncOptionsStates","loadingError","stringifyOptionPropValue","enableFuzzyMatch","getErrorMessage","instanceId","treeselectMixin","provide","allowClearingDisabled","allowSelectingDisabledDescendants","alwaysOpen","appendToBody","autoFocus","autoLoadRootOptions","autoDeselectAncestors","autoDeselectDescendants","autoSelectAncestors","autoSelectDescendants","backspaceRemoves","beforeClearAll","branchNodesFirst","cacheOptions","clearable","clearAllText","clearOnSelect","clearValueText","closeOnSelect","defaultExpandLevel","deleteRemoves","flattenSearchResults","disableBranchNodes","disableFuzzyMatching","flat","joinValues","limitText","loadingText","matchKeys","multiple","noChildrenText","noOptionsText","noResultsText","normalizer","openDirection","acceptableValues","openOnClick","openOnFocus","retryText","retryTitle","searchable","searchNested","searchPromptText","showCount","showCountOf","showCountOnSearch","sortValueBy","valueConsistsOf","searchQuery","menu","isOpen","lastScrollPosition","placement","forest","normalizedOptions","nodeMap","checkedStateMap","selectedNodeIds","extractCheckedNodeIdsFromValue","selectedNodeMap","rootOptionsStates","localSearch","active","noResults","countMap","remoteSearch","computed","selectedNodes","getNode","internalValue","single","isRootNode","isSelected","isLeaf","_internalValue","indeterminateNodeIds","selectedNode","ancestors","ancestor","hasValue","visibleOptionIds","traverseAllNodesByIndex","shouldOptionBeIncludedInSearchResult","isBranch","shouldExpand","hasVisibleOptions","showCountOnSearchComputed","hasBranchNodes","rootNode","shouldFlattenOptions","openMenu","closeMenu","initialize","hasChanged","getValue","getInstanceId","buildForestState","handleRemoteSearch","handleLocalSearch","nodeIdsFromValue","fixSelectedNodeIds","verifyProps","propNames","resetFlags","_blurOnSelect","getRemoteSearchEntry","prevNodeMap","keepDataOfSelectedNodes","normalize","rawNodes","nodeId","createFallbackNode","extractNodeFromValue","enhancedNormalizer","fallbackNode","isFallbackNode","isDisabled","isNew","defaultNode","valueArray","matched","nodeIdListOfPrevValue","nextSelectedNodeIds","traverseDescendantsBFS","descendant","_map","_queue","_nodeId","_node","currNode","traverseDescendantsDFS","child","traverseAllNodesDFS","walk","toggleClickOutsideEvent","handleClickOutside","getValueContainer","$refs","getInput","focusInput","blurInput","handleMouseDown","isClickedOnValueContainer","contains","wrapper","resetHighlightedOptionWhenNecessary","_this11$$set","isExpandedOnSearch","showAllChildrenOnSearch","isMatched","hasMatchedDescendants","lowerCasedSearchQuery","toLocaleLowerCase","splitSearchQuery","nestedSearchLabel","matchKey","lowerCased","callLoadOptionsProp","isPending","succeed","$watch","shouldShowOptionInMenu","getControl","getMenu","portal","portalTarget","$menu","setCurrentHighlightedOption","scroll","isHighlighted","scrollToOption","$option","$nextTick","forceReset","highlightFirstOption","highlightPrevOption","highlightLastOption","highlightNextOption","resetSearchQuery","saveMenuScrollPosition","restoreMenuScrollPosition","loadRootOptions","toggleMenu","toggleExpanded","nextState","childrenStates","loadChildrenOptions","selectedNodeId","ancestorNode","nodes","checkDuplication","verifyNodeShape","isDefaultExpanded","normalized","_this16$$set","hasDisabledDescendants","branchNodes","leafNodes","_this17","_this18","_this19","_selectNode","_deselectNode","_this20","_this21","addValue","isFullyChecked","_this22","removeValue","hasUncheckedSomeDescendants","removeLastValue","lastValue","lastSelectedNode","stringifyValue","HiddenFields_render","HiddenFieldsvue_type_script_lang_js_","functional","context","injections","stringifiedValues","stringifiedValue","domProps","components_HiddenFieldsvue_type_script_lang_js_","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","_injectStyles","originalRender","existing","beforeCreate","__file","Input_render","Input_staticRenderFns","HiddenFields","external_babel_helper_vue_jsx_merge_props_","external_babel_helper_vue_jsx_merge_props_default","keysThatRequireMenuBeingOpen","Inputvue_type_script_lang_js_","inputWidth","needAutoSize","inputStyle","updateInputWidth","debouncedCallback","updateSearchQuery","ctrlKey","metaKey","_current","_current2","onMouseDown","renderInputContainer","renderInput","renderSizer","keydown","sizer","scrollWidth","components_Inputvue_type_script_lang_js_","Input_component","Placeholder_render","Placeholder_staticRenderFns","Input","Placeholdervue_type_script_lang_js_","placeholderClass","components_Placeholdervue_type_script_lang_js_","Placeholder_component","SingleValue_render","SingleValue_staticRenderFns","Placeholder","SingleValuevue_type_script_lang_js_","renderSingleValueLabel","customValueLabelRenderer","$scopedSlots","renderValueContainer","shouldShowValue","components_SingleValuevue_type_script_lang_js_","SingleValue_component","SingleValue","Deletevue_type_template_id_364b6320_render","xmlns","viewBox","Deletevue_type_template_id_364b6320_staticRenderFns","_withStripped","Deletevue_type_script_lang_js_","icons_Deletevue_type_script_lang_js_","Delete_component","MultiValueItem_render","MultiValueItem_staticRenderFns","Delete","MultiValueItemvue_type_script_lang_js_","labelRenderer","components_MultiValueItemvue_type_script_lang_js_","MultiValueItem_component","MultiValue_render","MultiValue_staticRenderFns","MultiValueItem","MultiValuevue_type_script_lang_js_","renderMultiValueItems","renderExceedLimitTip","transitionGroupProps","appear","components_MultiValuevue_type_script_lang_js_","MultiValue_component","MultiValue","Arrowvue_type_template_id_11186cd4_render","Arrowvue_type_template_id_11186cd4_staticRenderFns","Arrowvue_type_script_lang_js_","icons_Arrowvue_type_script_lang_js_","Arrow_component","Control_render","Control_staticRenderFns","Arrow","Controlvue_type_script_lang_js_","shouldShowX","hasUndisabledValue","shouldShowArrow","renderX","handleMouseDownOnX","renderArrow","arrowClass","handleMouseDownOnArrow","shouldClear","ValueContainer","components_Controlvue_type_script_lang_js_","Control_component","Tip_render","Tip_staticRenderFns","Control","Tipvue_type_script_lang_js_","components_Tipvue_type_script_lang_js_","Tip_component","arrowPlaceholder","checkMark","minusMark","Option_render","Option_staticRenderFns","Tip","Option","shouldShow","renderOption","optionClass","handleMouseEnterOption","renderLabelContainer","renderCheckboxContainer","renderCheckbox","renderLabel","renderSubOptionsList","renderSubOptions","renderNoChildrenTip","renderLoadingChildrenTip","renderLoadingChildrenErrorTip","transitionProps","handleMouseDownOnLabelContainer","checkedState","checkboxClass","shouldShowCount","NaN","labelClassName","countClassName","customLabelRenderer","childNode","handleMouseDownOnRetry","indentLevel","listItemClass","Optionvue_type_script_lang_js_","components_Optionvue_type_script_lang_js_","Option_component","Menu_render","Menu_staticRenderFns","components_Option","directionMap","above","below","Menuvue_type_script_lang_js_","menuStyle","menuContainerStyle","onMenuOpen","onMenuClose","menuSizeWatcher","menuResizeAndScrollEventListeners","renderMenu","renderBeforeList","renderAsyncSearchMenuInner","renderLocalSearchMenuInner","renderNormalMenuInner","renderAfterList","beforeListRenderer","afterListRenderer","renderLoadingOptionsTip","renderLoadingRootOptionsErrorTip","renderNoAvailableOptionsTip","renderOptionList","renderNoResultsTip","shouldShowSearchPromptTip","shouldShowNoResultsTip","renderSearchPromptTip","renderAsyncSearchLoadingErrorTip","adjustMenuOpenDirection","setupMenuSizeWatcher","setupMenuResizeAndScrollEventListeners","removeMenuSizeWatcher","removeMenuResizeAndScrollEventListeners","menuRect","controlRect","menuHeight","viewportHeight","spaceAbove","spaceBelow","isControlInViewport","hasEnoughSpaceBelow","hasEnoughSpaceAbove","components_Menuvue_type_script_lang_js_","Menu_component","external_vue_","external_vue_default","MenuPortalvue_type_script_lang_js_ownKeys","MenuPortalvue_type_script_lang_js_objectSpread","MenuPortal_render","MenuPortal_staticRenderFns","PortalTarget","setupHandlers","removeHandlers","updateMenuContainerOffset","controlResizeAndScrollEventListeners","controlSizeWatcher","updateWidth","setupControlResizeAndScrollEventListeners","setupControlSizeWatcher","removeControlResizeAndScrollEventListeners","removeControlSizeWatcher","$portalTarget","portalTargetRect","offsetY","transformVariations","portalTargetClass","wrapperClass","portalTargetStyle","MenuPortalvue_type_script_lang_js_","teardown","innerHTML","$destroy","components_MenuPortalvue_type_script_lang_js_","MenuPortal_component","Treeselect_render","Treeselect_staticRenderFns","MenuPortal","Treeselectvue_type_script_lang_js_","mixins","components_Treeselectvue_type_script_lang_js_","Treeselect_component","VERSION","attribute","identity","define","hasDescriptors","gOPD","$floor","functionLengthIsConfigurable","functionLengthIsWritable","__importDefault","mod","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","accessKey","allowColumnReordering","allowColumnResizing","autoNavigateToFocusedRow","cacheEnabled","cellHintEnabled","columnAutoWidth","columnChooser","columnFixing","columnHidingEnabled","columnMinWidth","columnResizingMode","columnWidth","customizeColumns","customizeExportData","dataRowTemplate","dateSerializationFormat","editing","errorRowEnabled","export","filterBuilder","filterBuilderPopup","filterPanel","filterRow","filterSyncEnabled","focusedColumnIndex","focusedRowEnabled","focusedRowIndex","focusedRowKey","grouping","groupPanel","highlightChanges","hint","keyboardNavigation","loadPanel","masterDetail","onAdaptiveDetailRowPreparing","onCellClick","onCellDblClick","onCellHoverChanged","onCellPrepared","onContextMenuPreparing","onDataErrorOccurred","onDisposing","onEditCanceled","onEditCanceling","onEditingStart","onEditorPrepared","onEditorPreparing","onExported","onExporting","onFileSaving","onFocusedCellChanged","onFocusedCellChanging","onFocusedRowChanged","onFocusedRowChanging","onInitNewRow","onOptionChanged","onRowClick","onRowCollapsed","onRowCollapsing","onRowDblClick","onRowExpanded","onRowExpanding","onRowInserted","onRowInserting","onRowPrepared","onRowRemoved","onRowRemoving","onRowUpdated","onRowUpdating","onRowValidating","onSaved","onSaving","onToolbarPreparing","pager","paging","renderAsync","rowAlternationEnabled","rowDragging","rowTemplate","scrolling","searchPanel","selectedRowKeys","selectionFilter","showBorders","showColumnHeaders","showColumnLines","showRowLines","sortByGroupSummaryInfo","sorting","stateStoring","summary","syncLookupFilterValues","twoWayBindingEnabled","wordWrapEnabled","emits","$_instance","$_WidgetClass","$_hasAsyncTemplate","$_expectedChildren","isCollectionItem","dataGridHeaderFilter","createConfigurationComponent","$_optionName","ignoreEmptyValue","reevaluate","validationCallback","$_isCollectionItem","$_predefinedProps","insertAfterKey","insertBeforeKey","md","sm","allowEditing","allowExporting","allowFiltering","allowFixing","allowGrouping","allowHeaderFiltering","allowHiding","allowReordering","allowSearch","allowSorting","autoExpandGroup","calculateFilterExpression","calculateSortValue","editCellTemplate","editorOptions","encodeHtml","filterOperations","filterType","filterValues","fixedPosition","formItem","groupCellTemplate","headerCellTemplate","hidingPriority","isBand","ownerBand","resized","setCellValue","showEditorAlways","showInColumnChooser","showWhenGrouped","sortIndex","sortOrder","validationRules","visibleIndex","AsyncRule","columnHeaderFilter","columnLookup","CompareRule","CustomRule","EmailRule","NumericRule","PatternRule","RangeRule","RequiredRule","StringLengthRule","validationRule","emptyPanelText","texts","columnFixingTexts","fix","leftPosition","rightPosition","unfix","comparisonTarget","comparisonType","dataTypes","editorTemplate","dataGridHeaderFilterTexts","emptyValue","allowAdding","allowDeleting","allowUpdating","confirmDelete","editColumnName","editRowKey","form","newRowPosition","refreshMode","selectTextOnEditStart","startEditAction","useIcons","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","customOperation","closeOnOutsideClick","copyRootClassesToWrapper","onHidden","onHiding","onShowing","onShown","restorePosition","between","endsWith","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","minColWidth","onEditorEnterKey","onFieldDataChanged","optionalMark","readOnly","requiredMark","requiredMessage","screenByWidth","showColonAfterLabel","showOptionalMark","showRequiredMark","showValidationSummary","validationGroup","currency","precision","useCurrencyAccountingStyle","colSpan","editorType","helpText","isRequired","scale","allowCollapsing","autoExpandAll","contextMenuEnabled","expandMode","groupingTexts","groupByThisColumn","groupContinuedMessage","groupContinuesMessage","ungroup","ungroupAll","alignByColumn","showInColumn","showInGroupFooter","skipEmptyValues","and","notAnd","notOr","allowColumnDragging","easing","staggerDelay","locateInMenu","menuItemTemplate","showText","editOnKeyPress","enterKeyAction","enterKeyDirection","showColon","allowedPageSizes","displayMode","infoText","showInfo","showNavigationButtons","showPageSizeSelector","toolbarItem","filtering","allowDropInsideItem","autoScroll","cursorOffset","dragDirection","dragTemplate","dropFeedbackMode","onAdd","onDragChange","onDragEnd","onDragMove","onDragStart","onRemove","onReorder","scrollSensitivity","scrollSpeed","showDragIcons","columnRenderingMode","preloadEnabled","highlightCaseSensitive","highlightSearchText","searchVisibleColumnsOnly","allowSelectAll","maxFilterLengthInRequest","showCheckBoxesMode","groupColumn","ascendingText","clearText","descendingText","showSortIndexes","customLoad","customSave","savingTimeout","storageKey","calculateCustomSummary","recalculateWhileEditing","totalItems","groupItem","totalItem","avg","avgOtherColumn","maxOtherColumn","minOtherColumn","sum","sumOtherColumn","EE","_isStdio","didOnEnd","listenerCount","callee","readUInt8","origKeys","originalKeys","shim","keysWorksWithArguments","WIDGET_WITH_LEGACY_CONTAINER_NAME","ModuleItem","_endUpdateCore","_updateLockCount","_actionConfigs","callbackNames","callbackFlags","unique","syncStrategy","publicMethods","beginUpdate","endUpdate","optionCache","_optionCache","_silentOption","optionChanged","createAction","handled","getAction","actionName","setAttribute","getController","_controllers","executeAction","componentName","containerName","elementIsInsideGrid","$gridElement","Controller","ViewController","_views","getViews","View","_isReady","isReady","_requireReady","_requireRender","_requireResize","_$parent","requireResize","requireReady","_renderCore","_resizeCore","_parentElement","renderCompleted","resizeCompleted","getElementHeight","marginTop","marginBottom","getTemplate","resize","isResizing","preventScroll","MODULES_ORDER_MAX_INDEX","processModules","componentClass","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","$indicatorsContainer","_createIndicatorContainer","$span","_getIndicatorClassName","columnsController","indicatorAlignment","getHeaderContentAlignment","indicator","_renderIndicator","ignoreIndicatorAlignment","_getIndicatorContainer","$cell","_getIndicatorElements","$indicatorContainer","$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","subscribeToRowEvents","$table","touchTarget","touchCurrentTarget","timeoutId","clearTouchTargets","timeout","pointer","down","rowIndex","getRowIndex","rowElement","_rowPointerDown","_rowClick","_rowDblClick","getWidthStyle","setCellWidth","cell","copyAttributes","newElement","oldAttributes","attributes","newAttributes","hasAttribute","removeAttribute","nodeValue","ColumnsView","_createScrollableOptions","scrollingOptions","useSimulatedScrollbar","_updateCell","_cellPrepared","_createCell","textAlign","headerId","colspan","visibleWidth","_createRow","rowObject","tagName","_isAltRow","dataIndex","_createTable","isAppend","_createColGroup","$row","visibleColumns","_columnsController","getVisibleColumns","cellOptions","isHeaderRow","isDataRow","isMasterDetailRow","isGroupRow","isFilterRow","isDataRowWithTemplate","isEditorShown","isEditing","isHeaderRowWithTemplate","isGroupCellWithTemplate","shouldShowHint","removeAttr","$fieldItemContent","delegateTarget","resultOptions","cellElement","eventType","formItemOptions","getVisibleIndex","colgroupElement","_createCol","col","renderDelayedTemplates","delayedTemplates","_delayedTemplates","syncTemplates","asyncTemplates","_renderDelayedTemplatesCore","_renderDelayedTemplatesCoreAsync","templates","isAsync","templateParameters","_processTemplate","renderingTemplate","renderedTemplate","templateID","_templatesCache","renderTemplate","templateDeferred","templateOptions","templateDeferreds","_getBodies","tableElement","_needWrapRow","$tableElement","_this$_getBodies","hasRowTemplate","_wrapRowIfNeed","isRefreshing","_tableElement","needWrapRow","$tbody","_appendRow","appendTemplate","scrollLeft","_scrollLeft","_renderTable","changeType","_renderRows","rows","_getRows","columnIndices","changeTypes","_renderRow","$wrappedRow","_renderCells","_addWatchMethod","_rowPrepared","_needRenderCell","_renderCell","oldValues","_updateCells","$rowElement","$newRowElement","$newCells","cellUpdatedClass","$newCell","_setCellAriaAttributes","columnIndexOffset","getColumnIndexOffset","ariaColIndex","_getCellOptions","cellIndex","findIndex","_renderCellContent","renderOptions","_getCellTemplate","isAltRow","watchers","updateValueFunc","updateRowFunc","watcher","keepRow","_columnOptionChanged","optionNames","widths","setColumnWidths","getCellIndex","getTableElements","getTableElement","setTableElement","category","_afterRowPrepared","columnsChanged","changed","_handleDataChanged","_updateScrollLeftPosition","$scrollContainer","_wrapTableInScrollContainer","scrollChanged","_updateContent","$newTableElement","_findContentElement","_getWidths","$cellElements","clientRect","getColumnWidths","$rows","isRowVisible","display","getVisibleColumnIndex","$cols","classList","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","isMouseDown","isHiddenFocusing","focusedElementInfo","processKeyDown","viewName","$mainElement","executeKeyDown","isHandled","fireKeyDownEvent","saveFocusedElementInfo","selectView","ariaLabel","$activeElements","getActiveAccessibleElements","targetIndex","viewInstance","viewElement","$viewElement","findFocusedViewElement","viewSelectors","$focusViewElement","onDocumentVisibilityChange","visibilityState","subscribeVisibilityChange","unsubscribeVisibilityChange","hiddenFocus","registerKeyboardAction","getMainElement","keyDownHandler","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","_getDefaultTemplate","_getHeaderTemplate","resultTemplate","_isGroupingChanged","_isLegacyKeyboardNavigation","_handleActionKeyDown","_lastActionElement","headerFilterController","$column","getColumnIndexByElement","showHeaderFilterMenu","_processHeaderAction","_hasRowElements","getRowCount","_getRowVisibleColumns","$cellElement","rowspan","rowCount","groupExpanding","_isElementVisible","elementOptions","_alignCaptionByCenter","$indicatorElement","returnAll","_isSortableElement","getHeadersRowHeight","$headerRows","headerRow","getHeaderElement","columnElements","bandColumnIndex","getChildrenByBandColumn","$columnElements","allowDragging","sourceLocation","draggingPanels","draggableColumnCount","canHideColumn","allowDrag","isColumnOptionUsed","draggingPanel","getColumnCount","getContextMenuItems","sortingOptions","changeSortOrder","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","USER_STATE_FIELD_NAMES_15_1","USER_STATE_FIELD_NAMES","IGNORE_COLUMN_OPTION_NAMES","bestFitWidth","bufferedFilterValue","COMMAND_EXPAND_CLASS","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","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","_updateRequireResize","columnOptionValue","columnOptionName","forceApplying","isDataSourceLoaded","_dataSourceColumnsCount","columnsFromDataSource","firstItems","processedFields","updateColumns","isAllDataTypesDefined","_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","sourceColumn","moveColumn","targetGroupIndex","fromIndex","toIndex","groupColumns","targetColumn","sortingMode","needResetSorting","getSortDataSourceParameters","useLocalSelector","sortColumns","sortItem","getGroupDataSourceParameters","updateNewLookupsOnly","deferreds","valueMap","_updateColumnOptions","calculateCallbackName","calculateCallback","isColumnDataTypesUpdated","lookupDataType","valueDataType","_customizeColumns","hasOwnerBand","updateSortingGrouping","sortParameters","groupParameters","filterParameters","lastLoadOptions","_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","skipDeserialization","parseValue","formattedValue","formattedValueWithDefaultFormat","createFilterExpression","userDataType","updateValueMap","calculateValue","dataSourceOptions","resizedCallbacks","defaultOptionName","invisibleParents","alwaysGetRowIndex","onlyVisibleDirectChildren","isParentBandColumn","bandColumns","getColumnId","cloneItems","groupCount","calculateOperationTypes","isFullReload","operationTypes","fullReload","groupExpand","getPageDataFromCache","updatePaging","fillItemsFromCache","cacheItemsFromBegin","cacheItemBeginCount","cacheItemsFromEnd","_options$skip2","_options$take2","cacheItemEndCount","cachedDataPartBegin","cachedDataPartEnd","fromEnd","_options$take","_options$cachedData","cachedItems","cachedData","_options$skip","localIndex","cacheItemIndex","cacheItem","getItemFromCache","skips","takes","getGroupItemFromCache","isContinuationOnNextPage","childCacheItem","isLast","getCacheItem","loadedItem","globalIndex","childSkips","_remoteOperations","_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","_applyBatch","getDataIndexGetter","_dataIndexGetter","indexByKey","storeData","isCacheUpdated","_getKeyInfo","totalCount","isReshapeMode","isLegacyMode","getItemCount","itemsCount","oldItemCount","useInsertIndex","needUpdateTotalCountCorrection","_ref5","_needCleanCacheByOperation","operationType","operationTypesByOrder","operationTypeIndex","currentOperationTypes","_customizeRemoteOperations","cachedStoreData","cachedPagingData","isCustomLoading","_options$data","_handleDataLoading","originalStoreLoadOptions","_isRefreshing","_loadingOperationTypes","_isRefreshed","_lastOperationId","operationId","_handleDataLoadingCore","cachedExtra","localLoadOptionNames","localPaging","needCache","needPageCache","needPagingCache","needStoreCache","mergeStoreLoadData","_handleDataLoadedCore","_options$skip3","_options$take3","cacheItems","_loadPageSize","currentTotalCount","isDataLoading","pageCount","_operationTypes","_scheduleCustomLoadCallbacks","_isCustomLoading","loadingOperationTypes","_dataSourceTotalCount","totalCountCorrection","totalItemsCount","hasKnownLastPage","loadFromStore","dataSourceLoadOptions","loadResult","_customLoadOptions","isLoadingAll","_scheduleLoadCallbacks","fireEvent","full","getCachedStoreData","dataSourceAdapterType","dataControllerModule","loadingTimeout","changePaging","_getPagingOptionValue","_skipProcessingPagingChange","_isPaging","pageChanged","_cachedProcessedItems","_currentOperationTypes","_columnsChangedHandler","_handleColumnsChanged","_dataPushedHandler","_handleDataPushed","_isLoading","_repaintChangesOnly","_changes","dataErrorOccurred","_refreshDataSource","stopOnFalse","isValueChanged","_array","needToRefreshOnDataSourceChange","changedPagingOptions","_handleDataSourceChange","_setPagingOptions","isPageIndexChanged","_useSortingGroupingFromColumns","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","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","strict","oldNextItem","newItem","newNextItem","isFullUpdate","_partialUpdateRow","_isCellChanged","oldRow","newRow","visibleRowIndex","isLiveUpdate","isCellModified","modifiedValues","_getChangedColumnIndices","_cell$column","_changedColumnIndices","changedColumnIndices","isCellChanged","_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","COLUMN_HEADERS_VIEW_NAMESPACE","ColumnHeadersViewSortingExtender","$cellElementFromEvent","editingController","editingMode","isCellEditing","HeaderPanelSortingExtender","$rootElement","_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","rowsModule","defaultCellTemplate","isDataTextEmpty","_getDefaultGroupTemplate","isGroup","isRowExpanded","_setAriaRowIndex","isPagerMode","skipImmediate","_renderScrollable","force","_renderLoadPanel","getScrollable","allColumnsHasWidth","_hasHeight","_renderScrollableCore","_handleScroll","isNativeScrolling","_scrollTop","_scrollRight","dxScrollableOptions","scrollHandler","_scrollable","_scrollableContainer","_renderContent","newTableElement","executors","rowInsertedClass","$rowsElement","_createEmptyRow","isFixed","_appendEmptyRow","$emptyRow","$tBodies","isTableContainer","$colgroup","_renderFreeSpaceRow","$freeSpaceRowElement","_checkRowKeys","_needUpdateRowHeight","_rowHeight","_getRowsHeight","$rowElements","_updateRowHeight","rowsHeight","_getFreeSpaceRowElements","tableElements","evaluate","_getColumnsCountBeforeGroups","_getGroupCellOptions","columnsCountBeforeGroups","_renderGroupedCells","groupCellOptions","groupColumnAlignment","updateFreeSpaceRowHeight","_renderDataRowByTemplate","resizeCompletedHandler","scrollableInstance","_lastColumnWidths","groupingTextsOptions","_setRowsOpacityCore","_getDevicePixelRatio","getCellOptions","getRow","itemCount","freeSpaceRowElements","isFreeSpaceRowVisible","scrollbarWidth","getScrollbarWidth","elementHeightWithoutScrollbar","showFreeSpaceRow","borderTopWidth","heightCorrection","_getHeightCorrection","resultHeight","_updateLastRowBorder","freeSpaceRowCount","isZoomedWebkit","webkit","isChromeLatest","chrome","hasExtraBorderTop","_fireColumnResizedCallbacks","_editorFactoryController","setLoading","contentWidth","scrollableContainer","lastColumnWidths","columnWidths","_updateScrollable","dxScrollable","_updateHorizontalScrollPosition","maxHorizontalScrollOffset","scrollRight","_height","hasHeight","visibilityOptions","calculateLoadPanelPosition","_hideLoadingTimeoutID","groupCellIndex","_getBoundaryVisibleItemIndex","isTop","isFloor","prevOffset","viewportBoundary","$contentElement","contentElementOffsetTop","rowElements","getTopVisibleItemIndex","getBottomVisibleItemIndex","getTopVisibleRowData","_scrollToElement","_restoreErrorRow","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","showSubmenuMode","selectByClick","focusOnSelectedItem","_isSelectionEnabled","_renderSelectedItem","itemText","itemContent","$popOutContainer","$popOutImage","rootValue","multipleSelection","recursiveSelection","recursiveExpansion","nodeToSelect","_dataAdapter","getNodeByItem","toggleSelection","internalFields","selectedKeys","getSelectedNodesKeys","selectedKey","getNodeByKey","selectable","_selectByItem","Strategy","_getItemElementByEventArgs","_isItemDisabled","_getShowSubmenuMode","_showSubmenusTimeout","_showSubmenu","_getSubmenuDelay","_getAvailableItems","_disabledGetter","_addExpandedClass","eventArgs","childrenKeys","getRootNodes","submenuContainer","hasIcons","$nodeContainer","_renderContainer","firstVisibleIndex","nextGroupFirstIndex","isVisibleNode","isBeginGroup","beginGroup","_renderSeparator","$node","$nodeElement","_createDOMElement","_hasSubmenu","_renderItemFrame","_itemIndexKey","hasText","hasIcon","hasSubmenu","_getItemContent","_selectedGetter","_isItemSelectable","_setAriaSelected","$itemsContainer","_skipHandling","itemClickActionHandler","_updateSubmenuVisibilityOnClick","actionArgs","_updateSelectedItemOnClick","_isItemSelectionAllowed","selectedItemKey","_toggleItemSelection","_fireSelectionChangeEvent","isSelectionByClickEnabled","_isContainerEmpty","_itemsGetter","_updateSelectedItems","_getElementByItem","oldSelection","newSelection","addedSelection","removedSelection","removedItems","selected","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","_setDeprecatedOptions","_deprecatedOptions","since","_overlay","$availableItems","$hoveredItem","$hoveredItemContainer","_getActiveItem","$newTarget","$items","_getItemsByLocation","$oldTarget","$activeItemHighlighted","_prevItem","_setFocusedElement","_nextItem","_hideSubmenuHandler","_expandSubmenuHandler","$activeItem","_refreshActiveDescendant","$curItem","$parentItem","_hideSubmenusOnSameLevel","_hideSubmenu","isItemHasSubmenu","$submenu","_detachShowContextMenuEvents","_getTarget","_renderVisibility","_addWidgetClass","_attachShowContextMenuEvents","_keyboardListenerId","_focusTarget","_attachKeyboardEvents","overlayOptions","_getOverlayOptions","_addCustomCssClass","_addPlatformDependentClass","_attachContextMenuEvent","_itemContextMenuHandler","getShowEvent","_showContextMenuEventHandler","contextMenuAction","getShowDelay","_hoverEndHandler","$holder","_getChildNodes","submenuElement","innerOverlay","_hideOnOutsideClickHandler","_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","$rootItemWrapper","shouldRenderSubmenu","notCloseMenuOnItemClick","closeMenuOnClick","$prevSubmenu","canceled","$curSubmenu","_stopAnimate","jQEvent","_event$originalEvent","_positionContextMenu","_renderContextMenuOverlay","_widgetClass","_attachHoverEvents","_attachClickEvent","_setAriaAttributes","preventShowingDefaultContextMenuAboveOverlay","_overlayContentId","_getContextMenuPosition","isInitialPosition","_isInitialOptionValue","positioningAction","lastPosition","_cleanAriaAttributes","CONTEXT_MENU","footerView","VIEW_NAMES","ContextMenuController","dxEvent","$targetRowElement","$targetCellElement","view","_rowOptions$cells","_rowOptions$cells$col","_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","renderErrorRow","$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","_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","_maxWidth","isFocusOutsideWindow","_correctColumnWidths","expandColumnWidth","_processStretch","_getAverageColumnsWidth","freeWidth","columnCountWithoutWidth","hasPercentWidth","hasAutoWidth","hasWidth","_hasWidth","_loop","isHiddenColumn","averageColumnsWidth","realColumnWidth","_getRealColumnWidth","resultSizes","groupSize","tableSize","unusedIndexes","diffElement","onePixelElementsCount","groupWidth","ratio","percentTotalWidth","pixelTotalWidth","percentTotalWidthInPixel","updateSize","importantMarginClass","checkSize","_checkSize","_resizeDeferred","_resetGroupElementHeight","_updateDimensionsCore","_lastWidth","_lastHeight","_devicePixelRatio","_setScrollerSpacingCore","vScrollbarWidth","hScrollbarWidth","$testDiv","rootElementHeight","maxHeightHappened","editorFactory","isMaxHeightApplied","_updateLastSizes","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","_getSections","sectionName","_updateSections","$sections","_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","popupHeight","popupMaxHeight","popupAutoResizeEnabled","BUTTON_OPTION_MAP","buttonIcon","buttonText","buttonWidth","buttonHeight","buttonTemplate","DropDownMenu","extension","_button","onButtonClick","usePopover","selectedItemKeys","popupAnimation","onItemRendered","menuWidget","closeOnClick","_initOptions","_initButtonClickAction","_buttonClickAction","_renderButton","_buttonOptions","_toggleMenuVisibility","$popup","_popupOptions","usePopup","listConfig","_listOptions","listMaxHeight","_deferRendering","_toggleVisibility","_updateFocusableItemsTabIndex","MENU_INVISIBLE_CLASS","TOOLBAR_DROP_DOWN_MENU_CONTAINER_CLASS","POPOVER_BOUNDARY_OFFSET","_toolbar","_hasVisibleMenuItems","_renderMenuButtonContainer","_dropDownMenuContainer","_dropDownMenu","_dropDownMenuOptions","renderMenuItems","_getMenuItems","$afterSection","_$menuButtonContainer","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","dimension","_menu","actionSheetItem","_renderMenu","_hideOverflowItems","_getItemsWidth","overflowItems","itemsWidth","_isMenuItem","$hiddenItems","_restoreItems","$itemMarkup","_renderMenuStrategy","itemOption","_isToolbarItem","_changeMenuOption","widgetOption","HEADER_PANEL_CLASS","TOOLBAR_ARIA_LABEL","DEFAULT_TOOLBAR_ITEM_NAMES","HeaderPanel","_getButtonContainer","_getToolbarButtonClass","specificClass","secondClass","_getToolbarOptions","userToolbarOptions","itemRenderedCallback","userItems","_normalizeToolbarItems","defaultItems","defaultProps","defaultButtonsByNames","normalizedItems","_toolbarOptions","$headerPanel","setToolbarItemDisabled","toolbarInstance","itemOptionPrefix","updateToolbarDimensions","_this$_toolbar","getHeaderPanel","normalizedItem","headerPanelModule","DATAGRID_ROW_SELECTOR","DATAGRID_DEPRECATED_TEMPLATE_WARNING","DataGrid","templateName","DATE_REGEX","parseDates","StateStoringController","getStorage","storage","getUniqueStorageKey","_loadState","_saveState","setItem","isEnabled","_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","CHECKBOXES_HIDDEN_CLASS","COMMAND_SELECT_CLASS","SELECTION_DISABLED_CLASS","SHOW_CHECKBOXES_MODE","SELECTION_MODE","processLongTap","isSelectionWithCheckboxes","stopSelectionWithCheckboxes","startSelectionWithCheckboxes","changeItemSelection","SelectionController","selectionCellTemplate","isRowSelected","renderSelectCheckBoxContainer","selectionHeaderTemplate","_renderSelectAllCheckBox","_attachSelectAllCheckBoxClickEvent","_selectionMode","_isSelectionWithCheckboxes","_createSelection","_updateSelectColumn","removedKeys","deselectRows","_getSelectionConfig","selectionOptions","virtualPaging","legacyScrollingMode","ignoreDisabledItems","allowLoadByRange","hasGroupColumns","dataFields","_dataController$dataS","_dataController$dataS2","isSelectableItem","getItemData","oldData","getLoadOptions","loadItemIndex","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","oldSelectionMode","selectRows","_isOnePageSelectAll","clearSelection","preserve","isDeselect","getSelectedRowKeys","getSelectedItemKeys","selectRowsByIndexes","getSelectedRowsData","getSelectedItems","visibleItemIndex","setFocusOnly","loadedItemIndex","_focusedItemIndex","selectionModule","hasSelectColumn","currentItem","isUpdateSelection","_updateSelectAllValue","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","getPosition","ColumnChooserView","_isWinDevice","win","_updateList","_popupContainer","columnChooserList","_columnChooserList","_renderTreeView","_initializePopupContainer","columnChooserOptions","isGenericTheme","isMaterial","dxPopupOptions","_ignoreCopyRootClassesToWrapperDeprecation","treeViewConfig","dataStructure","$checkBox","$treeViewNode","checkBoxInstance","_prepareSelectModeConfig","_prepareDragModeConfig","selectNodesRecursive","onItemSelectionChanged","isLastColumnUnselected","needPartialRender","needFullRender","$nodes","columnVisible","isColumnChooserVisible","hideColumnChooser","popupContainer","columnChooserModule","columnChooserView","_appendColumnChooserItem","hintText","columnChooserMode","isMoveColumnDisallowed","createOffsetFilter","lastLevelOnly","filterElement","currentFilter","GroupingHelper","findGroupInfoByKey","groupsInfo","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","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","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","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","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","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","_spinIcon","_spinDownHandler","_spinChangeHandler","_clearTimer","_feedBackDeferred","SPIN_CONTAINER_CLASS","SPIN_TOUCH_FRIENDLY_CLASS","$spinContainer","$spinContainerChildren","pointerDownAction","_spinButtonsPointerDownHandler","_spinUpChangeHandler","_spinDownChangeHandler","$spinUp","$spinDown","_isTouchFriendly","isTouchFriendly","$spinButtons","spinUp","spinDown","WIDGET_CLASS","FIREFOX_CONTROL_KEYS","FORCE_VALUECHANGE_EVENT_NAMESPACE","NumberBoxBase","showSpinButtons","useLargeSpinButtons","invalidValueMessage","_isSupportInputMode","generic","_getDefaultAttributes","inputmode","_validateValue","_keyPressHandler","isInputCharValid","_keyPressed","_onMouseWheel","_spinValueChange","_forceValueRender","valuenow","valuetext","_applyDisplayValueFormatter","_renderProps","valuemin","valuemax","_normalizeInputValue","_correctRounding","regex","isFloatValue","isFloatStep","valueAccuracy","stepAccuracy","accuracy","_round","multiplier","forceValueChangeEvent","_forceRefreshInputValue","_normalizeText","_parseValue","valueHasDigits","_isValueValid","_applyValueBoundaries","validationRequest","isValueIncomplete","_isValueIncomplete","isValueCorrect","_isValueInRange","_replaceCommaWithPoint","_inputIsInvalid","isNumberMode","validityState","validity","badInput","_isNumber","isValueValid","isValid","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","_removeHandler","_arrowHandler","_moveCaretToBoundaryEventHandler","_updateFormattedValue","_getTextSeparatorIndex","_focusInHandler","clearCaretTimeout","_caretTimeout","_getInputVal","decimalSeparatorIndex","shouldHandleEvent","_focusOutOccurs","_getFormatPattern","_hasValueBeenChanged","_updateParsedValue","_adjustParsedValue","_setTextByParsedValue","_parsedValue","nextCaret","_moveCaretToBoundary","newCaret","_shouldMoveCaret","isDecimalSeparatorNext","moveToFloat","_lastKey","_keyboardHandler","_lastKeyName","_shouldHandleKey","normalizedText","enteredChar","_tryParse","_moveCaret","isDeleteKey","isBackspaceKey","canDelete","_isStub","editedText","_replaceSelectedText","noDigits","search","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","isMinusKey","_renderFormatter","_clearCache","_detachFormatterEvents","_attachFormatterEvents","_isInputFromPaste","_isValuePasted","_formatValue","escapedDecimalSeparator","regExpString","stubRegExp","currentFormat","realSeparatorIndex","floatPart","minPrecision","_applyRevertedSign","preserveSelectedText","currentText","caretInBoundaries","_removeMinusFromText","isMinusPressed","textWithoutMinus","wasMinusRemoved","textWasChanged","clearedText","monthGetter","monthSetter","monthLimits","getLimits","newDay","PATTERN_GETTERS","lastDayInMonth","isPM","getDay","currentYear","maxLimitLength","getPatternGetter","renderDateParts","sections","isStub","limits","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","onUpdated","onCancel","Swipeable","_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","_captionClickAction","_renderButtons","_renderCaption","_prevButton","$prevButton","_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","_$table","$body","rowData","cellDate","_getFirstCellData","prevCellDate","colIndex","_appendCell","_appendMethodName","_cacheAppendMethodName","_getClassNameByDate","getShortDateFormat","getCellAriaLabel","fixTimezoneGap","_prepareCellTemplateData","_getCellText","_getNextCellData","_isTodayCell","_isDateOutOfRange","isDateDisabled","_isOtherView","_createCellClickAction","_cellClickAction","_disabledDatesHandler","_getDefaultDisabledDatesHandler","contouredDate","$oldContouredCell","_getContouredCell","$newContouredCell","_getCellByDate","_changeValue","selectedCell","_selectedCell","_getFirstAvailableDate","getFirstDateView","isBoundary","CALENDAR_OTHER_MONTH_CLASS","Views","firstDayOfWeek","_renderHeader","_renderFocusTarget","$headerRow","$header","_renderHeaderCell","fullCaption","abbrCaption","_getDayCaption","_getFirstDayOfWeek","scope","abbr","getNavigatorCaption","today","sameDate","dateInRange","daysInWeek","getFirstMonthDate","firstMonthDayOffset","sameMonthAndYear","isDisabledDate","getLastMonthDate","foundDate","sameYear","decade","sameDecade","getFirstYearInDecade","createDateWithFullYear","firstYearInDecade","startDate","endDate","_isValueOnCurrentView","century","minDecade","maxDecade","sameCentury","getFirstDecadeInCentury","firstDecadeInCentury","CALENDAR_CLASS","CALENDAR_BODY_CLASS","CALENDAR_FOOTER_CLASS","CALENDAR_TODAY_BUTTON_CLASS","CALENDAR_HAS_FOOTER_CLASS","CALENDAR_VIEWS_WRAPPER_CLASS","CALENDAR_VIEW_CLASS","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","_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","_viewWidth","isRtl","_updateNavigatorCaption","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","$prevSelectedCell","$selectedCell","_value2","ariaId","_suppressingNavigation","getContouredDate","DateBoxStrategy","dateBox","_widget","_renderWidget","_createWidget","_getWidgetContainer","_getWidgetName","widgetOptions","_getWidgetOptions","getDefaultOptions","supportedKeys","getKeyboardListener","customizeButtons","getParsedText","renderInputMinMax","renderOpenedState","_updateValue","_this$_getPopup","_getPopup","renderPopupContent","_preventFocusOnPopup","getFirstPopupElement","getLastPopupElement","popupShowingHandler","popupHiddenHandler","dateBoxValue","useCurrentDateByDefault","getDefaultDate","textChangedHandler","renderValue","isAdaptivityChanged","dateOption","CalendarStrategy","homeEndHandler","viewValue","_getContouredValue","lastActionElement","shouldCloseDropDown","_closeDropDownByEnter","_valueChangedHandler","actionValue","_isCalendarVisible","_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","_$items","_fitIndex","_getItemPosition","_renderActiveStateItem","_itemHeight","itemSelector","_getItemSelector","_itemElementIndex","_prepareDirections","_animation","_shouldScrollToNeighborItem","_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","ROLLER_TYPE","DateView","_valueOption","_getDefaultDate","applyCompactClass","_toggleFormatClasses","_toggleCompactClass","previousFormat","_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","defaultOptionsRules","_device2","_isNativeType","NativeStrategy","_getDateBoxType","android","BOX_CLASS","BOX_SELECTOR","BOX_ITEM_CLASS","BOX_ITEM_DATA_KEY","MINSIZE_MAP","MAXSIZE_MAP","SHRINK","FLEX_JUSTIFY_CONTENT_MAP","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","_renderVisible","fireItemStateChangedAction","_option","initSize","justifyContent","_normalizedAlign","align","alignItems","_normalizedCrossAlign","crossAlign","flexPropPrefix","maxSize","minSize","baseSize","shrink","flexBasis","flexDirection","fontSize","whiteSpace","verticalAlign","totalItemSize","boxSize","_setItemsMargins","_chooseMarginSide","itemSize","totalRatio","totalWeightedShrink","totalBaseSize","_baseSize","freeSpaceSize","_boxSize","totalFactor","_parseSize","_boxSizeValue","_totalBaseSize","renderItems","renderAlign","renderCrossAlign","triggerHandler","onItemStateChanged","_layoutStrategy","_initLayout","_initBoxQueue","_layout","renderBox","_renderAlign","_onItemStateChanged","_queueIsNotEmpty","_shiftItemFromQueue","itemHoldTimeout","onItemHold","onItemContextMenu","_updateTimer","_isUpdated","$itemNode","_renderItemContentByNode","_renderItemContent","boxConfig","box","_pushItemToQueue","_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","cssRotate","TimeView","use24HourFormat","_showClock","_arrowOffset","_getValue","_renderBox","_updateTime","$box","_renderClock","_$hourArrow","_$minuteArrow","_updateClock","hourArrowAngle","minuteArrowAngle","_getBoxItems","is12HourFormat","_hourBox","_minuteBox","_format12","_createHourBox","_createMinuteBox","_createFormat12Box","_onHourBoxValueChanged","onKeyboardHandled","_getNumberBoxConfig","_isPM","newHours","_convertMaxHourToMin","maxHoursValue","newMinutes","_refreshFormat12","_silentEditorValueUpdate","_suppressValueChangeAction","displayValueFormatter","_normalizeHours","SHRINK_VIEW_SCREEN_WIDTH","DATEBOX_ADAPTIVITY_MODE_CLASS","DATEBOX_TIMEVIEW_SIDE_CLASS","CalendarWithTimeStrategy","_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","_getTimeListItems","_setSelectedItemsByValue","_asyncScrollTimeout","dateIndex","_getDateIndex","_areDatesEqual","_getBoundaryDate","_getRangeItems","rangeDuration","rangeItems","boundaryValue","_updatePopupHeight","dropDownOptionsHeight","_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","native","STRATEGY_NAME","dateView","calendarWithTime","STRATEGY_CLASSES","Native","CalendarWithTime","List","DateBox","_renderButtonContainers","showAnalogClock","pickerType","invalidDateMessage","dateOutOfRangeMessage","adaptivityEnabled","calendarOptions","_updatePickerOptions","_pickerType","_initStrategy","_toLowerCaseFirstLetter","_getStrategyName","_getFormatType","currentType","isTime","_refreshFormatClass","_refreshPickerTypeClass","_formatValidationIcon","_this$_strategy$_upda","_this$_strategy","clearButtonWidth","_getClearButtonWidth","longestElementDimensions","_getLongestElementDimensions","curWidth","shouldHideValidationIcon","_storedPadding","leftPadding","rightPadding","_isClearButtonVisible","clearButtonElement","longestValue","$longestValueElement","isPaddingStored","storedPadding","necessaryWidth","_renderPopupWrapper","_getPopupTitle","classPostfixes","isCustomValueDisabled","_getDisplayedText","submitFormat","displayedText","_getFormatByMode","_getParsedDate","_getDateByDefault","_applyInternalValidation","_applyCustomValidation","parsedText","isDateInRange","validationMessage","_serializeDate","_isValueChanged","oldTime","newTime","_isTextChanged","oldText","_refreshStrategy","_this$_strategy2","_updatePopupTitle","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","isValueOverflowed","_getActivePartLimits","_setActivePartValue","_partLimitsReached","startString","endLimit","_clearSearchValue","_regExpInfo","quantifierRegexp","convertedSource","sourcePart","_prepareRegExpInfo","_detachMaskEvents","_clearMaskState","_attachMaskEvents","_initMaskState","_dateParts","_maskClickHandler","_maskPasteHandler","_maskCompositionEndHandler","_maskBeforeInputHandler","isBoundaryIndex","lockOtherParts","limitFunction","_getRealLimitsPattern","zeroes","_addLeadingZeroes","limitDelta","_applyLimits","limitBase","limitClosest","_isDateValid","_isValueDirty","_fireChangeEvent","shouldFireChangeEvent","isDefaultPrevented","_saveMaskValue","CHECKBOX_SIZE_CLASS","EDITOR_INLINE_BLOCK","EditorFactoryMixin","getResultConfig","inputAttr","checkEnterBug","getTextEditorConfig","isEnterBug","sharedData","needDelayedUpdate","isInputOrKeyUpEvent","updateValue","valueChangeTimeout","updateValueTimeout","prepareBooleanEditor","prepareSelectBox","editorName","displayGetter","postProcess","selectBox","stopWatch","showClearButton","editorElement","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","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","_options$title","isMessageDefined","isMessageHtmlDefined","messageHtml","popupToolbarItems","popupInstance","execute","ignoreChildEvents","$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","_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","_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","_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","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","MultiView","swipeEnabled","animationEnabled","loop","loopItemFocus","selectOnFocus","selectionRequired","_$itemContainer","_itemWidth","_itemWidthValue","_clearItemWidthCache","_itemsCount","_normalizeIndex","_getRTLSignCorrection","_initSwipeable","selectedItemIndices","_getSelectedItemIndices","_updateItemsVisibility","_executeItemRenderAction","_updateItems","newIndex","_updateItemsPosition","positionSign","_animationDirection","$selectedItem","isHidden","_renderSpecificItem","hasItemContent","_itemContentClass","_refreshItem","_updateSelection","animationDirection","_animateItemContainer","completeCallback","indexDifference","_getItemFocusLoopSignCorrection","isSwipePresent","directionSignVariable","_getSwipeDisabledState","lastIndex","rtl","_swipeDirection","swipeDirection","$selectedElement","_itemFocusLooped","_updateSwipeDisabledState","TABS_ITEM_BADGE_CLASS","TabsItem","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","_renderWrapper","_renderMultiple","_feedbackHideTimeout","$iconElement","_deferredTemplates","_deferRenderScrolling","_renderScrolling","removeClasses","_isItemsWidthExceeded","_renderNavButtons","_updateNavButtonsVisibility","_scrollToItem","_cleanScrolling","_needStretchItems","tabItemsWidth","_getVisibleItems","$visibleItems","maxTabWidth","_cleanNavButtons","_leftButton","_rightButton","_createNavButton","$leftButton","$rightButton","_updateScrollPosition","holdAction","_holdInterval","holdEventName","pointerUpEventName","pointerOutEventName","navButton","$navButton","_clearInterval","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","tabsHeight","tabs","tabItems","$activeTab","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","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","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","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","_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","labelTextElement","getLabelInnerHTML","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","VALIDATION_TARGET_CLASS","INVALID_CLASS","renderFieldItem","$fieldEditorContainer","$validationTarget","getValidationTarget","validationTargetInstance","tryGetValidationTargetInstance","subscribeWrapperInvalidClassToggle","$div","isItemHaveCustomLabel","itemName","dataGetter","$editorParent","_$validationTarget$pa","_$validationTarget$pa2","toggleInvalidClass","validationMessageMode","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","_updateItemWatchers","_setItems","_sortItems","_getWatch","itemField","_getEditorTypeByDataType","_item$allowIndetermin","_sortIndexes","itemA","itemB","indexA","indexB","_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","_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","$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","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","_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","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","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","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","_positionedHandler","_hideFixedGroupCell","$nextFixedRowElement","$groupCellElement","nextRowOptions","visibility","isOverlayVisible","__skipPositionProcessing","isRevertButton","normalizedPosition","_normalizeValidationMessagePositionAndMaxWidth","_showValidationMessage","messages","revertTooltip","editorPopup","myPosition","atPosition","errorMessageText","invalidMessageClass","$overlayElement","_shiftValidationMessageIfNeed","fixedColumns","visibleTableWidth","w1","w2","$overlayContentElement","validationMessageWidth","needMaxWidth","boundaryNonFixedColumnsInfo","firstNonFixedColumnIndex","lastNonFixedColumnIndex","endColumnIndex","$revertContent","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","_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","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","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","_loadViewportParams","getLoadPageParams","getRowPageSize","rowsScrollController","isSortingOperation","allowedTopOffset","virtualRowsRendering","_allItems","_visibleItems","_rowPageIndex","_viewportChanging","_needUpdateViewportAfterLoading","_getRowsScrollDataOptions","_this$_dataSource2","loadViewport","_updateLoadViewportParams","isItemCountable","_that$_dataSource","_itemCount","isNextAfterLast","countableOnly","cancelEmptyChanges","_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","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","offsetBottom","DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS","orientation","onHoverStart","_initDataAdapter","_renderDelimiter","$contentDelimiter","_overlayPositionedActionHandler","_showDelimiter","hoverStartAction","_hoverStartHandler","rootItem","submenu","containerOffset","vLocation","hLocation","rootOffset","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","_toggleAdaptiveMode","_visibleSubmenu","_initAdaptivity","_hamburger","_toggleTreeView","_toggleHamburgerActiveState","$menuItemsContainer","$adaptiveElements","_hideVisibleSubmenu","_treeView","_$adaptiveContainer","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","$prevSelectedItem","prevSelectedItemData","$submenuOverlayContent","getOverlayContent","submenus","submenuMouseLeaveName","hover","_submenuOnShowingHandler","_submenuOnShownHandler","_submenuOnHidingHandler","_submenuOnHiddenHandler","_submenuMouseLeaveHandler","$border","_getSubmenuByRootElement","_hideSubmenuAfterTimeout","_getDelay","isRootItemHovered","isSubmenuItemHovered","hoveredElementFromSubMenu","isHorizontalMenu","$closestItem","_itemPointerDownHandler","mouseMoveEventName","isSelectionActive","_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","_focusEditor","_getFilterOperationMenuItems","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","updateHeaderFilterItemSelectionState","filterValuesMatch","isExcludeFilter","HeaderFilterView","getPopupContainer","getListContainer","_listContainer","applyHeaderFilter","isFilterBuilder","fillSelectedItemKeys","isExclude","_getNode","hasChildren","hasChildrenWithSelection","hideHeaderFilterMenu","$columnElement","updatePopup","headerFilterMenu","_cleanPopupContent","_getSearchExpr","useDefaultSearchExpr","headerFilterDataSource","headerFilterOptions","_initializeListContainer","_selectedItemsUpdating","oldSelected","filterValueIndex","headerFilterMixin","$headerFilterIndicator","_isHeaderFilterEmpty","indicatorLabel","DATE_INTERVAL_FORMATS","ungroupUTCDates","dates","isMonthPart","convertDataFromUTCToLocal","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","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","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","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","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","_createValueEditorWithEvents","_updateConditionValue","areValuesDifferent","_addDocumentKeyUp","isComposing","hasCompositionJustEnded","documentKeyUpHandler","_documentKeyUpHandler","_addDocumentClick","closeEditorFunc","documentClickHandler","_isFocusOnEditorParts","_documentClickHandler","_removeEvents","createValueText","_createValueEditor","$menuContainer","FilterBuilderView","_updatePopupOptions","_initPopup","_filterBuilderPopup","_disposePopup","_filterBuilder","_getPopupContentTemplate","$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","_getElementComputedSt","computedStyle","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","PagerProps","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","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","_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","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","getSwatchContainer","moveHeader","eventData","dragOptions","moveDeltaX","deltaX","moveDeltaY","deltaY","newLeft","newTop","dockHeader","targetDraggingPanel","isVerticalOrientation","axisName","pointsByTarget","pointsByColumns","_generatePointsByColumns","centerPosition","dock","dropHeader","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","_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","_editFocusedCell","_focusInteractiveElement","$lastInteractiveElement","_getInteractiveElement","getFirstValidCellInRow","_checkNewLineTransition","_fireFocusedCellChanging","$newCellElement","_getCellPosition","_fireFocusedRowChanging","rowIndexChanged","setFocusedColumnIndex","_processEnterKeyForDataCell","_getEnterKeyDirection","allowEditingOnEnterKey","_allowEditingOnEnterKey","_handleEnterKeyEditingCell","_startEditing","isShift","_focusEditFormCell","searchTextEditor","isCellValid","_isCellValid","$nextCell","isVerticalDirection","_fireFocusChangingEvents","_focus","isDeleting","fastEditingKey","isInteractiveElement","isExpandCommandCell","_isInsideEditForm","_focusView","_isMasterDetailCell","_clickTargetCellHandler","_isCellEditMode","setFocusedRowIndex","prevRowIndex","resetFocusedRow","_resetFocusedRow","_allowRowUpdating","skipFocusEvent","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","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","$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","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","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","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","wrapText","areEqual","leftTag","rightTag","colorHelper","_tryConvertColor","colorCode","rgb","theme","patternFillHelper","patternType","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","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","colorString","hsvToRgb","hslToRgb","baseColor","parseColor","colorIsInvalid","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","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","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","dropDownContentTemplate","buttonGroupOptions","_createActionClickAction","_createSelectionChangedAction","_compileKeyGetter","$listContainer","_escHandler","_getKey","storeKey","_keyGetter","_renderButtonGroup","_updateArrowClass","_loadSelectedItem","_updateActionButton","_this$_loadSingleDefe","_loadSingleDeferred","_lastSelectedItemData","cachedResult","_actionClickAction","previousItem","_actionItem","_actionButtonConfig","isActionButton","isToggleButton","buttonContent","$firstIcon","$textContainer","$secondIcon","_getButtonGroupItems","_buttonGroupItemClick","$buttonClicked","_fireItemClickAction","_buttonGroup","_setAriaExpanded","_ariaExpandedElements","ariaElement","$buttonGroup","_buttonGroupOptions","buttonElements","_upDownKeyHandler","_tabHandler","hasArrow","isPrimitiveItem","_getDisplayValue","_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","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","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","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","CorkedRequest","finish","onCorkedFinish","asyncWrite","WritableState","internalUtil","realHasInstance","nop","writableObjectMode","writableHwm","writableHighWaterMark","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","bufferedRequest","lastBufferedRequest","pendingcb","bufferedRequestCount","corkedRequestsFree","writev","_writev","final","_final","writeAfterEnd","validChunk","decodeChunk","writeOrBuffer","isBuf","newChunk","doWrite","onwriteError","finishMaybe","onwriteStateUpdate","needFinish","clearBuffer","afterWrite","onwriteDrain","holder","allBuffers","callFinal","need","endWritable","corkReq","getBuffer","hasInstance","cork","uncork","setDefaultEncoding","expand","expandChild","shrinkChild","cssText","unbind","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","weeks","setTime","addInterval","isNegative","getSequenceByInterval","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","makeTable","crcTable","crc","DRAGGABLE","DRAG_EVENT_NAME","DRAGEND_EVENT_NAME","DRAG_ENTER_EVENT_NAME","DRAGEND_LEAVE_EVENT_NAME","POINTERDOWN_EVENT_NAME","CLONE_CLASS","ANONYMOUS_TEMPLATE_NAME","getMousePosition","pageY","GESTURE_COVER_CLASS","OVERLAY_WRAPPER_CLASS","_preventScroll","_component","_scrollValue","_overFlowAttr","_sizeAttr","_scrollSizeProp","_clientSizeProp","_limitProps","mousePosition","isScrollableFound","isTargetOverOverlayWrapper","isTargetOverOverlayContent","_trySetScrollable","_$scrollableAtPointer","_scrollSpeed","distanceToBorders","sensitivity","isScrollable","_calculateDistanceToBorders","_calculateScrollSpeed","areaBoundingRect","maxSpeed","$scrollable","nextScrollPosition","_nextScrollPosition","dragMoveArgs","_dragMoveArgs","_dragMoveHandler","scrollableSize","ScrollAnimator","_step","horizontalScrollHelper","_horizontalScrollHelper","verticalScrollHelper","_verticalScrollHelper","scrollByStep","Draggable","dragMove","dragEnter","dragLeave","dragEnd","sourceEvent","sourceDraggable","_getSourceDraggable","_fireRemoveEvent","onDrop","boundOffset","allowMoveByClick","_scrollAnimator","_normalizeCursorOffset","_getNormalizedCursorOffset","_calculateElementOffset","dragElementOffset","isCloned","_dragElementIsCloned","normalizedCursorOffset","currentLocate","_initialLocate","initialOffset","_initPosition","_startPosition","_startAnimator","inProgress","_stopAnimator","_getItemsSelector","itemsSelector","checkDropTarget","targetGroup","sourceGroup","_getScrollable","isOutsideScrollable","_pointerDownHandler","_dragEnterHandler","_dragLeaveHandler","_$dragElement","_getDragTemplateArgs","_createDragElement","_getContainer","_resetDragElement","_toggleDraggingClass","_resetSourceElement","_toggleDragSourceClass","_$sourceElement","_getDraggableElement","$sourceElement","_getSourceElement","draggable","_getAction","_getEventArgs","_isValidElement","dragStartArgs","_getDragStartArgs","_setSourceDraggable","_setGestureCoverCursor","isFixedPosition","_getAreaOffset","_getBoundOffset","areaWidth","areaHeight","elementHeight","startOffset_left","startOffset_top","startPosition","targetDraggable","_getTargetDraggable","allObjects","elementsFromPoint","updateScrollable","_defaultActionArgs","fromComponent","toComponent","fromData","toData","_revertItemToInitialPosition","dragEndEventArgs","dropEventArgs","needRevertPosition","_resetTargetDraggable","_resetSourceDraggable","_isTargetOverAnotherDraggable","$sourceDraggableElement","$targetDraggableElement","firstWidgetElement","isTargetOverItself","isTargetOverNestedDraggable","_fireDragEnterEvent","_setTargetDraggable","_fireDragLeaveEvent","_getAnonymousTemplateName","transclude","anonymousTemplateName","SORTABLE","PLACEHOLDER_CLASS","_config$to","_config$to2","transition","stopAnimation","getScrollableBoundary","Sortable","_sourceScrollHandler","_handleSourceScroll","_sourceScrollableInfo","itemOrientation","moveItemOnDrop","onPlaceholderPrepared","dropInsideItem","itemPoints","fromIndexOffset","autoUpdate","draggableElementSize","_$placeholderElement","_isIndicateMode","_$modifiedItem","_modifiedItemMargin","_getPrevVisibleItem","_updateItemPoints","_subscribeToSourceScroll","_getElementIndex","_unsubscribeFromSourceScroll","sourceScrollableInfo","scrollProp","_correctItemPoints","_movePlaceholder","lastItemPoint","_isVerticalOrientation","sourceElementSize","scrollSize","lastPointPosition","freeSize","_getItems","$lastItem","$sortable","_allowDrop","$targetDraggable","itemPoint","cancelAdd","cancelRemove","isSourceDraggable","_fireAddEvent","_moveItem","_fireReorderEvent","cursorPosition","_updatePlaceholderPosition","_createPlaceholder","$placeholderContainer","_isValidPoint","draggableVisibleIndex","_getItemPoints","itemWidth","visibleItemElements","visibleItemCount","$draggableItem","needCorrectLeftPosition","needCorrectTopPosition","points","forceUpdate","positionPropName","_togglePlaceholder","_normalizeToIndex","isAnotherDraggable","placeholderElement","_makeWidthCorrection","_$scrollable","scrollableWidth","overflowLeft","overflowRight","_updatePlaceholderSizes","$placeholderElement","$prevTargetItemElement","$targetItemElement","_moveItemCore","$targetItem","prevItem","isDragSource","$fromElement","_optionChangedDropInsideItem","_optionChangedToIndex","_isPositionVisible","scrollContainer","showPlaceholder","_moveItems","_updateDragSourceClass","_getActualFromIndex","_makeLeftCorrection","prevVisibleItemElement","_getPositions","elementSize","positions","_getDraggableElementSize","prevToIndex","prevPositions","animationConfig","objectAssign","_isBuffer","pSlice","functionsHaveNames","pToString","isView","arrbuf","truncate","something","rawname","getMessage","operator","stackStartFunction","AssertionError","_deepEqual","memos","ignoreCase","actualIndex","objEquiv","actualVisitedObjects","aIsArgs","bIsArgs","kb","notDeepStrictEqual","expectedException","isPrototypeOf","_tryBlock","_throws","shouldThrow","userProvidedMessage","isUnwantedException","isUnexpectedException","generatedMessage","captureStackTrace","stack","fn_name","next_line","deepEqual","deepStrictEqual","notDeepEqual","strictEqual","notStrictEqual","throws","doesNotThrow","ifError","ReflectOwnKeys","ReflectApply","receiver","ProcessEmitWarning","warning","NumberIsNaN","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","newListener","onceWrapper","fired","wrapFn","_onceWrap","wrapped","evlistener","unwrapListeners","arrayClone","spliceOne","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","wrapListener","setMaxListeners","getMaxListeners","doError","prependOnceListener","originalListener","removeAllListeners","rawListeners","symbolTag"],"mappings":"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C,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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","file":"js/chunk-308e3c11.0f9e7576.js","sourcesContent":["'use strict';\n\nvar undefined;\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\nvar hasProto = require('has-proto')();\n\nvar getProto = Object.getPrototypeOf || (\n\thasProto\n\t\t? function (x) { return x.__proto__; } // eslint-disable-line no-proto\n\t\t: null\n);\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/**\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","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\nvar utils = require('../utils/common');\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//var Z_FILTERED = 1;\n//var Z_HUFFMAN_ONLY = 2;\n//var Z_RLE = 3;\nvar Z_FIXED = 4;\n//var Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nvar Z_BINARY = 0;\nvar Z_TEXT = 1;\n//var Z_ASCII = 1; // = Z_TEXT\nvar Z_UNKNOWN = 2;\n\n/*============================================================================*/\n\n\nfunction zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nvar STORED_BLOCK = 0;\nvar STATIC_TREES = 1;\nvar DYN_TREES = 2;\n/* The three kinds of block type */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\n\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nvar D_CODES = 30;\n/* number of distance codes */\n\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\n\nvar HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\n\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nvar MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nvar END_BLOCK = 256;\n/* end of block literal code */\n\nvar REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nvar REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nvar REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nvar extra_lbits = /* extra bits for each length code */\n [0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];\n\nvar extra_dbits = /* extra bits for each distance code */\n [0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];\n\nvar extra_blbits = /* extra bits for each bit length code */\n [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];\n\nvar bl_order =\n [16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nvar DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nvar static_ltree = new Array((L_CODES + 2) * 2);\nzero(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nvar static_dtree = new Array(D_CODES * 2);\nzero(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nvar _dist_code = new Array(DIST_CODE_LEN);\nzero(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nvar _length_code = new Array(MAX_MATCH - MIN_MATCH + 1);\nzero(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nvar base_length = new Array(LENGTH_CODES);\nzero(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nvar base_dist = new Array(D_CODES);\nzero(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nvar static_l_desc;\nvar static_d_desc;\nvar static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nfunction d_code(dist) {\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n}\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nfunction put_short(s, w) {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n}\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nfunction send_bits(s, value, length) {\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n}\n\n\nfunction send_code(s, c, tree) {\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n}\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nfunction bi_reverse(code, len) {\n var res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nfunction bi_flush(s) {\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n}\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nfunction gen_bitlen(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var max_code = desc.max_code;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var extra = desc.stat_desc.extra_bits;\n var base = desc.stat_desc.extra_base;\n var max_length = desc.stat_desc.max_length;\n var h; /* heap index */\n var n, m; /* iterate over the tree elements */\n var bits; /* bit length */\n var xbits; /* extra bits */\n var f; /* frequency */\n var overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n}\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nfunction gen_codes(tree, max_code, bl_count)\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n var next_code = new Array(MAX_BITS + 1); /* next code value for each bit length */\n var code = 0; /* running code value */\n var bits; /* bit index */\n var n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS; bits++) {\n next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS);\n\n //static_init_done = true;\n}\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nfunction init_block(s) {\n var n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nfunction bi_windup(s)\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n}\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nfunction copy_block(s, buf, len, header)\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n// while (len--) {\n// put_byte(s, *buf++);\n// }\n utils.arraySet(s.pending_buf, s.window, buf, len, s.pending);\n s.pending += len;\n}\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nfunction smaller(tree, n, m, depth) {\n var _n2 = n * 2;\n var _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n}\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nfunction pqdownheap(s, tree, k)\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n var v = s.heap[k];\n var j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n}\n\n\n// inlined manually\n// var SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nfunction compress_block(s, ltree, dtree)\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n var dist; /* distance of matched string */\n var lc; /* match length or unmatched char (if dist == 0) */\n var lx = 0; /* running index in l_buf */\n var code; /* the code to send */\n var extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n}\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nfunction build_tree(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var elems = desc.stat_desc.elems;\n var n, m; /* iterate over heap elements */\n var max_code = -1; /* largest code with non zero frequency */\n var node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n}\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nfunction scan_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nfunction send_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nfunction build_bl_tree(s) {\n var max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n}\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nfunction send_all_trees(s, lcodes, dcodes, blcodes)\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n var rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n}\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nfunction detect_data_type(s) {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n var black_mask = 0xf3ffc07f;\n var n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n}\n\n\nvar static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nfunction _tr_init(s)\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n}\n\n\n/* ===========================================================================\n * Send a stored block\n */\nfunction _tr_stored_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n}\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nfunction _tr_align(s) {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n}\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nfunction _tr_flush_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n var opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n var max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n}\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nfunction _tr_tally(s, dist, lc)\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //var out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n// /* Try to guess if it is profitable to stop the current block here */\n// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n// /* Compute an upper bound for the compressed length */\n// out_length = s.last_lit*8;\n// in_length = s.strstart - s.block_start;\n//\n// for (dcode = 0; dcode < D_CODES; dcode++) {\n// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n// }\n// out_length >>>= 3;\n// //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n// // s->last_lit, in_length, out_length,\n// // 100L - out_length*100L/in_length));\n// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n// return true;\n// }\n// }\n//#endif\n\n return (s.last_lit === s.lit_bufsize - 1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n}\n\nexports._tr_init = _tr_init;\nexports._tr_stored_block = _tr_stored_block;\nexports._tr_flush_block = _tr_flush_block;\nexports._tr_tally = _tr_tally;\nexports._tr_align = _tr_align;\n","module.exports = require('./lib/_stream_duplex.js');\n","'use strict';\n\nvar test = {\n\t__proto__: null,\n\tfoo: {}\n};\n\nvar $Object = Object;\n\n/** @type {import('.')} */\nmodule.exports = function hasProto() {\n\t// @ts-expect-error: TS errors on an inherited property for some reason\n\treturn { __proto__: test }.foo === test.foo\n\t\t&& !(test instanceof $Object);\n};\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\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","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar objectKeys = require('object-keys');\nvar hasSymbols = require('has-symbols/shams')();\nvar callBound = require('call-bind/callBound');\nvar toObject = Object;\nvar $push = callBound('Array.prototype.push');\nvar $propIsEnumerable = callBound('Object.prototype.propertyIsEnumerable');\nvar originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null;\n\n// eslint-disable-next-line no-unused-vars\nmodule.exports = function assign(target, source1) {\n\tif (target == null) { throw new TypeError('target must be an object'); }\n\tvar to = toObject(target); // step 1\n\tif (arguments.length === 1) {\n\t\treturn to; // step 2\n\t}\n\tfor (var s = 1; s < arguments.length; ++s) {\n\t\tvar from = toObject(arguments[s]); // step 3.a.i\n\n\t\t// step 3.a.ii:\n\t\tvar keys = objectKeys(from);\n\t\tvar getSymbols = hasSymbols && (Object.getOwnPropertySymbols || originalGetSymbols);\n\t\tif (getSymbols) {\n\t\t\tvar syms = getSymbols(from);\n\t\t\tfor (var j = 0; j < syms.length; ++j) {\n\t\t\t\tvar key = syms[j];\n\t\t\t\tif ($propIsEnumerable(from, key)) {\n\t\t\t\t\t$push(keys, key);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// step 3.a.iii:\n\t\tfor (var i = 0; i < keys.length; ++i) {\n\t\t\tvar nextKey = keys[i];\n\t\t\tif ($propIsEnumerable(from, nextKey)) { // step 3.a.iii.2\n\t\t\t\tvar propValue = from[nextKey]; // step 3.a.iii.2.a\n\t\t\t\tto[nextKey] = propValue; // step 3.a.iii.2.b\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to; // step 4\n};\n","/**\r\n * DevExtreme (esm/ui/drop_down_editor/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 getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar getElementWidth = function($element) {\r\n if (hasWindow()) {\r\n return getOuterWidth($element)\r\n }\r\n};\r\nvar getSizeValue = function(size) {\r\n if (null === size) {\r\n size = void 0\r\n }\r\n if (\"function\" === typeof size) {\r\n size = size()\r\n }\r\n return size\r\n};\r\nexport {\r\n getElementWidth,\r\n getSizeValue\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-tabs',{staticClass:\"pl-1 pr-1\",model:{value:(_vm.tabIndex),callback:function ($$v) {_vm.tabIndex=$$v},expression:\"tabIndex\"}},[_c('b-tab',{attrs:{\"title\":\"Cấu hình BO\"}},[_c('b-tabs',[_c('b-tab',{attrs:{\"title\":\"Thông tin chung\"}},[_c('b-row',{staticClass:\"mb-1\"},[_c('b-button',{staticStyle:{\"margin-left\":\"12px\"},attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.UpdateInfoBo()}}},[_vm._v(\" Cập nhật \")])],1),(_vm.listGolfClass)?_c('b-form-group',{attrs:{\"label\":\"Golf class\"}},[_c('v-select',{staticStyle:{\"max-width\":\"500px\"},attrs:{\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"options\":_vm.listGolfClass,\"clearable\":false,\"label\":\"GolfClassName\",\"reduce\":function (item) { return item.Id; }},scopedSlots:_vm._u([{key:\"selected-option\",fn:function(ref){\nvar GolfClassName = ref.GolfClassName;\nvar Color = ref.Color;\nreturn [_c('div',{staticClass:\"dot-size-10 d-inline-block rounded-circle\",staticStyle:{\"margin-top\":\"-2px\"},style:({backgroundColor: Color})}),_vm._v(\" \"+_vm._s(GolfClassName)+\" \")]}},{key:\"option\",fn:function(ref){\nvar GolfClassName = ref.GolfClassName;\nvar Color = ref.Color;\nreturn [_c('div',{staticClass:\"dot-size-10 d-inline-block rounded-circle\",staticStyle:{\"margin-top\":\"-2px\"},style:({backgroundColor: Color})}),_vm._v(\" \"+_vm._s(GolfClassName)+\" \")]}}],null,false,4068649357),model:{value:(_vm.BookingOnlineGolfClassDefault.KeyValue),callback:function ($$v) {_vm.$set(_vm.BookingOnlineGolfClassDefault, \"KeyValue\", $$v)},expression:\"BookingOnlineGolfClassDefault.KeyValue\"}})],1):_vm._e(),(_vm.companies)?_c('b-form-group',{attrs:{\"label\":\"TA\"}},[_c('v-select',{staticStyle:{\"max-width\":\"500px\"},attrs:{\"options\":_vm.companies,\"label\":\"ClientName\",\"reduce\":function (option) { return option.Id; },\"placeholder\":_vm.$t('golf_booking_ta'),\"clearable\":true},model:{value:(_vm.BookingOnlineTaDefault.KeyValue),callback:function ($$v) {_vm.$set(_vm.BookingOnlineTaDefault, \"KeyValue\", $$v)},expression:\"BookingOnlineTaDefault.KeyValue\"}})],1):_vm._e(),_c('b-form-group',{attrs:{\"label\":\"Số lượng golfer min\"}},[_c('b-form-input',{staticStyle:{\"max-width\":\"500px\"},model:{value:(_vm.BookingOnlineMinGolfer.KeyValue),callback:function ($$v) {_vm.$set(_vm.BookingOnlineMinGolfer, \"KeyValue\", $$v)},expression:\"BookingOnlineMinGolfer.KeyValue\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Số lượng golfer max\"}},[_c('b-form-input',{staticStyle:{\"max-width\":\"500px\"},model:{value:(_vm.BookingOnlineMaxGolfer.KeyValue),callback:function ($$v) {_vm.$set(_vm.BookingOnlineMaxGolfer, \"KeyValue\", $$v)},expression:\"BookingOnlineMaxGolfer.KeyValue\"}})],1),_c('b-form-group',{attrs:{\"label\":_vm.$t('golf_parameters_number_golfer_show_teetime')}},[_c('b-form-input',{staticStyle:{\"max-width\":\"500px\"},model:{value:(_vm.BookingOnlineGolferShowTeeTime.KeyValue),callback:function ($$v) {_vm.$set(_vm.BookingOnlineGolferShowTeeTime, \"KeyValue\", $$v)},expression:\"BookingOnlineGolferShowTeeTime.KeyValue\"}})],1),_c('b-form-group',{attrs:{\"label\":_vm.$t('golf_parameters_time_delete_booking')}},[_c('b-form-input',{staticStyle:{\"max-width\":\"500px\"},model:{value:(_vm.TimeDeleteBooking.KeyValue),callback:function ($$v) {_vm.$set(_vm.TimeDeleteBooking, \"KeyValue\", $$v)},expression:\"TimeDeleteBooking.KeyValue\"}})],1),_c('b-form-group',{attrs:{\"label\":\"SexCode\"}},[_c('v-select',{staticStyle:{\"max-width\":\"500px\"},attrs:{\"options\":_vm.listSex,\"label\":\"KeyValue\",\"reduce\":function (option) { return option.KeyCode; },\"placeholder\":_vm.$t('golf_booking_sex_Code'),\"clearable\":false},model:{value:(_vm.BookingOnlineSexCode.KeyValue),callback:function ($$v) {_vm.$set(_vm.BookingOnlineSexCode, \"KeyValue\", $$v)},expression:\"BookingOnlineSexCode.KeyValue\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Quốc tịch\"}},[_c('v-select',{staticStyle:{\"max-width\":\"500px\"},attrs:{\"options\":_vm.countries,\"label\":\"CountryNameVN\",\"reduce\":function (option) { return option.ID; },\"clearable\":false},model:{value:(_vm.BookingOnlineNation.KeyValue),callback:function ($$v) {_vm.$set(_vm.BookingOnlineNation, \"KeyValue\", $$v)},expression:\"BookingOnlineNation.KeyValue\"}})],1)],1),_c('b-tab',{attrs:{\"title\":\"Cấu hình thời gian\"}},[_c('b-row',[_c('b-button',{staticClass:\"mr-1\",attrs:{\"variant\":\"outline-primary\"},on:{\"click\":function($event){return _vm.addTimeShift()}}},[_c('span',{staticClass:\"mr-1\"},[_vm._v(\"Thêm khoảng thời gian\")]),_c('ez-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":\"ezGolf-icon-plus-circle\",\"size\":\"18\",\"color\":\"#114A9F\"}})],1),_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.UpdateTimeSHift()}}},[_vm._v(\" Cập nhật \")])],1),_vm._l((_vm.BookingOnlineShowTeeTime.KeyValue),function(item,index){return _c('b-form-group',{key:index,staticClass:\"time-apply mt-1\",attrs:{\"label-cols\":\"1\",\"label\":(\"Khoảng thời gian \" + (index + 1))}},[_c('b-form-group',{staticClass:\"mr-1\",attrs:{\"label\":\"Từ ngày\"}},[_c('date-range-picker',{ref:\"picker\",refInFor:true,staticStyle:{\"width\":\"180px\"},attrs:{\"single-date-picker\":true,\"ranges\":false,\"opens\":\"right\",\"time-picker\":false,\"time-picker-increment\":1,\"show-dropdowns\":true,\"auto-apply\":true,\"locale-data\":{\n format: 'mm/dd/YYYY',\n daysOfWeek: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n monthNames: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n firstDay: 0\n }},model:{value:(item.SaleDateFrom),callback:function ($$v) {_vm.$set(item, \"SaleDateFrom\", $$v)},expression:\"item.SaleDateFrom\"}})],1),_c('b-form-group',{staticClass:\"mr-1\",attrs:{\"label\":\"Đến ngày\"}},[_c('date-range-picker',{ref:\"picker\",refInFor:true,staticStyle:{\"width\":\"180px\"},attrs:{\"single-date-picker\":true,\"ranges\":false,\"opens\":\"right\",\"time-picker\":false,\"time-picker-increment\":1,\"show-dropdowns\":true,\"auto-apply\":true,\"locale-data\":{\n format: 'mm/dd/YYYY',\n daysOfWeek: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n monthNames: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n firstDay: 0\n }},model:{value:(item.SaleDateTo),callback:function ($$v) {_vm.$set(item, \"SaleDateTo\", $$v)},expression:\"item.SaleDateTo\"}})],1),_c('b-form-group',{staticClass:\"mr-1\",attrs:{\"label\":\"Giờ bắt đầu\"}},[_c('Cleave',{staticClass:\"form-control mr-50\",staticStyle:{\"width\":\"80px\"},attrs:{\"raw\":false,\"options\":_vm.inputMaskTime,\"placeholder\":\"hh:mm\"},model:{value:(item.TimeFrom),callback:function ($$v) {_vm.$set(item, \"TimeFrom\", $$v)},expression:\"item.TimeFrom\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Giờ kết thúc\"}},[_c('Cleave',{staticClass:\"form-control mr-50\",staticStyle:{\"width\":\"80px\"},attrs:{\"raw\":false,\"options\":_vm.inputMaskTime,\"placeholder\":\"hh:mm\"},model:{value:(item.TimeTo),callback:function ($$v) {_vm.$set(item, \"TimeTo\", $$v)},expression:\"item.TimeTo\"}})],1),_c('ez-icon',{staticClass:\"cursor-pointer ml-1 mt-auto mb-auto\",attrs:{\"icon\":\"ezGolf-icon-trash\",\"size\":\"18\",\"color\":\"#EA5455\"},on:{\"click\":function($event){return _vm.deleteTimeShift(index)}}})],1)})],2),_c('b-tab',{attrs:{\"title\":\"Cấu hình lựa chọn nâng cao\"}},[_c('b-row',[_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.UpdateOptionAdv()}}},[_vm._v(\" Cập nhật \")])],1),_vm._l((_vm.listOptionAdvan),function(item){return _c('b-form-group',{key:item},[_c('label',{staticClass:\"mt-1 mb-1\"},[_vm._v(\" Ngôn ngữ: \"),(_vm.listLanguages.find(function (x) { return x.LangId == item.LangId; }))?_c('b-img',{staticStyle:{\"margin-right\":\"5px\",\"width\":\"20px\"},attrs:{\"src\":require((\"@/assets/images/flags/\" + (_vm.listLanguages.find(function (x) { return x.LangId == item.LangId; }).WordTranslate) + \".svg\")),\"width\":\"22px\"}}):_vm._e(),_vm._v(\" \"+_vm._s(_vm.listLanguages.find(function (x) { return x.LangId == item.LangId; }) ? _vm.listLanguages.find(function (x) { return x.LangId == item.LangId; }).LangCode : item.LangId)+\" \")],1),_c('b-form-textarea',{staticClass:\"mb-0\",attrs:{\"rows\":\"10\"},model:{value:(item.KeyValue),callback:function ($$v) {_vm.$set(item, \"KeyValue\", $$v)},expression:\"item.KeyValue\"}})],1)})],2),_c('b-tab',{attrs:{\"title\":\"Điều khoản thanh toán\"}},[_c('b-row',{staticClass:\"mb-1\"},[_c('b-button',{staticStyle:{\"margin-left\":\"12px\"},attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.UpdateBoTerm()}}},[_vm._v(\" Cập nhật \")])],1),_vm._l((_vm.listPaymetOnlineTerm),function(item){return _c('b-form-group',{key:item},[_c('label',{staticClass:\"mt-1 mb-1\"},[_vm._v(\" Ngôn ngữ: \"),(_vm.listLanguages.find(function (x) { return x.LangId == item.LangId; }))?_c('b-img',{staticStyle:{\"margin-right\":\"5px\",\"width\":\"20px\"},attrs:{\"src\":require((\"@/assets/images/flags/\" + (_vm.listLanguages.find(function (x) { return x.LangId == item.LangId; }).WordTranslate) + \".svg\")),\"width\":\"22px\"}}):_vm._e(),_vm._v(\" \"+_vm._s(_vm.listLanguages.find(function (x) { return x.LangId == item.LangId; }) ? _vm.listLanguages.find(function (x) { return x.LangId == item.LangId; }).LangCode : item.LangId)+\" \")],1),_c('b-form-textarea',{staticClass:\"mb-0\",attrs:{\"rows\":\"25\"},model:{value:(item.KeyValue),callback:function ($$v) {_vm.$set(item, \"KeyValue\", $$v)},expression:\"item.KeyValue\"}})],1)})],2),_c('b-tab',{attrs:{\"title\":\"Thông tin dịch vụ\"}},[_c('b-row',{staticClass:\"mb-1\"},[_c('b-button',{staticStyle:{\"margin-left\":\"12px\"},attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.UpdateServiceTerm()}}},[_vm._v(\" Cập nhật \")])],1),_vm._l((_vm.listServiceOnlineTerm),function(item){return _c('b-form-group',{key:item},[_c('label',{staticClass:\"mt-1 mb-1\"},[_vm._v(\" Ngôn ngữ: \"),(_vm.listLanguages.find(function (x) { return x.LangId == item.LangId; }))?_c('b-img',{staticStyle:{\"margin-right\":\"5px\",\"width\":\"20px\"},attrs:{\"src\":require((\"@/assets/images/flags/\" + (_vm.listLanguages.find(function (x) { return x.LangId == item.LangId; }).WordTranslate) + \".svg\")),\"width\":\"22px\"}}):_vm._e(),_vm._v(\" \"+_vm._s(_vm.listLanguages.find(function (x) { return x.LangId == item.LangId; }) ? _vm.listLanguages.find(function (x) { return x.LangId == item.LangId; }).LangCode : item.LangId)+\" \")],1),_c('b-form-textarea',{staticClass:\"mb-0\",attrs:{\"rows\":\"25\"},model:{value:(item.KeyValue),callback:function ($$v) {_vm.$set(item, \"KeyValue\", $$v)},expression:\"item.KeyValue\"}})],1)})],2),_c('b-tab',{attrs:{\"title\":\"Thông tin email\"}},[_c('b-row',{staticClass:\"mb-1\"},[_c('b-button',{staticStyle:{\"margin-left\":\"12px\"},attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.UpdateBookingEmail()}}},[_vm._v(\" Cập nhật \")])],1),_vm._l((_vm.listEmailBookingOnlineConfig),function(item){return _c('b-form-group',{key:item},[_c('label',{staticClass:\"mt-1 mb-1\"},[_vm._v(\" Ngôn ngữ: \"),(_vm.listLanguages.find(function (x) { return x.LangId == item.LangId; }))?_c('b-img',{staticStyle:{\"margin-right\":\"5px\",\"width\":\"20px\"},attrs:{\"src\":require((\"@/assets/images/flags/\" + (_vm.listLanguages.find(function (x) { return x.LangId == item.LangId; }).WordTranslate) + \".svg\")),\"width\":\"22px\"}}):_vm._e(),_vm._v(\" \"+_vm._s(_vm.listLanguages.find(function (x) { return x.LangId == item.LangId; }) ? _vm.listLanguages.find(function (x) { return x.LangId == item.LangId; }).LangCode : item.LangId)+\" \")],1),_c('b-form-textarea',{staticClass:\"mb-0\",attrs:{\"rows\":\"25\"},model:{value:(item.KeyValue),callback:function ($$v) {_vm.$set(item, \"KeyValue\", $$v)},expression:\"item.KeyValue\"}})],1)})],2)],1)],1),_c('b-tab',{attrs:{\"title\":\"Cấu hình phí thường niên\"}},[_c('b-row',[_c('b-form-group',{attrs:{\"label\":\"Khu kinh doanh\"}},[_c('v-select',{staticStyle:{\"min-width\":\"500px\"},attrs:{\"options\":_vm.listBarLocation,\"label\":\"Name\",\"reduce\":function (option) { return option.Id; },\"clearable\":true,\"multiple\":\"\"},on:{\"input\":_vm.getListService},model:{value:(_vm.listZoneSelect),callback:function ($$v) {_vm.listZoneSelect=$$v},expression:\"listZoneSelect\"}})],1)],1),_c('b-row',[_c('b-form-group',{attrs:{\"label\":\"Dịch vụ\"}},[_c('treeselect',{staticClass:\"d-tree-select\",staticStyle:{\"max-width\":\"500px\"},attrs:{\"options\":_vm.ListService,\"clearable\":true,\"multiple\":true,\"clear-on-select\":false},model:{value:(_vm.ListServiceSelect),callback:function ($$v) {_vm.ListServiceSelect=$$v},expression:\"ListServiceSelect\"}})],1)],1),_c('b-row',[_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.updateServiceAnnual()}}},[_vm._v(\" Cập nhật \")])],1),_c('b-row',{staticClass:\"mt-1\"},[_c('b-col',{attrs:{\"cols\":\"6\"}},[_c('DxDataGrid',{ref:\"tablePackage\",staticClass:\"table-starter\",attrs:{\"height\":400,\"show-borders\":false,\"data-source\":_vm.ListServiceConfigSelected,\"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:\"action\",fn:function(ref){\n var data = ref.data;\nreturn [_c('b-button',{attrs:{\"variant\":\"outline-danger\"},on:{\"click\":function($event){return _vm.deleteService(data)}}},[_vm._v(\" Xóa \")])]}}])},[_vm._l((_vm.configTable),function(item,i){return _c('DxColumn',{key:i.field,attrs:{\"caption\":item.caption,\"data-field\":item.field,\"data-type\":item.type,\"alignment\":item.alignment,\"cell-template\":(item.cellTemplate) ? item.cellTemplate : false,\"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)}),_c('DxColumnFixing',{attrs:{\"enabled\":true}}),_c('DxGroupPanel',{attrs:{\"visible\":false}}),_c('DxPaging',{attrs:{\"page-size\":_vm.perPage}}),_c('DxPager',{attrs:{\"visible\":true,\"display-mode\":\"full\",\"show-info\":true}})],2)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Cleave from 'vue-cleave-component'\r\nimport { ValidationProvider, ValidationObserver } from 'vee-validate'\r\nimport { config } from '@/api/config-setting'\r\nimport { golfClass } from '@/api/golf-class'\r\nimport { members } from '@/api/members'\r\nimport { commonServices } from '@/api/common-services'\r\nimport 'devextreme/dist/css/dx.light.css'\r\nimport Treeselect from '@riophae/vue-treeselect'\r\nimport '@riophae/vue-treeselect/dist/vue-treeselect.css'\r\n\r\nimport {\r\n DxDataGrid,\r\n DxColumn,\r\n DxEditing,\r\n DxFilterRow,\r\n DxHeaderFilter,\r\n DxGroupPanel,\r\n DxGrouping,\r\n DxScrolling,\r\n DxPaging,\r\n DxPager,\r\n DxSummary,\r\n DxLookup,\r\n DxTotalItem,\r\n DxGroupItem,\r\n DxMasterDetail,\r\n DxStringLengthRule,\r\n DxRequiredRule,\r\n DxRangeRule,\r\n DxValueFormat,\r\n DxColumnChooser,\r\n DxColumnFixing,\r\n DxSelection,\r\n DxExport,\r\n} from 'devextreme-vue/data-grid'\r\nconst {gzip, ungzip} = require('node-gzip');\r\nimport {\r\n required, min, max,\r\n } from '@validations'\r\n export default {\r\n components: {\r\n ValidationProvider,\r\n ValidationObserver,\r\n Cleave,\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 Treeselect\r\n },\r\n data() {\r\n return {\r\n BookingOnlineShowTeeTime: {\r\n KeyValue: [],\r\n Id: null,\r\n LangId: null\r\n },\r\n tabIndex: null,\r\n inputMaskTime: {\r\n time: true,\r\n timePattern: ['h', 'm'],\r\n },\r\n BookingOnlineGolfClassDefault: {\r\n KeyValue: [],\r\n Id: null,\r\n LangId: null\r\n },\r\n BookingOnlineTaDefault: {\r\n KeyValue: [],\r\n Id: null,\r\n LangId: null\r\n },\r\n BookingOnlineTerm: {\r\n KeyValue: [],\r\n Id: null,\r\n LangId: null\r\n },\r\n ServiceAnnualFee: {\r\n KeyValue: [],\r\n Id: null,\r\n LangId: null\r\n },\r\n ServiceOnlineTerm: {\r\n KeyValue: [],\r\n Id: null,\r\n LangId: null\r\n },\r\n BookingOnlineSexCode: {\r\n KeyValue: [],\r\n Id: null,\r\n LangId: null\r\n },\r\n BookingOnlineNation: {\r\n KeyValue: [],\r\n Id: null,\r\n LangId: null\r\n },\r\n BookingOnlineMinGolfer: {\r\n KeyValue: [],\r\n Id: null,\r\n LangId: null\r\n },\r\n BookingOnlineGolferShowTeeTime: {\r\n KeyValue: [],\r\n Id: null,\r\n LangId: null\r\n },\r\n BookingOnlineMaxGolfer: {\r\n KeyValue: [],\r\n Id: null,\r\n LangId: null\r\n },\r\n BookingOnlineEmail: {\r\n KeyValue: [],\r\n Id: null,\r\n LangId: null\r\n },\r\n OptionAdvan: {\r\n KeyValue: [],\r\n Id: null,\r\n LangId: null\r\n },\r\n TimeDeleteBooking: {\r\n KeyValue: [],\r\n Id: null,\r\n LangId: null\r\n },\r\n listGolfClass: null,\r\n companies: null,\r\n listBarLocation: JSON.parse(localStorage.getItem('userGolfData')).BarLocation,\r\n hotelId: JSON.parse(localStorage.getItem('userData')).hotelId,\r\n ListService: [],\r\n listZoneSelect: [],\r\n ListServiceSelect: [],\r\n ListServiceConfigSelected: [],\r\n currentPage: 1,\r\n perPage: 20,\r\n dataGridRef: 'tablePackage',\r\n optionPerPage: [10, 20, 50],\r\n configTable: [\r\n {\r\n caption: 'Code',\r\n field: 'Code',\r\n isShow: true,\r\n alignment: 'center',\r\n },\r\n {\r\n caption: 'Tên dịch vụ',\r\n field: 'ServiceName',\r\n isShow: true,\r\n alignment: 'center',\r\n },\r\n {\r\n caption: '',\r\n field: 'action',\r\n isShow: true,\r\n cellTemplate: 'action',\r\n alignment: 'center',\r\n }\r\n ],\r\n listSex: [],\r\n currentLang: this.$i18n.locale,\r\n countries: [],\r\n listEmailBookingOnlineConfig: [],\r\n listPaymetOnlineTerm: [],\r\n listServiceOnlineTerm: [],\r\n listOptionAdvan: [],\r\n listLanguages: []\r\n }\r\n },\r\n watch: {\r\n tabIndex(value) {\r\n if(value == 0) {\r\n this.call_api_RCFV01('BOOKING_ONLINE_SHOW_TEETIME').then(res => {\r\n this.BookingOnlineShowTeeTime.KeyValue = JSON.parse(res.Data.ConfigValue.find(x => x.KeyCode == \"BOOKING_ONLINE_SHOW_TEETIME\").KeyValue)\r\n this.BookingOnlineShowTeeTime.Id = res.Data.ConfigValue.find(x => x.KeyCode == \"BOOKING_ONLINE_SHOW_TEETIME\").Id\r\n this.BookingOnlineShowTeeTime.LangId = res.Data.ConfigValue.find(x => x.KeyCode == \"BOOKING_ONLINE_SHOW_TEETIME\").LangId\r\n })\r\n this.call_api_RCFV01('bo_config_golfclass_default').then(res => {\r\n this.BookingOnlineGolfClassDefault.KeyValue = Number(res.Data.ConfigValue.find(x => x.KeyCode == \"bo_config_golfclass_default\").KeyValue)\r\n this.BookingOnlineGolfClassDefault.Id = res.Data.ConfigValue.find(x => x.KeyCode == \"bo_config_golfclass_default\").Id\r\n this.BookingOnlineGolfClassDefault.LangId = res.Data.ConfigValue.find(x => x.KeyCode == \"bo_config_golfclass_default\").LangId\r\n })\r\n this.call_api_RCFV01('bo_config_ta_default').then(res => {\r\n this.BookingOnlineTaDefault.KeyValue = Number(res.Data.ConfigValue.find(x => x.KeyCode == \"bo_config_ta_default\").KeyValue)\r\n this.BookingOnlineTaDefault.Id = res.Data.ConfigValue.find(x => x.KeyCode == \"bo_config_ta_default\").Id\r\n this.BookingOnlineTaDefault.LangId = res.Data.ConfigValue.find(x => x.KeyCode == \"bo_config_ta_default\").LangId\r\n })\r\n this.call_api_RCFV01('RATE_ADVANTEGED_OPTIONS').then(res => {\r\n this.listOptionAdvan = res.Data.ConfigValue\r\n })\r\n this.call_api_RCFV01('BO_PAYMENT_ONLINE_TERM').then(res => {\r\n this.listPaymetOnlineTerm = res.Data.ConfigValue\r\n // this.BookingOnlineTerm.Id = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_PAYMENT_ONLINE_TERM\").Id\r\n // this.BookingOnlineTerm.LangId = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_PAYMENT_ONLINE_TERM\").LangId\r\n // this.BookingOnlineTerm.KeyValue = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_PAYMENT_ONLINE_TERM\").KeyValue\r\n })\r\n this.call_api_RCFV01('BO_SERVICE_TERM').then(res => {\r\n this.listServiceOnlineTerm = res.Data.ConfigValue\r\n // this.ServiceOnlineTerm.Id = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_SERVICE_TERM\").Id\r\n // this.ServiceOnlineTerm.LangId = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_SERVICE_TERM\").LangId\r\n // this.ServiceOnlineTerm.KeyValue = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_SERVICE_TERM\").KeyValue\r\n })\r\n this.call_api_RCFV01('BO_BOOKING_MIN_NUMBER_GOLFER').then(res => {\r\n this.BookingOnlineMinGolfer.Id = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_BOOKING_MIN_NUMBER_GOLFER\").Id\r\n this.BookingOnlineMinGolfer.LangId = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_BOOKING_MIN_NUMBER_GOLFER\").LangId\r\n this.BookingOnlineMinGolfer.KeyValue = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_BOOKING_MIN_NUMBER_GOLFER\").KeyValue\r\n })\r\n this.call_api_RCFV01('BO_BOOKING_MAX_NUMBER_GOLFER').then(res => {\r\n this.BookingOnlineMaxGolfer.Id = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_BOOKING_MAX_NUMBER_GOLFER\").Id\r\n this.BookingOnlineMaxGolfer.LangId = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_BOOKING_MAX_NUMBER_GOLFER\").LangId\r\n this.BookingOnlineMaxGolfer.KeyValue = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_BOOKING_MAX_NUMBER_GOLFER\").KeyValue\r\n })\r\n this.call_api_RCFV01('NUMBER_GOLFER_SHOW_TEETIME_IN_BOOKING').then(res => {\r\n this.BookingOnlineGolferShowTeeTime.Id = res.Data.ConfigValue.find(x => x.KeyCode == \"NUMBER_GOLFER_SHOW_TEETIME_IN_BOOKING\").Id\r\n this.BookingOnlineGolferShowTeeTime.LangId = res.Data.ConfigValue.find(x => x.KeyCode == \"NUMBER_GOLFER_SHOW_TEETIME_IN_BOOKING\").LangId\r\n this.BookingOnlineGolferShowTeeTime.KeyValue = res.Data.ConfigValue.find(x => x.KeyCode == \"NUMBER_GOLFER_SHOW_TEETIME_IN_BOOKING\").KeyValue\r\n })\r\n this.call_api_RCFV01('BO_CONFIG_NATIONNALITY_CODE').then(res => {\r\n this.BookingOnlineNation.Id = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_CONFIG_NATIONNALITY_CODE\").Id\r\n this.BookingOnlineNation.LangId = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_CONFIG_NATIONNALITY_CODE\").LangId\r\n this.BookingOnlineNation.KeyValue = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_CONFIG_NATIONNALITY_CODE\").KeyValue\r\n })\r\n this.call_api_RCFV01('BO_CONFIG_SEX_CODE').then(res => {\r\n this.BookingOnlineSexCode.Id = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_CONFIG_SEX_CODE\").Id\r\n this.BookingOnlineSexCode.LangId = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_CONFIG_SEX_CODE\").LangId\r\n this.BookingOnlineSexCode.KeyValue = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_CONFIG_SEX_CODE\").KeyValue\r\n })\r\n this.call_api_RCFV01('BOOKING_TIME_TO_DELETE_NOPAY_BOOKING_FROM_BO').then(res => {\r\n this.TimeDeleteBooking.Id = res.Data.ConfigValue.find(x => x.KeyCode == \"BOOKING_TIME_TO_DELETE_NOPAY_BOOKING_FROM_BO\").Id\r\n this.TimeDeleteBooking.LangId = res.Data.ConfigValue.find(x => x.KeyCode == \"BOOKING_TIME_TO_DELETE_NOPAY_BOOKING_FROM_BO\").LangId\r\n this.TimeDeleteBooking.KeyValue = res.Data.ConfigValue.find(x => x.KeyCode == \"BOOKING_TIME_TO_DELETE_NOPAY_BOOKING_FROM_BO\").KeyValue\r\n })\r\n this.call_api_RCFV01('BO_CONFIRM').then(res => {\r\n this.listEmailBookingOnlineConfig = res.Data.ConfigValue\r\n // this.BookingOnlineEmail.Id = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_CONFIRM\").Id\r\n // this.BookingOnlineEmail.LangId = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_CONFIRM\").LangId\r\n // this.BookingOnlineEmail.KeyValue = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_CONFIRM\").KeyValue\r\n })\r\n } else if (value == 1) {\r\n this.call_api_RCFV01('BOOKING_LIST_ANNUAL_FEE').then(res => {\r\n this.ServiceAnnualFee.Id = res.Data.ConfigValue.find(x => x.KeyCode == \"BOOKING_LIST_ANNUAL_FEE\").Id\r\n this.ServiceAnnualFee.LangId = res.Data.ConfigValue.find(x => x.KeyCode == \"BOOKING_LIST_ANNUAL_FEE\").LangId\r\n this.ServiceAnnualFee.KeyValue = res.Data.ConfigValue.find(x => x.KeyCode == \"BOOKING_LIST_ANNUAL_FEE\").KeyValue\r\n this.getServiceDetail()\r\n\r\n })\r\n }\r\n }\r\n },\r\n created() {\r\n this.getApiListGolfClass()\r\n this.getCompanies_RCL01()\r\n this.getListService()\r\n this.getListSex()\r\n this.getCountries_RNA01()\r\n this.getListLanguages()\r\n },\r\n methods: {\r\n async getCountries_RNA01() {\r\n const response = await members.getCountries({})\r\n if (response) {\r\n this.countries = response.Data.Country\r\n }\r\n },\r\n addTimeShift() {\r\n this.BookingOnlineShowTeeTime.KeyValue.push({\r\n ChannelCode: \"BO\",\r\n SaleDateFrom: null,\r\n SaleDateTo: null,\r\n TimeFrom: null,\r\n TimeTo: null\r\n })\r\n },\r\n async getListSex() {\r\n await commonServices\r\n .getCommon({ KeyGroup: 'SEX' })\r\n .then(res => {\r\n if (res) {\r\n this.listSex = res.Data.filter(x => x.LangId == this.currentLang)\r\n }\r\n })\r\n },\r\n async call_api_RCFV01(item) {\r\n const body = {\r\n KeyCode: item,\r\n }\r\n const response = await config\r\n .API_RCFV01(body)\r\n return response\r\n },\r\n deleteTimeShift(index) {\r\n this.BookingOnlineShowTeeTime.KeyValue.splice(index,1)\r\n },\r\n async UpdateTimeSHift() {\r\n let check = true\r\n this.BookingOnlineShowTeeTime.KeyValue.forEach(x => {\r\n if(!x.SaleDateFrom || !x.SaleDateTo || !x.TimeFrom || !x.TimeTo) {\r\n check = false\r\n }\r\n })\r\n if(check) {\r\n const body = {\r\n ConfigValue: {\r\n Id: this.BookingOnlineShowTeeTime.Id,\r\n LangId: this.BookingOnlineShowTeeTime.LangId,\r\n KeyValue: JSON.stringify(this.BookingOnlineShowTeeTime.KeyValue)\r\n },\r\n }\r\n await config\r\n .API_UCFV01(body)\r\n .then(res => {\r\n this.showResToast(res)\r\n this.call_api_RCFV01('BOOKING_ONLINE_SHOW_TEETIME').then(res => {\r\n this.BookingOnlineShowTeeTime.KeyValue = JSON.parse(res.Data.ConfigValue.find(x => x.KeyCode == \"BOOKING_ONLINE_SHOW_TEETIME\").KeyValue)\r\n this.BookingOnlineShowTeeTime.Id = res.Data.ConfigValue.find(x => x.KeyCode == \"BOOKING_ONLINE_SHOW_TEETIME\").Id\r\n this.BookingOnlineShowTeeTime.LangId = res.Data.ConfigValue.find(x => x.KeyCode == \"BOOKING_ONLINE_SHOW_TEETIME\").LangId\r\n })\r\n })\r\n } else {\r\n this.showToast('error', 'Nhập đầy đủ thông tin')\r\n }\r\n \r\n },\r\n getApiListGolfClass() {\r\n golfClass\r\n .getListGolfClass(\r\n {\r\n KeyWord: null,\r\n CourseId: [],\r\n Lang: this.$i18n.locale,\r\n }\r\n )\r\n .then(res => {\r\n if (res) {\r\n this.listGolfClass = res.Data.GolfClass\r\n }\r\n })\r\n },\r\n async getCompanies_RCL01() {\r\n const response = await members.getCompanies()\r\n if (response) {\r\n this.companies = response.Data.Client\r\n }\r\n },\r\n async UpdateInfoBo() {\r\n await config.API_UCFV01({\r\n ConfigValue: {\r\n Id: this.BookingOnlineGolfClassDefault.Id,\r\n LangId: this.BookingOnlineGolfClassDefault.LangId,\r\n KeyValue: JSON.stringify(this.BookingOnlineGolfClassDefault.KeyValue)\r\n }\r\n }).then(res => {\r\n this.showResToast(res)\r\n this.call_api_RCFV01('bo_config_golfclass_default').then(res => {\r\n this.BookingOnlineGolfClassDefault.KeyValue = Number(res.Data.ConfigValue.find(x => x.KeyCode == \"bo_config_golfclass_default\").KeyValue)\r\n this.BookingOnlineGolfClassDefault.Id = res.Data.ConfigValue.find(x => x.KeyCode == \"bo_config_golfclass_default\").Id\r\n this.BookingOnlineGolfClassDefault.LangId = res.Data.ConfigValue.find(x => x.KeyCode == \"bo_config_golfclass_default\").LangId\r\n })\r\n })\r\n await config.API_UCFV01({\r\n ConfigValue: {\r\n Id: this.BookingOnlineTaDefault.Id,\r\n LangId: this.BookingOnlineTaDefault.LangId,\r\n KeyValue: this.BookingOnlineTaDefault.KeyValue ? JSON.stringify(this.BookingOnlineTaDefault.KeyValue) : ''\r\n }\r\n }).then(res => {\r\n this.showResToast(res)\r\n this.call_api_RCFV01('bo_config_ta_default').then(res => {\r\n this.BookingOnlineTaDefault.KeyValue = Number(res.Data.ConfigValue.find(x => x.KeyCode == \"bo_config_ta_default\").KeyValue)\r\n this.BookingOnlineTaDefault.Id = res.Data.ConfigValue.find(x => x.KeyCode == \"bo_config_ta_default\").Id\r\n this.BookingOnlineTaDefault.LangId = res.Data.ConfigValue.find(x => x.KeyCode == \"bo_config_ta_default\").LangId\r\n })\r\n })\r\n await config.API_UCFV01({\r\n ConfigValue: {\r\n Id: this.BookingOnlineMinGolfer.Id,\r\n LangId: this.BookingOnlineMinGolfer.LangId,\r\n KeyValue: this.BookingOnlineMinGolfer.KeyValue\r\n }\r\n }).then(res => {\r\n this.showResToast(res)\r\n this.call_api_RCFV01('BO_BOOKING_MIN_NUMBER_GOLFER').then(res => {\r\n this.BookingOnlineMinGolfer.KeyValue = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_BOOKING_MIN_NUMBER_GOLFER\").KeyValue\r\n this.BookingOnlineMinGolfer.Id = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_BOOKING_MIN_NUMBER_GOLFER\").Id\r\n this.BookingOnlineMinGolfer.LangId = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_BOOKING_MIN_NUMBER_GOLFER\").LangId\r\n })\r\n })\r\n await config.API_UCFV01({\r\n ConfigValue: {\r\n Id: this.BookingOnlineMaxGolfer.Id,\r\n LangId: this.BookingOnlineMaxGolfer.LangId,\r\n KeyValue: this.BookingOnlineMaxGolfer.KeyValue \r\n }\r\n }).then(res => {\r\n this.showResToast(res)\r\n this.call_api_RCFV01('BO_BOOKING_MAX_NUMBER_GOLFER').then(res => {\r\n this.BookingOnlineMaxGolfer.KeyValue = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_BOOKING_MAX_NUMBER_GOLFER\").KeyValue\r\n this.BookingOnlineMaxGolfer.Id = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_BOOKING_MAX_NUMBER_GOLFER\").Id\r\n this.BookingOnlineMaxGolfer.LangId = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_BOOKING_MAX_NUMBER_GOLFER\").LangId\r\n })\r\n })\r\n await config.API_UCFV01({\r\n ConfigValue: {\r\n Id: this.BookingOnlineMaxGolfer.Id,\r\n LangId: this.BookingOnlineMaxGolfer.LangId,\r\n KeyValue: this.BookingOnlineMaxGolfer.KeyValue \r\n }\r\n }).then(res => {\r\n this.showResToast(res)\r\n this.call_api_RCFV01('BOOKING_TIME_TO_DELETE_NOPAY_BOOKING_FROM_BO').then(res => {\r\n this.TimeDeleteBooking.KeyValue = res.Data.ConfigValue.find(x => x.KeyCode == \"BOOKING_TIME_TO_DELETE_NOPAY_BOOKING_FROM_BO\").KeyValue\r\n this.TimeDeleteBooking.Id = res.Data.ConfigValue.find(x => x.KeyCode == \"BOOKING_TIME_TO_DELETE_NOPAY_BOOKING_FROM_BO\").Id\r\n this.TimeDeleteBooking.LangId = res.Data.ConfigValue.find(x => x.KeyCode == \"BOOKING_TIME_TO_DELETE_NOPAY_BOOKING_FROM_BO\").LangId\r\n })\r\n })\r\n await config.API_UCFV01({\r\n ConfigValue: {\r\n Id: this.BookingOnlineGolferShowTeeTime.Id,\r\n LangId: this.BookingOnlineGolferShowTeeTime.LangId,\r\n KeyValue: this.BookingOnlineGolferShowTeeTime.KeyValue\r\n }\r\n }).then(res => {\r\n this.showResToast(res)\r\n this.call_api_RCFV01('NUMBER_GOLFER_SHOW_TEETIME_IN_BOOKING').then(res => {\r\n this.BookingOnlineGolferShowTeeTime.KeyValue = res.Data.ConfigValue.find(x => x.KeyCode == \"NUMBER_GOLFER_SHOW_TEETIME_IN_BOOKING\").KeyValue\r\n this.BookingOnlineGolferShowTeeTime.Id = res.Data.ConfigValue.find(x => x.KeyCode == \"NUMBER_GOLFER_SHOW_TEETIME_IN_BOOKING\").Id\r\n this.BookingOnlineGolferShowTeeTime.LangId = res.Data.ConfigValue.find(x => x.KeyCode == \"NUMBER_GOLFER_SHOW_TEETIME_IN_BOOKING\").LangId\r\n })\r\n })\r\n await config.API_UCFV01({\r\n ConfigValue: {\r\n Id: this.BookingOnlineSexCode.Id,\r\n LangId: this.BookingOnlineSexCode.LangId,\r\n KeyValue: this.BookingOnlineSexCode.KeyValue\r\n }\r\n }).then(res => {\r\n this.showResToast(res)\r\n this.call_api_RCFV01('BO_CONFIG_SEX_CODE').then(res => {\r\n this.BookingOnlineSexCode.KeyValue = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_CONFIG_SEX_CODE\").KeyValue\r\n this.BookingOnlineSexCode.Id = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_CONFIG_SEX_CODE\").Id\r\n this.BookingOnlineSexCode.LangId = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_CONFIG_SEX_CODE\").LangId\r\n })\r\n })\r\n await config.API_UCFV01({\r\n ConfigValue: {\r\n Id: this.BookingOnlineNation.Id,\r\n LangId: this.BookingOnlineNation.LangId,\r\n KeyValue: this.BookingOnlineNation.KeyValue \r\n }\r\n }).then(res => {\r\n this.showResToast(res)\r\n this.call_api_RCFV01('BO_CONFIG_NATIONNALITY_CODE').then(res => {\r\n this.BookingOnlineNation.KeyValue = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_CONFIG_NATIONNALITY_CODE\").KeyValue\r\n this.BookingOnlineNation.Id = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_CONFIG_NATIONNALITY_CODE\").Id\r\n this.BookingOnlineNation.LangId = res.Data.ConfigValue.find(x => x.KeyCode == \"BO_CONFIG_NATIONNALITY_CODE\").LangId\r\n })\r\n })\r\n },\r\n async UpdateBoTerm() {\r\n this.listPaymetOnlineTerm.forEach(async (x,index) => {\r\n const body = {\r\n ConfigValue: {\r\n Id: x.Id,\r\n LangId: x.LangId,\r\n KeyValue: x.KeyValue\r\n },\r\n Zipped: true\r\n }\r\n await config.API_UCFV01(body)\r\n if(index == this.listPaymetOnlineTerm.length - 1) {\r\n this.call_api_RCFV01('BO_PAYMENT_ONLINE_TERM').then(res => {\r\n this.listPaymetOnlineTerm = res.Data.ConfigValue\r\n })\r\n this.showToast('success', this.$t('golf_common_success'))\r\n }\r\n }) \r\n },\r\n async UpdateServiceTerm() {\r\n this.listServiceOnlineTerm.forEach(async (x,index) => {\r\n const body = {\r\n ConfigValue: {\r\n Id: x.Id,\r\n LangId: x.LangId,\r\n KeyValue: x.KeyValue\r\n },\r\n Zipped: true\r\n }\r\n await config.API_UCFV01(body)\r\n if(index == this.listServiceOnlineTerm.length - 1) {\r\n this.call_api_RCFV01('BO_SERVICE_TERM').then(res => {\r\n this.listServiceOnlineTerm = res.Data.ConfigValue\r\n })\r\n this.showToast('success', this.$t('golf_common_success'))\r\n }\r\n }) \r\n },\r\n async UpdateOptionAdv() {\r\n this.listOptionAdvan.forEach(async (x,index) => {\r\n const body = {\r\n ConfigValue: {\r\n Id: x.Id,\r\n LangId: x.LangId,\r\n KeyValue: x.KeyValue\r\n },\r\n Zipped: false\r\n }\r\n await config.API_UCFV01(body)\r\n if(index == this.listOptionAdvan.length - 1) {\r\n this.call_api_RCFV01('RATE_ADVANTEGED_OPTIONS').then(res => {\r\n this.listOptionAdvan = res.Data.ConfigValue\r\n })\r\n this.showToast('success', this.$t('golf_common_success'))\r\n }\r\n }) \r\n },\r\n async UpdateBookingEmail() {\r\n this.listEmailBookingOnlineConfig.forEach(async (x,index) => {\r\n const body = {\r\n ConfigValue: {\r\n Id: x.Id,\r\n LangId: x.LangId,\r\n KeyValue: x.KeyValue\r\n },\r\n Zipped: true\r\n }\r\n await config.API_UCFV01(body)\r\n if(index == this.listEmailBookingOnlineConfig.length - 1) {\r\n this.call_api_RCFV01('BO_CONFIRM').then(res => {\r\n this.listEmailBookingOnlineConfig = res.Data.ConfigValue\r\n })\r\n this.showToast('success', this.$t('golf_common_success'))\r\n }\r\n }) \r\n },\r\n async getListService() {\r\n const body = {\r\n HotelId: this.hotelId,\r\n ZoneId: this.listZoneSelect.map(x => String(x)),\r\n BookingType: 'RETAIL',\r\n }\r\n await commonServices\r\n .getListService(body)\r\n .then(res => {\r\n if (res.Status === '200') {\r\n this.ListServiceSelect = []\r\n this.ListService = []\r\n res.Data.Menu.forEach(x => {\r\n x.MenuDetail.forEach(y => {\r\n if(!this.ListService.find(z => z.ProductId == y.ProductId)) {\r\n y.id = y.ProductId\r\n y.label = y.ProductName\r\n this.ListService.push(y)\r\n }\r\n })\r\n })\r\n }\r\n })\r\n },\r\n async updateServiceAnnual() {\r\n if (this.ListServiceSelect.length > 0) {\r\n const data = [...this.ServiceAnnualFee.KeyValue.split(','), ...this.ListServiceSelect]\r\n const dataServiceId = []\r\n data.forEach(x => {\r\n if(!dataServiceId.find(y => y == x)) {\r\n dataServiceId.push(String(x))\r\n }\r\n })\r\n this.call_api_updateServiceAnnual(dataServiceId.join(','))\r\n } else {\r\n this.showToast('error', 'Vui lòng chọn dịch vụ')\r\n }\r\n },\r\n async call_api_updateServiceAnnual(data) {\r\n const body = {\r\n ConfigValue: {\r\n Id: this.ServiceAnnualFee.Id,\r\n LangId: this.ServiceAnnualFee.LangId,\r\n KeyValue: data\r\n },\r\n Zipped: false\r\n }\r\n await config.API_UCFV01(body).then(res => {\r\n if(res.Status == 200) {\r\n this.showResToast(res)\r\n this.call_api_RCFV01('BOOKING_LIST_ANNUAL_FEE').then(res => {\r\n this.ServiceAnnualFee.Id = res.Data.ConfigValue.find(x => x.KeyCode == \"BOOKING_LIST_ANNUAL_FEE\").Id\r\n this.ServiceAnnualFee.LangId = res.Data.ConfigValue.find(x => x.KeyCode == \"BOOKING_LIST_ANNUAL_FEE\").LangId\r\n this.ServiceAnnualFee.KeyValue = res.Data.ConfigValue.find(x => x.KeyCode == \"BOOKING_LIST_ANNUAL_FEE\").KeyValue\r\n this.getServiceDetail()\r\n })\r\n this.listZoneSelect = []\r\n this.ListServiceSelect = []\r\n this.ListService = []\r\n }\r\n })\r\n },\r\n async getServiceDetail() {\r\n const body = {\r\n Service: []\r\n }\r\n this.ServiceAnnualFee.KeyValue.split(',').forEach(x => {\r\n body.Service.push({\r\n Id: x,\r\n ServiceType:\"SERVICE\"\r\n })\r\n })\r\n await commonServices.api_RSVAR(body).then(res => {\r\n this.ListServiceConfigSelected = res.Data.Service\r\n })\r\n },\r\n deleteService(item) {\r\n const data = this.ServiceAnnualFee.KeyValue.split(',').filter(x => x != item.data.Id)\r\n this.call_api_updateServiceAnnual(data.join(','))\r\n },\r\n async getListLanguages() {\r\n await commonServices.getLanguages()\r\n .then(res => {\r\n if (res) {\r\n this.listLanguages = res.Data.LangCategory.filter(x => x.Active == true)\r\n }\r\n })\r\n },\r\n },\r\n}","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!./configSystemParameters.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!./configSystemParameters.js?vue&type=script&lang=js&external\"","import { render, staticRenderFns } from \"./config-system-parameters.vue?vue&type=template&id=1d4af8ae\"\nimport script from \"./configSystemParameters.js?vue&type=script&lang=js&external\"\nexport * from \"./configSystemParameters.js?vue&type=script&lang=js&external\"\nimport style0 from \"./config-system-parameters.vue?vue&type=style&index=0&id=1d4af8ae&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","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\r\n * DevExtreme (esm/ui/load_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 $ from \"../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport LoadIndicator from \"./load_indicator\";\r\nimport Overlay from \"./overlay/ui.overlay\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n isMaterial\r\n} from \"./themes\";\r\nvar LOADPANEL_CLASS = \"dx-loadpanel\";\r\nvar LOADPANEL_WRAPPER_CLASS = \"dx-loadpanel-wrapper\";\r\nvar LOADPANEL_INDICATOR_CLASS = \"dx-loadpanel-indicator\";\r\nvar LOADPANEL_MESSAGE_CLASS = \"dx-loadpanel-message\";\r\nvar LOADPANEL_CONTENT_CLASS = \"dx-loadpanel-content\";\r\nvar LOADPANEL_CONTENT_WRAPPER_CLASS = \"dx-loadpanel-content-wrapper\";\r\nvar LOADPANEL_PANE_HIDDEN_CLASS = \"dx-loadpanel-pane-hidden\";\r\nvar LoadPanel = Overlay.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n escape: noop\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n message: messageLocalization.format(\"Loading\"),\r\n width: 222,\r\n height: 90,\r\n animation: null,\r\n showIndicator: true,\r\n indicatorSrc: \"\",\r\n showPane: true,\r\n delay: 0,\r\n templatesRenderAsynchronously: false,\r\n hideTopOverlayHandler: null,\r\n focusStateEnabled: false,\r\n propagateOutsideClick: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n shadingColor: \"transparent\"\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n message: \"\",\r\n width: 60,\r\n height: 60,\r\n maxHeight: 60,\r\n maxWidth: 60\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase.apply(this, arguments)\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(LOADPANEL_CLASS);\r\n this.$wrapper().addClass(LOADPANEL_WRAPPER_CLASS)\r\n },\r\n _renderContentImpl: function() {\r\n this.callBase();\r\n this.$content().addClass(LOADPANEL_CONTENT_CLASS);\r\n this._$loadPanelContentWrapper = $(\"
\").addClass(LOADPANEL_CONTENT_WRAPPER_CLASS);\r\n this._$loadPanelContentWrapper.appendTo(this.$content());\r\n this._togglePaneVisible();\r\n this._cleanPreviousContent();\r\n this._renderLoadIndicator();\r\n this._renderMessage()\r\n },\r\n _show: function() {\r\n var delay = this.option(\"delay\");\r\n if (!delay) {\r\n return this.callBase()\r\n }\r\n var deferred = new Deferred;\r\n var callBase = this.callBase.bind(this);\r\n this._clearShowTimeout();\r\n this._showTimeout = setTimeout((function() {\r\n callBase().done((function() {\r\n deferred.resolve()\r\n }))\r\n }), delay);\r\n return deferred.promise()\r\n },\r\n _hide: function() {\r\n this._clearShowTimeout();\r\n return this.callBase()\r\n },\r\n _clearShowTimeout: function() {\r\n clearTimeout(this._showTimeout)\r\n },\r\n _renderMessage: function() {\r\n if (!this._$loadPanelContentWrapper) {\r\n return\r\n }\r\n var message = this.option(\"message\");\r\n if (!message) {\r\n return\r\n }\r\n var $message = $(\"
\").addClass(LOADPANEL_MESSAGE_CLASS).text(message);\r\n this._$loadPanelContentWrapper.append($message)\r\n },\r\n _renderLoadIndicator: function() {\r\n if (!this._$loadPanelContentWrapper || !this.option(\"showIndicator\")) {\r\n return\r\n }\r\n if (!this._$indicator) {\r\n this._$indicator = $(\"
\").addClass(LOADPANEL_INDICATOR_CLASS).appendTo(this._$loadPanelContentWrapper)\r\n }\r\n this._createComponent(this._$indicator, LoadIndicator, {\r\n indicatorSrc: this.option(\"indicatorSrc\")\r\n })\r\n },\r\n _cleanPreviousContent: function() {\r\n this.$content().find(\".\" + LOADPANEL_MESSAGE_CLASS).remove();\r\n this.$content().find(\".\" + LOADPANEL_INDICATOR_CLASS).remove();\r\n delete this._$indicator\r\n },\r\n _togglePaneVisible: function() {\r\n this.$content().toggleClass(LOADPANEL_PANE_HIDDEN_CLASS, !this.option(\"showPane\"))\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"delay\":\r\n break;\r\n case \"message\":\r\n case \"showIndicator\":\r\n this._cleanPreviousContent();\r\n this._renderLoadIndicator();\r\n this._renderMessage();\r\n break;\r\n case \"showPane\":\r\n this._togglePaneVisible();\r\n break;\r\n case \"indicatorSrc\":\r\n this._renderLoadIndicator();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _dispose: function() {\r\n this._clearShowTimeout();\r\n this.callBase()\r\n }\r\n});\r\nregisterComponent(\"dxLoadPanel\", LoadPanel);\r\nexport default LoadPanel;\r\n","var before = require('./before');\n\n/**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\nfunction once(func) {\n return before(2, func);\n}\n\nmodule.exports = once;\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"cleave.js\")):\"function\"==typeof define&&define.amd?define(\"VueCleave\",[\"cleave.js\"],t):\"object\"==typeof exports?exports.VueCleave=t(require(\"cleave.js\")):e.VueCleave=t(e.Cleave)}(\"undefined\"!=typeof self?self:this,function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=1)}([function(t,n){t.exports=e},function(e,t,n){\"use strict\";n.r(t);var r=n(0),o=n.n(r);function u(){return(u=Object.assign||function(e){for(var t=1;t\").addClass(LIST_ITEM_BADGE_CONTAINER_CLASS).append($(\"
\").addClass(LIST_ITEM_BADGE_CLASS).addClass(BADGE_CLASS).text(badge));\r\n var $chevron = this._$element.children(\".\" + LIST_ITEM_CHEVRON_CONTAINER_CLASS).first();\r\n $chevron.length > 0 ? $badge.insertBefore($chevron) : $badge.appendTo(this._$element)\r\n },\r\n _renderShowChevron: function(showChevron) {\r\n this._$element.children(\".\" + LIST_ITEM_CHEVRON_CONTAINER_CLASS).remove();\r\n if (!showChevron) {\r\n return\r\n }\r\n var $chevronContainer = $(\"
\").addClass(LIST_ITEM_CHEVRON_CONTAINER_CLASS);\r\n var $chevron = $(\"
\").addClass(LIST_ITEM_CHEVRON_CLASS);\r\n $chevronContainer.append($chevron).appendTo(this._$element)\r\n }\r\n});\r\nexport default ListItem;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_element_style.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n titleize\r\n} from \"../../../../core/utils/inflector\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport {\r\n toNumber\r\n} from \"../../../utils/type_conversion\";\r\nexport function getElementStyle(el) {\r\n var _getWindow$getCompute, _getWindow;\r\n return el && hasWindow() ? null === (_getWindow$getCompute = (_getWindow = getWindow()).getComputedStyle) || void 0 === _getWindow$getCompute ? void 0 : _getWindow$getCompute.call(_getWindow, el) : null\r\n}\r\nexport function getElementMargin(element, side) {\r\n var style = getElementStyle(element);\r\n return style ? toNumber(style[\"margin\".concat(titleize(side))]) : 0\r\n}\r\nexport function getElementPadding(element, side) {\r\n var style = getElementStyle(element);\r\n return style ? toNumber(style[\"padding\".concat(titleize(side))]) : 0\r\n}\r\nexport function getElementOverflowX(element) {\r\n var style = getElementStyle(element);\r\n return style ? style.overflowX : \"visible\"\r\n}\r\nexport function getElementOverflowY(element) {\r\n var style = getElementStyle(element);\r\n return style ? style.overflowY : \"visible\"\r\n}\r\nexport function getElementTransform(element) {\r\n var style = getElementStyle(element);\r\n return style ? style.transform : \"\"\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.base.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n setHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../../core/utils/type\";\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 each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n end as swipeEventEnd\r\n} from \"../../events/swipe\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../core/utils/support\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n render\r\n} from \"../widget/utils.ink_ripple\";\r\nimport devices from \"../../core/devices\";\r\nimport ListItem from \"./item\";\r\nimport Button from \"../button\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n current,\r\n isMaterial\r\n} from \"../themes\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport ScrollView from \"../scroll_view\";\r\nimport {\r\n deviceDependentOptions\r\n} from \"../scroll_view/ui.scrollable.device\";\r\nimport CollectionWidget from \"../collection/ui.collection_widget.live_update\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport DataConverterMixin from \"../shared/grouped_data_converter_mixin\";\r\nimport {\r\n getElementMargin\r\n} from \"../../renovation/ui/scroll_view/utils/get_element_style\";\r\nvar LIST_CLASS = \"dx-list\";\r\nvar LIST_ITEM_CLASS = \"dx-list-item\";\r\nvar LIST_ITEM_SELECTOR = \".\" + LIST_ITEM_CLASS;\r\nvar LIST_ITEM_ICON_CONTAINER_CLASS = \"dx-list-item-icon-container\";\r\nvar LIST_ITEM_ICON_CLASS = \"dx-list-item-icon\";\r\nvar LIST_GROUP_CLASS = \"dx-list-group\";\r\nvar LIST_GROUP_HEADER_CLASS = \"dx-list-group-header\";\r\nvar LIST_GROUP_BODY_CLASS = \"dx-list-group-body\";\r\nvar LIST_COLLAPSIBLE_GROUPS_CLASS = \"dx-list-collapsible-groups\";\r\nvar LIST_GROUP_COLLAPSED_CLASS = \"dx-list-group-collapsed\";\r\nvar LIST_GROUP_HEADER_INDICATOR_CLASS = \"dx-list-group-header-indicator\";\r\nvar LIST_HAS_NEXT_CLASS = \"dx-has-next\";\r\nvar LIST_NEXT_BUTTON_CLASS = \"dx-list-next-button\";\r\nvar WRAP_ITEM_TEXT_CLASS = \"dx-wrap-item-text\";\r\nvar SELECT_ALL_ITEM_SELECTOR = \".dx-list-select-all\";\r\nvar LIST_ITEM_DATA_KEY = \"dxListItemData\";\r\nvar LIST_FEEDBACK_SHOW_TIMEOUT = 70;\r\nvar groupItemsGetter = compileGetter(\"items\");\r\nvar _scrollView;\r\nexport var ListBase = CollectionWidget.inherit({\r\n _activeStateUnit: [LIST_ITEM_SELECTOR, SELECT_ALL_ITEM_SELECTOR].join(\",\"),\r\n _supportedKeys: function() {\r\n var that = this;\r\n var moveFocusPerPage = function(direction) {\r\n var $item = getEdgeVisibleItem(direction);\r\n var isFocusedItem = $item.is(that.option(\"focusedElement\"));\r\n if (isFocusedItem) {\r\n ! function($item, direction) {\r\n var resultPosition = $item.position().top;\r\n if (\"prev\" === direction) {\r\n resultPosition = $item.position().top - getHeight(that.$element()) + getOuterHeight($item)\r\n }\r\n that.scrollTo(resultPosition)\r\n }($item, direction);\r\n $item = getEdgeVisibleItem(direction)\r\n }\r\n that.option(\"focusedElement\", getPublicElement($item));\r\n that.scrollToItem($item)\r\n };\r\n\r\n function getEdgeVisibleItem(direction) {\r\n var scrollTop = that.scrollTop();\r\n var containerHeight = getHeight(that.$element());\r\n var $item = $(that.option(\"focusedElement\"));\r\n var isItemVisible = true;\r\n if (!$item.length) {\r\n return $()\r\n }\r\n while (isItemVisible) {\r\n var $nextItem = $item[direction]();\r\n if (!$nextItem.length) {\r\n break\r\n }\r\n var nextItemLocation = $nextItem.position().top + getOuterHeight($nextItem) / 2;\r\n isItemVisible = nextItemLocation < containerHeight + scrollTop && nextItemLocation > scrollTop;\r\n if (isItemVisible) {\r\n $item = $nextItem\r\n }\r\n }\r\n return $item\r\n }\r\n return extend(this.callBase(), {\r\n leftArrow: noop,\r\n rightArrow: noop,\r\n pageUp: function() {\r\n moveFocusPerPage(\"prev\");\r\n return false\r\n },\r\n pageDown: function() {\r\n moveFocusPerPage(\"next\");\r\n return false\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n pullRefreshEnabled: false,\r\n scrollingEnabled: true,\r\n showScrollbar: \"onScroll\",\r\n useNativeScrolling: true,\r\n bounceEnabled: true,\r\n scrollByContent: true,\r\n scrollByThumb: false,\r\n pullingDownText: messageLocalization.format(\"dxList-pullingDownText\"),\r\n pulledDownText: messageLocalization.format(\"dxList-pulledDownText\"),\r\n refreshingText: messageLocalization.format(\"dxList-refreshingText\"),\r\n pageLoadingText: messageLocalization.format(\"dxList-pageLoadingText\"),\r\n onScroll: null,\r\n onPullRefresh: null,\r\n onPageLoading: null,\r\n pageLoadMode: \"scrollBottom\",\r\n nextButtonText: messageLocalization.format(\"dxList-nextButtonText\"),\r\n onItemSwipe: null,\r\n grouped: false,\r\n onGroupRendered: null,\r\n collapsibleGroups: false,\r\n groupTemplate: \"group\",\r\n indicateLoading: true,\r\n activeStateEnabled: true,\r\n _itemAttributes: {\r\n role: \"option\"\r\n },\r\n _listAttributes: {\r\n role: \"listbox\"\r\n },\r\n useInkRipple: false,\r\n wrapItemText: false,\r\n _swipeEnabled: true,\r\n showChevronExpr: function(data) {\r\n return data ? data.showChevron : void 0\r\n },\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 var themeName = current();\r\n return this.callBase().concat(deviceDependentOptions(), [{\r\n device: function() {\r\n return !nativeScrolling\r\n },\r\n options: {\r\n useNativeScrolling: false\r\n }\r\n }, {\r\n device: function(_device) {\r\n return !nativeScrolling && !devices.isSimulator() && \"desktop\" === devices.real().deviceType && \"generic\" === _device.platform\r\n },\r\n options: {\r\n showScrollbar: \"onHover\",\r\n pageLoadMode: \"nextButton\"\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 pullingDownText: \"\",\r\n pulledDownText: \"\",\r\n refreshingText: \"\",\r\n pageLoadingText: \"\",\r\n useInkRipple: true\r\n }\r\n }])\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._updateLoadingState(true)\r\n }\r\n },\r\n _itemClass: function() {\r\n return LIST_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return LIST_ITEM_DATA_KEY\r\n },\r\n _itemContainer: function() {\r\n return this._$container\r\n },\r\n _saveSelectionChangeEvent: function(e) {\r\n this._selectionChangeEventInstance = e\r\n },\r\n _getSelectionChangeEvent: function() {\r\n return this._selectionChangeEventInstance\r\n },\r\n _refreshItemElements: function() {\r\n if (!this.option(\"grouped\")) {\r\n this._itemElementsCache = this._itemContainer().children(this._itemSelector())\r\n } else {\r\n this._itemElementsCache = this._itemContainer().children(\".\" + LIST_GROUP_CLASS).children(\".\" + LIST_GROUP_BODY_CLASS).children(this._itemSelector())\r\n }\r\n },\r\n _modifyByChanges: function() {\r\n this.callBase.apply(this, arguments);\r\n this._refreshItemElements();\r\n this._updateLoadingState(true)\r\n },\r\n reorderItem: function(itemElement, toItemElement) {\r\n var promise = this.callBase(itemElement, toItemElement);\r\n return promise.done((function() {\r\n this._refreshItemElements()\r\n }))\r\n },\r\n deleteItem: function(itemElement) {\r\n var promise = this.callBase(itemElement);\r\n return promise.done((function() {\r\n this._refreshItemElements()\r\n }))\r\n },\r\n _itemElements: function() {\r\n return this._itemElementsCache\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 return this.callBase(e)\r\n },\r\n _allowDynamicItemsAppend: function() {\r\n return true\r\n },\r\n _resetDataSourcePageIndex: function() {\r\n var currentDataSource = this.getDataSource();\r\n if (currentDataSource && 0 !== currentDataSource.pageIndex()) {\r\n currentDataSource.pageIndex(0);\r\n currentDataSource.load()\r\n }\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._resetDataSourcePageIndex();\r\n this._$container = this.$element();\r\n this._initScrollView();\r\n this._feedbackShowTimeout = LIST_FEEDBACK_SHOW_TIMEOUT;\r\n this._createGroupRenderAction()\r\n },\r\n _scrollBottomMode: function() {\r\n return \"scrollBottom\" === this.option(\"pageLoadMode\")\r\n },\r\n _nextButtonMode: function() {\r\n return \"nextButton\" === this.option(\"pageLoadMode\")\r\n },\r\n _dataSourceOptions: function() {\r\n var scrollBottom = this._scrollBottomMode();\r\n var nextButton = this._nextButtonMode();\r\n return extend(this.callBase(), {\r\n paginate: ensureDefined(scrollBottom || nextButton, true)\r\n })\r\n },\r\n _getGroupedOption: function() {\r\n return this.option(\"grouped\")\r\n },\r\n _getGroupContainerByIndex: function(groupIndex) {\r\n return this._itemContainer().find(\".\".concat(LIST_GROUP_CLASS)).eq(groupIndex).find(\".\".concat(LIST_GROUP_BODY_CLASS))\r\n },\r\n _dataSourceFromUrlLoadMode: function() {\r\n return \"raw\"\r\n },\r\n _initScrollView: function() {\r\n var scrollingEnabled = this.option(\"scrollingEnabled\");\r\n var pullRefreshEnabled = scrollingEnabled && this.option(\"pullRefreshEnabled\");\r\n var autoPagingEnabled = scrollingEnabled && this._scrollBottomMode() && !!this._dataSource;\r\n this._scrollView = this._createComponent(this.$element(), getScrollView(), {\r\n height: this.option(\"height\"),\r\n width: this.option(\"width\"),\r\n disabled: this.option(\"disabled\") || !scrollingEnabled,\r\n onScroll: this._scrollHandler.bind(this),\r\n onPullDown: pullRefreshEnabled ? this._pullDownHandler.bind(this) : null,\r\n onReachBottom: autoPagingEnabled ? this._scrollBottomHandler.bind(this) : null,\r\n showScrollbar: this.option(\"showScrollbar\"),\r\n useNative: this.option(\"useNativeScrolling\"),\r\n bounceEnabled: this.option(\"bounceEnabled\"),\r\n scrollByContent: this.option(\"scrollByContent\"),\r\n scrollByThumb: this.option(\"scrollByThumb\"),\r\n pullingDownText: this.option(\"pullingDownText\"),\r\n pulledDownText: this.option(\"pulledDownText\"),\r\n refreshingText: this.option(\"refreshingText\"),\r\n reachBottomText: this.option(\"pageLoadingText\"),\r\n useKeyboard: false\r\n });\r\n this._$container = $(this._scrollView.content());\r\n if (this.option(\"wrapItemText\")) {\r\n this._$container.addClass(WRAP_ITEM_TEXT_CLASS)\r\n }\r\n this._createScrollViewActions()\r\n },\r\n _createScrollViewActions: function() {\r\n this._scrollAction = this._createActionByOption(\"onScroll\");\r\n this._pullRefreshAction = this._createActionByOption(\"onPullRefresh\");\r\n this._pageLoadingAction = this._createActionByOption(\"onPageLoading\")\r\n },\r\n _scrollHandler: function(e) {\r\n this._scrollAction && this._scrollAction(e)\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n group: new BindableTemplate((function($container, data) {\r\n if (isPlainObject(data)) {\r\n if (data.key) {\r\n $container.text(data.key)\r\n }\r\n } else {\r\n $container.text(String(data))\r\n }\r\n }), [\"key\"], this.option(\"integrationOptions.watchMethod\"))\r\n });\r\n this.callBase()\r\n },\r\n _prepareDefaultItemTemplate: function(data, $container) {\r\n this.callBase(data, $container);\r\n if (data.icon) {\r\n var $icon = getImageContainer(data.icon).addClass(LIST_ITEM_ICON_CLASS);\r\n var $iconContainer = $(\"
\").addClass(LIST_ITEM_ICON_CONTAINER_CLASS);\r\n $iconContainer.append($icon);\r\n $container.prepend($iconContainer)\r\n }\r\n },\r\n _getBindableFields: function() {\r\n return [\"text\", \"html\", \"icon\"]\r\n },\r\n _updateLoadingState: function(tryLoadMore) {\r\n var shouldLoadNextPage = this._scrollBottomMode() && tryLoadMore && !this._isDataSourceLoading() && !this._isLastPage();\r\n if (this._shouldContinueLoading(shouldLoadNextPage)) {\r\n this._infiniteDataLoading()\r\n } else {\r\n this._scrollView.release(!shouldLoadNextPage && !this._isDataSourceLoading());\r\n this._toggleNextButton(this._shouldRenderNextButton() && !this._isLastPage());\r\n this._loadIndicationSuppressed(false)\r\n }\r\n },\r\n _shouldRenderNextButton: function() {\r\n return this._nextButtonMode() && this._dataSource && this._dataSource.isLoaded()\r\n },\r\n _isDataSourceFirstLoadCompleted: function(newValue) {\r\n if (isDefined(newValue)) {\r\n this._isFirstLoadCompleted = newValue\r\n }\r\n return this._isFirstLoadCompleted\r\n },\r\n _dataSourceLoadingChangedHandler: function(isLoading) {\r\n if (this._loadIndicationSuppressed()) {\r\n return\r\n }\r\n if (isLoading && this.option(\"indicateLoading\")) {\r\n this._showLoadingIndicatorTimer = setTimeout(function() {\r\n var isEmpty = !this._itemElements().length;\r\n var shouldIndicateLoading = !isEmpty || this._isDataSourceFirstLoadCompleted();\r\n if (shouldIndicateLoading) {\r\n var _this$_scrollView;\r\n null === (_this$_scrollView = this._scrollView) || void 0 === _this$_scrollView ? void 0 : _this$_scrollView.startLoading()\r\n }\r\n }.bind(this))\r\n } else {\r\n clearTimeout(this._showLoadingIndicatorTimer);\r\n this._scrollView && this._scrollView.finishLoading()\r\n }\r\n if (!isLoading) {\r\n this._isDataSourceFirstLoadCompleted(false)\r\n }\r\n },\r\n _dataSourceChangedHandler: function() {\r\n if (!this._shouldAppendItems() && hasWindow()) {\r\n this._scrollView && this._scrollView.scrollTo(0)\r\n }\r\n this.callBase.apply(this, arguments);\r\n this._isDataSourceFirstLoadCompleted(true)\r\n },\r\n _refreshContent: function() {\r\n this._prepareContent();\r\n this._fireContentReadyAction()\r\n },\r\n _hideLoadingIfLoadIndicationOff: function() {\r\n if (!this.option(\"indicateLoading\")) {\r\n this._dataSourceLoadingChangedHandler(false)\r\n }\r\n },\r\n _loadIndicationSuppressed: function(value) {\r\n if (!arguments.length) {\r\n return this._isLoadIndicationSuppressed\r\n }\r\n this._isLoadIndicationSuppressed = value\r\n },\r\n _scrollViewIsFull: function() {\r\n var scrollView = this._scrollView;\r\n return !scrollView || getHeight(scrollView.content()) > getHeight(scrollView.container())\r\n },\r\n _pullDownHandler: function(e) {\r\n this._pullRefreshAction(e);\r\n if (this._dataSource && !this._isDataSourceLoading()) {\r\n this._clearSelectedItems();\r\n this._dataSource.pageIndex(0);\r\n this._dataSource.reload()\r\n } else {\r\n this._updateLoadingState()\r\n }\r\n },\r\n _shouldContinueLoading: function(shouldLoadNextPage) {\r\n var _this$_scrollView$scr, _this$_scrollView$scr2;\r\n var isBottomReached = getHeight(this._scrollView.content()) - getHeight(this._scrollView.container()) < (null !== (_this$_scrollView$scr = null === (_this$_scrollView$scr2 = this._scrollView.scrollOffset()) || void 0 === _this$_scrollView$scr2 ? void 0 : _this$_scrollView$scr2.top) && void 0 !== _this$_scrollView$scr ? _this$_scrollView$scr : 0);\r\n return shouldLoadNextPage && (!this._scrollViewIsFull() || isBottomReached)\r\n },\r\n _infiniteDataLoading: function() {\r\n var isElementVisible = this.$element().is(\":visible\");\r\n if (isElementVisible) {\r\n clearTimeout(this._loadNextPageTimer);\r\n this._loadNextPageTimer = setTimeout(() => {\r\n this._loadNextPage()\r\n })\r\n }\r\n },\r\n _scrollBottomHandler: function(e) {\r\n this._pageLoadingAction(e);\r\n if (!this._isDataSourceLoading() && !this._isLastPage()) {\r\n this._loadNextPage()\r\n } else {\r\n this._updateLoadingState()\r\n }\r\n },\r\n _renderItems: function(items) {\r\n if (this.option(\"grouped\")) {\r\n each(items, this._renderGroup.bind(this));\r\n this._attachGroupCollapseEvent();\r\n this._renderEmptyMessage();\r\n if (isMaterial()) {\r\n this.attachGroupHeaderInkRippleEvents()\r\n }\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n this._refreshItemElements();\r\n this._updateLoadingState(true)\r\n },\r\n _attachGroupCollapseEvent: function() {\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var selector = \".\" + LIST_GROUP_HEADER_CLASS;\r\n var $element = this.$element();\r\n var collapsibleGroups = this.option(\"collapsibleGroups\");\r\n $element.toggleClass(LIST_COLLAPSIBLE_GROUPS_CLASS, collapsibleGroups);\r\n eventsEngine.off($element, eventName, selector);\r\n if (collapsibleGroups) {\r\n eventsEngine.on($element, eventName, selector, function(e) {\r\n this._createAction(function(e) {\r\n var $group = $(e.event.currentTarget).parent();\r\n this._collapseGroupHandler($group);\r\n if (this.option(\"focusStateEnabled\")) {\r\n this.option(\"focusedElement\", getPublicElement($group.find(\".\" + LIST_ITEM_CLASS).eq(0)))\r\n }\r\n }.bind(this), {\r\n validatingTargetName: \"element\"\r\n })({\r\n event: e\r\n })\r\n }.bind(this))\r\n }\r\n },\r\n _collapseGroupHandler: function($group, toggle) {\r\n var deferred = new Deferred;\r\n if ($group.hasClass(LIST_GROUP_COLLAPSED_CLASS) === toggle) {\r\n return deferred.resolve()\r\n }\r\n var $groupBody = $group.children(\".\" + LIST_GROUP_BODY_CLASS);\r\n var startHeight = getOuterHeight($groupBody);\r\n var endHeight = 0;\r\n if (0 === startHeight) {\r\n setHeight($groupBody, \"auto\");\r\n endHeight = getOuterHeight($groupBody)\r\n }\r\n $group.toggleClass(LIST_GROUP_COLLAPSED_CLASS, toggle);\r\n fx.animate($groupBody, {\r\n type: \"custom\",\r\n from: {\r\n height: startHeight\r\n },\r\n to: {\r\n height: endHeight\r\n },\r\n duration: 200,\r\n complete: function() {\r\n this.updateDimensions();\r\n this._updateLoadingState();\r\n deferred.resolve()\r\n }.bind(this)\r\n });\r\n return deferred.promise()\r\n },\r\n _dataSourceLoadErrorHandler: function() {\r\n this._forgetNextPageLoading();\r\n if (this._initialized) {\r\n this._renderEmptyMessage();\r\n this._updateLoadingState()\r\n }\r\n },\r\n _initMarkup: function() {\r\n this._itemElementsCache = $();\r\n this.$element().addClass(LIST_CLASS);\r\n this.callBase();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this.setAria(\"role\", this.option(\"_listAttributes\").role)\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 var that = this;\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 if (isMaterial()) {\r\n this._inkRippleTimer = setTimeout((function() {\r\n that._inkRipple.showWave(config)\r\n }), LIST_FEEDBACK_SHOW_TIMEOUT / 2)\r\n } else {\r\n that._inkRipple.showWave(config)\r\n }\r\n } else {\r\n clearTimeout(this._inkRippleTimer);\r\n this._inkRipple.hideWave(config)\r\n }\r\n },\r\n _postprocessRenderItem: function(args) {\r\n this._refreshItemElements();\r\n this.callBase.apply(this, arguments);\r\n if (this.option(\"_swipeEnabled\")) {\r\n this._attachSwipeEvent($(args.itemElement))\r\n }\r\n },\r\n _attachSwipeEvent: function($itemElement) {\r\n var endEventName = addNamespace(swipeEventEnd, this.NAME);\r\n eventsEngine.on($itemElement, endEventName, this._itemSwipeEndHandler.bind(this))\r\n },\r\n _itemSwipeEndHandler: function(e) {\r\n this._itemDXEventHandler(e, \"onItemSwipe\", {\r\n direction: e.offset < 0 ? \"left\" : \"right\"\r\n })\r\n },\r\n _nextButtonHandler: function(e) {\r\n this._pageLoadingAction(e);\r\n var source = this._dataSource;\r\n if (source && !source.isLoading()) {\r\n this._scrollView.toggleLoading(true);\r\n this._$nextButton.detach();\r\n this._loadIndicationSuppressed(true);\r\n this._loadNextPage()\r\n }\r\n },\r\n _renderGroup: function(index, group) {\r\n var $groupElement = $(\"
\").addClass(LIST_GROUP_CLASS).appendTo(this._itemContainer());\r\n var $groupHeaderElement = $(\"
\").addClass(LIST_GROUP_HEADER_CLASS).appendTo($groupElement);\r\n var groupTemplateName = this.option(\"groupTemplate\");\r\n var groupTemplate = this._getTemplate(group.template || groupTemplateName, group, index, $groupHeaderElement);\r\n var renderArgs = {\r\n index: index,\r\n itemData: group,\r\n container: getPublicElement($groupHeaderElement)\r\n };\r\n this._createItemByTemplate(groupTemplate, renderArgs);\r\n if (isMaterial()) {\r\n $(\"
\").addClass(LIST_GROUP_HEADER_INDICATOR_CLASS).prependTo($groupHeaderElement)\r\n }\r\n this._renderingGroupIndex = index;\r\n var $groupBody = $(\"
\").addClass(LIST_GROUP_BODY_CLASS).appendTo($groupElement);\r\n each(groupItemsGetter(group) || [], function(itemIndex, item) {\r\n this._renderItem({\r\n group: index,\r\n item: itemIndex\r\n }, item, $groupBody)\r\n }.bind(this));\r\n this._groupRenderAction({\r\n groupElement: getPublicElement($groupElement),\r\n groupIndex: index,\r\n groupData: group\r\n })\r\n },\r\n downInkRippleHandler: function(e) {\r\n this._toggleActiveState($(e.currentTarget), true, e)\r\n },\r\n upInkRippleHandler: function(e) {\r\n this._toggleActiveState($(e.currentTarget), false)\r\n },\r\n attachGroupHeaderInkRippleEvents: function() {\r\n var selector = \".\" + LIST_GROUP_HEADER_CLASS;\r\n var $element = this.$element();\r\n this._downInkRippleHandler = this._downInkRippleHandler || this.downInkRippleHandler.bind(this);\r\n this._upInkRippleHandler = this._upInkRippleHandler || this.upInkRippleHandler.bind(this);\r\n var downArguments = [$element, \"dxpointerdown\", selector, this._downInkRippleHandler];\r\n var upArguments = [$element, \"dxpointerup dxpointerout\", selector, this._upInkRippleHandler];\r\n eventsEngine.off(...downArguments);\r\n eventsEngine.on(...downArguments);\r\n eventsEngine.off(...upArguments);\r\n eventsEngine.on(...upArguments)\r\n },\r\n _createGroupRenderAction: function() {\r\n this._groupRenderAction = this._createActionByOption(\"onGroupRendered\")\r\n },\r\n _clean: function() {\r\n clearTimeout(this._inkRippleTimer);\r\n if (this._$nextButton) {\r\n this._$nextButton.remove();\r\n this._$nextButton = null\r\n }\r\n delete this._inkRipple;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _dispose: function() {\r\n this._isDataSourceFirstLoadCompleted(false);\r\n clearTimeout(this._holdTimer);\r\n clearTimeout(this._loadNextPageTimer);\r\n clearTimeout(this._showLoadingIndicatorTimer);\r\n this.callBase()\r\n },\r\n _toggleDisabledState: function(value) {\r\n this.callBase(value);\r\n this._scrollView.option(\"disabled\", value || !this.option(\"scrollingEnabled\"))\r\n },\r\n _toggleNextButton: function(value) {\r\n var dataSource = this._dataSource;\r\n var $nextButton = this._getNextButton();\r\n this.$element().toggleClass(LIST_HAS_NEXT_CLASS, value);\r\n if (value && dataSource && dataSource.isLoaded()) {\r\n $nextButton.appendTo(this._itemContainer())\r\n }\r\n if (!value) {\r\n $nextButton.detach()\r\n }\r\n },\r\n _getNextButton: function() {\r\n if (!this._$nextButton) {\r\n this._$nextButton = this._createNextButton()\r\n }\r\n return this._$nextButton\r\n },\r\n _createNextButton: function() {\r\n var $result = $(\"
\").addClass(LIST_NEXT_BUTTON_CLASS);\r\n var $button = $(\"
\").appendTo($result);\r\n this._createComponent($button, Button, {\r\n text: this.option(\"nextButtonText\"),\r\n onClick: this._nextButtonHandler.bind(this),\r\n type: isMaterial() ? \"default\" : void 0,\r\n integrationOptions: {}\r\n });\r\n return $result\r\n },\r\n _moveFocus: function() {\r\n this.callBase.apply(this, arguments);\r\n this.scrollToItem(this.option(\"focusedElement\"))\r\n },\r\n _refresh: function() {\r\n if (!hasWindow()) {\r\n this.callBase()\r\n } else {\r\n var scrollTop = this._scrollView.scrollTop();\r\n this.callBase();\r\n scrollTop && this._scrollView.scrollTo(scrollTop)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"pageLoadMode\":\r\n this._toggleNextButton(args.value);\r\n this._initScrollView();\r\n break;\r\n case \"dataSource\":\r\n this.callBase(args);\r\n this._initScrollView();\r\n this._isDataSourceFirstLoadCompleted(false);\r\n break;\r\n case \"items\":\r\n this.callBase(args);\r\n this._isDataSourceFirstLoadCompleted(false);\r\n break;\r\n case \"pullingDownText\":\r\n case \"pulledDownText\":\r\n case \"refreshingText\":\r\n case \"pageLoadingText\":\r\n case \"showScrollbar\":\r\n case \"bounceEnabled\":\r\n case \"scrollByContent\":\r\n case \"scrollByThumb\":\r\n case \"useNativeScrolling\":\r\n case \"scrollingEnabled\":\r\n case \"pullRefreshEnabled\":\r\n this._initScrollView();\r\n this._updateLoadingState();\r\n break;\r\n case \"nextButtonText\":\r\n case \"onItemSwipe\":\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"onScroll\":\r\n case \"onPullRefresh\":\r\n case \"onPageLoading\":\r\n this._createScrollViewActions();\r\n break;\r\n case \"grouped\":\r\n case \"collapsibleGroups\":\r\n case \"groupTemplate\":\r\n this._invalidate();\r\n break;\r\n case \"wrapItemText\":\r\n this._$container.toggleClass(WRAP_ITEM_TEXT_CLASS, args.value);\r\n break;\r\n case \"onGroupRendered\":\r\n this._createGroupRenderAction();\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n this._scrollView.option(args.name, args.value);\r\n this._scrollView.update();\r\n break;\r\n case \"indicateLoading\":\r\n this._hideLoadingIfLoadIndicationOff();\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n this._scrollView.update();\r\n break;\r\n case \"rtlEnabled\":\r\n this._initScrollView();\r\n this.callBase(args);\r\n break;\r\n case \"showChevronExpr\":\r\n case \"badgeExpr\":\r\n this._invalidate();\r\n break;\r\n case \"_swipeEnabled\":\r\n case \"_listAttributes\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _extendActionArgs: function($itemElement) {\r\n if (!this.option(\"grouped\")) {\r\n return this.callBase($itemElement)\r\n }\r\n var $group = $itemElement.closest(\".\" + LIST_GROUP_CLASS);\r\n var $item = $group.find(\".\" + LIST_ITEM_CLASS);\r\n return extend(this.callBase($itemElement), {\r\n itemIndex: {\r\n group: $group.index(),\r\n item: $item.index($itemElement)\r\n }\r\n })\r\n },\r\n expandGroup: function(groupIndex) {\r\n var deferred = new Deferred;\r\n var $group = this._itemContainer().find(\".\" + LIST_GROUP_CLASS).eq(groupIndex);\r\n this._collapseGroupHandler($group, false).done(function() {\r\n deferred.resolveWith(this)\r\n }.bind(this));\r\n return deferred.promise()\r\n },\r\n collapseGroup: function(groupIndex) {\r\n var deferred = new Deferred;\r\n var $group = this._itemContainer().find(\".\" + LIST_GROUP_CLASS).eq(groupIndex);\r\n this._collapseGroupHandler($group, true).done(function() {\r\n deferred.resolveWith(this)\r\n }.bind(this));\r\n return deferred\r\n },\r\n updateDimensions: function() {\r\n var that = this;\r\n var deferred = new Deferred;\r\n if (that._scrollView) {\r\n that._scrollView.update().done((function() {\r\n !that._scrollViewIsFull() && that._updateLoadingState(true);\r\n deferred.resolveWith(that)\r\n }))\r\n } else {\r\n deferred.resolveWith(that)\r\n }\r\n return deferred.promise()\r\n },\r\n reload: function() {\r\n this.callBase();\r\n this.scrollTo(0);\r\n this._pullDownHandler()\r\n },\r\n repaint: function() {\r\n this.scrollTo(0);\r\n this.callBase()\r\n },\r\n scrollTop: function() {\r\n return this._scrollView.scrollOffset().top\r\n },\r\n clientHeight: function() {\r\n return this._scrollView.clientHeight()\r\n },\r\n scrollHeight: function() {\r\n return this._scrollView.scrollHeight()\r\n },\r\n scrollBy: function(distance) {\r\n this._scrollView.scrollBy(distance)\r\n },\r\n scrollTo: function(location) {\r\n this._scrollView.scrollTo(location)\r\n },\r\n scrollToItem: function(itemElement) {\r\n var $item = this._editStrategy.getItemElement(itemElement);\r\n var item = null === $item || void 0 === $item ? void 0 : $item.get(0);\r\n this._scrollView.scrollToElement(item, {\r\n bottom: getElementMargin(item, \"bottom\")\r\n })\r\n },\r\n _dimensionChanged: function() {\r\n this.updateDimensions()\r\n }\r\n}).include(DataConverterMixin);\r\nListBase.ItemClass = ListItem;\r\n\r\nfunction getScrollView() {\r\n return _scrollView || ScrollView\r\n}\r\nexport function setScrollView(value) {\r\n _scrollView = value\r\n}\r\n","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","module.exports = isPromise;\nmodule.exports.default = isPromise;\n\nfunction isPromise(obj) {\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';\n}\n","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","/**\r\n * DevExtreme (esm/renovation/ui/resizable/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 isWindow\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getOuterWidth,\r\n getInnerWidth,\r\n getOuterHeight,\r\n getInnerHeight,\r\n getOffset\r\n} from \"../../../core/utils/size\";\r\nexport var borderWidthStyles = {\r\n left: \"borderLeftWidth\",\r\n top: \"borderTopWidth\",\r\n right: \"borderRightWidth\",\r\n bottom: \"borderBottomWidth\"\r\n};\r\n\r\nfunction getBorderWidth(el, direction) {\r\n if (!isWindow(el)) {\r\n var borderWidth = el.style[borderWidthStyles[direction]];\r\n return parseInt(borderWidth, 10) || 0\r\n }\r\n return 0\r\n}\r\nvar correctGeometry = function(area, mainEl) {\r\n var el = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : void 0;\r\n var {\r\n height: height,\r\n offset: offset,\r\n width: width\r\n } = area;\r\n var {\r\n left: left,\r\n top: top\r\n } = offset;\r\n var areaBorderLeft = el ? getBorderWidth(el, \"left\") : 0;\r\n var areaBorderTop = el ? getBorderWidth(el, \"top\") : 0;\r\n return {\r\n width: width - getOuterWidth(mainEl) - getInnerWidth(mainEl),\r\n height: height - getOuterHeight(mainEl) - getInnerHeight(mainEl),\r\n offset: {\r\n left: left + areaBorderLeft + getBorderWidth(mainEl, \"left\"),\r\n top: top + areaBorderTop + getBorderWidth(mainEl, \"top\")\r\n }\r\n }\r\n};\r\nexport var getAreaFromElement = (el, mainEl) => correctGeometry({\r\n width: getInnerWidth(el),\r\n height: getInnerHeight(el),\r\n offset: extend({\r\n top: 0,\r\n left: 0\r\n }, isWindow(el) ? {} : getOffset(el))\r\n}, mainEl, el);\r\nexport var getAreaFromObject = (_ref, mainEl) => {\r\n var {\r\n bottom: bottom,\r\n left: left,\r\n right: right,\r\n top: top\r\n } = _ref;\r\n return correctGeometry({\r\n width: right - left,\r\n height: bottom - top,\r\n offset: {\r\n left: left,\r\n top: top\r\n }\r\n }, mainEl)\r\n};\r\nexport var getMovingSides = el => {\r\n var {\r\n className: className\r\n } = el;\r\n var hasCornerTopLeftClass = className.includes(\"dx-resizable-handle-corner-top-left\");\r\n var hasCornerTopRightClass = className.includes(\"dx-resizable-handle-corner-top-right\");\r\n var hasCornerBottomLeftClass = className.includes(\"dx-resizable-handle-corner-bottom-left\");\r\n var hasCornerBottomRightClass = className.includes(\"dx-resizable-handle-corner-bottom-right\");\r\n return {\r\n top: className.includes(\"dx-resizable-handle-top\") || hasCornerTopLeftClass || hasCornerTopRightClass,\r\n left: className.includes(\"dx-resizable-handle-left\") || hasCornerTopLeftClass || hasCornerBottomLeftClass,\r\n bottom: className.includes(\"dx-resizable-handle-bottom\") || hasCornerBottomLeftClass || hasCornerBottomRightClass,\r\n right: className.includes(\"dx-resizable-handle-right\") || hasCornerTopRightClass || hasCornerBottomRightClass\r\n }\r\n};\r\nexport function getDragOffsets(area, handleEl, areaProp) {\r\n var hWidth = getOuterWidth(handleEl);\r\n var hHeight = getOuterHeight(handleEl);\r\n var hOffset = getOffset(handleEl);\r\n var areaOffset = area.offset;\r\n var isAreaWindow = isWindow(areaProp);\r\n var scrollOffset_scrollX = isAreaWindow ? areaProp.pageXOffset : 0,\r\n scrollOffset_scrollY = isAreaWindow ? areaProp.pageYOffset : 0;\r\n return {\r\n maxLeftOffset: hOffset.left - areaOffset.left - scrollOffset_scrollX,\r\n maxRightOffset: areaOffset.left + area.width - hOffset.left - hWidth + scrollOffset_scrollX,\r\n maxTopOffset: hOffset.top - areaOffset.top - scrollOffset_scrollY,\r\n maxBottomOffset: areaOffset.top + area.height - hOffset.top - hHeight + scrollOffset_scrollY\r\n }\r\n}\r\nexport var filterOffsets = (offset, handleEl) => {\r\n var sides = getMovingSides(handleEl);\r\n var offsetX = !sides.left && !sides.right ? 0 : offset.x;\r\n var offsetY = !sides.top && !sides.bottom ? 0 : offset.y;\r\n return {\r\n x: offsetX,\r\n y: offsetY\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/popover/popover_position_controller.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"shading\", \"target\", \"$arrow\"];\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport positionUtils from \"../../animation/position\";\r\nimport {\r\n pairToObject\r\n} from \"../../core/utils/common\";\r\nimport {\r\n borderWidthStyles\r\n} from \"../../renovation/ui/resizable/utils\";\r\nimport {\r\n getWidth,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n OverlayPositionController\r\n} from \"../overlay/overlay_position_controller\";\r\nvar WEIGHT_OF_SIDES = {\r\n left: -1,\r\n top: -1,\r\n center: 0,\r\n right: 1,\r\n bottom: 1\r\n};\r\nvar POPOVER_POSITION_ALIASES = {\r\n top: {\r\n my: \"bottom center\",\r\n at: \"top center\",\r\n collision: \"fit flip\"\r\n },\r\n bottom: {\r\n my: \"top center\",\r\n at: \"bottom center\",\r\n collision: \"fit flip\"\r\n },\r\n right: {\r\n my: \"left center\",\r\n at: \"right center\",\r\n collision: \"flip fit\"\r\n },\r\n left: {\r\n my: \"right center\",\r\n at: \"left center\",\r\n collision: \"flip fit\"\r\n }\r\n};\r\nvar POPOVER_DEFAULT_BOUNDARY_OFFSET = {\r\n h: 10,\r\n v: 10\r\n};\r\nclass PopoverPositionController extends OverlayPositionController {\r\n constructor(_ref) {\r\n var {\r\n shading: shading,\r\n target: target,\r\n $arrow: $arrow\r\n } = _ref, args = _objectWithoutPropertiesLoose(_ref, _excluded);\r\n super(args);\r\n this._props = _extends({}, this._props, {\r\n shading: shading,\r\n target: target\r\n });\r\n this._$arrow = $arrow;\r\n this._positionSide = void 0;\r\n this.updatePosition(this._props.position)\r\n }\r\n positionWrapper() {\r\n if (this._props.shading) {\r\n this._$wrapper.css({\r\n top: 0,\r\n left: 0\r\n })\r\n }\r\n }\r\n updateTarget(target) {\r\n this._props.target = target;\r\n this.updatePosition(this._props.position)\r\n }\r\n _renderBoundaryOffset() {}\r\n _getContainerPosition() {\r\n var offset = pairToObject(this._position.offset || \"\");\r\n var {\r\n h: hOffset,\r\n v: vOffset\r\n } = offset;\r\n var isVerticalSide = this._isVerticalSide();\r\n var isHorizontalSide = this._isHorizontalSide();\r\n if (isVerticalSide || isHorizontalSide) {\r\n var isPopoverInside = this._isPopoverInside();\r\n var sign = (isPopoverInside ? -1 : 1) * WEIGHT_OF_SIDES[this._positionSide];\r\n var arrowSize = isVerticalSide ? getHeight(this._$arrow) : getWidth(this._$arrow);\r\n var arrowSizeCorrection = this._getContentBorderWidth(this._positionSide);\r\n var arrowOffset = sign * (arrowSize - arrowSizeCorrection);\r\n isVerticalSide ? vOffset += arrowOffset : hOffset += arrowOffset\r\n }\r\n return extend({}, this._position, {\r\n offset: hOffset + \" \" + vOffset\r\n })\r\n }\r\n _getContentBorderWidth(side) {\r\n var borderWidth = this._$content.css(borderWidthStyles[side]);\r\n return parseInt(borderWidth) || 0\r\n }\r\n _isPopoverInside() {\r\n var my = positionUtils.setup.normalizeAlign(this._position.my);\r\n var at = positionUtils.setup.normalizeAlign(this._position.at);\r\n return my.h === at.h && my.v === at.v\r\n }\r\n _isVerticalSide() {\r\n var side = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._positionSide;\r\n return \"top\" === side || \"bottom\" === side\r\n }\r\n _isHorizontalSide() {\r\n var side = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._positionSide;\r\n return \"left\" === side || \"right\" === side\r\n }\r\n _getDisplaySide(position) {\r\n var my = positionUtils.setup.normalizeAlign(position.my);\r\n var at = positionUtils.setup.normalizeAlign(position.at);\r\n var weightSign = WEIGHT_OF_SIDES[my.h] === WEIGHT_OF_SIDES[at.h] && WEIGHT_OF_SIDES[my.v] === WEIGHT_OF_SIDES[at.v] ? -1 : 1;\r\n var horizontalWeight = Math.abs(WEIGHT_OF_SIDES[my.h] - weightSign * WEIGHT_OF_SIDES[at.h]);\r\n var verticalWeight = Math.abs(WEIGHT_OF_SIDES[my.v] - weightSign * WEIGHT_OF_SIDES[at.v]);\r\n return horizontalWeight > verticalWeight ? at.h : at.v\r\n }\r\n _normalizePosition(positionProp) {\r\n var defaultPositionConfig = {\r\n of: this._props.target,\r\n boundaryOffset: POPOVER_DEFAULT_BOUNDARY_OFFSET\r\n };\r\n var resultPosition;\r\n if (isDefined(positionProp)) {\r\n resultPosition = extend(true, {}, defaultPositionConfig, this._positionToObject(positionProp))\r\n } else {\r\n resultPosition = defaultPositionConfig\r\n }\r\n this._positionSide = this._getDisplaySide(resultPosition);\r\n return resultPosition\r\n }\r\n _positionToObject(positionProp) {\r\n if (isString(positionProp)) {\r\n return extend({}, POPOVER_POSITION_ALIASES[positionProp])\r\n }\r\n return positionProp\r\n }\r\n}\r\nexport {\r\n PopoverPositionController,\r\n POPOVER_POSITION_ALIASES\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/popover/ui.popover.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 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 setWidth,\r\n getHeight,\r\n setHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport domAdapter from \"../../core/dom_adapter\";\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 move\r\n} from \"../../animation/translator\";\r\nimport positionUtils from \"../../animation/position\";\r\nimport {\r\n isObject,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n fitIntoRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport Popup from \"../popup\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n PopoverPositionController,\r\n POPOVER_POSITION_ALIASES\r\n} from \"./popover_position_controller\";\r\nvar POPOVER_CLASS = \"dx-popover\";\r\nvar POPOVER_WRAPPER_CLASS = \"dx-popover-wrapper\";\r\nvar POPOVER_ARROW_CLASS = \"dx-popover-arrow\";\r\nvar POPOVER_WITHOUT_TITLE_CLASS = \"dx-popover-without-title\";\r\nvar POSITION_FLIP_MAP = {\r\n left: \"right\",\r\n top: \"bottom\",\r\n right: \"left\",\r\n bottom: \"top\",\r\n center: \"center\"\r\n};\r\nvar getEventNameByOption = function(optionValue) {\r\n return isObject(optionValue) ? optionValue.name : optionValue\r\n};\r\nvar getEventName = function(that, optionName) {\r\n var optionValue = that.option(optionName);\r\n return getEventNameByOption(optionValue)\r\n};\r\nvar getEventDelay = function(that, optionName) {\r\n var optionValue = that.option(optionName);\r\n return isObject(optionValue) && optionValue.delay\r\n};\r\nvar attachEvent = function(that, name) {\r\n var {\r\n target: target,\r\n shading: shading,\r\n disabled: disabled,\r\n hideEvent: hideEvent\r\n } = that.option();\r\n var isSelector = isString(target);\r\n var shouldIgnoreHideEvent = shading && \"hide\" === name;\r\n var event = shouldIgnoreHideEvent ? null : getEventName(that, \"\".concat(name, \"Event\"));\r\n if (shouldIgnoreHideEvent && hideEvent) {\r\n errors.log(\"W1020\")\r\n }\r\n if (!event || disabled) {\r\n return\r\n }\r\n var eventName = addNamespace(event, that.NAME);\r\n var action = that._createAction(function() {\r\n var delay = getEventDelay(that, name + \"Event\");\r\n this._clearEventsTimeouts();\r\n if (delay) {\r\n this._timeouts[name] = setTimeout((function() {\r\n that[name]()\r\n }), delay)\r\n } else {\r\n that[name]()\r\n }\r\n }.bind(that), {\r\n validatingTargetName: \"target\"\r\n });\r\n var handler = function(e) {\r\n action({\r\n event: e,\r\n target: $(e.currentTarget)\r\n })\r\n };\r\n var EVENT_HANDLER_NAME = \"_\" + name + \"EventHandler\";\r\n if (isSelector) {\r\n that[EVENT_HANDLER_NAME] = handler;\r\n eventsEngine.on(domAdapter.getDocument(), eventName, target, handler)\r\n } else {\r\n var targetElement = getPublicElement($(target));\r\n that[EVENT_HANDLER_NAME] = void 0;\r\n eventsEngine.on(targetElement, eventName, handler)\r\n }\r\n};\r\nvar detachEvent = function(that, target, name, event) {\r\n var eventName = event || getEventName(that, name + \"Event\");\r\n if (!eventName) {\r\n return\r\n }\r\n eventName = addNamespace(eventName, that.NAME);\r\n var EVENT_HANDLER_NAME = \"_\" + name + \"EventHandler\";\r\n if (that[EVENT_HANDLER_NAME]) {\r\n eventsEngine.off(domAdapter.getDocument(), eventName, target, that[EVENT_HANDLER_NAME])\r\n } else {\r\n eventsEngine.off(getPublicElement($(target)), eventName)\r\n }\r\n};\r\nvar Popover = Popup.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n target: void 0,\r\n shading: false,\r\n position: extend({}, POPOVER_POSITION_ALIASES.bottom),\r\n hideOnOutsideClick: true,\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n from: 1,\r\n to: 0\r\n }\r\n },\r\n showTitle: false,\r\n width: \"auto\",\r\n height: \"auto\",\r\n dragEnabled: false,\r\n resizeEnabled: false,\r\n fullScreen: false,\r\n hideOnParentScroll: true,\r\n arrowPosition: \"\",\r\n arrowOffset: 0,\r\n _fixWrapperPosition: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return [{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n arrowPosition: {\r\n boundaryOffset: {\r\n h: 20,\r\n v: -10\r\n },\r\n collision: \"fit\"\r\n }\r\n }\r\n }, {\r\n device: function() {\r\n return !hasWindow()\r\n },\r\n options: {\r\n animation: null\r\n }\r\n }]\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._renderArrow();\r\n this._timeouts = {};\r\n this.$element().addClass(POPOVER_CLASS);\r\n this.$wrapper().addClass(POPOVER_WRAPPER_CLASS)\r\n },\r\n _render: function() {\r\n this.callBase.apply(this, arguments);\r\n this._detachEvents(this.option(\"target\"));\r\n this._attachEvents()\r\n },\r\n _detachEvents: function(target) {\r\n detachEvent(this, target, \"show\");\r\n detachEvent(this, target, \"hide\")\r\n },\r\n _attachEvents: function() {\r\n attachEvent(this, \"show\");\r\n attachEvent(this, \"hide\")\r\n },\r\n _renderArrow: function() {\r\n this._$arrow = $(\"
\").addClass(POPOVER_ARROW_CLASS).prependTo(this.$overlayContent())\r\n },\r\n _documentDownHandler: function(e) {\r\n if (this._isOutsideClick(e)) {\r\n return this.callBase(e)\r\n }\r\n return true\r\n },\r\n _isOutsideClick: function(e) {\r\n return !$(e.target).closest(this.option(\"target\")).length\r\n },\r\n _animate: function(animation) {\r\n if (animation && animation.to && \"object\" === typeof animation.to) {\r\n extend(animation.to, {\r\n position: this._getContainerPosition()\r\n })\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _stopAnimation: function() {\r\n this.callBase.apply(this, arguments)\r\n },\r\n _renderTitle: function() {\r\n this.$wrapper().toggleClass(POPOVER_WITHOUT_TITLE_CLASS, !this.option(\"showTitle\"));\r\n this.callBase()\r\n },\r\n _renderPosition: function() {\r\n this.callBase();\r\n this._renderOverlayPosition();\r\n this._actions.onPositioned()\r\n },\r\n _renderOverlayPosition: function() {\r\n this._resetOverlayPosition();\r\n this._updateContentSize();\r\n var contentPosition = this._getContainerPosition();\r\n var resultLocation = positionUtils.setup(this.$overlayContent(), contentPosition);\r\n var positionSide = this._getSideByLocation(resultLocation);\r\n this._togglePositionClass(\"dx-position-\" + positionSide);\r\n this._toggleFlippedClass(resultLocation.h.flip, resultLocation.v.flip);\r\n var isArrowVisible = this._isHorizontalSide() || this._isVerticalSide();\r\n if (isArrowVisible) {\r\n this._renderArrowPosition(positionSide)\r\n }\r\n },\r\n _resetOverlayPosition: function() {\r\n this._setContentHeight(true);\r\n this._togglePositionClass(\"dx-position-\" + this._positionController._positionSide);\r\n move(this.$overlayContent(), {\r\n left: 0,\r\n top: 0\r\n });\r\n this._$arrow.css({\r\n top: \"auto\",\r\n right: \"auto\",\r\n bottom: \"auto\",\r\n left: \"auto\"\r\n })\r\n },\r\n _updateContentSize: function() {\r\n if (!this.$content()) {\r\n return\r\n }\r\n var containerLocation = positionUtils.calculate(this.$overlayContent(), this._getContainerPosition());\r\n if (containerLocation.h.oversize > 0 && this._isHorizontalSide() && !containerLocation.h.fit) {\r\n var newContainerWidth = getWidth(this.$overlayContent()) - containerLocation.h.oversize;\r\n setWidth(this.$overlayContent(), newContainerWidth)\r\n }\r\n if (containerLocation.v.oversize > 0 && this._isVerticalSide() && !containerLocation.v.fit) {\r\n var newOverlayContentHeight = getHeight(this.$overlayContent()) - containerLocation.v.oversize;\r\n var newPopupContentHeight = getHeight(this.$content()) - containerLocation.v.oversize;\r\n setHeight(this.$overlayContent(), newOverlayContentHeight);\r\n setHeight(this.$content(), newPopupContentHeight)\r\n }\r\n },\r\n _getContainerPosition: function() {\r\n return this._positionController._getContainerPosition()\r\n },\r\n _hideOnParentScrollTarget: function() {\r\n return $(this._positionController._position.of || this.callBase())\r\n },\r\n _getSideByLocation: function(location) {\r\n var isFlippedByVertical = location.v.flip;\r\n var isFlippedByHorizontal = location.h.flip;\r\n return this._isVerticalSide() && isFlippedByVertical || this._isHorizontalSide() && isFlippedByHorizontal || this._isPopoverInside() ? POSITION_FLIP_MAP[this._positionController._positionSide] : this._positionController._positionSide\r\n },\r\n _togglePositionClass: function(positionClass) {\r\n this.$wrapper().removeClass(\"dx-position-left dx-position-right dx-position-top dx-position-bottom\").addClass(positionClass)\r\n },\r\n _toggleFlippedClass: function(isFlippedHorizontal, isFlippedVertical) {\r\n this.$wrapper().toggleClass(\"dx-popover-flipped-horizontal\", isFlippedHorizontal).toggleClass(\"dx-popover-flipped-vertical\", isFlippedVertical)\r\n },\r\n _renderArrowPosition: function(side) {\r\n var arrowRect = getBoundingRect(this._$arrow.get(0));\r\n var arrowFlip = -(this._isVerticalSide(side) ? arrowRect.height : arrowRect.width);\r\n this._$arrow.css(POSITION_FLIP_MAP[side], arrowFlip);\r\n var axis = this._isVerticalSide(side) ? \"left\" : \"top\";\r\n var sizeProperty = this._isVerticalSide(side) ? \"width\" : \"height\";\r\n var $target = $(this._positionController._position.of);\r\n var targetOffset = positionUtils.offset($target) || {\r\n top: 0,\r\n left: 0\r\n };\r\n var contentOffset = positionUtils.offset(this.$overlayContent());\r\n var arrowSize = arrowRect[sizeProperty];\r\n var contentLocation = contentOffset[axis];\r\n var contentSize = getBoundingRect(this.$overlayContent().get(0))[sizeProperty];\r\n var targetLocation = targetOffset[axis];\r\n var targetElement = $target.get(0);\r\n var targetSize = targetElement && !targetElement.preventDefault ? getBoundingRect(targetElement)[sizeProperty] : 0;\r\n var min = Math.max(contentLocation, targetLocation);\r\n var max = Math.min(contentLocation + contentSize, targetLocation + targetSize);\r\n var arrowLocation;\r\n if (\"start\" === this.option(\"arrowPosition\")) {\r\n arrowLocation = min - contentLocation\r\n } else if (\"end\" === this.option(\"arrowPosition\")) {\r\n arrowLocation = max - contentLocation - arrowSize\r\n } else {\r\n arrowLocation = (min + max) / 2 - contentLocation - arrowSize / 2\r\n }\r\n var borderWidth = this._positionController._getContentBorderWidth(side);\r\n var finalArrowLocation = fitIntoRange(arrowLocation - borderWidth + this.option(\"arrowOffset\"), borderWidth, contentSize - arrowSize - 2 * borderWidth);\r\n this._$arrow.css(axis, finalArrowLocation)\r\n },\r\n _isPopoverInside: function() {\r\n return this._positionController._isPopoverInside()\r\n },\r\n _setContentHeight: function(fullUpdate) {\r\n if (fullUpdate) {\r\n this.callBase()\r\n }\r\n },\r\n _getPositionControllerConfig() {\r\n var {\r\n shading: shading,\r\n target: target\r\n } = this.option();\r\n return extend({}, this.callBase(), {\r\n target: target,\r\n shading: shading,\r\n $arrow: this._$arrow\r\n })\r\n },\r\n _initPositionController() {\r\n this._positionController = new PopoverPositionController(this._getPositionControllerConfig())\r\n },\r\n _renderWrapperDimensions: function() {\r\n if (this.option(\"shading\")) {\r\n this.$wrapper().css({\r\n width: \"100%\",\r\n height: \"100%\"\r\n })\r\n }\r\n },\r\n _isVerticalSide: function(side) {\r\n return this._positionController._isVerticalSide(side)\r\n },\r\n _isHorizontalSide: function(side) {\r\n return this._positionController._isHorizontalSide(side)\r\n },\r\n _clearEventTimeout: function(name) {\r\n clearTimeout(this._timeouts[name])\r\n },\r\n _clearEventsTimeouts: function() {\r\n this._clearEventTimeout(\"show\");\r\n this._clearEventTimeout(\"hide\")\r\n },\r\n _clean: function() {\r\n this._detachEvents(this.option(\"target\"));\r\n this.callBase.apply(this, arguments)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"arrowPosition\":\r\n case \"arrowOffset\":\r\n this._renderGeometry();\r\n break;\r\n case \"fullScreen\":\r\n if (args.value) {\r\n this.option(\"fullScreen\", false)\r\n }\r\n break;\r\n case \"target\":\r\n args.previousValue && this._detachEvents(args.previousValue);\r\n this._positionController.updateTarget(args.value);\r\n this._invalidate();\r\n break;\r\n case \"showEvent\":\r\n case \"hideEvent\":\r\n var name = args.name.substring(0, 4);\r\n var event = getEventNameByOption(args.previousValue);\r\n this.hide();\r\n detachEvent(this, this.option(\"target\"), name, event);\r\n attachEvent(this, name);\r\n break;\r\n case \"visible\":\r\n this._clearEventTimeout(args.value ? \"show\" : \"hide\");\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n show: function(target) {\r\n if (target) {\r\n this.option(\"target\", target)\r\n }\r\n return this.callBase()\r\n }\r\n});\r\nregisterComponent(\"dxPopover\", Popover);\r\nexport default Popover;\r\n","/**\r\n * DevExtreme (esm/ui/popover.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Popover from \"./popover/ui.popover\";\r\nexport default Popover;\r\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","module.exports = require('./lib/_stream_writable.js');\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n //Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n","'use strict';\n\nfunction fuzzysearch (needle, haystack) {\n var tlen = haystack.length;\n var qlen = needle.length;\n if (qlen > tlen) {\n return false;\n }\n if (qlen === tlen) {\n return needle === haystack;\n }\n outer: for (var i = 0, j = 0; i < qlen; i++) {\n var nch = needle.charCodeAt(i);\n while (j < tlen) {\n if (haystack.charCodeAt(j++) === nch) {\n continue outer;\n }\n }\n return false;\n }\n return true;\n}\n\nmodule.exports = fuzzysearch;\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator_registry.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nexport var registry = {};\r\nexport function register(option, type, decoratorClass) {\r\n var decoratorsRegistry = registry;\r\n var decoratorConfig = {};\r\n decoratorConfig[option] = decoratorsRegistry[option] ? decoratorsRegistry[option] : {};\r\n decoratorConfig[option][type] = decoratorClass;\r\n extend(decoratorsRegistry, decoratorConfig)\r\n}\r\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb, null, ret) },\n function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/* eslint-disable no-shadow */\r\n/* eslint-disable import/prefer-default-export */\r\nimport {\r\n ROOT,\r\n api_RCF01,\r\n api_RCF02,\r\n api_RCFV01,\r\n api_RCFV02,\r\n api_ICF01,\r\n api_UCF01,\r\n api_ICFV01,\r\n api_UCFV01,\r\n api_DCFV01,\r\n api_DCF01,\r\n api_DCF02,\r\n api_RRCF01,\r\n api_RRCF02,\r\n api_RRCFV01,\r\n api_RRCFV02,\r\n api_IRCF01,\r\n api_URCF01,\r\n api_IRCFV01,\r\n api_URCFV01,\r\n api_DRCFV01,\r\n api_DRCF01,\r\n api_DRCF02,\r\n api_RBAAR,\r\n api_IRCF02,\r\n api_RRCF03\r\n\r\n} from '@/api/constant'\r\nimport { handleResponse } from '@/api/handle-response'\r\nimport { requestOptions } from '@/api/request-options'\r\n\r\n\r\nfunction API_RRCF03(data) {\r\n return fetch(ROOT + api_RRCF03, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction API_IRCF02(data) {\r\n return fetch(ROOT + api_IRCF02, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction API_RBAAR(data) {\r\n return fetch(ROOT + api_RBAAR, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction API_RCF01(data) {\r\n return fetch(ROOT + api_RCF01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n }\r\n\r\nfunction API_RCF02(data) {\r\n return fetch(ROOT + api_RCF02, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n }\r\n\r\n function API_RCFV01(data) {\r\n return fetch(ROOT + api_RCFV01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n }\r\n\r\n function API_RCFV02(data) {\r\n return fetch(ROOT + api_RCFV02, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n }\r\n function API_ICF01(data) {\r\n return fetch(ROOT + api_ICF01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n }\r\n function API_UCF01(data) {\r\n return fetch(ROOT + api_UCF01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n }\r\n function API_ICFV01(data) {\r\n return fetch(ROOT + api_ICFV01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n }\r\n function API_UCFV01(data) {\r\n return fetch(ROOT + api_UCFV01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n }\r\n function API_DCFV01(data) {\r\n return fetch(ROOT + api_DCFV01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n }\r\n function API_DCF01(data) {\r\n return fetch(ROOT + api_DCF01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n }\r\n function API_DCF02(data) {\r\n return fetch(ROOT + api_DCF02, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n }\r\n\r\n // CONFIG REPORT\r\n function API_RRCF01(data) {\r\n return fetch(ROOT + api_RRCF01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n }\r\n\r\nfunction API_RRCF02(data) {\r\n return fetch(ROOT + api_RRCF02, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n }\r\n\r\n function API_RRCFV01(data) {\r\n return fetch(ROOT + api_RRCFV01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n }\r\n\r\n function API_RRCFV02(data) {\r\n return fetch(ROOT + api_RRCFV02, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n }\r\n function API_IRCF01(data) {\r\n return fetch(ROOT + api_IRCF01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n }\r\n function API_URCF01(data) {\r\n return fetch(ROOT + api_URCF01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n }\r\n function API_IRCFV01(data) {\r\n return fetch(ROOT + api_IRCFV01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n }\r\n function API_URCFV01(data) {\r\n return fetch(ROOT + api_URCFV01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n }\r\n function API_DRCFV01(data) {\r\n return fetch(ROOT + api_DRCFV01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n }\r\n function API_DRCF01(data) {\r\n return fetch(ROOT + api_DRCF01, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n }\r\n function API_DRCF02(data) {\r\n return fetch(ROOT + api_DRCF02, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n }\r\nexport const config = {\r\n API_RCF01,\r\n API_RCF02,\r\n API_RCFV01,\r\n API_RCFV02,\r\n API_ICF01,\r\n API_UCF01,\r\n API_ICFV01,\r\n API_UCFV01,\r\n API_DCFV01,\r\n API_DCF01,\r\n API_DCF02,\r\n API_RRCF01,\r\n API_RRCF02,\r\n API_RRCFV01,\r\n API_RRCFV02,\r\n API_IRCF01,\r\n API_URCF01,\r\n API_IRCFV01,\r\n API_URCFV01,\r\n API_DRCFV01,\r\n API_DRCF01,\r\n API_DRCF02,\r\n API_RBAAR,\r\n API_RRCF03,\r\n API_IRCF02\r\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","/**\r\n * DevExtreme (esm/ui/drop_down_editor/ui.drop_down_button.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport TextEditorButton from \"../text_box/texteditor_button_collection/button\";\r\nimport Button from \"../button\";\r\nvar DROP_DOWN_EDITOR_BUTTON_CLASS = \"dx-dropdowneditor-button\";\r\nvar DROP_DOWN_EDITOR_BUTTON_VISIBLE = \"dx-dropdowneditor-button-visible\";\r\nvar BUTTON_MESSAGE = \"dxDropDownEditor-selectLabel\";\r\nexport default class DropDownButton extends TextEditorButton {\r\n constructor(name, editor, options) {\r\n super(name, editor, options);\r\n this.currentTemplate = null\r\n }\r\n _attachEvents(instance) {\r\n var {\r\n editor: editor\r\n } = this;\r\n instance.option(\"onClick\", e => {\r\n !editor.option(\"openOnFieldClick\") && editor._openHandler(e)\r\n });\r\n eventsEngine.on(instance.$element(), \"mousedown\", e => {\r\n if (editor.$element().is(\".dx-state-focused\")) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n _create() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var $element = $(\"
\");\r\n var options = this._getOptions();\r\n this._addToContainer($element);\r\n var instance = editor._createComponent($element, Button, extend({}, options, {\r\n elementAttr: {\r\n \"aria-label\": messageLocalization.format(BUTTON_MESSAGE)\r\n }\r\n }));\r\n this._legacyRender(editor.$element(), $element, options.visible);\r\n return {\r\n $element: $element,\r\n instance: instance\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 isReadOnly = editor.option(\"readOnly\");\r\n var options = {\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n activeStateEnabled: false,\r\n useInkRipple: false,\r\n disabled: isReadOnly,\r\n visible: visible\r\n };\r\n this._addTemplate(options);\r\n return options\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return super._isVisible() && editor.option(\"showDropDownButton\")\r\n }\r\n _legacyRender($editor, $element, isVisible) {\r\n $editor.toggleClass(DROP_DOWN_EDITOR_BUTTON_VISIBLE, isVisible);\r\n if ($element) {\r\n $element.removeClass(\"dx-button\").addClass(DROP_DOWN_EDITOR_BUTTON_CLASS)\r\n }\r\n }\r\n _isSameTemplate() {\r\n return this.editor.option(\"dropDownButtonTemplate\") === this.currentTemplate\r\n }\r\n _addTemplate(options) {\r\n if (!this._isSameTemplate()) {\r\n options.template = this.editor._getTemplateByOption(\"dropDownButtonTemplate\");\r\n this.currentTemplate = this.editor.option(\"dropDownButtonTemplate\")\r\n }\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 options = this._getOptions();\r\n null === instance || void 0 === instance ? void 0 : instance.option(options);\r\n this._legacyRender($editor, null === instance || void 0 === instance ? void 0 : instance.$element(), options.visible)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/drop_down_editor/ui.drop_down_editor.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport 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 splitPair\r\n} from \"../../core/utils/common\";\r\nimport {\r\n focused\r\n} from \"../widget/selectors\";\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 {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport animationPosition from \"../../animation/position\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../core/utils/position\";\r\nimport DropDownButton from \"./ui.drop_down_button\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport TextBox from \"../text_box\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n FunctionTemplate\r\n} from \"../../core/templates/function_template\";\r\nimport Popup from \"../popup\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n getElementWidth,\r\n getSizeValue\r\n} from \"./utils\";\r\nimport {\r\n locate,\r\n move\r\n} from \"../../animation/translator\";\r\nvar DROP_DOWN_EDITOR_CLASS = \"dx-dropdowneditor\";\r\nvar DROP_DOWN_EDITOR_INPUT_WRAPPER = \"dx-dropdowneditor-input-wrapper\";\r\nvar DROP_DOWN_EDITOR_BUTTON_ICON = \"dx-dropdowneditor-icon\";\r\nvar DROP_DOWN_EDITOR_OVERLAY = \"dx-dropdowneditor-overlay\";\r\nvar DROP_DOWN_EDITOR_OVERLAY_FLIPPED = \"dx-dropdowneditor-overlay-flipped\";\r\nvar DROP_DOWN_EDITOR_ACTIVE = \"dx-dropdowneditor-active\";\r\nvar DROP_DOWN_EDITOR_FIELD_CLICKABLE = \"dx-dropdowneditor-field-clickable\";\r\nvar DROP_DOWN_EDITOR_FIELD_TEMPLATE_WRAPPER = \"dx-dropdowneditor-field-template-wrapper\";\r\nvar isIOs = \"ios\" === devices.current().platform;\r\nvar DropDownEditor = TextBox.inherit({\r\n _supportedKeys: function() {\r\n return extend({}, this.callBase(), {\r\n tab: function(e) {\r\n if (!this.option(\"opened\")) {\r\n return\r\n }\r\n if (\"instantly\" === this.option(\"applyValueMode\")) {\r\n this.close();\r\n return\r\n }\r\n var $focusableElement = e.shiftKey ? this._getLastPopupElement() : this._getFirstPopupElement();\r\n $focusableElement && eventsEngine.trigger($focusableElement, \"focus\");\r\n e.preventDefault()\r\n },\r\n escape: function(e) {\r\n if (this.option(\"opened\")) {\r\n e.preventDefault()\r\n }\r\n this.close();\r\n return true\r\n },\r\n upArrow: function(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (e.altKey) {\r\n this.close();\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n downArrow: function(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (e.altKey) {\r\n this._validatedOpening();\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n enter: function(e) {\r\n if (this.option(\"opened\")) {\r\n e.preventDefault();\r\n this._valueChangeEventHandler(e)\r\n }\r\n return true\r\n }\r\n })\r\n },\r\n _getDefaultButtons: function() {\r\n return this.callBase().concat([{\r\n name: \"dropDown\",\r\n Ctor: DropDownButton\r\n }])\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: null,\r\n onOpened: null,\r\n onClosed: null,\r\n opened: false,\r\n acceptCustomValue: true,\r\n applyValueMode: \"instantly\",\r\n deferRendering: true,\r\n activeStateEnabled: true,\r\n dropDownButtonTemplate: \"dropDownButton\",\r\n fieldTemplate: null,\r\n openOnFieldClick: false,\r\n showDropDownButton: true,\r\n buttons: void 0,\r\n dropDownOptions: {\r\n showTitle: false\r\n },\r\n popupPosition: this._getDefaultPopupPosition(),\r\n onPopupInitialized: null,\r\n applyButtonText: messageLocalization.format(\"OK\"),\r\n cancelButtonText: messageLocalization.format(\"Cancel\"),\r\n buttonsLocation: \"default\",\r\n useHiddenSubmitElement: false\r\n })\r\n },\r\n _useTemplates: function() {\r\n return true\r\n },\r\n _getDefaultPopupPosition: function(isRtlEnabled) {\r\n var position = getDefaultAlignment(isRtlEnabled);\r\n return {\r\n offset: {\r\n h: 0,\r\n v: -1\r\n },\r\n my: position + \" top\",\r\n at: position + \" bottom\",\r\n collision: \"flip flip\"\r\n }\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function(_device) {\r\n var isGeneric = \"generic\" === _device.platform;\r\n return isGeneric\r\n },\r\n options: {\r\n popupPosition: {\r\n offset: {\r\n v: 0\r\n }\r\n }\r\n }\r\n }])\r\n },\r\n _inputWrapper: function() {\r\n return this.$element().find(\".\" + DROP_DOWN_EDITOR_INPUT_WRAPPER).first()\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initVisibilityActions();\r\n this._initPopupInitializedAction();\r\n this._updatePopupPosition(this.option(\"rtlEnabled\"));\r\n this._options.cache(\"dropDownOptions\", this.option(\"dropDownOptions\"))\r\n },\r\n _updatePopupPosition: function(isRtlEnabled) {\r\n var {\r\n my: my,\r\n at: at\r\n } = this._getDefaultPopupPosition(isRtlEnabled);\r\n var currentPosition = this.option(\"popupPosition\");\r\n this.option(\"popupPosition\", extend({}, currentPosition, {\r\n my: my,\r\n at: at\r\n }))\r\n },\r\n _initVisibilityActions: function() {\r\n this._openAction = this._createActionByOption(\"onOpened\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this._closeAction = this._createActionByOption(\"onClosed\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initPopupInitializedAction: function() {\r\n this._popupInitializedAction = this._createActionByOption(\"onPopupInitialized\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initMarkup: function() {\r\n this._renderSubmitElement();\r\n this.callBase();\r\n this.$element().addClass(DROP_DOWN_EDITOR_CLASS);\r\n this.setAria(\"role\", \"combobox\")\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderOpenHandler();\r\n this._attachFocusOutHandler();\r\n this._renderOpenedState()\r\n },\r\n _renderContentImpl: function() {\r\n if (!this.option(\"deferRendering\")) {\r\n this._createPopup()\r\n }\r\n },\r\n _renderInput: function() {\r\n this.callBase();\r\n this._wrapInput();\r\n this._setDefaultAria()\r\n },\r\n _wrapInput: function() {\r\n this._$container = this.$element().wrapInner($(\"
\").addClass(DROP_DOWN_EDITOR_INPUT_WRAPPER)).children().eq(0)\r\n },\r\n _setDefaultAria: function() {\r\n this.setAria({\r\n haspopup: \"true\",\r\n autocomplete: \"list\"\r\n })\r\n },\r\n _readOnlyPropValue: function() {\r\n return !this._isEditable() || this.callBase()\r\n },\r\n _cleanFocusState: function() {\r\n this.callBase();\r\n if (this.option(\"fieldTemplate\")) {\r\n this._detachFocusEvents()\r\n }\r\n },\r\n _getFieldTemplate: function() {\r\n return this.option(\"fieldTemplate\") && this._getTemplateByOption(\"fieldTemplate\")\r\n },\r\n _renderMask: function() {\r\n if (this.option(\"fieldTemplate\")) {\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _renderField: function() {\r\n var fieldTemplate = this._getFieldTemplate();\r\n fieldTemplate && this._renderTemplatedField(fieldTemplate, this._fieldRenderData())\r\n },\r\n _renderPlaceholder: function() {\r\n var hasFieldTemplate = !!this._getFieldTemplate();\r\n if (!hasFieldTemplate) {\r\n this.callBase()\r\n }\r\n },\r\n _renderValue: function() {\r\n if (this.option(\"useHiddenSubmitElement\")) {\r\n this._setSubmitValue()\r\n }\r\n var promise = this.callBase();\r\n promise.always(this._renderField.bind(this))\r\n },\r\n _renderTemplatedField: function(fieldTemplate, data) {\r\n var _this$_fieldRenderQue;\r\n this._fieldRenderQueueLength = (null !== (_this$_fieldRenderQue = this._fieldRenderQueueLength) && void 0 !== _this$_fieldRenderQue ? _this$_fieldRenderQue : 0) + 1;\r\n var isFocused = focused(this._input());\r\n var $container = this._$container;\r\n this._detachKeyboardEvents();\r\n this._refreshButtonsContainer();\r\n this._detachWrapperContent();\r\n this._detachFocusEvents();\r\n $container.empty();\r\n var $templateWrapper = $(\"
\").addClass(DROP_DOWN_EDITOR_FIELD_TEMPLATE_WRAPPER).appendTo($container);\r\n fieldTemplate.render({\r\n model: data,\r\n container: getPublicElement($templateWrapper),\r\n onRendered: () => {\r\n this._fieldRenderQueueLength--;\r\n if (0 !== this._fieldRenderQueueLength) {\r\n return\r\n }\r\n var $input = this._input();\r\n if (!$input.length) {\r\n throw errors.Error(\"E1010\")\r\n }\r\n this._integrateInput();\r\n isFocused && eventsEngine.trigger($input, \"focus\")\r\n }\r\n });\r\n this._attachWrapperContent($container)\r\n },\r\n _detachWrapperContent() {\r\n var _this$_$submitElement, _this$_$beforeButtons, _this$_$afterButtonsC;\r\n var useHiddenSubmitElement = this.option(\"useHiddenSubmitElement\");\r\n useHiddenSubmitElement && (null === (_this$_$submitElement = this._$submitElement) || void 0 === _this$_$submitElement ? void 0 : _this$_$submitElement.detach());\r\n var beforeButtonsContainerParent = null === (_this$_$beforeButtons = this._$beforeButtonsContainer) || void 0 === _this$_$beforeButtons ? void 0 : _this$_$beforeButtons[0].parentNode;\r\n var afterButtonsContainerParent = null === (_this$_$afterButtonsC = this._$afterButtonsContainer) || void 0 === _this$_$afterButtonsC ? void 0 : _this$_$afterButtonsC[0].parentNode;\r\n null === beforeButtonsContainerParent || void 0 === beforeButtonsContainerParent ? void 0 : beforeButtonsContainerParent.removeChild(this._$beforeButtonsContainer[0]);\r\n null === afterButtonsContainerParent || void 0 === afterButtonsContainerParent ? void 0 : afterButtonsContainerParent.removeChild(this._$afterButtonsContainer[0])\r\n },\r\n _attachWrapperContent($container) {\r\n var _this$_$submitElement2;\r\n var useHiddenSubmitElement = this.option(\"useHiddenSubmitElement\");\r\n $container.prepend(this._$beforeButtonsContainer);\r\n useHiddenSubmitElement && (null === (_this$_$submitElement2 = this._$submitElement) || void 0 === _this$_$submitElement2 ? void 0 : _this$_$submitElement2.appendTo($container));\r\n $container.append(this._$afterButtonsContainer)\r\n },\r\n _refreshButtonsContainer() {\r\n this._$buttonsContainer = this.$element().children().eq(0)\r\n },\r\n _integrateInput: function() {\r\n this._renderFocusState();\r\n this._refreshValueChangeEvent();\r\n this._refreshEvents();\r\n this._refreshEmptinessEvent()\r\n },\r\n _refreshEmptinessEvent: function() {\r\n eventsEngine.off(this._input(), \"input blur\", this._toggleEmptinessEventHandler);\r\n this._renderEmptinessEvent()\r\n },\r\n _fieldRenderData: function() {\r\n return this.option(\"value\")\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n dropDownButton: new FunctionTemplate((function(options) {\r\n var $icon = $(\"
\").addClass(DROP_DOWN_EDITOR_BUTTON_ICON);\r\n $(options.container).append($icon)\r\n }))\r\n });\r\n this.callBase()\r\n },\r\n _renderOpenHandler: function() {\r\n var $inputWrapper = this._inputWrapper();\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var openOnFieldClick = this.option(\"openOnFieldClick\");\r\n eventsEngine.off($inputWrapper, eventName);\r\n eventsEngine.on($inputWrapper, eventName, this._getInputClickHandler(openOnFieldClick));\r\n this.$element().toggleClass(DROP_DOWN_EDITOR_FIELD_CLICKABLE, openOnFieldClick);\r\n if (openOnFieldClick) {\r\n this._openOnFieldClickAction = this._createAction(this._openHandler.bind(this))\r\n }\r\n },\r\n _attachFocusOutHandler: function() {\r\n if (isIOs) {\r\n this._detachFocusOutEvents();\r\n eventsEngine.on(this._inputWrapper(), addNamespace(\"focusout\", this.NAME), event => {\r\n var newTarget = event.relatedTarget;\r\n var popupWrapper = this.content ? $(this.content()).closest(\".\" + DROP_DOWN_EDITOR_OVERLAY) : this._$popup;\r\n if (newTarget && this.option(\"opened\")) {\r\n var isNewTargetOutside = 0 === $(newTarget).closest(\".\" + DROP_DOWN_EDITOR_OVERLAY, popupWrapper).length;\r\n if (isNewTargetOutside) {\r\n this.close()\r\n }\r\n }\r\n })\r\n }\r\n },\r\n _detachFocusOutEvents: function() {\r\n isIOs && eventsEngine.off(this._inputWrapper(), addNamespace(\"focusout\", this.NAME))\r\n },\r\n _getInputClickHandler: function(openOnFieldClick) {\r\n return openOnFieldClick ? e => {\r\n this._executeOpenAction(e)\r\n } : e => {\r\n this._focusInput()\r\n }\r\n },\r\n _openHandler: function() {\r\n this._toggleOpenState()\r\n },\r\n _executeOpenAction: function(e) {\r\n this._openOnFieldClickAction({\r\n event: e\r\n })\r\n },\r\n _keyboardEventBindingTarget: function() {\r\n return this._input()\r\n },\r\n _focusInput: function() {\r\n if (this.option(\"disabled\")) {\r\n return false\r\n }\r\n if (this.option(\"focusStateEnabled\") && !focused(this._input())) {\r\n this._resetCaretPosition();\r\n eventsEngine.trigger(this._input(), \"focus\")\r\n }\r\n return true\r\n },\r\n _resetCaretPosition: function() {\r\n var ignoreEditable = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n var inputElement = this._input().get(0);\r\n if (inputElement) {\r\n var {\r\n value: value\r\n } = inputElement;\r\n var caretPosition = isDefined(value) && (ignoreEditable || this._isEditable()) ? value.length : 0;\r\n this._caret({\r\n start: caretPosition,\r\n end: caretPosition\r\n }, true)\r\n }\r\n },\r\n _isEditable: function() {\r\n return this.option(\"acceptCustomValue\")\r\n },\r\n _toggleOpenState: function(isVisible) {\r\n if (!this._focusInput()) {\r\n return\r\n }\r\n if (!this.option(\"readOnly\")) {\r\n isVisible = arguments.length ? isVisible : !this.option(\"opened\");\r\n this.option(\"opened\", isVisible)\r\n }\r\n },\r\n _renderOpenedState: function() {\r\n var opened = this.option(\"opened\");\r\n if (opened) {\r\n this._createPopup()\r\n }\r\n this.$element().toggleClass(DROP_DOWN_EDITOR_ACTIVE, opened);\r\n this._setPopupOption(\"visible\", opened);\r\n this.setAria({\r\n expanded: opened\r\n });\r\n this.setAria(\"owns\", opened ? this._popupContentId : void 0, this.$element())\r\n },\r\n _createPopup: function() {\r\n if (this._$popup) {\r\n return\r\n }\r\n this._$popup = $(\"
\").addClass(DROP_DOWN_EDITOR_OVERLAY).appendTo(this.$element());\r\n this._renderPopup();\r\n this._renderPopupContent()\r\n },\r\n _renderPopupContent: noop,\r\n _renderPopup: function() {\r\n var popupConfig = extend(this._popupConfig(), this._options.cache(\"dropDownOptions\"));\r\n this._popup = this._createComponent(this._$popup, Popup, popupConfig);\r\n this._popup.on({\r\n showing: this._popupShowingHandler.bind(this),\r\n shown: this._popupShownHandler.bind(this),\r\n hiding: this._popupHidingHandler.bind(this),\r\n hidden: this._popupHiddenHandler.bind(this),\r\n contentReady: this._contentReadyHandler.bind(this)\r\n });\r\n this._contentReadyHandler();\r\n this._setPopupContentId(this._popup.$content());\r\n this._bindInnerWidgetOptions(this._popup, \"dropDownOptions\")\r\n },\r\n _setPopupContentId($popupContent) {\r\n this._popupContentId = \"dx-\" + new Guid;\r\n this.setAria(\"id\", this._popupContentId, $popupContent)\r\n },\r\n _contentReadyHandler: noop,\r\n _popupConfig: function() {\r\n return {\r\n onInitialized: this._popupInitializedHandler(),\r\n position: extend(this.option(\"popupPosition\"), {\r\n of: this.$element()\r\n }),\r\n showTitle: this.option(\"dropDownOptions.showTitle\"),\r\n _ignoreFunctionValueDeprecation: true,\r\n width: () => getElementWidth(this.$element()),\r\n height: \"auto\",\r\n shading: false,\r\n wrapperAttr: {\r\n class: DROP_DOWN_EDITOR_OVERLAY\r\n },\r\n hideOnParentScroll: true,\r\n hideOnOutsideClick: e => this._closeOutsideDropDownHandler(e),\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n duration: 0,\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 1,\r\n to: 0\r\n }\r\n },\r\n deferRendering: false,\r\n focusStateEnabled: false,\r\n showCloseButton: false,\r\n dragEnabled: false,\r\n toolbarItems: this._getPopupToolbarItems(),\r\n onPositioned: this._popupPositionedHandler.bind(this),\r\n fullScreen: false,\r\n contentTemplate: null\r\n }\r\n },\r\n _popupInitializedHandler: function() {\r\n if (!this.option(\"onPopupInitialized\")) {\r\n return null\r\n }\r\n return e => {\r\n this._popupInitializedAction({\r\n popup: e.component\r\n })\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n var popupWidth = getSizeValue(this.option(\"dropDownOptions.width\"));\r\n if (void 0 === popupWidth) {\r\n this._setPopupOption(\"width\", () => getElementWidth(this.$element()))\r\n }\r\n },\r\n _popupPositionedHandler: function(e) {\r\n var _e$position, _e$position$v;\r\n var {\r\n labelMode: labelMode,\r\n stylingMode: stylingMode\r\n } = this.option();\r\n var $popupOverlayContent = this._popup.$overlayContent();\r\n var isOverlayFlipped = null === (_e$position = e.position) || void 0 === _e$position ? void 0 : null === (_e$position$v = _e$position.v) || void 0 === _e$position$v ? void 0 : _e$position$v.flip;\r\n var shouldIndentForLabel = \"hidden\" !== labelMode && \"outlined\" === stylingMode;\r\n if (e.position) {\r\n $popupOverlayContent.toggleClass(DROP_DOWN_EDITOR_OVERLAY_FLIPPED, isOverlayFlipped)\r\n }\r\n if (isOverlayFlipped && shouldIndentForLabel && this._label.isVisible()) {\r\n var $label = this._label.$element();\r\n move($popupOverlayContent, {\r\n top: locate($popupOverlayContent).top - parseInt($label.css(\"fontSize\"))\r\n })\r\n }\r\n },\r\n _popupShowingHandler: noop,\r\n _popupHidingHandler: function() {\r\n this.option(\"opened\", false)\r\n },\r\n _popupShownHandler: function() {\r\n var _this$_validationMess;\r\n this._openAction();\r\n null === (_this$_validationMess = this._validationMessage) || void 0 === _this$_validationMess ? void 0 : _this$_validationMess.option(\"positionRequest\", this._getValidationMessagePositionRequest())\r\n },\r\n _popupHiddenHandler: function() {\r\n var _this$_validationMess2;\r\n this._closeAction();\r\n null === (_this$_validationMess2 = this._validationMessage) || void 0 === _this$_validationMess2 ? void 0 : _this$_validationMess2.option(\"positionRequest\", this._getValidationMessagePositionRequest())\r\n },\r\n _getValidationMessagePositionRequest: function() {\r\n var positionRequest = \"below\";\r\n if (this._popup && this._popup.option(\"visible\")) {\r\n var {\r\n top: myTop\r\n } = animationPosition.setup(this.$element());\r\n var {\r\n top: popupTop\r\n } = animationPosition.setup(this._popup.$content());\r\n positionRequest = myTop + this.option(\"popupPosition\").offset.v > popupTop ? \"below\" : \"above\"\r\n }\r\n return positionRequest\r\n },\r\n _closeOutsideDropDownHandler: function(_ref) {\r\n var {\r\n target: target\r\n } = _ref;\r\n var $target = $(target);\r\n var dropDownButton = this.getButton(\"dropDown\");\r\n var $dropDownButton = dropDownButton && dropDownButton.$element();\r\n var isInputClicked = !!$target.closest(this.$element()).length;\r\n var isDropDownButtonClicked = !!$target.closest($dropDownButton).length;\r\n var isOutsideClick = !isInputClicked && !isDropDownButtonClicked;\r\n return isOutsideClick\r\n },\r\n _clean: function() {\r\n delete this._openOnFieldClickAction;\r\n if (this._$popup) {\r\n this._$popup.remove();\r\n delete this._$popup;\r\n delete this._popup\r\n }\r\n this.callBase()\r\n },\r\n _setPopupOption: function(optionName, value) {\r\n this._setWidgetOption(\"_popup\", arguments)\r\n },\r\n _validatedOpening: function() {\r\n if (!this.option(\"readOnly\")) {\r\n this._toggleOpenState(true)\r\n }\r\n },\r\n _getPopupToolbarItems: function() {\r\n return \"useButtons\" === this.option(\"applyValueMode\") ? this._popupToolbarItemsConfig() : []\r\n },\r\n _getFirstPopupElement: function() {\r\n return this._popup.$wrapper().find(\".dx-popup-done.dx-button\")\r\n },\r\n _getLastPopupElement: function() {\r\n return this._popup.$wrapper().find(\".dx-popup-cancel.dx-button\")\r\n },\r\n _popupElementTabHandler: function(e) {\r\n var $element = $(e.currentTarget);\r\n if (e.shiftKey && $element.is(this._getFirstPopupElement()) || !e.shiftKey && $element.is(this._getLastPopupElement())) {\r\n eventsEngine.trigger(this._input(), \"focus\");\r\n e.preventDefault()\r\n }\r\n },\r\n _popupElementEscHandler: function() {\r\n eventsEngine.trigger(this._input(), \"focus\");\r\n this.close()\r\n },\r\n _popupButtonInitializedHandler: function(e) {\r\n e.component.registerKeyHandler(\"tab\", this._popupElementTabHandler.bind(this));\r\n e.component.registerKeyHandler(\"escape\", this._popupElementEscHandler.bind(this))\r\n },\r\n _popupToolbarItemsConfig: function() {\r\n var buttonsConfig = [{\r\n shortcut: \"done\",\r\n options: {\r\n onClick: this._applyButtonHandler.bind(this),\r\n text: this.option(\"applyButtonText\"),\r\n onInitialized: this._popupButtonInitializedHandler.bind(this)\r\n }\r\n }, {\r\n shortcut: \"cancel\",\r\n options: {\r\n onClick: this._cancelButtonHandler.bind(this),\r\n text: this.option(\"cancelButtonText\"),\r\n onInitialized: this._popupButtonInitializedHandler.bind(this)\r\n }\r\n }];\r\n return this._applyButtonsLocation(buttonsConfig)\r\n },\r\n _applyButtonsLocation: function(buttonsConfig) {\r\n var buttonsLocation = this.option(\"buttonsLocation\");\r\n var resultConfig = buttonsConfig;\r\n if (\"default\" !== buttonsLocation) {\r\n var position = splitPair(buttonsLocation);\r\n each(resultConfig, (function(_, element) {\r\n extend(element, {\r\n toolbar: position[0],\r\n location: position[1]\r\n })\r\n }))\r\n }\r\n return resultConfig\r\n },\r\n _applyButtonHandler: function() {\r\n this.close();\r\n this.option(\"focusStateEnabled\") && this.focus()\r\n },\r\n _cancelButtonHandler: function() {\r\n this.close();\r\n this.option(\"focusStateEnabled\") && this.focus()\r\n },\r\n _popupOptionChanged: function(args) {\r\n var options = Widget.getOptionsFromContainer(args);\r\n this._setPopupOption(options);\r\n var optionsKeys = Object.keys(options);\r\n if (-1 !== optionsKeys.indexOf(\"width\") || -1 !== optionsKeys.indexOf(\"height\")) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _renderSubmitElement: function() {\r\n if (this.option(\"useHiddenSubmitElement\")) {\r\n this._$submitElement = $(\"\").attr(\"type\", \"hidden\").appendTo(this.$element())\r\n }\r\n },\r\n _setSubmitValue: function() {\r\n this._getSubmitElement().val(this.option(\"value\"))\r\n },\r\n _getSubmitElement: function() {\r\n if (this.option(\"useHiddenSubmitElement\")) {\r\n return this._$submitElement\r\n } else {\r\n return this.callBase()\r\n }\r\n },\r\n _dispose: function() {\r\n this._detachFocusOutEvents();\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n var _this$_popup;\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n null === (_this$_popup = this._popup) || void 0 === _this$_popup ? void 0 : _this$_popup.repaint();\r\n break;\r\n case \"opened\":\r\n this._renderOpenedState();\r\n break;\r\n case \"onOpened\":\r\n case \"onClosed\":\r\n this._initVisibilityActions();\r\n break;\r\n case \"onPopupInitialized\":\r\n this._initPopupInitializedAction();\r\n break;\r\n case \"fieldTemplate\":\r\n if (isDefined(args.value)) {\r\n this._renderField()\r\n } else {\r\n this._invalidate()\r\n }\r\n break;\r\n case \"acceptCustomValue\":\r\n case \"openOnFieldClick\":\r\n this._invalidate();\r\n break;\r\n case \"dropDownButtonTemplate\":\r\n case \"showDropDownButton\":\r\n this._updateButtons([\"dropDown\"]);\r\n break;\r\n case \"dropDownOptions\":\r\n this._popupOptionChanged(args);\r\n this._options.cache(\"dropDownOptions\", this.option(\"dropDownOptions\"));\r\n break;\r\n case \"popupPosition\":\r\n break;\r\n case \"deferRendering\":\r\n if (hasWindow()) {\r\n this._createPopup()\r\n }\r\n break;\r\n case \"applyValueMode\":\r\n case \"applyButtonText\":\r\n case \"cancelButtonText\":\r\n case \"buttonsLocation\":\r\n this._setPopupOption(\"toolbarItems\", this._getPopupToolbarItems());\r\n break;\r\n case \"useHiddenSubmitElement\":\r\n if (this._$submitElement) {\r\n this._$submitElement.remove();\r\n this._$submitElement = void 0\r\n }\r\n this._renderSubmitElement();\r\n break;\r\n case \"rtlEnabled\":\r\n this._updatePopupPosition(args.value);\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n open: function() {\r\n this.option(\"opened\", true)\r\n },\r\n close: function() {\r\n this.option(\"opened\", false)\r\n },\r\n field: function() {\r\n return getPublicElement(this._input())\r\n },\r\n content: function() {\r\n return this._popup ? this._popup.content() : null\r\n }\r\n});\r\nregisterComponent(\"dxDropDownEditor\", DropDownEditor);\r\nexport default DropDownEditor;\r\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\nvar setFunctionLength = require('set-function-length');\n\nvar $TypeError = require('es-errors/type');\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $defineProperty = require('es-define-property');\nvar $max = GetIntrinsic('%Math.max%');\n\nmodule.exports = function callBind(originalFunction) {\n\tif (typeof originalFunction !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\tvar func = $reflectApply(bind, $call, arguments);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + $max(0, originalFunction.length - (arguments.length - 1)),\n\t\ttrue\n\t);\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.live_update.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 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 CollectionWidget from \"./ui.collection_widget.edit\";\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 update,\r\n insert,\r\n indexByKey\r\n} from \"../../data/array_utils\";\r\nimport {\r\n keysEqual\r\n} from \"../../data/utils\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n findChanges\r\n} from \"../../core/utils/array_compare\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar PRIVATE_KEY_FIELD = \"__dx_key__\";\r\nexport default CollectionWidget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n repaintChangesOnly: false\r\n })\r\n },\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n this._customizeStoreLoadOptions = e => {\r\n var dataSource = this._dataSource;\r\n if (dataSource && !dataSource.isLoaded()) {\r\n this._correctionIndex = 0\r\n }\r\n if (this._correctionIndex && e.storeLoadOptions) {\r\n e.storeLoadOptions.skip += this._correctionIndex\r\n }\r\n }, this._dataSource && this._dataSource.on(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptions)\r\n },\r\n reload: function() {\r\n this._correctionIndex = 0\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._refreshItemsCache();\r\n this._correctionIndex = 0\r\n },\r\n _findItemElementByKey: function(key) {\r\n var result = $();\r\n var keyExpr = this.key();\r\n this.itemElements().each((_, item) => {\r\n var $item = $(item);\r\n var itemData = this._getItemData($item);\r\n if (keyExpr ? keysEqual(keyExpr, this.keyOf(itemData), key) : this._isItemEquals(itemData, key)) {\r\n result = $item;\r\n return false\r\n }\r\n });\r\n return result\r\n },\r\n _dataSourceChangedHandler: function(newItems, e) {\r\n if (null !== e && void 0 !== e && e.changes) {\r\n this._modifyByChanges(e.changes)\r\n } else {\r\n this.callBase(newItems, e);\r\n this._refreshItemsCache()\r\n }\r\n },\r\n _isItemEquals: function(item1, item2) {\r\n if (item1 && item1[PRIVATE_KEY_FIELD]) {\r\n item1 = item1.data\r\n }\r\n try {\r\n return JSON.stringify(item1) === JSON.stringify(item2)\r\n } catch (e) {\r\n return item1 === item2\r\n }\r\n },\r\n _isItemStrictEquals: function(item1, item2) {\r\n return this._isItemEquals(item1, item2)\r\n },\r\n _shouldAddNewGroup: function(changes, items) {\r\n var result = false;\r\n if (this.option(\"grouped\")) {\r\n if (!changes.length) {\r\n result = true\r\n }\r\n each(changes, (i, change) => {\r\n if (\"insert\" === change.type) {\r\n result = true;\r\n each(items, (_, item) => {\r\n if (void 0 !== change.data.key && change.data.key === item.key) {\r\n result = false;\r\n return false\r\n }\r\n })\r\n }\r\n })\r\n }\r\n return result\r\n },\r\n _partialRefresh: function() {\r\n if (this.option(\"repaintChangesOnly\")) {\r\n var result = findChanges(this._itemsCache, this._editStrategy.itemsGetter(), data => {\r\n if (data && void 0 !== data[PRIVATE_KEY_FIELD]) {\r\n return data[PRIVATE_KEY_FIELD]\r\n }\r\n return this.keyOf(data)\r\n }, this._isItemStrictEquals.bind(this));\r\n if (result && this._itemsCache.length && !this._shouldAddNewGroup(result, this._itemsCache)) {\r\n this._modifyByChanges(result, true);\r\n this._renderEmptyMessage();\r\n return true\r\n } else {\r\n this._refreshItemsCache()\r\n }\r\n }\r\n return false\r\n },\r\n _refreshItemsCache: function() {\r\n if (this.option(\"repaintChangesOnly\")) {\r\n var items = this._editStrategy.itemsGetter();\r\n try {\r\n this._itemsCache = extend(true, [], items);\r\n if (!this.key()) {\r\n this._itemsCache = this._itemsCache.map((itemCache, index) => ({\r\n [PRIVATE_KEY_FIELD]: items[index],\r\n data: itemCache\r\n }))\r\n }\r\n } catch (e) {\r\n this._itemsCache = extend([], items)\r\n }\r\n }\r\n },\r\n _dispose: function() {\r\n this._dataSource && this._dataSource.off(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptions);\r\n this.callBase()\r\n },\r\n _updateByChange: function(keyInfo, items, change, isPartialRefresh) {\r\n if (isPartialRefresh) {\r\n this._renderItem(change.index, change.data, null, this._findItemElementByKey(change.key))\r\n } else {\r\n var changedItem = items[indexByKey(keyInfo, items, change.key)];\r\n if (changedItem) {\r\n update(keyInfo, items, change.key, change.data).done(() => {\r\n this._renderItem(items.indexOf(changedItem), changedItem, null, this._findItemElementByKey(change.key))\r\n })\r\n }\r\n }\r\n },\r\n _insertByChange: function(keyInfo, items, change, isPartialRefresh) {\r\n when(isPartialRefresh || insert(keyInfo, items, change.data, change.index)).done(() => {\r\n var _change$index;\r\n this._beforeItemElementInserted(change);\r\n var $itemContainer = this._getItemContainer(change.data);\r\n this._renderItem(null !== (_change$index = change.index) && void 0 !== _change$index ? _change$index : items.length, change.data, $itemContainer);\r\n this._afterItemElementInserted();\r\n this._correctionIndex++\r\n })\r\n },\r\n _getItemContainer: function(changeData) {\r\n return this._itemContainer()\r\n },\r\n _updateSelectionAfterRemoveByChange: function(removeIndex) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n if (selectedIndex > removeIndex) {\r\n this.option(\"selectedIndex\", selectedIndex - 1)\r\n } else if (selectedIndex === removeIndex && 1 === this.option(\"selectedItems\").length) {\r\n this.option(\"selectedItems\", [])\r\n } else {\r\n this._normalizeSelectedItems()\r\n }\r\n },\r\n _beforeItemElementInserted: function(change) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n if (change.index <= selectedIndex) {\r\n this.option(\"selectedIndex\", selectedIndex + 1)\r\n }\r\n },\r\n _afterItemElementInserted: noop,\r\n _removeByChange: function(keyInfo, items, change, isPartialRefresh) {\r\n var index = isPartialRefresh ? change.index : indexByKey(keyInfo, items, change.key);\r\n var removedItem = isPartialRefresh ? change.oldItem : items[index];\r\n if (removedItem) {\r\n var $removedItemElement = this._findItemElementByKey(change.key);\r\n var deletedActionArgs = this._extendActionArgs($removedItemElement);\r\n this._waitDeletingPrepare($removedItemElement).done(() => {\r\n if (isPartialRefresh) {\r\n this._updateIndicesAfterIndex(index - 1);\r\n this._afterItemElementDeleted($removedItemElement, deletedActionArgs);\r\n this._updateSelectionAfterRemoveByChange(index)\r\n } else {\r\n this._deleteItemElementByIndex(index);\r\n this._afterItemElementDeleted($removedItemElement, deletedActionArgs)\r\n }\r\n });\r\n this._correctionIndex--\r\n }\r\n },\r\n _modifyByChanges: function(changes, isPartialRefresh) {\r\n var items = this._editStrategy.itemsGetter();\r\n var keyInfo = {\r\n key: this.key.bind(this),\r\n keyOf: this.keyOf.bind(this)\r\n };\r\n var dataSource = this._dataSource;\r\n var paginate = dataSource && dataSource.paginate();\r\n var group = dataSource && dataSource.group();\r\n if (paginate || group) {\r\n changes = changes.filter(item => \"insert\" !== item.type || void 0 !== item.index)\r\n }\r\n changes.forEach(change => this[\"_\".concat(change.type, \"ByChange\")](keyInfo, items, change, isPartialRefresh));\r\n this._renderedItemsCount = items.length;\r\n this._refreshItemsCache();\r\n this._fireContentReadyAction()\r\n },\r\n _appendItemToContainer: function($container, $itemFrame, index) {\r\n var nextSiblingElement = $container.children(this._itemSelector()).get(index);\r\n domAdapter.insertElement($container.get(0), $itemFrame.get(0), nextSiblingElement)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"items\":\r\n var isItemsUpdated = this._partialRefresh(args.value);\r\n if (!isItemsUpdated) {\r\n this.callBase(args)\r\n }\r\n break;\r\n case \"dataSource\":\r\n if (!this.option(\"repaintChangesOnly\") || !args.value) {\r\n this.option(\"items\", [])\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"repaintChangesOnly\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\n","module.exports = require('events').EventEmitter;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n pna.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n pna.nextTick(emitErrorNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, _this, err);\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","'use strict';\n\nvar Buffer = require('buffer').Buffer;\nvar Transform = require('stream').Transform;\nvar binding = require('./binding');\nvar util = require('util');\nvar assert = require('assert').ok;\nvar kMaxLength = require('buffer').kMaxLength;\nvar kRangeErrorMessage = 'Cannot create final Buffer. It would be larger ' + 'than 0x' + kMaxLength.toString(16) + ' bytes';\n\n// zlib doesn't provide these, so kludge them in following the same\n// const naming scheme zlib uses.\nbinding.Z_MIN_WINDOWBITS = 8;\nbinding.Z_MAX_WINDOWBITS = 15;\nbinding.Z_DEFAULT_WINDOWBITS = 15;\n\n// fewer than 64 bytes per chunk is stupid.\n// technically it could work with as few as 8, but even 64 bytes\n// is absurdly low. Usually a MB or more is best.\nbinding.Z_MIN_CHUNK = 64;\nbinding.Z_MAX_CHUNK = Infinity;\nbinding.Z_DEFAULT_CHUNK = 16 * 1024;\n\nbinding.Z_MIN_MEMLEVEL = 1;\nbinding.Z_MAX_MEMLEVEL = 9;\nbinding.Z_DEFAULT_MEMLEVEL = 8;\n\nbinding.Z_MIN_LEVEL = -1;\nbinding.Z_MAX_LEVEL = 9;\nbinding.Z_DEFAULT_LEVEL = binding.Z_DEFAULT_COMPRESSION;\n\n// expose all the zlib constants\nvar bkeys = Object.keys(binding);\nfor (var bk = 0; bk < bkeys.length; bk++) {\n var bkey = bkeys[bk];\n if (bkey.match(/^Z/)) {\n Object.defineProperty(exports, bkey, {\n enumerable: true, value: binding[bkey], writable: false\n });\n }\n}\n\n// translation table for return codes.\nvar codes = {\n Z_OK: binding.Z_OK,\n Z_STREAM_END: binding.Z_STREAM_END,\n Z_NEED_DICT: binding.Z_NEED_DICT,\n Z_ERRNO: binding.Z_ERRNO,\n Z_STREAM_ERROR: binding.Z_STREAM_ERROR,\n Z_DATA_ERROR: binding.Z_DATA_ERROR,\n Z_MEM_ERROR: binding.Z_MEM_ERROR,\n Z_BUF_ERROR: binding.Z_BUF_ERROR,\n Z_VERSION_ERROR: binding.Z_VERSION_ERROR\n};\n\nvar ckeys = Object.keys(codes);\nfor (var ck = 0; ck < ckeys.length; ck++) {\n var ckey = ckeys[ck];\n codes[codes[ckey]] = ckey;\n}\n\nObject.defineProperty(exports, 'codes', {\n enumerable: true, value: Object.freeze(codes), writable: false\n});\n\nexports.Deflate = Deflate;\nexports.Inflate = Inflate;\nexports.Gzip = Gzip;\nexports.Gunzip = Gunzip;\nexports.DeflateRaw = DeflateRaw;\nexports.InflateRaw = InflateRaw;\nexports.Unzip = Unzip;\n\nexports.createDeflate = function (o) {\n return new Deflate(o);\n};\n\nexports.createInflate = function (o) {\n return new Inflate(o);\n};\n\nexports.createDeflateRaw = function (o) {\n return new DeflateRaw(o);\n};\n\nexports.createInflateRaw = function (o) {\n return new InflateRaw(o);\n};\n\nexports.createGzip = function (o) {\n return new Gzip(o);\n};\n\nexports.createGunzip = function (o) {\n return new Gunzip(o);\n};\n\nexports.createUnzip = function (o) {\n return new Unzip(o);\n};\n\n// Convenience methods.\n// compress/decompress a string or buffer in one step.\nexports.deflate = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Deflate(opts), buffer, callback);\n};\n\nexports.deflateSync = function (buffer, opts) {\n return zlibBufferSync(new Deflate(opts), buffer);\n};\n\nexports.gzip = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Gzip(opts), buffer, callback);\n};\n\nexports.gzipSync = function (buffer, opts) {\n return zlibBufferSync(new Gzip(opts), buffer);\n};\n\nexports.deflateRaw = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new DeflateRaw(opts), buffer, callback);\n};\n\nexports.deflateRawSync = function (buffer, opts) {\n return zlibBufferSync(new DeflateRaw(opts), buffer);\n};\n\nexports.unzip = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Unzip(opts), buffer, callback);\n};\n\nexports.unzipSync = function (buffer, opts) {\n return zlibBufferSync(new Unzip(opts), buffer);\n};\n\nexports.inflate = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Inflate(opts), buffer, callback);\n};\n\nexports.inflateSync = function (buffer, opts) {\n return zlibBufferSync(new Inflate(opts), buffer);\n};\n\nexports.gunzip = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Gunzip(opts), buffer, callback);\n};\n\nexports.gunzipSync = function (buffer, opts) {\n return zlibBufferSync(new Gunzip(opts), buffer);\n};\n\nexports.inflateRaw = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new InflateRaw(opts), buffer, callback);\n};\n\nexports.inflateRawSync = function (buffer, opts) {\n return zlibBufferSync(new InflateRaw(opts), buffer);\n};\n\nfunction zlibBuffer(engine, buffer, callback) {\n var buffers = [];\n var nread = 0;\n\n engine.on('error', onError);\n engine.on('end', onEnd);\n\n engine.end(buffer);\n flow();\n\n function flow() {\n var chunk;\n while (null !== (chunk = engine.read())) {\n buffers.push(chunk);\n nread += chunk.length;\n }\n engine.once('readable', flow);\n }\n\n function onError(err) {\n engine.removeListener('end', onEnd);\n engine.removeListener('readable', flow);\n callback(err);\n }\n\n function onEnd() {\n var buf;\n var err = null;\n\n if (nread >= kMaxLength) {\n err = new RangeError(kRangeErrorMessage);\n } else {\n buf = Buffer.concat(buffers, nread);\n }\n\n buffers = [];\n engine.close();\n callback(err, buf);\n }\n}\n\nfunction zlibBufferSync(engine, buffer) {\n if (typeof buffer === 'string') buffer = Buffer.from(buffer);\n\n if (!Buffer.isBuffer(buffer)) throw new TypeError('Not a string or buffer');\n\n var flushFlag = engine._finishFlushFlag;\n\n return engine._processChunk(buffer, flushFlag);\n}\n\n// generic zlib\n// minimal 2-byte header\nfunction Deflate(opts) {\n if (!(this instanceof Deflate)) return new Deflate(opts);\n Zlib.call(this, opts, binding.DEFLATE);\n}\n\nfunction Inflate(opts) {\n if (!(this instanceof Inflate)) return new Inflate(opts);\n Zlib.call(this, opts, binding.INFLATE);\n}\n\n// gzip - bigger header, same deflate compression\nfunction Gzip(opts) {\n if (!(this instanceof Gzip)) return new Gzip(opts);\n Zlib.call(this, opts, binding.GZIP);\n}\n\nfunction Gunzip(opts) {\n if (!(this instanceof Gunzip)) return new Gunzip(opts);\n Zlib.call(this, opts, binding.GUNZIP);\n}\n\n// raw - no header\nfunction DeflateRaw(opts) {\n if (!(this instanceof DeflateRaw)) return new DeflateRaw(opts);\n Zlib.call(this, opts, binding.DEFLATERAW);\n}\n\nfunction InflateRaw(opts) {\n if (!(this instanceof InflateRaw)) return new InflateRaw(opts);\n Zlib.call(this, opts, binding.INFLATERAW);\n}\n\n// auto-detect header.\nfunction Unzip(opts) {\n if (!(this instanceof Unzip)) return new Unzip(opts);\n Zlib.call(this, opts, binding.UNZIP);\n}\n\nfunction isValidFlushFlag(flag) {\n return flag === binding.Z_NO_FLUSH || flag === binding.Z_PARTIAL_FLUSH || flag === binding.Z_SYNC_FLUSH || flag === binding.Z_FULL_FLUSH || flag === binding.Z_FINISH || flag === binding.Z_BLOCK;\n}\n\n// the Zlib class they all inherit from\n// This thing manages the queue of requests, and returns\n// true or false if there is anything in the queue when\n// you call the .write() method.\n\nfunction Zlib(opts, mode) {\n var _this = this;\n\n this._opts = opts = opts || {};\n this._chunkSize = opts.chunkSize || exports.Z_DEFAULT_CHUNK;\n\n Transform.call(this, opts);\n\n if (opts.flush && !isValidFlushFlag(opts.flush)) {\n throw new Error('Invalid flush flag: ' + opts.flush);\n }\n if (opts.finishFlush && !isValidFlushFlag(opts.finishFlush)) {\n throw new Error('Invalid flush flag: ' + opts.finishFlush);\n }\n\n this._flushFlag = opts.flush || binding.Z_NO_FLUSH;\n this._finishFlushFlag = typeof opts.finishFlush !== 'undefined' ? opts.finishFlush : binding.Z_FINISH;\n\n if (opts.chunkSize) {\n if (opts.chunkSize < exports.Z_MIN_CHUNK || opts.chunkSize > exports.Z_MAX_CHUNK) {\n throw new Error('Invalid chunk size: ' + opts.chunkSize);\n }\n }\n\n if (opts.windowBits) {\n if (opts.windowBits < exports.Z_MIN_WINDOWBITS || opts.windowBits > exports.Z_MAX_WINDOWBITS) {\n throw new Error('Invalid windowBits: ' + opts.windowBits);\n }\n }\n\n if (opts.level) {\n if (opts.level < exports.Z_MIN_LEVEL || opts.level > exports.Z_MAX_LEVEL) {\n throw new Error('Invalid compression level: ' + opts.level);\n }\n }\n\n if (opts.memLevel) {\n if (opts.memLevel < exports.Z_MIN_MEMLEVEL || opts.memLevel > exports.Z_MAX_MEMLEVEL) {\n throw new Error('Invalid memLevel: ' + opts.memLevel);\n }\n }\n\n if (opts.strategy) {\n if (opts.strategy != exports.Z_FILTERED && opts.strategy != exports.Z_HUFFMAN_ONLY && opts.strategy != exports.Z_RLE && opts.strategy != exports.Z_FIXED && opts.strategy != exports.Z_DEFAULT_STRATEGY) {\n throw new Error('Invalid strategy: ' + opts.strategy);\n }\n }\n\n if (opts.dictionary) {\n if (!Buffer.isBuffer(opts.dictionary)) {\n throw new Error('Invalid dictionary: it should be a Buffer instance');\n }\n }\n\n this._handle = new binding.Zlib(mode);\n\n var self = this;\n this._hadError = false;\n this._handle.onerror = function (message, errno) {\n // there is no way to cleanly recover.\n // continuing only obscures problems.\n _close(self);\n self._hadError = true;\n\n var error = new Error(message);\n error.errno = errno;\n error.code = exports.codes[errno];\n self.emit('error', error);\n };\n\n var level = exports.Z_DEFAULT_COMPRESSION;\n if (typeof opts.level === 'number') level = opts.level;\n\n var strategy = exports.Z_DEFAULT_STRATEGY;\n if (typeof opts.strategy === 'number') strategy = opts.strategy;\n\n this._handle.init(opts.windowBits || exports.Z_DEFAULT_WINDOWBITS, level, opts.memLevel || exports.Z_DEFAULT_MEMLEVEL, strategy, opts.dictionary);\n\n this._buffer = Buffer.allocUnsafe(this._chunkSize);\n this._offset = 0;\n this._level = level;\n this._strategy = strategy;\n\n this.once('end', this.close);\n\n Object.defineProperty(this, '_closed', {\n get: function () {\n return !_this._handle;\n },\n configurable: true,\n enumerable: true\n });\n}\n\nutil.inherits(Zlib, Transform);\n\nZlib.prototype.params = function (level, strategy, callback) {\n if (level < exports.Z_MIN_LEVEL || level > exports.Z_MAX_LEVEL) {\n throw new RangeError('Invalid compression level: ' + level);\n }\n if (strategy != exports.Z_FILTERED && strategy != exports.Z_HUFFMAN_ONLY && strategy != exports.Z_RLE && strategy != exports.Z_FIXED && strategy != exports.Z_DEFAULT_STRATEGY) {\n throw new TypeError('Invalid strategy: ' + strategy);\n }\n\n if (this._level !== level || this._strategy !== strategy) {\n var self = this;\n this.flush(binding.Z_SYNC_FLUSH, function () {\n assert(self._handle, 'zlib binding closed');\n self._handle.params(level, strategy);\n if (!self._hadError) {\n self._level = level;\n self._strategy = strategy;\n if (callback) callback();\n }\n });\n } else {\n process.nextTick(callback);\n }\n};\n\nZlib.prototype.reset = function () {\n assert(this._handle, 'zlib binding closed');\n return this._handle.reset();\n};\n\n// This is the _flush function called by the transform class,\n// internally, when the last chunk has been written.\nZlib.prototype._flush = function (callback) {\n this._transform(Buffer.alloc(0), '', callback);\n};\n\nZlib.prototype.flush = function (kind, callback) {\n var _this2 = this;\n\n var ws = this._writableState;\n\n if (typeof kind === 'function' || kind === undefined && !callback) {\n callback = kind;\n kind = binding.Z_FULL_FLUSH;\n }\n\n if (ws.ended) {\n if (callback) process.nextTick(callback);\n } else if (ws.ending) {\n if (callback) this.once('end', callback);\n } else if (ws.needDrain) {\n if (callback) {\n this.once('drain', function () {\n return _this2.flush(kind, callback);\n });\n }\n } else {\n this._flushFlag = kind;\n this.write(Buffer.alloc(0), '', callback);\n }\n};\n\nZlib.prototype.close = function (callback) {\n _close(this, callback);\n process.nextTick(emitCloseNT, this);\n};\n\nfunction _close(engine, callback) {\n if (callback) process.nextTick(callback);\n\n // Caller may invoke .close after a zlib error (which will null _handle).\n if (!engine._handle) return;\n\n engine._handle.close();\n engine._handle = null;\n}\n\nfunction emitCloseNT(self) {\n self.emit('close');\n}\n\nZlib.prototype._transform = function (chunk, encoding, cb) {\n var flushFlag;\n var ws = this._writableState;\n var ending = ws.ending || ws.ended;\n var last = ending && (!chunk || ws.length === chunk.length);\n\n if (chunk !== null && !Buffer.isBuffer(chunk)) return cb(new Error('invalid input'));\n\n if (!this._handle) return cb(new Error('zlib binding closed'));\n\n // If it's the last chunk, or a final flush, we use the Z_FINISH flush flag\n // (or whatever flag was provided using opts.finishFlush).\n // If it's explicitly flushing at some other time, then we use\n // Z_FULL_FLUSH. Otherwise, use Z_NO_FLUSH for maximum compression\n // goodness.\n if (last) flushFlag = this._finishFlushFlag;else {\n flushFlag = this._flushFlag;\n // once we've flushed the last of the queue, stop flushing and\n // go back to the normal behavior.\n if (chunk.length >= ws.length) {\n this._flushFlag = this._opts.flush || binding.Z_NO_FLUSH;\n }\n }\n\n this._processChunk(chunk, flushFlag, cb);\n};\n\nZlib.prototype._processChunk = function (chunk, flushFlag, cb) {\n var availInBefore = chunk && chunk.length;\n var availOutBefore = this._chunkSize - this._offset;\n var inOff = 0;\n\n var self = this;\n\n var async = typeof cb === 'function';\n\n if (!async) {\n var buffers = [];\n var nread = 0;\n\n var error;\n this.on('error', function (er) {\n error = er;\n });\n\n assert(this._handle, 'zlib binding closed');\n do {\n var res = this._handle.writeSync(flushFlag, chunk, // in\n inOff, // in_off\n availInBefore, // in_len\n this._buffer, // out\n this._offset, //out_off\n availOutBefore); // out_len\n } while (!this._hadError && callback(res[0], res[1]));\n\n if (this._hadError) {\n throw error;\n }\n\n if (nread >= kMaxLength) {\n _close(this);\n throw new RangeError(kRangeErrorMessage);\n }\n\n var buf = Buffer.concat(buffers, nread);\n _close(this);\n\n return buf;\n }\n\n assert(this._handle, 'zlib binding closed');\n var req = this._handle.write(flushFlag, chunk, // in\n inOff, // in_off\n availInBefore, // in_len\n this._buffer, // out\n this._offset, //out_off\n availOutBefore); // out_len\n\n req.buffer = chunk;\n req.callback = callback;\n\n function callback(availInAfter, availOutAfter) {\n // When the callback is used in an async write, the callback's\n // context is the `req` object that was created. The req object\n // is === this._handle, and that's why it's important to null\n // out the values after they are done being used. `this._handle`\n // can stay in memory longer than the callback and buffer are needed.\n if (this) {\n this.buffer = null;\n this.callback = null;\n }\n\n if (self._hadError) return;\n\n var have = availOutBefore - availOutAfter;\n assert(have >= 0, 'have should not go down');\n\n if (have > 0) {\n var out = self._buffer.slice(self._offset, self._offset + have);\n self._offset += have;\n // serve some output to the consumer.\n if (async) {\n self.push(out);\n } else {\n buffers.push(out);\n nread += out.length;\n }\n }\n\n // exhausted the output buffer, or used all the input create a new one.\n if (availOutAfter === 0 || self._offset >= self._chunkSize) {\n availOutBefore = self._chunkSize;\n self._offset = 0;\n self._buffer = Buffer.allocUnsafe(self._chunkSize);\n }\n\n if (availOutAfter === 0) {\n // Not actually done. Need to reprocess.\n // Also, update the availInBefore to the availInAfter value,\n // so that if we have to hit it a third (fourth, etc.) time,\n // it'll have the correct byte counts.\n inOff += availInBefore - availInAfter;\n availInBefore = availInAfter;\n\n if (!async) return true;\n\n var newReq = self._handle.write(flushFlag, chunk, inOff, availInBefore, self._buffer, self._offset, self._chunkSize);\n newReq.callback = callback; // this same function\n newReq.buffer = chunk;\n return;\n }\n\n if (!async) return false;\n\n // finished with the chunk.\n cb();\n }\n};\n\nutil.inherits(Deflate, Zlib);\nutil.inherits(Inflate, Zlib);\nutil.inherits(Gzip, Zlib);\nutil.inherits(Gunzip, Zlib);\nutil.inherits(DeflateRaw, Zlib);\nutil.inherits(InflateRaw, Zlib);\nutil.inherits(Unzip, Zlib);","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n","/* eslint-disable no-shadow */\r\n/* eslint-disable import/prefer-default-export */\r\nimport {\r\n ROOT,\r\n GET_LIST_GOLF_CLASS,\r\n ADD_NEW_GOLF_CLASS,\r\n UPDATE_GOLF_CLASS,\r\n ACTIVE_GOLF_CLASS,\r\n DEACTIVE_GOLF_CLASS,\r\n DELETE_GOLF_CLASS\r\n} from '@/api/constant'\r\nimport { handleResponse } from '@/api/handle-response'\r\nimport { requestOptions } from '@/api/request-options'\r\n\r\nfunction getListGolfClass(data) {\r\n return fetch(ROOT + GET_LIST_GOLF_CLASS, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction addNewGolfClass(data) {\r\n return fetch(ROOT + ADD_NEW_GOLF_CLASS, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction updateGolfClass(data) {\r\n return fetch(ROOT + UPDATE_GOLF_CLASS, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction changeStatusGolfClass(status, data) {\r\n const key = status ? ACTIVE_GOLF_CLASS : DEACTIVE_GOLF_CLASS\r\n return fetch(ROOT + key, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction deleteGolfClass(data) {\r\n return fetch(ROOT + DELETE_GOLF_CLASS, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nexport const golfClass = {\r\n getListGolfClass,\r\n addNewGolfClass,\r\n updateGolfClass,\r\n changeStatusGolfClass,\r\n deleteGolfClass\r\n}\r\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var map = {\n\t\"./en_gb.svg\": \"742e\",\n\t\"./vi_vn.svg\": \"d119\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"5ba2\";","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\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","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","/**\r\n * DevExtreme (esm/ui/editor/ui.data_expression.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport variableWrapper from \"../../core/utils/variable_wrapper\";\r\nimport {\r\n compileGetter,\r\n toComparable\r\n} from \"../../core/utils/data\";\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isObject as isObjectType,\r\n isString,\r\n isFunction\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 DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport ArrayStore from \"../../data/array_store\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar DataExpressionMixin = extend({}, DataHelperMixin, {\r\n _dataExpressionDefaultOptions: function() {\r\n return {\r\n items: [],\r\n dataSource: null,\r\n itemTemplate: \"item\",\r\n value: null,\r\n valueExpr: \"this\",\r\n displayExpr: void 0\r\n }\r\n },\r\n _initDataExpressions: function() {\r\n this._compileValueGetter();\r\n this._compileDisplayGetter();\r\n this._initDynamicTemplates();\r\n this._initDataSource();\r\n this._itemsToDataSource()\r\n },\r\n _itemsToDataSource: function() {\r\n if (!this.option(\"dataSource\")) {\r\n this._dataSource = new DataSource({\r\n store: new ArrayStore(this.option(\"items\")),\r\n pageSize: 0\r\n })\r\n }\r\n },\r\n _compileDisplayGetter: function() {\r\n this._displayGetter = compileGetter(this._displayGetterExpr())\r\n },\r\n _displayGetterExpr: function() {\r\n return this.option(\"displayExpr\")\r\n },\r\n _compileValueGetter: function() {\r\n this._valueGetter = compileGetter(this._valueGetterExpr())\r\n },\r\n _valueGetterExpr: function() {\r\n return this.option(\"valueExpr\") || \"this\"\r\n },\r\n _loadValue: function(value) {\r\n var deferred = new Deferred;\r\n value = this._unwrappedValue(value);\r\n if (!isDefined(value)) {\r\n return deferred.reject().promise()\r\n }\r\n this._loadSingle(this._valueGetterExpr(), value).done(function(item) {\r\n this._isValueEquals(this._valueGetter(item), value) ? deferred.resolve(item) : deferred.reject()\r\n }.bind(this)).fail((function() {\r\n deferred.reject()\r\n }));\r\n this._loadValueDeferred = deferred;\r\n return deferred.promise()\r\n },\r\n _rejectValueLoading: function() {\r\n var _this$_loadValueDefer;\r\n null === (_this$_loadValueDefer = this._loadValueDeferred) || void 0 === _this$_loadValueDefer ? void 0 : _this$_loadValueDefer.reject({\r\n shouldSkipCallback: true\r\n })\r\n },\r\n _getCurrentValue: function() {\r\n return this.option(\"value\")\r\n },\r\n _unwrappedValue: function(value) {\r\n var _value;\r\n value = null !== (_value = value) && void 0 !== _value ? _value : this._getCurrentValue();\r\n if (value && this._dataSource && \"this\" === this._valueGetterExpr()) {\r\n value = this._getItemKey(value)\r\n }\r\n return variableWrapper.unwrap(value)\r\n },\r\n _getItemKey: function(value) {\r\n var key = this._dataSource.key();\r\n if (Array.isArray(key)) {\r\n var result = {};\r\n for (var i = 0, n = key.length; i < n; i++) {\r\n result[key[i]] = value[key[i]]\r\n }\r\n return result\r\n }\r\n if (key && \"object\" === typeof value) {\r\n value = value[key]\r\n }\r\n return value\r\n },\r\n _isValueEquals: function(value1, value2) {\r\n var dataSourceKey = this._dataSource && this._dataSource.key();\r\n var result = this._compareValues(value1, value2);\r\n if (!result && dataSourceKey && isDefined(value1) && isDefined(value2)) {\r\n if (Array.isArray(dataSourceKey)) {\r\n result = this._compareByCompositeKey(value1, value2, dataSourceKey)\r\n } else {\r\n result = this._compareByKey(value1, value2, dataSourceKey)\r\n }\r\n }\r\n return result\r\n },\r\n _compareByCompositeKey: function(value1, value2, key) {\r\n var isObject = isObjectType;\r\n if (!isObject(value1) || !isObject(value2)) {\r\n return false\r\n }\r\n for (var i = 0, n = key.length; i < n; i++) {\r\n if (value1[key[i]] !== value2[key[i]]) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n _compareByKey: function(value1, value2, key) {\r\n var unwrapObservable = variableWrapper.unwrap;\r\n var valueKey1 = ensureDefined(unwrapObservable(value1[key]), value1);\r\n var valueKey2 = ensureDefined(unwrapObservable(value2[key]), value2);\r\n return this._compareValues(valueKey1, valueKey2)\r\n },\r\n _compareValues: function(value1, value2) {\r\n return toComparable(value1, true) === toComparable(value2, true)\r\n },\r\n _initDynamicTemplates: noop,\r\n _setCollectionWidgetItemTemplate: function() {\r\n this._initDynamicTemplates();\r\n this._setCollectionWidgetOption(\"itemTemplate\", this.option(\"itemTemplate\"))\r\n },\r\n _getCollectionKeyExpr: function() {\r\n var valueExpr = this.option(\"valueExpr\");\r\n var isValueExprField = isString(valueExpr) && \"this\" !== valueExpr || isFunction(valueExpr);\r\n return isValueExprField ? valueExpr : null\r\n },\r\n _dataExpressionOptionChanged: function(args) {\r\n switch (args.name) {\r\n case \"items\":\r\n this._itemsToDataSource();\r\n this._setCollectionWidgetOption(\"items\");\r\n break;\r\n case \"dataSource\":\r\n this._initDataSource();\r\n break;\r\n case \"itemTemplate\":\r\n this._setCollectionWidgetItemTemplate();\r\n break;\r\n case \"valueExpr\":\r\n this._compileValueGetter();\r\n break;\r\n case \"displayExpr\":\r\n this._compileDisplayGetter();\r\n this._initDynamicTemplates();\r\n this._setCollectionWidgetOption(\"displayExpr\")\r\n }\r\n }\r\n});\r\nexport default DataExpressionMixin;\r\n","/**\r\n * DevExtreme (esm/ui/drop_down_editor/ui.drop_down_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} 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 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 ensureDefined,\r\n grep\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isWindow,\r\n isDefined,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport DropDownEditor from \"./ui.drop_down_editor\";\r\nimport List from \"../list_light\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport devices from \"../../core/devices\";\r\nimport dataQuery from \"../../data/query\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport DataExpressionMixin from \"../editor/ui.data_expression\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../../core/templates/child_default_template\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport DataConverterMixin from \"../shared/grouped_data_converter_mixin\";\r\nvar LIST_ITEM_SELECTOR = \".dx-list-item\";\r\nvar LIST_ITEM_DATA_KEY = \"dxListItemData\";\r\nvar DROPDOWNLIST_POPUP_WRAPPER_CLASS = \"dx-dropdownlist-popup-wrapper\";\r\nvar SEARCH_EVENT = \"input\";\r\nvar SEARCH_MODES = [\"startswith\", \"contains\", \"endwith\", \"notcontains\"];\r\nvar useCompositionEvents = \"android\" !== devices.real().platform;\r\nvar DropDownList = DropDownEditor.inherit({\r\n _supportedKeys: function() {\r\n var parent = this.callBase();\r\n return extend({}, parent, {\r\n tab: function(e) {\r\n if (this._allowSelectItemByTab()) {\r\n this._saveValueChangeEvent(e);\r\n var $focusedItem = $(this._list.option(\"focusedElement\"));\r\n $focusedItem.length && this._setSelectedElement($focusedItem)\r\n }\r\n parent.tab.apply(this, arguments)\r\n },\r\n space: noop,\r\n home: noop,\r\n end: noop\r\n })\r\n },\r\n _allowSelectItemByTab: function() {\r\n return this.option(\"opened\") && \"instantly\" === this.option(\"applyValueMode\")\r\n },\r\n _setSelectedElement: function($element) {\r\n var value = this._valueGetter(this._list._getItemData($element));\r\n this._setValue(value)\r\n },\r\n _setValue: function(value) {\r\n this.option(\"value\", value)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), extend(DataExpressionMixin._dataExpressionDefaultOptions(), {\r\n displayValue: void 0,\r\n searchEnabled: false,\r\n searchMode: \"contains\",\r\n searchTimeout: 500,\r\n minSearchLength: 0,\r\n searchExpr: null,\r\n valueChangeEvent: \"input change keyup\",\r\n selectedItem: null,\r\n noDataText: messageLocalization.format(\"dxCollectionWidget-noDataText\"),\r\n onSelectionChanged: null,\r\n onItemClick: noop,\r\n showDataBeforeSearch: false,\r\n grouped: false,\r\n groupTemplate: \"group\",\r\n popupPosition: {\r\n my: \"left top\",\r\n at: \"left bottom\",\r\n offset: {\r\n h: 0,\r\n v: 0\r\n },\r\n collision: \"flip\"\r\n },\r\n wrapItemText: false,\r\n useItemTextAsTitle: 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 popupPosition: {\r\n offset: {\r\n v: -1\r\n }\r\n }\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n buttonsLocation: \"bottom center\"\r\n }\r\n }])\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n value: true,\r\n selectedItem: true,\r\n displayValue: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initDataExpressions();\r\n this._initActions();\r\n this._setListDataSource();\r\n this._validateSearchMode();\r\n this._clearSelectedItem();\r\n this._initItems()\r\n },\r\n _setListFocusedElementOptionChange: function() {\r\n this._list._updateParentActiveDescendant = this._updateActiveDescendant.bind(this)\r\n },\r\n _initItems: function() {\r\n var items = this.option().items;\r\n if (items && !items.length && this._dataSource) {\r\n this.option().items = this._dataSource.items()\r\n }\r\n },\r\n _initActions: function() {\r\n this._initContentReadyAction();\r\n this._initSelectionChangedAction();\r\n this._initItemClickAction()\r\n },\r\n _initContentReadyAction: function() {\r\n this._contentReadyAction = this._createActionByOption(\"onContentReady\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initSelectionChangedAction: function() {\r\n this._selectionChangedAction = this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initItemClickAction: function() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new ChildDefaultTemplate(\"item\")\r\n })\r\n },\r\n _isEditable: function() {\r\n return this.callBase() || this.option(\"searchEnabled\")\r\n },\r\n _saveFocusOnWidget: function(e) {\r\n if (this._list && this._list.initialOption(\"focusStateEnabled\")) {\r\n this._focusInput()\r\n }\r\n },\r\n _fitIntoRange: function(value, start, end) {\r\n if (value > end) {\r\n return start\r\n }\r\n if (value < start) {\r\n return end\r\n }\r\n return value\r\n },\r\n _items: function() {\r\n var items = this._getPlainItems(!this._list && this._dataSource.items());\r\n var availableItems = new dataQuery(items).filter(\"disabled\", \"<>\", true).toArray();\r\n return availableItems\r\n },\r\n _calcNextItem: function(step) {\r\n var items = this._items();\r\n var nextIndex = this._fitIntoRange(this._getSelectedIndex() + step, 0, items.length - 1);\r\n return items[nextIndex]\r\n },\r\n _getSelectedIndex: function() {\r\n var items = this._items();\r\n var selectedItem = this.option(\"selectedItem\");\r\n var result = -1;\r\n each(items, function(index, item) {\r\n if (this._isValueEquals(item, selectedItem)) {\r\n result = index;\r\n return false\r\n }\r\n }.bind(this));\r\n return result\r\n },\r\n _createPopup: function() {\r\n this.callBase();\r\n this._updateCustomBoundaryContainer();\r\n this._popup.$wrapper().addClass(this._popupWrapperClass());\r\n var $popupContent = this._popup.$content();\r\n eventsEngine.off($popupContent, \"mouseup\");\r\n eventsEngine.on($popupContent, \"mouseup\", this._saveFocusOnWidget.bind(this))\r\n },\r\n _updateCustomBoundaryContainer: function() {\r\n var customContainer = this.option(\"dropDownOptions.container\");\r\n var $container = customContainer && $(customContainer);\r\n if ($container && $container.length && !isWindow($container.get(0))) {\r\n var $containerWithParents = [].slice.call($container.parents());\r\n $containerWithParents.unshift($container.get(0));\r\n each($containerWithParents, function(i, parent) {\r\n if (parent === $(\"body\").get(0)) {\r\n return false\r\n } else if (\"hidden\" === window.getComputedStyle(parent).overflowY) {\r\n this._$customBoundaryContainer = $(parent);\r\n return false\r\n }\r\n }.bind(this))\r\n }\r\n },\r\n _popupWrapperClass: function() {\r\n return DROPDOWNLIST_POPUP_WRAPPER_CLASS\r\n },\r\n _renderInputValue: function() {\r\n var value = this._getCurrentValue();\r\n this._rejectValueLoading();\r\n return this._loadInputValue(value, this._setSelectedItem.bind(this)).always(this.callBase.bind(this, value))\r\n },\r\n _loadInputValue: function(value, callback) {\r\n return this._loadItem(value).always(callback)\r\n },\r\n _getItemFromPlain: function(value, cache) {\r\n var plainItems;\r\n var selectedItem;\r\n if (cache && \"object\" !== typeof value) {\r\n if (!cache.itemByValue) {\r\n cache.itemByValue = {};\r\n plainItems = this._getPlainItems();\r\n plainItems.forEach((function(item) {\r\n cache.itemByValue[this._valueGetter(item)] = item\r\n }), this)\r\n }\r\n selectedItem = cache.itemByValue[value]\r\n }\r\n if (!selectedItem) {\r\n plainItems = this._getPlainItems();\r\n selectedItem = grep(plainItems, function(item) {\r\n return this._isValueEquals(this._valueGetter(item), value)\r\n }.bind(this))[0]\r\n }\r\n return selectedItem\r\n },\r\n _loadItem: function(value, cache) {\r\n var selectedItem = this._getItemFromPlain(value, cache);\r\n return void 0 !== selectedItem ? (new Deferred).resolve(selectedItem).promise() : this._loadValue(value)\r\n },\r\n _getPlainItems: function(items) {\r\n var plainItems = [];\r\n items = items || this.option(\"items\") || this._dataSource.items() || [];\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i] && items[i].items) {\r\n plainItems = plainItems.concat(items[i].items)\r\n } else {\r\n plainItems.push(items[i])\r\n }\r\n }\r\n return plainItems\r\n },\r\n _updateActiveDescendant() {\r\n var _this$_list;\r\n var opened = this.option(\"opened\");\r\n var listFocusedItemId = null === (_this$_list = this._list) || void 0 === _this$_list ? void 0 : _this$_list.getFocusedItemId();\r\n var isElementOnDom = $(\"#\".concat(listFocusedItemId)).length > 0;\r\n var activedescendant = opened && isElementOnDom && listFocusedItemId;\r\n this.setAria({\r\n activedescendant: activedescendant || null\r\n })\r\n },\r\n _setSelectedItem: function(item) {\r\n var displayValue = this._displayValue(item);\r\n this.option(\"selectedItem\", ensureDefined(item, null));\r\n this.option(\"displayValue\", displayValue)\r\n },\r\n _displayValue: function(item) {\r\n return this._displayGetter(item)\r\n },\r\n _refreshSelected: function() {\r\n var cache = {};\r\n this._listItemElements().each(function(_, itemElement) {\r\n var $itemElement = $(itemElement);\r\n var itemValue = this._valueGetter($itemElement.data(LIST_ITEM_DATA_KEY));\r\n var isItemSelected = this._isSelectedValue(itemValue, cache);\r\n if (isItemSelected) {\r\n this._list.selectItem($itemElement)\r\n } else {\r\n this._list.unselectItem($itemElement)\r\n }\r\n }.bind(this))\r\n },\r\n _popupShownHandler: function() {\r\n this.callBase();\r\n this._setFocusPolicy()\r\n },\r\n _setFocusPolicy: function() {\r\n if (!this.option(\"focusStateEnabled\") || !this._list) {\r\n return\r\n }\r\n this._list.option(\"focusedElement\", null)\r\n },\r\n _isSelectedValue: function(value) {\r\n return this._isValueEquals(value, this.option(\"value\"))\r\n },\r\n _validateSearchMode: function() {\r\n var searchMode = this.option(\"searchMode\");\r\n var normalizedSearchMode = searchMode.toLowerCase();\r\n if (!SEARCH_MODES.includes(normalizedSearchMode)) {\r\n throw errors.Error(\"E1019\", searchMode)\r\n }\r\n },\r\n _clearSelectedItem: function() {\r\n this.option(\"selectedItem\", null)\r\n },\r\n _processDataSourceChanging: function() {\r\n this._setListDataSource();\r\n this._renderInputValue().fail(function() {\r\n if (this._isCustomValueAllowed()) {\r\n return\r\n }\r\n this._clearSelectedItem()\r\n }.bind(this))\r\n },\r\n _isCustomValueAllowed: function() {\r\n return this.option(\"displayCustomValue\")\r\n },\r\n reset: function() {\r\n this.callBase();\r\n this._clearFilter();\r\n this._clearSelectedItem()\r\n },\r\n _listItemElements: function() {\r\n return this._$list ? this._$list.find(LIST_ITEM_SELECTOR) : $()\r\n },\r\n _popupConfig: function() {\r\n return extend(this.callBase(), {\r\n templatesRenderAsynchronously: false,\r\n autoResizeEnabled: false,\r\n maxHeight: this._getMaxHeight.bind(this)\r\n })\r\n },\r\n _renderPopupContent: function() {\r\n this.callBase();\r\n this._renderList()\r\n },\r\n _getKeyboardListeners() {\r\n var canListHaveFocus = this._canListHaveFocus();\r\n return this.callBase().concat([!canListHaveFocus && this._list])\r\n },\r\n _setAriaTargetForList: function() {\r\n this._list._getAriaTarget = this._getAriaTarget.bind(this)\r\n },\r\n _renderList: function() {\r\n this._listId = \"dx-\" + (new Guid)._value;\r\n var $list = this._$list = $(\"
\").attr(\"id\", this._listId).appendTo(this._popup.$content());\r\n this._list = this._createComponent($list, List, this._listConfig());\r\n this._refreshList();\r\n this._setAriaTargetForList();\r\n this._list.option(\"_listAttributes\", {\r\n role: \"combobox\"\r\n });\r\n this._renderPreventBlurOnListClick();\r\n this._setListFocusedElementOptionChange()\r\n },\r\n _renderPreventBlurOnListClick: function() {\r\n var eventName = addNamespace(\"mousedown\", \"dxDropDownList\");\r\n eventsEngine.off(this._$list, eventName);\r\n eventsEngine.on(this._$list, eventName, e => e.preventDefault())\r\n },\r\n _renderOpenedState: function() {\r\n this.callBase();\r\n this._list && this._updateActiveDescendant();\r\n this.setAria({\r\n controls: this._list && this._listId,\r\n owns: this._popup && this._popupContentId\r\n })\r\n },\r\n _setDefaultAria: function() {\r\n this.setAria({\r\n haspopup: \"listbox\",\r\n autocomplete: \"list\"\r\n })\r\n },\r\n _refreshList: function() {\r\n if (this._list && this._shouldRefreshDataSource()) {\r\n this._setListDataSource()\r\n }\r\n },\r\n _shouldRefreshDataSource: function() {\r\n var dataSourceProvided = !!this._list.option(\"dataSource\");\r\n return dataSourceProvided !== this._needPassDataSourceToList()\r\n },\r\n _isDesktopDevice: function() {\r\n return \"desktop\" === devices.real().deviceType\r\n },\r\n _listConfig: function() {\r\n var options = {\r\n selectionMode: \"single\",\r\n _templates: this.option(\"_templates\"),\r\n templateProvider: this.option(\"templateProvider\"),\r\n noDataText: this.option(\"noDataText\"),\r\n grouped: this.option(\"grouped\"),\r\n wrapItemText: this.option(\"wrapItemText\"),\r\n useItemTextAsTitle: this.option(\"useItemTextAsTitle\"),\r\n onContentReady: this._listContentReadyHandler.bind(this),\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n indicateLoading: false,\r\n keyExpr: this._getCollectionKeyExpr(),\r\n displayExpr: this._displayGetterExpr(),\r\n groupTemplate: this.option(\"groupTemplate\"),\r\n onItemClick: this._listItemClickAction.bind(this),\r\n dataSource: this._getDataSource(),\r\n hoverStateEnabled: this._isDesktopDevice() ? this.option(\"hoverStateEnabled\") : false,\r\n focusStateEnabled: this._isDesktopDevice() ? this.option(\"focusStateEnabled\") : false\r\n };\r\n if (!this._canListHaveFocus()) {\r\n options.tabIndex = null\r\n }\r\n return options\r\n },\r\n _canListHaveFocus: () => false,\r\n _getDataSource: function() {\r\n return this._needPassDataSourceToList() ? this._dataSource : null\r\n },\r\n _dataSourceOptions: function() {\r\n return {\r\n paginate: false\r\n }\r\n },\r\n _getGroupedOption: function() {\r\n return this.option(\"grouped\")\r\n },\r\n _dataSourceFromUrlLoadMode: function() {\r\n return \"raw\"\r\n },\r\n _listContentReadyHandler: function() {\r\n this._list = this._list || this._$list.dxList(\"instance\");\r\n if (!this.option(\"deferRendering\")) {\r\n this._refreshSelected()\r\n }\r\n this._dimensionChanged();\r\n this._contentReadyAction()\r\n },\r\n _setListOption: function(optionName, value) {\r\n this._setWidgetOption(\"_list\", arguments)\r\n },\r\n _listItemClickAction: function(e) {\r\n this._listItemClickHandler(e);\r\n this._itemClickAction(e)\r\n },\r\n _listItemClickHandler: noop,\r\n _setListDataSource: function() {\r\n if (!this._list) {\r\n return\r\n }\r\n this._setListOption(\"dataSource\", this._getDataSource());\r\n if (!this._needPassDataSourceToList()) {\r\n this._setListOption(\"items\", [])\r\n }\r\n },\r\n _needPassDataSourceToList: function() {\r\n return this.option(\"showDataBeforeSearch\") || this._isMinSearchLengthExceeded()\r\n },\r\n _isMinSearchLengthExceeded: function() {\r\n return this._searchValue().toString().length >= this.option(\"minSearchLength\")\r\n },\r\n _needClearFilter: function() {\r\n return this._canKeepDataSource() ? false : this._needPassDataSourceToList()\r\n },\r\n _canKeepDataSource: function() {\r\n var _this$_dataSource;\r\n var isMinSearchLengthExceeded = this._isMinSearchLengthExceeded();\r\n return (null === (_this$_dataSource = this._dataSource) || void 0 === _this$_dataSource ? void 0 : _this$_dataSource.isLoaded()) && this.option(\"showDataBeforeSearch\") && this.option(\"minSearchLength\") && !isMinSearchLengthExceeded && !this._isLastMinSearchLengthExceeded\r\n },\r\n _searchValue: function() {\r\n return this._input().val() || \"\"\r\n },\r\n _getSearchEvent: function() {\r\n return addNamespace(SEARCH_EVENT, this.NAME + \"Search\")\r\n },\r\n _getCompositionStartEvent: function() {\r\n return addNamespace(\"compositionstart\", this.NAME + \"CompositionStart\")\r\n },\r\n _getCompositionEndEvent: function() {\r\n return addNamespace(\"compositionend\", this.NAME + \"CompositionEnd\")\r\n },\r\n _getSetFocusPolicyEvent: function() {\r\n return addNamespace(\"input\", this.NAME + \"FocusPolicy\")\r\n },\r\n _renderEvents: function() {\r\n this.callBase();\r\n eventsEngine.on(this._input(), this._getSetFocusPolicyEvent(), () => {\r\n this._setFocusPolicy()\r\n });\r\n if (this._shouldRenderSearchEvent()) {\r\n eventsEngine.on(this._input(), this._getSearchEvent(), e => {\r\n this._searchHandler(e)\r\n });\r\n if (useCompositionEvents) {\r\n eventsEngine.on(this._input(), this._getCompositionStartEvent(), () => {\r\n this._isTextCompositionInProgress(true)\r\n });\r\n eventsEngine.on(this._input(), this._getCompositionEndEvent(), e => {\r\n this._isTextCompositionInProgress(void 0);\r\n this._searchHandler(e, this._searchValue())\r\n })\r\n }\r\n }\r\n },\r\n _shouldRenderSearchEvent: function() {\r\n return this.option(\"searchEnabled\")\r\n },\r\n _refreshEvents: function() {\r\n eventsEngine.off(this._input(), this._getSearchEvent());\r\n eventsEngine.off(this._input(), this._getSetFocusPolicyEvent());\r\n if (useCompositionEvents) {\r\n eventsEngine.off(this._input(), this._getCompositionStartEvent());\r\n eventsEngine.off(this._input(), this._getCompositionEndEvent())\r\n }\r\n this.callBase()\r\n },\r\n _isTextCompositionInProgress: function(value) {\r\n if (arguments.length) {\r\n this._isTextComposition = value\r\n } else {\r\n return this._isTextComposition\r\n }\r\n },\r\n _searchHandler: function(e, searchValue) {\r\n if (this._isTextCompositionInProgress()) {\r\n return\r\n }\r\n if (!this._isMinSearchLengthExceeded()) {\r\n this._searchCanceled();\r\n return\r\n }\r\n var searchTimeout = this.option(\"searchTimeout\");\r\n if (searchTimeout) {\r\n this._clearSearchTimer();\r\n this._searchTimer = setTimeout(() => {\r\n this._searchDataSource(searchValue)\r\n }, searchTimeout)\r\n } else {\r\n this._searchDataSource(searchValue)\r\n }\r\n },\r\n _searchCanceled: function() {\r\n this._clearSearchTimer();\r\n if (this._needClearFilter()) {\r\n this._filterDataSource(null)\r\n }\r\n this._refreshList()\r\n },\r\n _searchDataSource: function() {\r\n var searchValue = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._searchValue();\r\n this._filterDataSource(searchValue)\r\n },\r\n _filterDataSource: function(searchValue) {\r\n this._clearSearchTimer();\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n dataSource.searchExpr(this.option(\"searchExpr\") || this._displayGetterExpr());\r\n dataSource.searchOperation(this.option(\"searchMode\"));\r\n dataSource.searchValue(searchValue);\r\n dataSource.load().done(this._dataSourceFiltered.bind(this, searchValue))\r\n }\r\n },\r\n _clearFilter: function() {\r\n var dataSource = this._dataSource;\r\n dataSource && dataSource.searchValue() && dataSource.searchValue(null)\r\n },\r\n _dataSourceFiltered: function() {\r\n this._isLastMinSearchLengthExceeded = this._isMinSearchLengthExceeded();\r\n this._refreshList();\r\n this._refreshPopupVisibility()\r\n },\r\n _shouldOpenPopup: function() {\r\n return this._hasItemsToShow()\r\n },\r\n _refreshPopupVisibility: function() {\r\n if (this.option(\"readOnly\") || !this._searchValue()) {\r\n return\r\n }\r\n var shouldOpenPopup = this._shouldOpenPopup();\r\n if (shouldOpenPopup && !this._isFocused()) {\r\n return\r\n }\r\n this.option(\"opened\", shouldOpenPopup);\r\n if (shouldOpenPopup) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _dataSourceChangedHandler: function(newItems) {\r\n if (0 === this._dataSource.pageIndex()) {\r\n this.option().items = newItems\r\n } else {\r\n this.option().items = this.option().items.concat(newItems)\r\n }\r\n },\r\n _hasItemsToShow: function() {\r\n var resultItems = this._dataSource && this._dataSource.items() || [];\r\n var resultAmount = resultItems.length;\r\n var isMinSearchLengthExceeded = this._needPassDataSourceToList();\r\n return !!(isMinSearchLengthExceeded && resultAmount)\r\n },\r\n _clearSearchTimer: function() {\r\n clearTimeout(this._searchTimer);\r\n delete this._searchTimer\r\n },\r\n _popupShowingHandler: function() {\r\n this._dimensionChanged()\r\n },\r\n _dimensionChanged: function() {\r\n this.callBase(arguments);\r\n this._popup && this._updatePopupDimensions()\r\n },\r\n _needPopupRepaint: function() {\r\n if (!this._dataSource) {\r\n return false\r\n }\r\n var currentPageIndex = this._dataSource.pageIndex();\r\n var needRepaint = isDefined(this._pageIndex) && currentPageIndex <= this._pageIndex || this._dataSource.isLastPage() && !this._list._scrollViewIsFull();\r\n this._pageIndex = currentPageIndex;\r\n return needRepaint\r\n },\r\n _updatePopupDimensions: function() {\r\n if (this._needPopupRepaint()) {\r\n this._popup.repaint()\r\n }\r\n this._list && this._list.updateDimensions()\r\n },\r\n _getMaxHeight: function() {\r\n var $element = this.$element();\r\n var $customBoundaryContainer = this._$customBoundaryContainer;\r\n var offsetTop = $element.offset().top - ($customBoundaryContainer ? $customBoundaryContainer.offset().top : 0);\r\n var windowHeight = getOuterHeight(window);\r\n var containerHeight = $customBoundaryContainer ? Math.min(getOuterHeight($customBoundaryContainer), windowHeight) : windowHeight;\r\n var maxHeight = Math.max(offsetTop, containerHeight - offsetTop - getOuterHeight($element));\r\n return Math.min(.5 * containerHeight, maxHeight)\r\n },\r\n _clean: function() {\r\n if (this._list) {\r\n delete this._list\r\n }\r\n delete this._isLastMinSearchLengthExceeded;\r\n this.callBase()\r\n },\r\n _dispose: function() {\r\n this._clearSearchTimer();\r\n this.callBase()\r\n },\r\n _setCollectionWidgetOption: function() {\r\n this._setListOption.apply(this, arguments)\r\n },\r\n _setSubmitValue: function() {\r\n var value = this.option(\"value\");\r\n var submitValue = this._shouldUseDisplayValue(value) ? this._displayGetter(value) : value;\r\n this._getSubmitElement().val(submitValue)\r\n },\r\n _shouldUseDisplayValue: function(value) {\r\n return \"this\" === this.option(\"valueExpr\") && isObject(value)\r\n },\r\n _optionChanged: function(args) {\r\n this._dataExpressionOptionChanged(args);\r\n switch (args.name) {\r\n case \"hoverStateEnabled\":\r\n case \"focusStateEnabled\":\r\n this._isDesktopDevice() && this._setListOption(args.name, args.value);\r\n this.callBase(args);\r\n break;\r\n case \"items\":\r\n if (!this.option(\"dataSource\")) {\r\n this._processDataSourceChanging()\r\n }\r\n break;\r\n case \"dataSource\":\r\n this._processDataSourceChanging();\r\n break;\r\n case \"valueExpr\":\r\n this._renderValue();\r\n this._setListOption(\"keyExpr\", this._getCollectionKeyExpr());\r\n break;\r\n case \"displayExpr\":\r\n this._renderValue();\r\n this._setListOption(\"displayExpr\", this._displayGetterExpr());\r\n break;\r\n case \"searchMode\":\r\n this._validateSearchMode();\r\n break;\r\n case \"minSearchLength\":\r\n this._refreshList();\r\n break;\r\n case \"searchEnabled\":\r\n case \"showDataBeforeSearch\":\r\n case \"searchExpr\":\r\n this._invalidate();\r\n break;\r\n case \"onContentReady\":\r\n this._initContentReadyAction();\r\n break;\r\n case \"onSelectionChanged\":\r\n this._initSelectionChangedAction();\r\n break;\r\n case \"onItemClick\":\r\n this._initItemClickAction();\r\n break;\r\n case \"grouped\":\r\n case \"groupTemplate\":\r\n case \"wrapItemText\":\r\n case \"noDataText\":\r\n case \"useItemTextAsTitle\":\r\n this._setListOption(args.name);\r\n break;\r\n case \"displayValue\":\r\n this.option(\"text\", args.value);\r\n break;\r\n case \"itemTemplate\":\r\n case \"searchTimeout\":\r\n break;\r\n case \"selectedItem\":\r\n if (args.previousValue !== args.value) {\r\n this._selectionChangedAction({\r\n selectedItem: args.value\r\n })\r\n }\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n}).include(DataExpressionMixin, DataConverterMixin);\r\nregisterComponent(\"dxDropDownList\", DropDownList);\r\nexport default DropDownList;\r\n","/**\r\n * DevExtreme (esm/ui/select_box.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n noop,\r\n ensureDefined\r\n} from \"../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isPromise\r\n} from \"../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n Deferred,\r\n fromPromise\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport errors from \"../core/errors\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport DropDownList from \"./drop_down_editor/ui.drop_down_list\";\r\nimport \"./list/modules/selection\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../events/utils/index\";\r\nvar DISABLED_STATE_SELECTOR = \".dx-state-disabled\";\r\nvar SELECTBOX_CLASS = \"dx-selectbox\";\r\nvar SELECTBOX_POPUP_CLASS = \"dx-selectbox-popup\";\r\nvar SELECTBOX_CONTAINER_CLASS = \"dx-selectbox-container\";\r\nvar SELECTBOX_POPUP_WRAPPER_CLASS = \"dx-selectbox-popup-wrapper\";\r\nvar SelectBox = DropDownList.inherit({\r\n _supportedKeys: function() {\r\n var that = this;\r\n var parent = this.callBase();\r\n var clearSelectBox = function(e) {\r\n var isEditable = this._isEditable();\r\n if (!isEditable) {\r\n if (this.option(\"showClearButton\")) {\r\n e.preventDefault();\r\n this.reset()\r\n }\r\n } else if (this._valueSubstituted()) {\r\n this._preventFiltering = true\r\n }\r\n this._savedTextRemoveEvent = e;\r\n this._preventSubstitution = true\r\n };\r\n var searchIfNeeded = function() {\r\n if (that.option(\"searchEnabled\") && that._valueSubstituted()) {\r\n that._searchHandler()\r\n }\r\n };\r\n return extend({}, parent, {\r\n tab: function() {\r\n if (this.option(\"opened\") && \"instantly\" === this.option(\"applyValueMode\")) {\r\n this._resetCaretPosition(true)\r\n }\r\n parent.tab && parent.tab.apply(this, arguments);\r\n this._cancelSearchIfNeed()\r\n },\r\n upArrow: function(e) {\r\n if (parent.upArrow && parent.upArrow.apply(this, arguments)) {\r\n if (!this.option(\"opened\")) {\r\n this._setNextValue(e)\r\n }\r\n return true\r\n }\r\n },\r\n downArrow: function(e) {\r\n if (parent.downArrow && parent.downArrow.apply(this, arguments)) {\r\n if (!this.option(\"opened\")) {\r\n this._setNextValue(e)\r\n }\r\n return true\r\n }\r\n },\r\n leftArrow: function() {\r\n searchIfNeeded();\r\n parent.leftArrow && parent.leftArrow.apply(this, arguments)\r\n },\r\n rightArrow: function() {\r\n searchIfNeeded();\r\n parent.rightArrow && parent.rightArrow.apply(this, arguments)\r\n },\r\n home: function() {\r\n searchIfNeeded();\r\n parent.home && parent.home.apply(this, arguments)\r\n },\r\n end: function() {\r\n searchIfNeeded();\r\n parent.end && parent.end.apply(this, arguments)\r\n },\r\n escape: function() {\r\n var result = parent.escape && parent.escape.apply(this, arguments);\r\n this._cancelEditing();\r\n return null !== result && void 0 !== result ? result : true\r\n },\r\n enter: function(e) {\r\n var isOpened = this.option(\"opened\");\r\n var inputText = this._input().val().trim();\r\n var isCustomText = inputText && this._list && !this._list.option(\"focusedElement\");\r\n if (!inputText && isDefined(this.option(\"value\")) && this.option(\"allowClearing\")) {\r\n this._saveValueChangeEvent(e);\r\n this.option({\r\n selectedItem: null,\r\n value: null\r\n });\r\n this.close()\r\n } else {\r\n if (this.option(\"acceptCustomValue\")) {\r\n e.preventDefault();\r\n if (isCustomText) {\r\n if (isOpened) {\r\n this._toggleOpenState()\r\n }\r\n this._valueChangeEventHandler(e)\r\n }\r\n return isOpened\r\n }\r\n if (parent.enter && parent.enter.apply(this, arguments)) {\r\n return isOpened\r\n }\r\n }\r\n },\r\n space: function(e) {\r\n var isOpened = this.option(\"opened\");\r\n var isSearchEnabled = this.option(\"searchEnabled\");\r\n var acceptCustomValue = this.option(\"acceptCustomValue\");\r\n if (!isOpened || isSearchEnabled || acceptCustomValue) {\r\n return\r\n }\r\n e.preventDefault();\r\n this._valueChangeEventHandler(e);\r\n return true\r\n },\r\n backspace: clearSelectBox,\r\n del: clearSelectBox\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n placeholder: messageLocalization.format(\"Select\"),\r\n fieldTemplate: null,\r\n valueChangeEvent: \"change\",\r\n acceptCustomValue: false,\r\n onCustomItemCreating: function(e) {\r\n if (!isDefined(e.customItem)) {\r\n e.customItem = e.text\r\n }\r\n },\r\n showSelectionControls: false,\r\n allowClearing: true,\r\n tooltipEnabled: false,\r\n openOnFieldClick: true,\r\n showDropDownButton: true,\r\n displayCustomValue: false,\r\n useHiddenSubmitElement: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initCustomItemCreatingAction()\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(SELECTBOX_CLASS);\r\n this._renderTooltip();\r\n this.callBase();\r\n this._$container.addClass(SELECTBOX_CONTAINER_CLASS)\r\n },\r\n _createPopup: function() {\r\n this.callBase();\r\n this._popup.$element().addClass(SELECTBOX_POPUP_CLASS);\r\n this._popup.$overlayContent().attr(\"tabindex\", -1)\r\n },\r\n _popupWrapperClass: function() {\r\n return this.callBase() + \" \" + SELECTBOX_POPUP_WRAPPER_CLASS\r\n },\r\n _cancelEditing: function() {\r\n if (!this.option(\"searchEnabled\") && this._list) {\r\n this._focusListElement(null);\r\n this._updateField(this.option(\"selectedItem\"))\r\n }\r\n },\r\n _renderOpenedState: function() {\r\n this.callBase();\r\n if (this.option(\"opened\")) {\r\n this._scrollToSelectedItem();\r\n this._focusSelectedElement()\r\n }\r\n },\r\n _focusSelectedElement: function() {\r\n var _items$indexOf;\r\n var searchValue = this._searchValue();\r\n if (!searchValue) {\r\n this._focusListElement(null);\r\n return\r\n }\r\n var {\r\n items: items,\r\n selectedItem: selectedItem\r\n } = this.option();\r\n var $listItems = this._list._itemElements();\r\n var index = null !== (_items$indexOf = null === items || void 0 === items ? void 0 : items.indexOf(selectedItem)) && void 0 !== _items$indexOf ? _items$indexOf : -1;\r\n var focusedElement = -1 !== index && !this._isCustomItemSelected() ? $listItems.eq(index) : null;\r\n this._focusListElement(focusedElement)\r\n },\r\n _renderFocusedElement: function() {\r\n if (!this._list) {\r\n return\r\n }\r\n var searchValue = this._searchValue();\r\n if (!searchValue || this.option(\"acceptCustomValue\")) {\r\n this._focusListElement(null);\r\n return\r\n }\r\n var $listItems = this._list._itemElements();\r\n var focusedElement = $listItems.not(DISABLED_STATE_SELECTOR).eq(0);\r\n this._focusListElement(focusedElement)\r\n },\r\n _focusListElement: function(element) {\r\n this._preventInputValueRender = true;\r\n this._list.option(\"focusedElement\", getPublicElement(element));\r\n delete this._preventInputValueRender\r\n },\r\n _scrollToSelectedItem: function() {\r\n this._list && this._list.scrollToItem(this._list.option(\"selectedItem\"))\r\n },\r\n _listContentReadyHandler: function() {\r\n this.callBase();\r\n var isPaginate = this._dataSource && this._dataSource.paginate();\r\n if (isPaginate && this._needPopupRepaint()) {\r\n return\r\n }\r\n this._scrollToSelectedItem()\r\n },\r\n _renderValue: function() {\r\n this._renderInputValue();\r\n this._setSubmitValue();\r\n return (new Deferred).resolve()\r\n },\r\n _renderInputValue: function() {\r\n return this.callBase().always(function() {\r\n this._renderInputValueAsync()\r\n }.bind(this))\r\n },\r\n _renderInputValueAsync: function() {\r\n this._renderTooltip();\r\n this._renderInputValueImpl().always(function() {\r\n this._refreshSelected()\r\n }.bind(this))\r\n },\r\n _renderInputValueImpl: function() {\r\n this._renderField();\r\n return (new Deferred).resolve()\r\n },\r\n _setNextItem: function(step) {\r\n var item = this._calcNextItem(step);\r\n var value = this._valueGetter(item);\r\n this._setValue(value)\r\n },\r\n _setNextValue: function(e) {\r\n var dataSourceIsLoaded = this._dataSource.isLoaded() ? (new Deferred).resolve() : this._dataSource.load();\r\n dataSourceIsLoaded.done(function() {\r\n var selectedIndex = this._getSelectedIndex();\r\n var hasPages = this._dataSource.pageSize();\r\n var isLastPage = this._dataSource.isLastPage();\r\n var isLastItem = selectedIndex === this._items().length - 1;\r\n this._saveValueChangeEvent(e);\r\n var step = \"downArrow\" === normalizeKeyName(e) ? 1 : -1;\r\n if (hasPages && !isLastPage && isLastItem && step > 0) {\r\n if (!this._popup) {\r\n this._createPopup()\r\n }\r\n if (!this._dataSource.isLoading()) {\r\n this._list._loadNextPage().done(this._setNextItem.bind(this, step))\r\n }\r\n } else {\r\n this._setNextItem(step)\r\n }\r\n }.bind(this))\r\n },\r\n _setSelectedItem: function(item) {\r\n var isUnknownItem = !this._isCustomValueAllowed() && void 0 === item;\r\n this.callBase(isUnknownItem ? null : item);\r\n if (!isUnknownItem && (!this._isEditable() || this._isCustomItemSelected())) {\r\n this._setListOption(\"selectedItem\", this.option(\"selectedItem\"))\r\n }\r\n },\r\n _isCustomValueAllowed: function() {\r\n return this.option(\"acceptCustomValue\") || this.callBase()\r\n },\r\n _displayValue: function(item) {\r\n item = !isDefined(item) && this._isCustomValueAllowed() ? this.option(\"value\") : item;\r\n return this.callBase(item)\r\n },\r\n _listConfig: function() {\r\n var result = extend(this.callBase(), {\r\n pageLoadMode: \"scrollBottom\",\r\n onSelectionChanged: this._getSelectionChangeHandler(),\r\n selectedItem: this.option(\"selectedItem\"),\r\n onFocusedItemChanged: this._listFocusedItemChangeHandler.bind(this)\r\n });\r\n if (this.option(\"showSelectionControls\")) {\r\n extend(result, {\r\n showSelectionControls: true,\r\n selectionByClick: true\r\n })\r\n }\r\n return result\r\n },\r\n _listFocusedItemChangeHandler: function(e) {\r\n if (this._preventInputValueRender) {\r\n return\r\n }\r\n var list = e.component;\r\n var focusedElement = $(list.option(\"focusedElement\"));\r\n var focusedItem = list._getItemData(focusedElement);\r\n this._updateField(focusedItem)\r\n },\r\n _updateField: function(item) {\r\n var fieldTemplate = this._getTemplateByOption(\"fieldTemplate\");\r\n if (!(fieldTemplate && this.option(\"fieldTemplate\"))) {\r\n var text = this._displayGetter(item);\r\n this.option(\"text\", text);\r\n this._renderDisplayText(text);\r\n return\r\n }\r\n this._renderField()\r\n },\r\n _getSelectionChangeHandler: function() {\r\n return this.option(\"showSelectionControls\") ? this._selectionChangeHandler.bind(this) : noop\r\n },\r\n _selectionChangeHandler: function(e) {\r\n each(e.addedItems || [], function(_, addedItem) {\r\n this._setValue(this._valueGetter(addedItem))\r\n }.bind(this))\r\n },\r\n _getActualSearchValue: function() {\r\n return this._dataSource.searchValue()\r\n },\r\n _toggleOpenState: function(isVisible) {\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n isVisible = arguments.length ? isVisible : !this.option(\"opened\");\r\n if (!isVisible && !this._shouldClearFilter()) {\r\n this._restoreInputText(true)\r\n }\r\n if (this._wasSearch() && isVisible) {\r\n this._wasSearch(false);\r\n var showDataImmediately = this.option(\"showDataBeforeSearch\") || this._isMinSearchLengthExceeded();\r\n if (showDataImmediately && this._dataSource) {\r\n if (this._searchTimer) {\r\n return\r\n }\r\n var searchValue = this._getActualSearchValue();\r\n searchValue && this._wasSearch(true);\r\n this._filterDataSource(searchValue || null)\r\n } else {\r\n this._setListOption(\"items\", [])\r\n }\r\n }\r\n if (isVisible) {\r\n this._scrollToSelectedItem()\r\n }\r\n this.callBase(isVisible)\r\n },\r\n _renderTooltip: function() {\r\n if (this.option(\"tooltipEnabled\")) {\r\n this.$element().attr(\"title\", this.option(\"displayValue\"))\r\n }\r\n },\r\n _renderDimensions: function() {\r\n this.callBase();\r\n this._dimensionChanged()\r\n },\r\n _isValueEqualInputText: function() {\r\n var initialSelectedItem = this.option(\"selectedItem\");\r\n if (null === initialSelectedItem) {\r\n return false\r\n }\r\n var value = this._displayGetter(initialSelectedItem);\r\n var displayValue = value ? String(value) : \"\";\r\n var inputText = this._searchValue();\r\n return displayValue === inputText\r\n },\r\n _popupHidingHandler: function() {\r\n if (this._isValueEqualInputText()) {\r\n this._cancelEditing()\r\n }\r\n this.callBase()\r\n },\r\n _popupHiddenHandler: function() {\r\n this.callBase();\r\n if (this._shouldCancelSearch()) {\r\n this._wasSearch(false);\r\n this._searchCanceled();\r\n this._shouldCancelSearch(false)\r\n }\r\n },\r\n _restoreInputText: function(saveEditingValue) {\r\n if (this.option(\"readOnly\")) {\r\n return\r\n }\r\n this._loadItemDeferred && this._loadItemDeferred.always(function() {\r\n var {\r\n acceptCustomValue: acceptCustomValue,\r\n text: text,\r\n selectedItem: initialSelectedItem\r\n } = this.option();\r\n if (acceptCustomValue) {\r\n if (!saveEditingValue && !this._isValueChanging) {\r\n this._updateField(null !== initialSelectedItem && void 0 !== initialSelectedItem ? initialSelectedItem : this._createCustomItem(text));\r\n this._clearFilter()\r\n }\r\n return\r\n }\r\n if (this.option(\"searchEnabled\")) {\r\n if (!this._searchValue() && this.option(\"allowClearing\")) {\r\n this._clearTextValue();\r\n return\r\n }\r\n }\r\n if (this._isValueEqualInputText()) {\r\n return\r\n }\r\n this._renderInputValue().always(function(selectedItem) {\r\n var newSelectedItem = ensureDefined(selectedItem, initialSelectedItem);\r\n this._setSelectedItem(newSelectedItem);\r\n this._updateField(newSelectedItem);\r\n this._clearFilter()\r\n }.bind(this))\r\n }.bind(this))\r\n },\r\n _focusOutHandler: function(e) {\r\n if (!this._preventNestedFocusEvent(e)) {\r\n var isOverlayTarget = this._isOverlayNestedTarget(e.relatedTarget);\r\n if (!isOverlayTarget) {\r\n this._restoreInputText();\r\n this._clearSearchTimer()\r\n }\r\n this._cancelSearchIfNeed(e)\r\n }\r\n e.target = this._input().get(0);\r\n this.callBase(e)\r\n },\r\n _cancelSearchIfNeed: function(e) {\r\n var {\r\n searchEnabled: searchEnabled\r\n } = this.option();\r\n var isOverlayTarget = this._isOverlayNestedTarget(null === e || void 0 === e ? void 0 : e.relatedTarget);\r\n var shouldCancelSearch = this._wasSearch() && searchEnabled && !isOverlayTarget;\r\n if (shouldCancelSearch) {\r\n var _this$_popup;\r\n var isPopupVisible = null === (_this$_popup = this._popup) || void 0 === _this$_popup ? void 0 : _this$_popup._hideAnimationProcessing;\r\n this._clearSearchTimer();\r\n if (isPopupVisible) {\r\n this._shouldCancelSearch(true)\r\n } else {\r\n this._wasSearch(false);\r\n this._searchCanceled()\r\n }\r\n }\r\n },\r\n _shouldCancelSearch: function(value) {\r\n if (!arguments.length) {\r\n return this._shouldCancelSearchValue\r\n }\r\n this._shouldCancelSearchValue = value\r\n },\r\n _isOverlayNestedTarget: function(target) {\r\n return !!$(target).closest(\".\".concat(SELECTBOX_POPUP_WRAPPER_CLASS)).length\r\n },\r\n _clearTextValue: function() {\r\n if (this.option(\"selectedItem\")) {\r\n if (this._savedTextRemoveEvent) {\r\n this._saveValueChangeEvent(this._savedTextRemoveEvent)\r\n }\r\n this.option(\"value\", null)\r\n }\r\n delete this._savedTextRemoveEvent\r\n },\r\n _shouldOpenPopup: function() {\r\n return this._needPassDataSourceToList() && this._wasSearch()\r\n },\r\n _isFocused: function() {\r\n var activeElement = domAdapter.getActiveElement();\r\n return this.callBase() && $(activeElement).closest(this._input()).length > 0\r\n },\r\n _renderValueChangeEvent: function() {\r\n if (this._isEditable()) {\r\n this.callBase()\r\n }\r\n },\r\n _fieldRenderData: function() {\r\n var $listFocused = this._list && this.option(\"opened\") && $(this._list.option(\"focusedElement\"));\r\n if ($listFocused && $listFocused.length) {\r\n return this._list._getItemData($listFocused)\r\n }\r\n return this.option(\"selectedItem\")\r\n },\r\n _isSelectedValue: function(value) {\r\n return this._isValueEquals(value, this.option(\"value\"))\r\n },\r\n _shouldCloseOnItemClick: function() {\r\n return !(this.option(\"showSelectionControls\") && \"single\" !== this.option(\"selectionMode\"))\r\n },\r\n _listItemClickHandler: function(e) {\r\n var previousValue = this._getCurrentValue();\r\n this._focusListElement($(e.itemElement));\r\n this._saveValueChangeEvent(e.event);\r\n this._completeSelection(this._valueGetter(e.itemData));\r\n if (this._shouldCloseOnItemClick()) {\r\n this.option(\"opened\", false)\r\n }\r\n if (this.option(\"searchEnabled\") && previousValue === this._valueGetter(e.itemData)) {\r\n this._updateField(e.itemData)\r\n }\r\n if (this._shouldClearFilter()) {\r\n this._cancelSearchIfNeed()\r\n }\r\n },\r\n _shouldClearFilter: function() {\r\n return this._wasSearch()\r\n },\r\n _completeSelection: function(value) {\r\n this._setValue(value)\r\n },\r\n _loadItem: function(value, cache) {\r\n var that = this;\r\n var deferred = new Deferred;\r\n this.callBase(value, cache).done(function(item) {\r\n deferred.resolve(item)\r\n }.bind(this)).fail(function(args) {\r\n if (null !== args && void 0 !== args && args.shouldSkipCallback) {\r\n return\r\n }\r\n var selectedItem = that.option(\"selectedItem\");\r\n if (that.option(\"acceptCustomValue\") && value === that._valueGetter(selectedItem)) {\r\n deferred.resolve(selectedItem)\r\n } else {\r\n deferred.reject()\r\n }\r\n }.bind(this));\r\n return deferred.promise()\r\n },\r\n _loadInputValue: function(value, callback) {\r\n this._loadItemDeferred = this._loadItem(value).always(callback);\r\n return this._loadItemDeferred\r\n },\r\n _isCustomItemSelected: function() {\r\n var selectedItem = this.option(\"selectedItem\");\r\n var searchValue = this._searchValue();\r\n var selectedItemText = this._displayGetter(selectedItem);\r\n return !selectedItemText || searchValue !== selectedItemText.toString()\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n if (this.option(\"acceptCustomValue\") && this._isCustomItemSelected() && !this._isValueChanging) {\r\n this._isValueChanging = true;\r\n this._customItemAddedHandler(e)\r\n }\r\n },\r\n _initCustomItemCreatingAction: function() {\r\n this._customItemCreatingAction = this._createActionByOption(\"onCustomItemCreating\")\r\n },\r\n _createCustomItem: function(text) {\r\n var params = {\r\n text: text\r\n };\r\n var actionResult = this._customItemCreatingAction(params);\r\n var item = ensureDefined(actionResult, params.customItem);\r\n if (isDefined(actionResult)) {\r\n errors.log(\"W0015\", \"onCustomItemCreating\", \"customItem\")\r\n }\r\n return item\r\n },\r\n _customItemAddedHandler: function(e) {\r\n var searchValue = this._searchValue();\r\n var item = this._createCustomItem(searchValue);\r\n this._saveValueChangeEvent(e);\r\n if (void 0 === item) {\r\n this._renderValue();\r\n throw errors.Error(\"E0121\")\r\n }\r\n if (isPromise(item)) {\r\n fromPromise(item).done(this._setCustomItem.bind(this)).fail(this._setCustomItem.bind(this, null))\r\n } else {\r\n this._setCustomItem(item)\r\n }\r\n },\r\n _setCustomItem: function(item) {\r\n if (this._disposed) {\r\n return\r\n }\r\n item = item || null;\r\n this.option(\"selectedItem\", item);\r\n this._cancelSearchIfNeed();\r\n this._setValue(this._valueGetter(item));\r\n this._renderDisplayText(this._displayGetter(item));\r\n this._isValueChanging = false\r\n },\r\n _clearValueHandler: function(e) {\r\n this._preventFiltering = true;\r\n this.callBase(e);\r\n this._searchCanceled();\r\n return false\r\n },\r\n _wasSearch: function(value) {\r\n if (!arguments.length) {\r\n return !!this._wasSearchValue\r\n }\r\n this._wasSearchValue = value\r\n },\r\n _searchHandler: function() {\r\n if (this._preventFiltering) {\r\n delete this._preventFiltering;\r\n return\r\n }\r\n if (this._needPassDataSourceToList()) {\r\n this._wasSearch(true)\r\n }\r\n this.callBase(arguments)\r\n },\r\n _dataSourceFiltered: function(searchValue) {\r\n this.callBase();\r\n if (null !== searchValue) {\r\n this._renderInputSubstitution();\r\n this._renderFocusedElement()\r\n }\r\n },\r\n _valueSubstituted: function() {\r\n var input = this._input().get(0);\r\n var currentSearchLength = this._searchValue().length;\r\n var isAllSelected = 0 === input.selectionStart && input.selectionEnd === currentSearchLength;\r\n var inputHasSelection = input.selectionStart !== input.selectionEnd;\r\n var isLastSymbolSelected = currentSearchLength === input.selectionEnd;\r\n return this._wasSearch() && inputHasSelection && !isAllSelected && isLastSymbolSelected && this._shouldSubstitutionBeRendered()\r\n },\r\n _shouldSubstitutionBeRendered: function() {\r\n return !this._preventSubstitution && this.option(\"searchEnabled\") && !this.option(\"acceptCustomValue\") && \"startswith\" === this.option(\"searchMode\")\r\n },\r\n _renderInputSubstitution: function() {\r\n if (!this._shouldSubstitutionBeRendered()) {\r\n delete this._preventSubstitution;\r\n return\r\n }\r\n var item = this._list && this._getPlainItems(this._list.option(\"items\"))[0];\r\n if (!item) {\r\n return\r\n }\r\n var $input = this._input();\r\n var valueLength = $input.val().length;\r\n if (0 === valueLength) {\r\n return\r\n }\r\n var inputElement = $input.get(0);\r\n var displayValue = this._displayGetter(item).toString();\r\n inputElement.value = displayValue;\r\n this._caret({\r\n start: valueLength,\r\n end: displayValue.length\r\n })\r\n },\r\n _dispose: function() {\r\n this._renderInputValueAsync = noop;\r\n delete this._loadItemDeferred;\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"onCustomItemCreating\":\r\n this._initCustomItemCreatingAction();\r\n break;\r\n case \"tooltipEnabled\":\r\n this._renderTooltip();\r\n break;\r\n case \"displayCustomValue\":\r\n case \"acceptCustomValue\":\r\n case \"showSelectionControls\":\r\n this._invalidate();\r\n break;\r\n case \"allowClearing\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxSelectBox\", SelectBox);\r\nexport default SelectBox;\r\n","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_view.native.pull_down.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 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 Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport NativeStrategy from \"./ui.scrollable.native\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar SCROLLVIEW_PULLDOWN_REFRESHING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nvar SCROLLVIEW_PULLDOWN_READY_CLASS = \"dx-scrollview-pull-down-ready\";\r\nvar SCROLLVIEW_PULLDOWN_IMAGE_CLASS = \"dx-scrollview-pull-down-image\";\r\nvar SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nvar SCROLLVIEW_PULLDOWN_TEXT_CLASS = \"dx-scrollview-pull-down-text\";\r\nvar SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS = \"dx-scrollview-pull-down-text-visible\";\r\nvar STATE_RELEASED = 0;\r\nvar STATE_READY = 1;\r\nvar STATE_REFRESHING = 2;\r\nvar STATE_LOADING = 3;\r\nvar PULLDOWN_RELEASE_TIME = 400;\r\nvar PullDownNativeScrollViewStrategy = NativeStrategy.inherit({\r\n _init: function(scrollView) {\r\n this.callBase(scrollView);\r\n this._$topPocket = scrollView._$topPocket;\r\n this._$pullDown = scrollView._$pullDown;\r\n this._$refreshingText = scrollView._$refreshingText;\r\n this._$scrollViewContent = $(scrollView.content());\r\n this._$container = $(scrollView.container());\r\n this._initCallbacks()\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n render: function() {\r\n this.callBase();\r\n this._renderPullDown();\r\n this._releaseState()\r\n },\r\n _renderPullDown: function() {\r\n var $image = $(\"
\").addClass(SCROLLVIEW_PULLDOWN_IMAGE_CLASS);\r\n var $loadContainer = $(\"
\").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"
\")).$element();\r\n var $text = this._$pullDownText = $(\"
\").addClass(SCROLLVIEW_PULLDOWN_TEXT_CLASS);\r\n this._$pullingDownText = $(\"
\").text(this.option(\"pullingDownText\")).appendTo($text);\r\n this._$pulledDownText = $(\"
\").text(this.option(\"pulledDownText\")).appendTo($text);\r\n this._$refreshingText = $(\"
\").text(this.option(\"refreshingText\")).appendTo($text);\r\n this._$pullDown.empty().append($image).append($loadContainer.append($loadIndicator)).append($text)\r\n },\r\n _releaseState: function() {\r\n this._state = STATE_RELEASED;\r\n this._refreshPullDownText()\r\n },\r\n _refreshPullDownText: function() {\r\n var that = this;\r\n var pullDownTextItems = [{\r\n element: this._$pullingDownText,\r\n visibleState: STATE_RELEASED\r\n }, {\r\n element: this._$pulledDownText,\r\n visibleState: STATE_READY\r\n }, {\r\n element: this._$refreshingText,\r\n visibleState: STATE_REFRESHING\r\n }];\r\n each(pullDownTextItems, (function(_, item) {\r\n var action = that._state === item.visibleState ? \"addClass\" : \"removeClass\";\r\n item.element[action](SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS)\r\n }))\r\n },\r\n update: function() {\r\n this.callBase();\r\n this._setTopPocketOffset()\r\n },\r\n _updateDimensions: function() {\r\n this.callBase();\r\n this._topPocketSize = this._$topPocket.get(0).clientHeight;\r\n var contentEl = this._$scrollViewContent.get(0);\r\n var containerEl = this._$container.get(0);\r\n this._bottomBoundary = Math.max(contentEl.clientHeight - containerEl.clientHeight, 0)\r\n },\r\n _allowedDirections: function() {\r\n var allowedDirections = this.callBase();\r\n allowedDirections.vertical = allowedDirections.vertical || this._pullDownEnabled;\r\n return allowedDirections\r\n },\r\n _setTopPocketOffset: function() {\r\n this._$topPocket.css({\r\n top: -this._topPocketSize\r\n })\r\n },\r\n handleEnd: function() {\r\n this.callBase();\r\n this._complete()\r\n },\r\n handleStop: function() {\r\n this.callBase();\r\n this._complete()\r\n },\r\n _complete: function() {\r\n if (this._state === STATE_READY) {\r\n this._setPullDownOffset(this._topPocketSize);\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n this._pullDownRefreshTimeout = setTimeout(function() {\r\n this._pullDownRefreshing()\r\n }.bind(this), 400)\r\n }\r\n },\r\n _setPullDownOffset: function(offset) {\r\n move(this._$topPocket, {\r\n top: offset\r\n });\r\n move(this._$scrollViewContent, {\r\n top: offset\r\n })\r\n },\r\n handleScroll: function(e) {\r\n this.callBase(e);\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n var currentLocation = this.location().top;\r\n var scrollDelta = (this._location || 0) - currentLocation;\r\n this._location = currentLocation;\r\n if (this._isPullDown()) {\r\n this._pullDownReady()\r\n } else if (scrollDelta > 0 && this._isReachBottom()) {\r\n this._reachBottom()\r\n } else {\r\n this._stateReleased()\r\n }\r\n },\r\n _isPullDown: function() {\r\n return this._pullDownEnabled && this._location >= this._topPocketSize\r\n },\r\n _isReachBottom: function() {\r\n return this._reachBottomEnabled && Math.round(this._bottomBoundary + Math.floor(this._location)) <= 1\r\n },\r\n _reachBottom: function() {\r\n if (this._state === STATE_LOADING) {\r\n return\r\n }\r\n this._state = STATE_LOADING;\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _pullDownReady: function() {\r\n if (this._state === STATE_READY) {\r\n return\r\n }\r\n this._state = STATE_READY;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText()\r\n },\r\n _stateReleased: function() {\r\n if (this._state === STATE_RELEASED) {\r\n return\r\n }\r\n this._$pullDown.removeClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._releaseState()\r\n },\r\n _pullDownRefreshing: function() {\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n this._state = STATE_REFRESHING;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText();\r\n this.pullDownCallbacks.fire()\r\n },\r\n pullDownEnable: function(enabled) {\r\n if (enabled) {\r\n this._updateDimensions();\r\n this._setTopPocketOffset()\r\n }\r\n this._pullDownEnabled = enabled\r\n },\r\n reachBottomEnable: function(enabled) {\r\n this._reachBottomEnabled = enabled\r\n },\r\n pendingRelease: function() {\r\n this._state = STATE_READY\r\n },\r\n release: function() {\r\n var deferred = new Deferred;\r\n this._updateDimensions();\r\n clearTimeout(this._releaseTimeout);\r\n if (this._state === STATE_LOADING) {\r\n this._state = STATE_RELEASED\r\n }\r\n this._releaseTimeout = setTimeout(function() {\r\n this._setPullDownOffset(0);\r\n this._stateReleased();\r\n this.releaseCallbacks.fire();\r\n this._updateAction();\r\n deferred.resolve()\r\n }.bind(this), PULLDOWN_RELEASE_TIME);\r\n return deferred.promise()\r\n },\r\n dispose: function() {\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n clearTimeout(this._releaseTimeout);\r\n this.callBase()\r\n }\r\n});\r\nexport default PullDownNativeScrollViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_view.native.swipe_down.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 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 Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport {\r\n eventData\r\n} from \"../../events/utils/index\";\r\nimport NativeStrategy from \"./ui.scrollable.native\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nvar SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nvar SCROLLVIEW_PULLDOWN_REFRESHING_CLASS = \"dx-scrollview-pull-down-refreshing\";\r\nvar PULLDOWN_ICON_CLASS = \"dx-icon-pulldown\";\r\nvar STATE_RELEASED = 0;\r\nvar STATE_READY = 1;\r\nvar STATE_REFRESHING = 2;\r\nvar STATE_TOUCHED = 4;\r\nvar STATE_PULLED = 5;\r\nvar SwipeDownNativeScrollViewStrategy = NativeStrategy.inherit({\r\n _init: function(scrollView) {\r\n this.callBase(scrollView);\r\n this._$topPocket = scrollView._$topPocket;\r\n this._$pullDown = scrollView._$pullDown;\r\n this._$scrollViewContent = $(scrollView.content());\r\n this._$container = $(scrollView.container());\r\n this._initCallbacks();\r\n this._location = 0\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n render: function() {\r\n this.callBase();\r\n this._renderPullDown();\r\n this._releaseState()\r\n },\r\n _renderPullDown: function() {\r\n var $loadContainer = $(\"
\").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"
\")).$element();\r\n this._$icon = $(\"
\").addClass(PULLDOWN_ICON_CLASS);\r\n this._$pullDown.empty().append(this._$icon).append($loadContainer.append($loadIndicator))\r\n },\r\n _releaseState: function() {\r\n this._state = STATE_RELEASED;\r\n this._releasePullDown();\r\n this._updateDimensions()\r\n },\r\n _releasePullDown: function() {\r\n this._$pullDown.css({\r\n opacity: 0\r\n })\r\n },\r\n _updateDimensions: function() {\r\n this.callBase();\r\n this._topPocketSize = this._$topPocket.get(0).clientHeight;\r\n var contentEl = this._$scrollViewContent.get(0);\r\n var containerEl = this._$container.get(0);\r\n this._bottomBoundary = Math.max(contentEl.clientHeight - containerEl.clientHeight, 0)\r\n },\r\n _allowedDirections: function() {\r\n var allowedDirections = this.callBase();\r\n allowedDirections.vertical = allowedDirections.vertical || this._pullDownEnabled;\r\n return allowedDirections\r\n },\r\n handleInit: function(e) {\r\n this.callBase(e);\r\n if (this._state === STATE_RELEASED && 0 === this._location) {\r\n this._startClientY = eventData(e.originalEvent).y;\r\n this._state = STATE_TOUCHED\r\n }\r\n },\r\n handleMove: function(e) {\r\n this.callBase(e);\r\n this._deltaY = eventData(e.originalEvent).y - this._startClientY;\r\n if (this._state === STATE_TOUCHED) {\r\n if (this._pullDownEnabled && this._deltaY > 0) {\r\n this._state = STATE_PULLED\r\n } else {\r\n this._complete()\r\n }\r\n }\r\n if (this._state === STATE_PULLED) {\r\n e.preventDefault();\r\n this._movePullDown()\r\n }\r\n },\r\n _movePullDown: function() {\r\n var pullDownHeight = this._getPullDownHeight();\r\n var top = Math.min(3 * pullDownHeight, this._deltaY + this._getPullDownStartPosition());\r\n var angle = 180 * top / pullDownHeight / 3;\r\n this._$pullDown.css({\r\n opacity: 1\r\n }).toggleClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS, top < pullDownHeight);\r\n move(this._$pullDown, {\r\n top: top\r\n });\r\n this._$icon.css({\r\n transform: \"rotate(\" + angle + \"deg)\"\r\n })\r\n },\r\n _isPullDown: function() {\r\n return this._pullDownEnabled && this._state === STATE_PULLED && this._deltaY >= this._getPullDownHeight() - this._getPullDownStartPosition()\r\n },\r\n _getPullDownHeight: function() {\r\n return Math.round(.05 * getOuterHeight(this._$element))\r\n },\r\n _getPullDownStartPosition: function() {\r\n return -Math.round(1.5 * getOuterHeight(this._$pullDown))\r\n },\r\n handleEnd: function() {\r\n if (this._isPullDown()) {\r\n this._pullDownRefreshing()\r\n }\r\n this._complete()\r\n },\r\n handleStop: function() {\r\n this._complete()\r\n },\r\n _complete: function() {\r\n if (this._state === STATE_TOUCHED || this._state === STATE_PULLED) {\r\n this._releaseState()\r\n }\r\n },\r\n handleScroll: function(e) {\r\n this.callBase(e);\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n var currentLocation = this.location().top;\r\n var scrollDelta = this._location - currentLocation;\r\n this._location = currentLocation;\r\n if (scrollDelta > 0 && this._isReachBottom()) {\r\n this._reachBottom()\r\n } else {\r\n this._stateReleased()\r\n }\r\n },\r\n _isReachBottom: function() {\r\n return this._reachBottomEnabled && Math.round(this._bottomBoundary + Math.floor(this._location)) <= 1\r\n },\r\n _reachBottom: function() {\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _stateReleased: function() {\r\n if (this._state === STATE_RELEASED) {\r\n return\r\n }\r\n this._$pullDown.removeClass(SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS);\r\n this._releaseState()\r\n },\r\n _pullDownRefreshing: function() {\r\n this._state = STATE_REFRESHING;\r\n this._pullDownRefreshHandler()\r\n },\r\n _pullDownRefreshHandler: function() {\r\n this._refreshPullDown();\r\n this.pullDownCallbacks.fire()\r\n },\r\n _refreshPullDown: function() {\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS);\r\n move(this._$pullDown, {\r\n top: this._getPullDownHeight()\r\n })\r\n },\r\n pullDownEnable: function(enabled) {\r\n this._$topPocket.toggle(enabled);\r\n this._pullDownEnabled = enabled\r\n },\r\n reachBottomEnable: function(enabled) {\r\n this._reachBottomEnabled = enabled\r\n },\r\n pendingRelease: function() {\r\n this._state = STATE_READY\r\n },\r\n release: function() {\r\n var deferred = new Deferred;\r\n this._updateDimensions();\r\n clearTimeout(this._releaseTimeout);\r\n this._releaseTimeout = setTimeout(function() {\r\n this._stateReleased();\r\n this.releaseCallbacks.fire();\r\n this._updateAction();\r\n deferred.resolve()\r\n }.bind(this), 800);\r\n return deferred.promise()\r\n },\r\n dispose: function() {\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n clearTimeout(this._releaseTimeout);\r\n this.callBase()\r\n }\r\n});\r\nexport default SwipeDownNativeScrollViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_view.simulated.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n executeAsync\r\n} from \"../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar math = Math;\r\nimport {\r\n Scroller,\r\n SimulatedStrategy\r\n} from \"./ui.scrollable.simulated\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nvar SCROLLVIEW_PULLDOWN_REFRESHING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nvar SCROLLVIEW_PULLDOWN_READY_CLASS = \"dx-scrollview-pull-down-ready\";\r\nvar SCROLLVIEW_PULLDOWN_IMAGE_CLASS = \"dx-scrollview-pull-down-image\";\r\nvar SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nvar SCROLLVIEW_PULLDOWN_TEXT_CLASS = \"dx-scrollview-pull-down-text\";\r\nvar SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS = \"dx-scrollview-pull-down-text-visible\";\r\nvar STATE_RELEASED = 0;\r\nvar STATE_READY = 1;\r\nvar STATE_REFRESHING = 2;\r\nvar STATE_LOADING = 3;\r\nvar ScrollViewScroller = Scroller.inherit({\r\n ctor: function() {\r\n this._topPocketSize = 0;\r\n this._bottomPocketSize = 0;\r\n this.callBase.apply(this, arguments);\r\n this._initCallbacks();\r\n this._releaseState()\r\n },\r\n _releaseState: function() {\r\n this._state = STATE_RELEASED;\r\n this._refreshPullDownText()\r\n },\r\n _refreshPullDownText: function() {\r\n var that = this;\r\n var pullDownTextItems = [{\r\n element: this._$pullingDownText,\r\n visibleState: STATE_RELEASED\r\n }, {\r\n element: this._$pulledDownText,\r\n visibleState: STATE_READY\r\n }, {\r\n element: this._$refreshingText,\r\n visibleState: STATE_REFRESHING\r\n }];\r\n each(pullDownTextItems, (function(_, item) {\r\n var action = that._state === item.visibleState ? \"addClass\" : \"removeClass\";\r\n item.element[action](SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS)\r\n }))\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n _updateBounds: function() {\r\n var considerPockets = \"horizontal\" !== this._direction;\r\n if (considerPockets) {\r\n this._topPocketSize = this._$topPocket.get(0).clientHeight;\r\n this._bottomPocketSize = this._$bottomPocket.get(0).clientHeight;\r\n var containerEl = this._$container.get(0);\r\n var contentEl = this._$content.get(0);\r\n this._bottomBoundary = Math.max(contentEl.clientHeight - this._bottomPocketSize - containerEl.clientHeight, 0)\r\n }\r\n this.callBase()\r\n },\r\n _updateScrollbar: function() {\r\n this._scrollbar.option({\r\n containerSize: this._containerSize(),\r\n contentSize: this._contentSize() - this._topPocketSize - this._bottomPocketSize,\r\n scaleRatio: this._getScaleRatio()\r\n })\r\n },\r\n _moveContent: function() {\r\n this.callBase();\r\n if (this._isPullDown()) {\r\n this._pullDownReady()\r\n } else if (this._isReachBottom()) {\r\n this._reachBottomReady()\r\n } else if (this._state !== STATE_RELEASED) {\r\n this._stateReleased()\r\n }\r\n },\r\n _moveScrollbar: function() {\r\n this._scrollbar.moveTo(this._topPocketSize + this._location)\r\n },\r\n _isPullDown: function() {\r\n return this._pullDownEnabled && this._location >= 0\r\n },\r\n _isReachBottom: function() {\r\n var containerEl = this._$container.get(0);\r\n return this._reachBottomEnabled && Math.round(this._bottomBoundary - Math.ceil(containerEl.scrollTop)) <= 1\r\n },\r\n _scrollComplete: function() {\r\n if (this._inBounds() && this._state === STATE_READY) {\r\n this._pullDownRefreshing()\r\n } else if (this._inBounds() && this._state === STATE_LOADING) {\r\n this._reachBottomLoading()\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n _reachBottomReady: function() {\r\n if (this._state === STATE_LOADING) {\r\n return\r\n }\r\n this._state = STATE_LOADING;\r\n this._minOffset = this._getMinOffset()\r\n },\r\n _getMaxOffset: function() {\r\n return -this._topPocketSize\r\n },\r\n _getMinOffset: function() {\r\n return math.min(this.callBase(), -this._topPocketSize)\r\n },\r\n _reachBottomLoading: function() {\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _pullDownReady: function() {\r\n if (this._state === STATE_READY) {\r\n return\r\n }\r\n this._state = STATE_READY;\r\n this._maxOffset = 0;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText()\r\n },\r\n _stateReleased: function() {\r\n if (this._state === STATE_RELEASED) {\r\n return\r\n }\r\n this._releaseState();\r\n this._updateBounds();\r\n this._$pullDown.removeClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this.releaseCallbacks.fire()\r\n },\r\n _pullDownRefreshing: function() {\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n this._state = STATE_REFRESHING;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText();\r\n this.pullDownCallbacks.fire()\r\n },\r\n _releaseHandler: function() {\r\n if (this._state === STATE_RELEASED) {\r\n this._moveToBounds()\r\n }\r\n this._update();\r\n if (this._releaseTask) {\r\n this._releaseTask.abort()\r\n }\r\n this._releaseTask = executeAsync(this._release.bind(this));\r\n return this._releaseTask.promise\r\n },\r\n _release: function() {\r\n this._stateReleased();\r\n this._scrollComplete()\r\n },\r\n _reachBottomEnablingHandler: function(enabled) {\r\n if (this._reachBottomEnabled === enabled) {\r\n return\r\n }\r\n this._reachBottomEnabled = enabled;\r\n this._updateBounds()\r\n },\r\n _pullDownEnablingHandler: function(enabled) {\r\n if (this._pullDownEnabled === enabled) {\r\n return\r\n }\r\n this._pullDownEnabled = enabled;\r\n this._considerTopPocketChange();\r\n this._updateHandler()\r\n },\r\n _considerTopPocketChange: function() {\r\n this._location -= getHeight(this._$topPocket) || -this._topPocketSize;\r\n this._maxOffset = 0;\r\n this._move()\r\n },\r\n _pendingReleaseHandler: function() {\r\n this._state = STATE_READY\r\n },\r\n dispose: function() {\r\n if (this._releaseTask) {\r\n this._releaseTask.abort()\r\n }\r\n this.callBase()\r\n }\r\n});\r\nvar SimulatedScrollViewStrategy = SimulatedStrategy.inherit({\r\n _init: function(scrollView) {\r\n this.callBase(scrollView);\r\n this._$pullDown = scrollView._$pullDown;\r\n this._$topPocket = scrollView._$topPocket;\r\n this._$bottomPocket = scrollView._$bottomPocket;\r\n this._initCallbacks()\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n render: function() {\r\n this._renderPullDown();\r\n this.callBase()\r\n },\r\n _renderPullDown: function() {\r\n var $image = $(\"
\").addClass(SCROLLVIEW_PULLDOWN_IMAGE_CLASS);\r\n var $loadContainer = $(\"
\").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"
\")).$element();\r\n var $text = this._$pullDownText = $(\"
\").addClass(SCROLLVIEW_PULLDOWN_TEXT_CLASS);\r\n this._$pullingDownText = $(\"
\").text(this.option(\"pullingDownText\")).appendTo($text);\r\n this._$pulledDownText = $(\"
\").text(this.option(\"pulledDownText\")).appendTo($text);\r\n this._$refreshingText = $(\"
\").text(this.option(\"refreshingText\")).appendTo($text);\r\n this._$pullDown.empty().append($image).append($loadContainer.append($loadIndicator)).append($text)\r\n },\r\n pullDownEnable: function(enabled) {\r\n this._eventHandler(\"pullDownEnabling\", enabled)\r\n },\r\n reachBottomEnable: function(enabled) {\r\n this._eventHandler(\"reachBottomEnabling\", enabled)\r\n },\r\n _createScroller: function(direction) {\r\n var that = this;\r\n var scroller = that._scrollers[direction] = new ScrollViewScroller(that._scrollerOptions(direction));\r\n scroller.pullDownCallbacks.add((function() {\r\n that.pullDownCallbacks.fire()\r\n }));\r\n scroller.releaseCallbacks.add((function() {\r\n that.releaseCallbacks.fire()\r\n }));\r\n scroller.reachBottomCallbacks.add((function() {\r\n that.reachBottomCallbacks.fire()\r\n }))\r\n },\r\n _scrollerOptions: function(direction) {\r\n return extend(this.callBase(direction), {\r\n $topPocket: this._$topPocket,\r\n $bottomPocket: this._$bottomPocket,\r\n $pullDown: this._$pullDown,\r\n $pullDownText: this._$pullDownText,\r\n $pullingDownText: this._$pullingDownText,\r\n $pulledDownText: this._$pulledDownText,\r\n $refreshingText: this._$refreshingText\r\n })\r\n },\r\n pendingRelease: function() {\r\n this._eventHandler(\"pendingRelease\")\r\n },\r\n release: function() {\r\n return this._eventHandler(\"release\").done(this._updateAction)\r\n },\r\n location: function() {\r\n var location = this.callBase();\r\n location.top += getHeight(this._$topPocket);\r\n return location\r\n },\r\n dispose: function() {\r\n each(this._scrollers, (function() {\r\n this.dispose()\r\n }));\r\n this.callBase()\r\n }\r\n});\r\nexport default SimulatedScrollViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_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 devices from \"../../core/devices\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport PullDownStrategy from \"./ui.scroll_view.native.pull_down\";\r\nimport SwipeDownStrategy from \"./ui.scroll_view.native.swipe_down\";\r\nimport SimulatedStrategy from \"./ui.scroll_view.simulated\";\r\nimport Scrollable from \"./ui.scrollable\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n isMaterial\r\n} from \"./../themes\";\r\nimport LoadPanel from \"../load_panel\";\r\nvar SCROLLVIEW_CLASS = \"dx-scrollview\";\r\nvar SCROLLVIEW_CONTENT_CLASS = SCROLLVIEW_CLASS + \"-content\";\r\nvar SCROLLVIEW_TOP_POCKET_CLASS = SCROLLVIEW_CLASS + \"-top-pocket\";\r\nvar SCROLLVIEW_BOTTOM_POCKET_CLASS = SCROLLVIEW_CLASS + \"-bottom-pocket\";\r\nvar SCROLLVIEW_PULLDOWN_CLASS = SCROLLVIEW_CLASS + \"-pull-down\";\r\nvar SCROLLVIEW_REACHBOTTOM_CLASS = SCROLLVIEW_CLASS + \"-scrollbottom\";\r\nvar SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS = SCROLLVIEW_REACHBOTTOM_CLASS + \"-indicator\";\r\nvar SCROLLVIEW_REACHBOTTOM_TEXT_CLASS = SCROLLVIEW_REACHBOTTOM_CLASS + \"-text\";\r\nvar SCROLLVIEW_LOADPANEL = SCROLLVIEW_CLASS + \"-loadpanel\";\r\nvar refreshStrategies = {\r\n pullDown: PullDownStrategy,\r\n swipeDown: SwipeDownStrategy,\r\n simulated: SimulatedStrategy\r\n};\r\nvar isServerSide = !hasWindow();\r\nvar scrollViewServerConfig = {\r\n finishLoading: noop,\r\n release: noop,\r\n refresh: noop,\r\n scrollOffset: () => ({\r\n top: 0,\r\n left: 0\r\n }),\r\n _optionChanged: function(args) {\r\n if (\"onUpdated\" !== args.name) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n};\r\nvar ScrollView = Scrollable.inherit(isServerSide ? scrollViewServerConfig : {\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n pullingDownText: messageLocalization.format(\"dxScrollView-pullingDownText\"),\r\n pulledDownText: messageLocalization.format(\"dxScrollView-pulledDownText\"),\r\n refreshingText: messageLocalization.format(\"dxScrollView-refreshingText\"),\r\n reachBottomText: messageLocalization.format(\"dxScrollView-reachBottomText\"),\r\n onPullDown: null,\r\n onReachBottom: null,\r\n refreshStrategy: \"pullDown\"\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n var realDevice = devices.real();\r\n return \"android\" === realDevice.platform\r\n },\r\n options: {\r\n refreshStrategy: \"swipeDown\"\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n pullingDownText: \"\",\r\n pulledDownText: \"\",\r\n refreshingText: \"\",\r\n reachBottomText: \"\"\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._loadingIndicatorEnabled = true\r\n },\r\n _initScrollableMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(SCROLLVIEW_CLASS);\r\n this._initContent();\r\n this._initTopPocket();\r\n this._initBottomPocket();\r\n this._initLoadPanel()\r\n },\r\n _initContent: function() {\r\n var $content = $(\"
\").addClass(SCROLLVIEW_CONTENT_CLASS);\r\n this._$content.wrapInner($content)\r\n },\r\n _initTopPocket: function() {\r\n var $topPocket = this._$topPocket = $(\"
\").addClass(SCROLLVIEW_TOP_POCKET_CLASS);\r\n var $pullDown = this._$pullDown = $(\"
\").addClass(SCROLLVIEW_PULLDOWN_CLASS);\r\n $topPocket.append($pullDown);\r\n this._$content.prepend($topPocket)\r\n },\r\n _initBottomPocket: function() {\r\n var $bottomPocket = this._$bottomPocket = $(\"
\").addClass(SCROLLVIEW_BOTTOM_POCKET_CLASS);\r\n var $reachBottom = this._$reachBottom = $(\"
\").addClass(SCROLLVIEW_REACHBOTTOM_CLASS);\r\n var $loadContainer = $(\"
\").addClass(SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"
\")).$element();\r\n var $text = this._$reachBottomText = $(\"
\").addClass(SCROLLVIEW_REACHBOTTOM_TEXT_CLASS);\r\n this._updateReachBottomText();\r\n $reachBottom.append($loadContainer.append($loadIndicator)).append($text);\r\n $bottomPocket.append($reachBottom);\r\n this._$content.append($bottomPocket)\r\n },\r\n _initLoadPanel: function() {\r\n var $loadPanelElement = $(\"
\").addClass(SCROLLVIEW_LOADPANEL).appendTo(this.$element());\r\n var loadPanelOptions = {\r\n shading: false,\r\n delay: 400,\r\n message: this.option(\"refreshingText\"),\r\n position: {\r\n of: this.$element()\r\n }\r\n };\r\n this._loadPanel = this._createComponent($loadPanelElement, LoadPanel, loadPanelOptions)\r\n },\r\n _updateReachBottomText: function() {\r\n this._$reachBottomText.text(this.option(\"reachBottomText\"))\r\n },\r\n _createStrategy: function() {\r\n var strategyName = this.option(\"useNative\") ? this.option(\"refreshStrategy\") : \"simulated\";\r\n var strategyClass = refreshStrategies[strategyName];\r\n this._strategy = new strategyClass(this);\r\n this._strategy.pullDownCallbacks.add(this._pullDownHandler.bind(this));\r\n this._strategy.releaseCallbacks.add(this._releaseHandler.bind(this));\r\n this._strategy.reachBottomCallbacks.add(this._reachBottomHandler.bind(this))\r\n },\r\n _createActions: function() {\r\n this.callBase();\r\n this._pullDownAction = this._createActionByOption(\"onPullDown\");\r\n this._reachBottomAction = this._createActionByOption(\"onReachBottom\");\r\n this._tryRefreshPocketState()\r\n },\r\n _tryRefreshPocketState: function() {\r\n this._pullDownEnable(this.hasActionSubscription(\"onPullDown\"));\r\n this._reachBottomEnable(this.hasActionSubscription(\"onReachBottom\"))\r\n },\r\n on: function(eventName) {\r\n var result = this.callBase.apply(this, arguments);\r\n if (\"pullDown\" === eventName || \"reachBottom\" === eventName) {\r\n this._tryRefreshPocketState()\r\n }\r\n return result\r\n },\r\n _pullDownEnable: function(enabled) {\r\n if (0 === arguments.length) {\r\n return this._pullDownEnabled\r\n }\r\n if (this._$pullDown && this._strategy) {\r\n this._$pullDown.toggle(enabled);\r\n this._strategy.pullDownEnable(enabled);\r\n this._pullDownEnabled = enabled\r\n }\r\n },\r\n _reachBottomEnable: function(enabled) {\r\n if (0 === arguments.length) {\r\n return this._reachBottomEnabled\r\n }\r\n if (this._$reachBottom && this._strategy) {\r\n this._$reachBottom.toggle(enabled);\r\n this._strategy.reachBottomEnable(enabled);\r\n this._reachBottomEnabled = enabled\r\n }\r\n },\r\n _pullDownHandler: function() {\r\n this._loadingIndicator(false);\r\n this._pullDownLoading()\r\n },\r\n _loadingIndicator: function(value) {\r\n if (arguments.length < 1) {\r\n return this._loadingIndicatorEnabled\r\n }\r\n this._loadingIndicatorEnabled = value\r\n },\r\n _pullDownLoading: function() {\r\n this.startLoading();\r\n this._pullDownAction()\r\n },\r\n _reachBottomHandler: function() {\r\n this._loadingIndicator(false);\r\n this._reachBottomLoading()\r\n },\r\n _reachBottomLoading: function() {\r\n this.startLoading();\r\n this._reachBottomAction()\r\n },\r\n _releaseHandler: function() {\r\n this.finishLoading();\r\n this._loadingIndicator(true)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"onPullDown\":\r\n case \"onReachBottom\":\r\n this._createActions();\r\n break;\r\n case \"pullingDownText\":\r\n case \"pulledDownText\":\r\n case \"refreshingText\":\r\n case \"refreshStrategy\":\r\n this._invalidate();\r\n break;\r\n case \"reachBottomText\":\r\n this._updateReachBottomText();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n content: function() {\r\n return getPublicElement(this._$content.children().eq(1))\r\n },\r\n release: function(preventReachBottom) {\r\n if (void 0 !== preventReachBottom) {\r\n this.toggleLoading(!preventReachBottom)\r\n }\r\n return this._strategy.release()\r\n },\r\n toggleLoading: function(showOrHide) {\r\n this._reachBottomEnable(showOrHide)\r\n },\r\n refresh: function() {\r\n if (!this.hasActionSubscription(\"onPullDown\")) {\r\n return\r\n }\r\n this._strategy.pendingRelease();\r\n this._pullDownLoading()\r\n },\r\n startLoading: function() {\r\n if (this._loadingIndicator() && this.$element().is(\":visible\")) {\r\n this._loadPanel.show()\r\n }\r\n this._lock()\r\n },\r\n finishLoading: function() {\r\n this._loadPanel.hide();\r\n this._unlock()\r\n },\r\n _dispose: function() {\r\n this._strategy.dispose();\r\n this.callBase();\r\n if (this._loadPanel) {\r\n this._loadPanel.$element().remove()\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxScrollView\", ScrollView);\r\nexport default ScrollView;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_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 ScrollView from \"./scroll_view/ui.scroll_view\";\r\nexport default ScrollView;\r\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils = require('../utils/common');\n\nvar MAXBITS = 15;\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\nvar lbase = [ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n];\n\nvar lext = [ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n];\n\nvar dbase = [ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n];\n\nvar dext = [ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n];\n\nmodule.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts)\n{\n var bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n var len = 0; /* a code's length in bits */\n var sym = 0; /* index of code symbols */\n var min = 0, max = 0; /* minimum and maximum code lengths */\n var root = 0; /* number of index bits for root table */\n var curr = 0; /* number of index bits for current table */\n var drop = 0; /* code bits to drop for sub-table */\n var left = 0; /* number of prefix codes available */\n var used = 0; /* code entries in table used */\n var huff = 0; /* Huffman code */\n var incr; /* for incrementing code, index */\n var fill; /* index for replicating entries */\n var low; /* low bits for current root entry */\n var mask; /* mask for low root bits */\n var next; /* next available space in table */\n var base = null; /* base value table to use */\n var base_index = 0;\n// var shoextra; /* extra bits table to use */\n var end; /* use base and extra for symbol > end */\n var count = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n var offs = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n var extra = null;\n var extra_index = 0;\n\n var here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","/**\r\n * DevExtreme (esm/ui/toolbar/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 TOOLBAR_CLASS = \"dx-toolbar\";\r\n","'use strict';\n/* eslint camelcase: \"off\" */\n\nvar assert = require('assert');\n\nvar Zstream = require('pako/lib/zlib/zstream');\nvar zlib_deflate = require('pako/lib/zlib/deflate.js');\nvar zlib_inflate = require('pako/lib/zlib/inflate.js');\nvar constants = require('pako/lib/zlib/constants');\n\nfor (var key in constants) {\n exports[key] = constants[key];\n}\n\n// zlib modes\nexports.NONE = 0;\nexports.DEFLATE = 1;\nexports.INFLATE = 2;\nexports.GZIP = 3;\nexports.GUNZIP = 4;\nexports.DEFLATERAW = 5;\nexports.INFLATERAW = 6;\nexports.UNZIP = 7;\n\nvar GZIP_HEADER_ID1 = 0x1f;\nvar GZIP_HEADER_ID2 = 0x8b;\n\n/**\n * Emulate Node's zlib C++ layer for use by the JS layer in index.js\n */\nfunction Zlib(mode) {\n if (typeof mode !== 'number' || mode < exports.DEFLATE || mode > exports.UNZIP) {\n throw new TypeError('Bad argument');\n }\n\n this.dictionary = null;\n this.err = 0;\n this.flush = 0;\n this.init_done = false;\n this.level = 0;\n this.memLevel = 0;\n this.mode = mode;\n this.strategy = 0;\n this.windowBits = 0;\n this.write_in_progress = false;\n this.pending_close = false;\n this.gzip_id_bytes_read = 0;\n}\n\nZlib.prototype.close = function () {\n if (this.write_in_progress) {\n this.pending_close = true;\n return;\n }\n\n this.pending_close = false;\n\n assert(this.init_done, 'close before init');\n assert(this.mode <= exports.UNZIP);\n\n if (this.mode === exports.DEFLATE || this.mode === exports.GZIP || this.mode === exports.DEFLATERAW) {\n zlib_deflate.deflateEnd(this.strm);\n } else if (this.mode === exports.INFLATE || this.mode === exports.GUNZIP || this.mode === exports.INFLATERAW || this.mode === exports.UNZIP) {\n zlib_inflate.inflateEnd(this.strm);\n }\n\n this.mode = exports.NONE;\n\n this.dictionary = null;\n};\n\nZlib.prototype.write = function (flush, input, in_off, in_len, out, out_off, out_len) {\n return this._write(true, flush, input, in_off, in_len, out, out_off, out_len);\n};\n\nZlib.prototype.writeSync = function (flush, input, in_off, in_len, out, out_off, out_len) {\n return this._write(false, flush, input, in_off, in_len, out, out_off, out_len);\n};\n\nZlib.prototype._write = function (async, flush, input, in_off, in_len, out, out_off, out_len) {\n assert.equal(arguments.length, 8);\n\n assert(this.init_done, 'write before init');\n assert(this.mode !== exports.NONE, 'already finalized');\n assert.equal(false, this.write_in_progress, 'write already in progress');\n assert.equal(false, this.pending_close, 'close is pending');\n\n this.write_in_progress = true;\n\n assert.equal(false, flush === undefined, 'must provide flush value');\n\n this.write_in_progress = true;\n\n if (flush !== exports.Z_NO_FLUSH && flush !== exports.Z_PARTIAL_FLUSH && flush !== exports.Z_SYNC_FLUSH && flush !== exports.Z_FULL_FLUSH && flush !== exports.Z_FINISH && flush !== exports.Z_BLOCK) {\n throw new Error('Invalid flush value');\n }\n\n if (input == null) {\n input = Buffer.alloc(0);\n in_len = 0;\n in_off = 0;\n }\n\n this.strm.avail_in = in_len;\n this.strm.input = input;\n this.strm.next_in = in_off;\n this.strm.avail_out = out_len;\n this.strm.output = out;\n this.strm.next_out = out_off;\n this.flush = flush;\n\n if (!async) {\n // sync version\n this._process();\n\n if (this._checkError()) {\n return this._afterSync();\n }\n return;\n }\n\n // async version\n var self = this;\n process.nextTick(function () {\n self._process();\n self._after();\n });\n\n return this;\n};\n\nZlib.prototype._afterSync = function () {\n var avail_out = this.strm.avail_out;\n var avail_in = this.strm.avail_in;\n\n this.write_in_progress = false;\n\n return [avail_in, avail_out];\n};\n\nZlib.prototype._process = function () {\n var next_expected_header_byte = null;\n\n // If the avail_out is left at 0, then it means that it ran out\n // of room. If there was avail_out left over, then it means\n // that all of the input was consumed.\n switch (this.mode) {\n case exports.DEFLATE:\n case exports.GZIP:\n case exports.DEFLATERAW:\n this.err = zlib_deflate.deflate(this.strm, this.flush);\n break;\n case exports.UNZIP:\n if (this.strm.avail_in > 0) {\n next_expected_header_byte = this.strm.next_in;\n }\n\n switch (this.gzip_id_bytes_read) {\n case 0:\n if (next_expected_header_byte === null) {\n break;\n }\n\n if (this.strm.input[next_expected_header_byte] === GZIP_HEADER_ID1) {\n this.gzip_id_bytes_read = 1;\n next_expected_header_byte++;\n\n if (this.strm.avail_in === 1) {\n // The only available byte was already read.\n break;\n }\n } else {\n this.mode = exports.INFLATE;\n break;\n }\n\n // fallthrough\n case 1:\n if (next_expected_header_byte === null) {\n break;\n }\n\n if (this.strm.input[next_expected_header_byte] === GZIP_HEADER_ID2) {\n this.gzip_id_bytes_read = 2;\n this.mode = exports.GUNZIP;\n } else {\n // There is no actual difference between INFLATE and INFLATERAW\n // (after initialization).\n this.mode = exports.INFLATE;\n }\n\n break;\n default:\n throw new Error('invalid number of gzip magic number bytes read');\n }\n\n // fallthrough\n case exports.INFLATE:\n case exports.GUNZIP:\n case exports.INFLATERAW:\n this.err = zlib_inflate.inflate(this.strm, this.flush\n\n // If data was encoded with dictionary\n );if (this.err === exports.Z_NEED_DICT && this.dictionary) {\n // Load it\n this.err = zlib_inflate.inflateSetDictionary(this.strm, this.dictionary);\n if (this.err === exports.Z_OK) {\n // And try to decode again\n this.err = zlib_inflate.inflate(this.strm, this.flush);\n } else if (this.err === exports.Z_DATA_ERROR) {\n // Both inflateSetDictionary() and inflate() return Z_DATA_ERROR.\n // Make it possible for After() to tell a bad dictionary from bad\n // input.\n this.err = exports.Z_NEED_DICT;\n }\n }\n while (this.strm.avail_in > 0 && this.mode === exports.GUNZIP && this.err === exports.Z_STREAM_END && this.strm.next_in[0] !== 0x00) {\n // Bytes remain in input buffer. Perhaps this is another compressed\n // member in the same archive, or just trailing garbage.\n // Trailing zero bytes are okay, though, since they are frequently\n // used for padding.\n\n this.reset();\n this.err = zlib_inflate.inflate(this.strm, this.flush);\n }\n break;\n default:\n throw new Error('Unknown mode ' + this.mode);\n }\n};\n\nZlib.prototype._checkError = function () {\n // Acceptable error states depend on the type of zlib stream.\n switch (this.err) {\n case exports.Z_OK:\n case exports.Z_BUF_ERROR:\n if (this.strm.avail_out !== 0 && this.flush === exports.Z_FINISH) {\n this._error('unexpected end of file');\n return false;\n }\n break;\n case exports.Z_STREAM_END:\n // normal statuses, not fatal\n break;\n case exports.Z_NEED_DICT:\n if (this.dictionary == null) {\n this._error('Missing dictionary');\n } else {\n this._error('Bad dictionary');\n }\n return false;\n default:\n // something else.\n this._error('Zlib error');\n return false;\n }\n\n return true;\n};\n\nZlib.prototype._after = function () {\n if (!this._checkError()) {\n return;\n }\n\n var avail_out = this.strm.avail_out;\n var avail_in = this.strm.avail_in;\n\n this.write_in_progress = false;\n\n // call the write() cb\n this.callback(avail_in, avail_out);\n\n if (this.pending_close) {\n this.close();\n }\n};\n\nZlib.prototype._error = function (message) {\n if (this.strm.msg) {\n message = this.strm.msg;\n }\n this.onerror(message, this.err\n\n // no hope of rescue.\n );this.write_in_progress = false;\n if (this.pending_close) {\n this.close();\n }\n};\n\nZlib.prototype.init = function (windowBits, level, memLevel, strategy, dictionary) {\n assert(arguments.length === 4 || arguments.length === 5, 'init(windowBits, level, memLevel, strategy, [dictionary])');\n\n assert(windowBits >= 8 && windowBits <= 15, 'invalid windowBits');\n assert(level >= -1 && level <= 9, 'invalid compression level');\n\n assert(memLevel >= 1 && memLevel <= 9, 'invalid memlevel');\n\n assert(strategy === exports.Z_FILTERED || strategy === exports.Z_HUFFMAN_ONLY || strategy === exports.Z_RLE || strategy === exports.Z_FIXED || strategy === exports.Z_DEFAULT_STRATEGY, 'invalid strategy');\n\n this._init(level, windowBits, memLevel, strategy, dictionary);\n this._setDictionary();\n};\n\nZlib.prototype.params = function () {\n throw new Error('deflateParams Not supported');\n};\n\nZlib.prototype.reset = function () {\n this._reset();\n this._setDictionary();\n};\n\nZlib.prototype._init = function (level, windowBits, memLevel, strategy, dictionary) {\n this.level = level;\n this.windowBits = windowBits;\n this.memLevel = memLevel;\n this.strategy = strategy;\n\n this.flush = exports.Z_NO_FLUSH;\n\n this.err = exports.Z_OK;\n\n if (this.mode === exports.GZIP || this.mode === exports.GUNZIP) {\n this.windowBits += 16;\n }\n\n if (this.mode === exports.UNZIP) {\n this.windowBits += 32;\n }\n\n if (this.mode === exports.DEFLATERAW || this.mode === exports.INFLATERAW) {\n this.windowBits = -1 * this.windowBits;\n }\n\n this.strm = new Zstream();\n\n switch (this.mode) {\n case exports.DEFLATE:\n case exports.GZIP:\n case exports.DEFLATERAW:\n this.err = zlib_deflate.deflateInit2(this.strm, this.level, exports.Z_DEFLATED, this.windowBits, this.memLevel, this.strategy);\n break;\n case exports.INFLATE:\n case exports.GUNZIP:\n case exports.INFLATERAW:\n case exports.UNZIP:\n this.err = zlib_inflate.inflateInit2(this.strm, this.windowBits);\n break;\n default:\n throw new Error('Unknown mode ' + this.mode);\n }\n\n if (this.err !== exports.Z_OK) {\n this._error('Init error');\n }\n\n this.dictionary = dictionary;\n\n this.write_in_progress = false;\n this.init_done = true;\n};\n\nZlib.prototype._setDictionary = function () {\n if (this.dictionary == null) {\n return;\n }\n\n this.err = exports.Z_OK;\n\n switch (this.mode) {\n case exports.DEFLATE:\n case exports.DEFLATERAW:\n this.err = zlib_deflate.deflateSetDictionary(this.strm, this.dictionary);\n break;\n default:\n break;\n }\n\n if (this.err !== exports.Z_OK) {\n this._error('Failed to set dictionary');\n }\n};\n\nZlib.prototype._reset = function () {\n this.err = exports.Z_OK;\n\n switch (this.mode) {\n case exports.DEFLATE:\n case exports.DEFLATERAW:\n case exports.GZIP:\n this.err = zlib_deflate.deflateReset(this.strm);\n break;\n case exports.INFLATE:\n case exports.INFLATERAW:\n case exports.GUNZIP:\n this.err = zlib_inflate.inflateReset(this.strm);\n break;\n default:\n break;\n }\n\n if (this.err !== exports.Z_OK) {\n this._error('Failed to reset stream');\n }\n};\n\nexports.Zlib = Zlib;","/**\r\n * DevExtreme (esm/ui/shared/grouped_data_converter_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 isObject\r\n} from \"../../core/utils/type\";\r\nvar isCorrectStructure = data => Array.isArray(data) && data.every(item => {\r\n var hasTwoFields = 2 === Object.keys(item).length;\r\n var hasCorrectFields = \"key\" in item && \"items\" in item;\r\n return hasTwoFields && hasCorrectFields && Array.isArray(item.items)\r\n});\r\nexport default {\r\n _getSpecificDataSourceOption: function() {\r\n var dataSource = this.option(\"dataSource\");\r\n var hasSimpleItems = false;\r\n var data = {};\r\n if (this._getGroupedOption() && isCorrectStructure(dataSource)) {\r\n data = dataSource.reduce((accumulator, item) => {\r\n var items = item.items.map(innerItem => {\r\n if (!isObject(innerItem)) {\r\n innerItem = {\r\n text: innerItem\r\n };\r\n hasSimpleItems = true\r\n }\r\n if (!(\"key\" in innerItem)) {\r\n innerItem.key = item.key\r\n }\r\n return innerItem\r\n });\r\n return accumulator.concat(items)\r\n }, []);\r\n dataSource = {\r\n store: {\r\n type: \"array\",\r\n data: data\r\n },\r\n group: {\r\n selector: \"key\",\r\n keepInitialKeyOrder: true\r\n }\r\n };\r\n if (hasSimpleItems) {\r\n dataSource.searchExpr = \"text\"\r\n }\r\n }\r\n return dataSource\r\n }\r\n};\r\n","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\n/** @type {import('.')} */\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true) || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","module.exports = __webpack_public_path__ + \"img/en_gb.b1303c78.svg\";","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 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 noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n start as swipeEventStart,\r\n swipe as swipeEventSwipe,\r\n end as swipeEventEnd\r\n} from \"../../events/swipe\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nvar LIST_EDIT_DECORATOR = \"dxListEditDecorator\";\r\nvar SWIPE_START_EVENT_NAME = addNamespace(swipeEventStart, LIST_EDIT_DECORATOR);\r\nvar SWIPE_UPDATE_EVENT_NAME = addNamespace(swipeEventSwipe, LIST_EDIT_DECORATOR);\r\nvar SWIPE_END_EVENT_NAME = addNamespace(swipeEventEnd, LIST_EDIT_DECORATOR);\r\nvar EditDecorator = Class.inherit({\r\n ctor: function(list) {\r\n this._list = list;\r\n this._init()\r\n },\r\n _init: noop,\r\n _shouldHandleSwipe: false,\r\n _attachSwipeEvent: function(config) {\r\n var swipeConfig = {\r\n itemSizeFunc: function() {\r\n if (this._clearSwipeCache) {\r\n this._itemWidthCache = getWidth(this._list.$element());\r\n this._clearSwipeCache = false\r\n }\r\n return this._itemWidthCache\r\n }.bind(this)\r\n };\r\n eventsEngine.on(config.$itemElement, SWIPE_START_EVENT_NAME, swipeConfig, this._itemSwipeStartHandler.bind(this));\r\n eventsEngine.on(config.$itemElement, SWIPE_UPDATE_EVENT_NAME, this._itemSwipeUpdateHandler.bind(this));\r\n eventsEngine.on(config.$itemElement, SWIPE_END_EVENT_NAME, this._itemSwipeEndHandler.bind(this))\r\n },\r\n _itemSwipeStartHandler: function(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n e.cancel = true;\r\n return\r\n }\r\n clearTimeout(this._list._inkRippleTimer);\r\n this._swipeStartHandler($itemElement, e)\r\n },\r\n _itemSwipeUpdateHandler: function(e) {\r\n var $itemElement = $(e.currentTarget);\r\n this._swipeUpdateHandler($itemElement, e)\r\n },\r\n _itemSwipeEndHandler: function(e) {\r\n var $itemElement = $(e.currentTarget);\r\n this._swipeEndHandler($itemElement, e);\r\n this._clearSwipeCache = true\r\n },\r\n beforeBag: noop,\r\n afterBag: noop,\r\n _commonOptions: function() {\r\n return {\r\n activeStateEnabled: this._list.option(\"activeStateEnabled\"),\r\n hoverStateEnabled: this._list.option(\"hoverStateEnabled\"),\r\n focusStateEnabled: this._list.option(\"focusStateEnabled\")\r\n }\r\n },\r\n modifyElement: function(config) {\r\n if (this._shouldHandleSwipe) {\r\n this._attachSwipeEvent(config);\r\n this._clearSwipeCache = true\r\n }\r\n },\r\n afterRender: noop,\r\n handleClick: noop,\r\n handleKeyboardEvents: noop,\r\n handleEnterPressing: noop,\r\n handleContextMenu: noop,\r\n _swipeStartHandler: noop,\r\n _swipeUpdateHandler: noop,\r\n _swipeEndHandler: noop,\r\n visibilityChange: noop,\r\n getExcludedSelectors: noop,\r\n dispose: noop\r\n});\r\nexport default EditDecorator;\r\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\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","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nvar BAD = 30; /* got a data error -- remain here until reset */\nvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nmodule.exports = function inflate_fast(strm, start) {\n var state;\n var _in; /* local strm.input */\n var last; /* have enough input while in < last */\n var _out; /* local strm.output */\n var beg; /* inflate()'s initial strm.output */\n var end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n var dmax; /* maximum distance from zlib header */\n//#endif\n var wsize; /* window size or zero if not using window */\n var whave; /* valid bytes in the window */\n var wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n var s_window; /* allocated sliding window, if wsize != 0 */\n var hold; /* local strm.hold */\n var bits; /* local strm.bits */\n var lcode; /* local strm.lencode */\n var dcode; /* local strm.distcode */\n var lmask; /* mask for first level of length codes */\n var dmask; /* mask for first level of distance codes */\n var here; /* retrieved table entry */\n var op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n var len; /* match length, unused bytes */\n var dist; /* match distance */\n var from; /* where to copy match from */\n var from_source;\n\n\n var input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n","var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nvar NumeralFormatter = function (numeralDecimalMark,\n numeralIntegerScale,\n numeralDecimalScale,\n numeralThousandsGroupStyle,\n numeralPositiveOnly,\n stripLeadingZeroes,\n prefix,\n signBeforePrefix,\n tailPrefix,\n delimiter) {\n var owner = this;\n\n owner.numeralDecimalMark = numeralDecimalMark || '.';\n owner.numeralIntegerScale = numeralIntegerScale > 0 ? numeralIntegerScale : 0;\n owner.numeralDecimalScale = numeralDecimalScale >= 0 ? numeralDecimalScale : 2;\n owner.numeralThousandsGroupStyle = numeralThousandsGroupStyle || NumeralFormatter.groupStyle.thousand;\n owner.numeralPositiveOnly = !!numeralPositiveOnly;\n owner.stripLeadingZeroes = stripLeadingZeroes !== false;\n owner.prefix = (prefix || prefix === '') ? prefix : '';\n owner.signBeforePrefix = !!signBeforePrefix;\n owner.tailPrefix = !!tailPrefix;\n owner.delimiter = (delimiter || delimiter === '') ? delimiter : ',';\n owner.delimiterRE = delimiter ? new RegExp('\\\\' + delimiter, 'g') : '';\n};\n\nNumeralFormatter.groupStyle = {\n thousand: 'thousand',\n lakh: 'lakh',\n wan: 'wan',\n none: 'none' \n};\n\nNumeralFormatter.prototype = {\n getRawValue: function (value) {\n return value.replace(this.delimiterRE, '').replace(this.numeralDecimalMark, '.');\n },\n\n format: function (value) {\n var owner = this, parts, partSign, partSignAndPrefix, partInteger, partDecimal = '';\n\n // strip alphabet letters\n value = value.replace(/[A-Za-z]/g, '')\n // replace the first decimal mark with reserved placeholder\n .replace(owner.numeralDecimalMark, 'M')\n\n // strip non numeric letters except minus and \"M\"\n // this is to ensure prefix has been stripped\n .replace(/[^\\dM-]/g, '')\n\n // replace the leading minus with reserved placeholder\n .replace(/^\\-/, 'N')\n\n // strip the other minus sign (if present)\n .replace(/\\-/g, '')\n\n // replace the minus sign (if present)\n .replace('N', owner.numeralPositiveOnly ? '' : '-')\n\n // replace decimal mark\n .replace('M', owner.numeralDecimalMark);\n\n // strip any leading zeros\n if (owner.stripLeadingZeroes) {\n value = value.replace(/^(-)?0+(?=\\d)/, '$1');\n }\n\n partSign = value.slice(0, 1) === '-' ? '-' : '';\n if (typeof owner.prefix != 'undefined') {\n if (owner.signBeforePrefix) {\n partSignAndPrefix = partSign + owner.prefix;\n } else {\n partSignAndPrefix = owner.prefix + partSign;\n }\n } else {\n partSignAndPrefix = partSign;\n }\n \n partInteger = value;\n\n if (value.indexOf(owner.numeralDecimalMark) >= 0) {\n parts = value.split(owner.numeralDecimalMark);\n partInteger = parts[0];\n partDecimal = owner.numeralDecimalMark + parts[1].slice(0, owner.numeralDecimalScale);\n }\n\n if(partSign === '-') {\n partInteger = partInteger.slice(1);\n }\n\n if (owner.numeralIntegerScale > 0) {\n partInteger = partInteger.slice(0, owner.numeralIntegerScale);\n }\n\n switch (owner.numeralThousandsGroupStyle) {\n case NumeralFormatter.groupStyle.lakh:\n partInteger = partInteger.replace(/(\\d)(?=(\\d\\d)+\\d$)/g, '$1' + owner.delimiter);\n\n break;\n\n case NumeralFormatter.groupStyle.wan:\n partInteger = partInteger.replace(/(\\d)(?=(\\d{4})+$)/g, '$1' + owner.delimiter);\n\n break;\n\n case NumeralFormatter.groupStyle.thousand:\n partInteger = partInteger.replace(/(\\d)(?=(\\d{3})+$)/g, '$1' + owner.delimiter);\n\n break;\n }\n\n if (owner.tailPrefix) {\n return partSign + partInteger.toString() + (owner.numeralDecimalScale > 0 ? partDecimal.toString() : '') + owner.prefix;\n }\n\n return partSignAndPrefix + partInteger.toString() + (owner.numeralDecimalScale > 0 ? partDecimal.toString() : '');\n }\n};\n\nvar NumeralFormatter_1 = NumeralFormatter;\n\nvar DateFormatter = function (datePattern, dateMin, dateMax) {\n var owner = this;\n\n owner.date = [];\n owner.blocks = [];\n owner.datePattern = datePattern;\n owner.dateMin = dateMin\n .split('-')\n .reverse()\n .map(function(x) {\n return parseInt(x, 10);\n });\n if (owner.dateMin.length === 2) owner.dateMin.unshift(0);\n\n owner.dateMax = dateMax\n .split('-')\n .reverse()\n .map(function(x) {\n return parseInt(x, 10);\n });\n if (owner.dateMax.length === 2) owner.dateMax.unshift(0);\n \n owner.initBlocks();\n};\n\nDateFormatter.prototype = {\n initBlocks: function () {\n var owner = this;\n owner.datePattern.forEach(function (value) {\n if (value === 'Y') {\n owner.blocks.push(4);\n } else {\n owner.blocks.push(2);\n }\n });\n },\n\n getISOFormatDate: function () {\n var owner = this,\n date = owner.date;\n\n return date[2] ? (\n date[2] + '-' + owner.addLeadingZero(date[1]) + '-' + owner.addLeadingZero(date[0])\n ) : '';\n },\n\n getBlocks: function () {\n return this.blocks;\n },\n\n getValidatedDate: function (value) {\n var owner = this, result = '';\n\n value = value.replace(/[^\\d]/g, '');\n\n owner.blocks.forEach(function (length, index) {\n if (value.length > 0) {\n var sub = value.slice(0, length),\n sub0 = sub.slice(0, 1),\n rest = value.slice(length);\n\n switch (owner.datePattern[index]) {\n case 'd':\n if (sub === '00') {\n sub = '01';\n } else if (parseInt(sub0, 10) > 3) {\n sub = '0' + sub0;\n } else if (parseInt(sub, 10) > 31) {\n sub = '31';\n }\n\n break;\n\n case 'm':\n if (sub === '00') {\n sub = '01';\n } else if (parseInt(sub0, 10) > 1) {\n sub = '0' + sub0;\n } else if (parseInt(sub, 10) > 12) {\n sub = '12';\n }\n\n break;\n }\n\n result += sub;\n\n // update remaining string\n value = rest;\n }\n });\n\n return this.getFixedDateString(result);\n },\n\n getFixedDateString: function (value) {\n var owner = this, datePattern = owner.datePattern, date = [],\n dayIndex = 0, monthIndex = 0, yearIndex = 0,\n dayStartIndex = 0, monthStartIndex = 0, yearStartIndex = 0,\n day, month, year, fullYearDone = false;\n\n // mm-dd || dd-mm\n if (value.length === 4 && datePattern[0].toLowerCase() !== 'y' && datePattern[1].toLowerCase() !== 'y') {\n dayStartIndex = datePattern[0] === 'd' ? 0 : 2;\n monthStartIndex = 2 - dayStartIndex;\n day = parseInt(value.slice(dayStartIndex, dayStartIndex + 2), 10);\n month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\n\n date = this.getFixedDate(day, month, 0);\n }\n\n // yyyy-mm-dd || yyyy-dd-mm || mm-dd-yyyy || dd-mm-yyyy || dd-yyyy-mm || mm-yyyy-dd\n if (value.length === 8) {\n datePattern.forEach(function (type, index) {\n switch (type) {\n case 'd':\n dayIndex = index;\n break;\n case 'm':\n monthIndex = index;\n break;\n default:\n yearIndex = index;\n break;\n }\n });\n\n yearStartIndex = yearIndex * 2;\n dayStartIndex = (dayIndex <= yearIndex) ? dayIndex * 2 : (dayIndex * 2 + 2);\n monthStartIndex = (monthIndex <= yearIndex) ? monthIndex * 2 : (monthIndex * 2 + 2);\n\n day = parseInt(value.slice(dayStartIndex, dayStartIndex + 2), 10);\n month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\n year = parseInt(value.slice(yearStartIndex, yearStartIndex + 4), 10);\n\n fullYearDone = value.slice(yearStartIndex, yearStartIndex + 4).length === 4;\n\n date = this.getFixedDate(day, month, year);\n }\n\n // mm-yy || yy-mm\n if (value.length === 4 && (datePattern[0] === 'y' || datePattern[1] === 'y')) {\n monthStartIndex = datePattern[0] === 'm' ? 0 : 2;\n yearStartIndex = 2 - monthStartIndex;\n month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\n year = parseInt(value.slice(yearStartIndex, yearStartIndex + 2), 10);\n\n fullYearDone = value.slice(yearStartIndex, yearStartIndex + 2).length === 2;\n\n date = [0, month, year];\n }\n\n // mm-yyyy || yyyy-mm\n if (value.length === 6 && (datePattern[0] === 'Y' || datePattern[1] === 'Y')) {\n monthStartIndex = datePattern[0] === 'm' ? 0 : 4;\n yearStartIndex = 2 - 0.5 * monthStartIndex;\n month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\n year = parseInt(value.slice(yearStartIndex, yearStartIndex + 4), 10);\n\n fullYearDone = value.slice(yearStartIndex, yearStartIndex + 4).length === 4;\n\n date = [0, month, year];\n }\n\n date = owner.getRangeFixedDate(date);\n owner.date = date;\n\n var result = date.length === 0 ? value : datePattern.reduce(function (previous, current) {\n switch (current) {\n case 'd':\n return previous + (date[0] === 0 ? '' : owner.addLeadingZero(date[0]));\n case 'm':\n return previous + (date[1] === 0 ? '' : owner.addLeadingZero(date[1]));\n case 'y':\n return previous + (fullYearDone ? owner.addLeadingZeroForYear(date[2], false) : '');\n case 'Y':\n return previous + (fullYearDone ? owner.addLeadingZeroForYear(date[2], true) : '');\n }\n }, '');\n\n return result;\n },\n\n getRangeFixedDate: function (date) {\n var owner = this,\n datePattern = owner.datePattern,\n dateMin = owner.dateMin || [],\n dateMax = owner.dateMax || [];\n\n if (!date.length || (dateMin.length < 3 && dateMax.length < 3)) return date;\n\n if (\n datePattern.find(function(x) {\n return x.toLowerCase() === 'y';\n }) &&\n date[2] === 0\n ) return date;\n\n if (dateMax.length && (dateMax[2] < date[2] || (\n dateMax[2] === date[2] && (dateMax[1] < date[1] || (\n dateMax[1] === date[1] && dateMax[0] < date[0]\n ))\n ))) return dateMax;\n\n if (dateMin.length && (dateMin[2] > date[2] || (\n dateMin[2] === date[2] && (dateMin[1] > date[1] || (\n dateMin[1] === date[1] && dateMin[0] > date[0]\n ))\n ))) return dateMin;\n\n return date;\n },\n\n getFixedDate: function (day, month, year) {\n day = Math.min(day, 31);\n month = Math.min(month, 12);\n year = parseInt((year || 0), 10);\n\n if ((month < 7 && month % 2 === 0) || (month > 8 && month % 2 === 1)) {\n day = Math.min(day, month === 2 ? (this.isLeapYear(year) ? 29 : 28) : 30);\n }\n\n return [day, month, year];\n },\n\n isLeapYear: function (year) {\n return ((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0);\n },\n\n addLeadingZero: function (number) {\n return (number < 10 ? '0' : '') + number;\n },\n\n addLeadingZeroForYear: function (number, fullYearMode) {\n if (fullYearMode) {\n return (number < 10 ? '000' : (number < 100 ? '00' : (number < 1000 ? '0' : ''))) + number;\n }\n\n return (number < 10 ? '0' : '') + number;\n }\n};\n\nvar DateFormatter_1 = DateFormatter;\n\nvar TimeFormatter = function (timePattern, timeFormat) {\n var owner = this;\n\n owner.time = [];\n owner.blocks = [];\n owner.timePattern = timePattern;\n owner.timeFormat = timeFormat;\n owner.initBlocks();\n};\n\nTimeFormatter.prototype = {\n initBlocks: function () {\n var owner = this;\n owner.timePattern.forEach(function () {\n owner.blocks.push(2);\n });\n },\n\n getISOFormatTime: function () {\n var owner = this,\n time = owner.time;\n\n return time[2] ? (\n owner.addLeadingZero(time[0]) + ':' + owner.addLeadingZero(time[1]) + ':' + owner.addLeadingZero(time[2])\n ) : '';\n },\n\n getBlocks: function () {\n return this.blocks;\n },\n\n getTimeFormatOptions: function () {\n var owner = this;\n if (String(owner.timeFormat) === '12') {\n return {\n maxHourFirstDigit: 1,\n maxHours: 12,\n maxMinutesFirstDigit: 5,\n maxMinutes: 60\n };\n }\n\n return {\n maxHourFirstDigit: 2,\n maxHours: 23,\n maxMinutesFirstDigit: 5,\n maxMinutes: 60\n };\n },\n\n getValidatedTime: function (value) {\n var owner = this, result = '';\n\n value = value.replace(/[^\\d]/g, '');\n\n var timeFormatOptions = owner.getTimeFormatOptions();\n\n owner.blocks.forEach(function (length, index) {\n if (value.length > 0) {\n var sub = value.slice(0, length),\n sub0 = sub.slice(0, 1),\n rest = value.slice(length);\n\n switch (owner.timePattern[index]) {\n\n case 'h':\n if (parseInt(sub0, 10) > timeFormatOptions.maxHourFirstDigit) {\n sub = '0' + sub0;\n } else if (parseInt(sub, 10) > timeFormatOptions.maxHours) {\n sub = timeFormatOptions.maxHours + '';\n }\n\n break;\n\n case 'm':\n case 's':\n if (parseInt(sub0, 10) > timeFormatOptions.maxMinutesFirstDigit) {\n sub = '0' + sub0;\n } else if (parseInt(sub, 10) > timeFormatOptions.maxMinutes) {\n sub = timeFormatOptions.maxMinutes + '';\n }\n break;\n }\n\n result += sub;\n\n // update remaining string\n value = rest;\n }\n });\n\n return this.getFixedTimeString(result);\n },\n\n getFixedTimeString: function (value) {\n var owner = this, timePattern = owner.timePattern, time = [],\n secondIndex = 0, minuteIndex = 0, hourIndex = 0,\n secondStartIndex = 0, minuteStartIndex = 0, hourStartIndex = 0,\n second, minute, hour;\n\n if (value.length === 6) {\n timePattern.forEach(function (type, index) {\n switch (type) {\n case 's':\n secondIndex = index * 2;\n break;\n case 'm':\n minuteIndex = index * 2;\n break;\n case 'h':\n hourIndex = index * 2;\n break;\n }\n });\n\n hourStartIndex = hourIndex;\n minuteStartIndex = minuteIndex;\n secondStartIndex = secondIndex;\n\n second = parseInt(value.slice(secondStartIndex, secondStartIndex + 2), 10);\n minute = parseInt(value.slice(minuteStartIndex, minuteStartIndex + 2), 10);\n hour = parseInt(value.slice(hourStartIndex, hourStartIndex + 2), 10);\n\n time = this.getFixedTime(hour, minute, second);\n }\n\n if (value.length === 4 && owner.timePattern.indexOf('s') < 0) {\n timePattern.forEach(function (type, index) {\n switch (type) {\n case 'm':\n minuteIndex = index * 2;\n break;\n case 'h':\n hourIndex = index * 2;\n break;\n }\n });\n\n hourStartIndex = hourIndex;\n minuteStartIndex = minuteIndex;\n\n second = 0;\n minute = parseInt(value.slice(minuteStartIndex, minuteStartIndex + 2), 10);\n hour = parseInt(value.slice(hourStartIndex, hourStartIndex + 2), 10);\n\n time = this.getFixedTime(hour, minute, second);\n }\n\n owner.time = time;\n\n return time.length === 0 ? value : timePattern.reduce(function (previous, current) {\n switch (current) {\n case 's':\n return previous + owner.addLeadingZero(time[2]);\n case 'm':\n return previous + owner.addLeadingZero(time[1]);\n case 'h':\n return previous + owner.addLeadingZero(time[0]);\n }\n }, '');\n },\n\n getFixedTime: function (hour, minute, second) {\n second = Math.min(parseInt(second || 0, 10), 60);\n minute = Math.min(minute, 60);\n hour = Math.min(hour, 60);\n\n return [hour, minute, second];\n },\n\n addLeadingZero: function (number) {\n return (number < 10 ? '0' : '') + number;\n }\n};\n\nvar TimeFormatter_1 = TimeFormatter;\n\nvar PhoneFormatter = function (formatter, delimiter) {\n var owner = this;\n\n owner.delimiter = (delimiter || delimiter === '') ? delimiter : ' ';\n owner.delimiterRE = delimiter ? new RegExp('\\\\' + delimiter, 'g') : '';\n\n owner.formatter = formatter;\n};\n\nPhoneFormatter.prototype = {\n setFormatter: function (formatter) {\n this.formatter = formatter;\n },\n\n format: function (phoneNumber) {\n var owner = this;\n\n owner.formatter.clear();\n\n // only keep number and +\n phoneNumber = phoneNumber.replace(/[^\\d+]/g, '');\n\n // strip non-leading +\n phoneNumber = phoneNumber.replace(/^\\+/, 'B').replace(/\\+/g, '').replace('B', '+');\n\n // strip delimiter\n phoneNumber = phoneNumber.replace(owner.delimiterRE, '');\n\n var result = '', current, validated = false;\n\n for (var i = 0, iMax = phoneNumber.length; i < iMax; i++) {\n current = owner.formatter.inputDigit(phoneNumber.charAt(i));\n\n // has ()- or space inside\n if (/[\\s()-]/g.test(current)) {\n result = current;\n\n validated = true;\n } else {\n if (!validated) {\n result = current;\n }\n // else: over length input\n // it turns to invalid number again\n }\n }\n\n // strip ()\n // e.g. US: 7161234567 returns (716) 123-4567\n result = result.replace(/[()]/g, '');\n // replace library delimiter with user customized delimiter\n result = result.replace(/[\\s-]/g, owner.delimiter);\n\n return result;\n }\n};\n\nvar PhoneFormatter_1 = PhoneFormatter;\n\nvar CreditCardDetector = {\n blocks: {\n uatp: [4, 5, 6],\n amex: [4, 6, 5],\n diners: [4, 6, 4],\n discover: [4, 4, 4, 4],\n mastercard: [4, 4, 4, 4],\n dankort: [4, 4, 4, 4],\n instapayment: [4, 4, 4, 4],\n jcb15: [4, 6, 5],\n jcb: [4, 4, 4, 4],\n maestro: [4, 4, 4, 4],\n visa: [4, 4, 4, 4],\n mir: [4, 4, 4, 4],\n unionPay: [4, 4, 4, 4],\n general: [4, 4, 4, 4]\n },\n\n re: {\n // starts with 1; 15 digits, not starts with 1800 (jcb card)\n uatp: /^(?!1800)1\\d{0,14}/,\n\n // starts with 34/37; 15 digits\n amex: /^3[47]\\d{0,13}/,\n\n // starts with 6011/65/644-649; 16 digits\n discover: /^(?:6011|65\\d{0,2}|64[4-9]\\d?)\\d{0,12}/,\n\n // starts with 300-305/309 or 36/38/39; 14 digits\n diners: /^3(?:0([0-5]|9)|[689]\\d?)\\d{0,11}/,\n\n // starts with 51-55/2221–2720; 16 digits\n mastercard: /^(5[1-5]\\d{0,2}|22[2-9]\\d{0,1}|2[3-7]\\d{0,2})\\d{0,12}/,\n\n // starts with 5019/4175/4571; 16 digits\n dankort: /^(5019|4175|4571)\\d{0,12}/,\n\n // starts with 637-639; 16 digits\n instapayment: /^63[7-9]\\d{0,13}/,\n\n // starts with 2131/1800; 15 digits\n jcb15: /^(?:2131|1800)\\d{0,11}/,\n\n // starts with 2131/1800/35; 16 digits\n jcb: /^(?:35\\d{0,2})\\d{0,12}/,\n\n // starts with 50/56-58/6304/67; 16 digits\n maestro: /^(?:5[0678]\\d{0,2}|6304|67\\d{0,2})\\d{0,12}/,\n\n // starts with 22; 16 digits\n mir: /^220[0-4]\\d{0,12}/,\n\n // starts with 4; 16 digits\n visa: /^4\\d{0,15}/,\n\n // starts with 62/81; 16 digits\n unionPay: /^(62|81)\\d{0,14}/\n },\n\n getStrictBlocks: function (block) {\n var total = block.reduce(function (prev, current) {\n return prev + current;\n }, 0);\n\n return block.concat(19 - total);\n },\n\n getInfo: function (value, strictMode) {\n var blocks = CreditCardDetector.blocks,\n re = CreditCardDetector.re;\n\n // Some credit card can have up to 19 digits number.\n // Set strictMode to true will remove the 16 max-length restrain,\n // however, I never found any website validate card number like\n // this, hence probably you don't want to enable this option.\n strictMode = !!strictMode;\n\n for (var key in re) {\n if (re[key].test(value)) {\n var matchedBlocks = blocks[key];\n return {\n type: key,\n blocks: strictMode ? this.getStrictBlocks(matchedBlocks) : matchedBlocks\n };\n }\n }\n\n return {\n type: 'unknown',\n blocks: strictMode ? this.getStrictBlocks(blocks.general) : blocks.general\n };\n }\n};\n\nvar CreditCardDetector_1 = CreditCardDetector;\n\nvar Util = {\n noop: function () {\n },\n\n strip: function (value, re) {\n return value.replace(re, '');\n },\n\n getPostDelimiter: function (value, delimiter, delimiters) {\n // single delimiter\n if (delimiters.length === 0) {\n return value.slice(-delimiter.length) === delimiter ? delimiter : '';\n }\n\n // multiple delimiters\n var matchedDelimiter = '';\n delimiters.forEach(function (current) {\n if (value.slice(-current.length) === current) {\n matchedDelimiter = current;\n }\n });\n\n return matchedDelimiter;\n },\n\n getDelimiterREByDelimiter: function (delimiter) {\n return new RegExp(delimiter.replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1'), 'g');\n },\n\n getNextCursorPosition: function (prevPos, oldValue, newValue, delimiter, delimiters) {\n // If cursor was at the end of value, just place it back.\n // Because new value could contain additional chars.\n if (oldValue.length === prevPos) {\n return newValue.length;\n }\n\n return prevPos + this.getPositionOffset(prevPos, oldValue, newValue, delimiter ,delimiters);\n },\n\n getPositionOffset: function (prevPos, oldValue, newValue, delimiter, delimiters) {\n var oldRawValue, newRawValue, lengthOffset;\n\n oldRawValue = this.stripDelimiters(oldValue.slice(0, prevPos), delimiter, delimiters);\n newRawValue = this.stripDelimiters(newValue.slice(0, prevPos), delimiter, delimiters);\n lengthOffset = oldRawValue.length - newRawValue.length;\n\n return (lengthOffset !== 0) ? (lengthOffset / Math.abs(lengthOffset)) : 0;\n },\n\n stripDelimiters: function (value, delimiter, delimiters) {\n var owner = this;\n\n // single delimiter\n if (delimiters.length === 0) {\n var delimiterRE = delimiter ? owner.getDelimiterREByDelimiter(delimiter) : '';\n\n return value.replace(delimiterRE, '');\n }\n\n // multiple delimiters\n delimiters.forEach(function (current) {\n current.split('').forEach(function (letter) {\n value = value.replace(owner.getDelimiterREByDelimiter(letter), '');\n });\n });\n\n return value;\n },\n\n headStr: function (str, length) {\n return str.slice(0, length);\n },\n\n getMaxLength: function (blocks) {\n return blocks.reduce(function (previous, current) {\n return previous + current;\n }, 0);\n },\n\n // strip prefix\n // Before type | After type | Return value\n // PEFIX-... | PEFIX-... | ''\n // PREFIX-123 | PEFIX-123 | 123\n // PREFIX-123 | PREFIX-23 | 23\n // PREFIX-123 | PREFIX-1234 | 1234\n getPrefixStrippedValue: function (value, prefix, prefixLength, prevResult, delimiter, delimiters, noImmediatePrefix, tailPrefix, signBeforePrefix) {\n // No prefix\n if (prefixLength === 0) {\n return value;\n }\n\n // Value is prefix\n if (value === prefix && value !== '') {\n return '';\n }\n\n if (signBeforePrefix && (value.slice(0, 1) == '-')) {\n var prev = (prevResult.slice(0, 1) == '-') ? prevResult.slice(1) : prevResult;\n return '-' + this.getPrefixStrippedValue(value.slice(1), prefix, prefixLength, prev, delimiter, delimiters, noImmediatePrefix, tailPrefix, signBeforePrefix);\n }\n\n // Pre result prefix string does not match pre-defined prefix\n if (prevResult.slice(0, prefixLength) !== prefix && !tailPrefix) {\n // Check if the first time user entered something\n if (noImmediatePrefix && !prevResult && value) return value;\n return '';\n } else if (prevResult.slice(-prefixLength) !== prefix && tailPrefix) {\n // Check if the first time user entered something\n if (noImmediatePrefix && !prevResult && value) return value;\n return '';\n }\n\n var prevValue = this.stripDelimiters(prevResult, delimiter, delimiters);\n\n // New value has issue, someone typed in between prefix letters\n // Revert to pre value\n if (value.slice(0, prefixLength) !== prefix && !tailPrefix) {\n return prevValue.slice(prefixLength);\n } else if (value.slice(-prefixLength) !== prefix && tailPrefix) {\n return prevValue.slice(0, -prefixLength - 1);\n }\n\n // No issue, strip prefix for new value\n return tailPrefix ? value.slice(0, -prefixLength) : value.slice(prefixLength);\n },\n\n getFirstDiffIndex: function (prev, current) {\n var index = 0;\n\n while (prev.charAt(index) === current.charAt(index)) {\n if (prev.charAt(index++) === '') {\n return -1;\n }\n }\n\n return index;\n },\n\n getFormattedValue: function (value, blocks, blocksLength, delimiter, delimiters, delimiterLazyShow) {\n var result = '',\n multipleDelimiters = delimiters.length > 0,\n currentDelimiter = '';\n\n // no options, normal input\n if (blocksLength === 0) {\n return value;\n }\n\n blocks.forEach(function (length, index) {\n if (value.length > 0) {\n var sub = value.slice(0, length),\n rest = value.slice(length);\n\n if (multipleDelimiters) {\n currentDelimiter = delimiters[delimiterLazyShow ? (index - 1) : index] || currentDelimiter;\n } else {\n currentDelimiter = delimiter;\n }\n\n if (delimiterLazyShow) {\n if (index > 0) {\n result += currentDelimiter;\n }\n\n result += sub;\n } else {\n result += sub;\n\n if (sub.length === length && index < blocksLength - 1) {\n result += currentDelimiter;\n }\n }\n\n // update remaining string\n value = rest;\n }\n });\n\n return result;\n },\n\n // move cursor to the end\n // the first time user focuses on an input with prefix\n fixPrefixCursor: function (el, prefix, delimiter, delimiters) {\n if (!el) {\n return;\n }\n\n var val = el.value,\n appendix = delimiter || (delimiters[0] || ' ');\n\n if (!el.setSelectionRange || !prefix || (prefix.length + appendix.length) <= val.length) {\n return;\n }\n\n var len = val.length * 2;\n\n // set timeout to avoid blink\n setTimeout(function () {\n el.setSelectionRange(len, len);\n }, 1);\n },\n\n // Check if input field is fully selected\n checkFullSelection: function(value) {\n try {\n var selection = window.getSelection() || document.getSelection() || {};\n return selection.toString().length === value.length;\n } catch (ex) {\n // Ignore\n }\n\n return false;\n },\n\n setSelection: function (element, position, doc) {\n if (element !== this.getActiveElement(doc)) {\n return;\n }\n\n // cursor is already in the end\n if (element && element.value.length <= position) {\n return;\n }\n\n if (element.createTextRange) {\n var range = element.createTextRange();\n\n range.move('character', position);\n range.select();\n } else {\n try {\n element.setSelectionRange(position, position);\n } catch (e) {\n // eslint-disable-next-line\n console.warn('The input element type does not support selection');\n }\n }\n },\n\n getActiveElement: function(parent) {\n var activeElement = parent.activeElement;\n if (activeElement && activeElement.shadowRoot) {\n return this.getActiveElement(activeElement.shadowRoot);\n }\n return activeElement;\n },\n\n isAndroid: function () {\n return navigator && /android/i.test(navigator.userAgent);\n },\n\n // On Android chrome, the keyup and keydown events\n // always return key code 229 as a composition that\n // buffers the user’s keystrokes\n // see https://github.com/nosir/cleave.js/issues/147\n isAndroidBackspaceKeydown: function (lastInputValue, currentInputValue) {\n if (!this.isAndroid() || !lastInputValue || !currentInputValue) {\n return false;\n }\n\n return currentInputValue === lastInputValue.slice(0, -1);\n }\n};\n\nvar Util_1 = Util;\n\n/**\n * Props Assignment\n *\n * Separate this, so react module can share the usage\n */\nvar DefaultProperties = {\n // Maybe change to object-assign\n // for now just keep it as simple\n assign: function (target, opts) {\n target = target || {};\n opts = opts || {};\n\n // credit card\n target.creditCard = !!opts.creditCard;\n target.creditCardStrictMode = !!opts.creditCardStrictMode;\n target.creditCardType = '';\n target.onCreditCardTypeChanged = opts.onCreditCardTypeChanged || (function () {});\n\n // phone\n target.phone = !!opts.phone;\n target.phoneRegionCode = opts.phoneRegionCode || 'AU';\n target.phoneFormatter = {};\n\n // time\n target.time = !!opts.time;\n target.timePattern = opts.timePattern || ['h', 'm', 's'];\n target.timeFormat = opts.timeFormat || '24';\n target.timeFormatter = {};\n\n // date\n target.date = !!opts.date;\n target.datePattern = opts.datePattern || ['d', 'm', 'Y'];\n target.dateMin = opts.dateMin || '';\n target.dateMax = opts.dateMax || '';\n target.dateFormatter = {};\n\n // numeral\n target.numeral = !!opts.numeral;\n target.numeralIntegerScale = opts.numeralIntegerScale > 0 ? opts.numeralIntegerScale : 0;\n target.numeralDecimalScale = opts.numeralDecimalScale >= 0 ? opts.numeralDecimalScale : 2;\n target.numeralDecimalMark = opts.numeralDecimalMark || '.';\n target.numeralThousandsGroupStyle = opts.numeralThousandsGroupStyle || 'thousand';\n target.numeralPositiveOnly = !!opts.numeralPositiveOnly;\n target.stripLeadingZeroes = opts.stripLeadingZeroes !== false;\n target.signBeforePrefix = !!opts.signBeforePrefix;\n target.tailPrefix = !!opts.tailPrefix;\n\n // others\n target.swapHiddenInput = !!opts.swapHiddenInput;\n \n target.numericOnly = target.creditCard || target.date || !!opts.numericOnly;\n\n target.uppercase = !!opts.uppercase;\n target.lowercase = !!opts.lowercase;\n\n target.prefix = (target.creditCard || target.date) ? '' : (opts.prefix || '');\n target.noImmediatePrefix = !!opts.noImmediatePrefix;\n target.prefixLength = target.prefix.length;\n target.rawValueTrimPrefix = !!opts.rawValueTrimPrefix;\n target.copyDelimiter = !!opts.copyDelimiter;\n\n target.initValue = (opts.initValue !== undefined && opts.initValue !== null) ? opts.initValue.toString() : '';\n\n target.delimiter =\n (opts.delimiter || opts.delimiter === '') ? opts.delimiter :\n (opts.date ? '/' :\n (opts.time ? ':' :\n (opts.numeral ? ',' :\n (opts.phone ? ' ' :\n ' '))));\n target.delimiterLength = target.delimiter.length;\n target.delimiterLazyShow = !!opts.delimiterLazyShow;\n target.delimiters = opts.delimiters || [];\n\n target.blocks = opts.blocks || [];\n target.blocksLength = target.blocks.length;\n\n target.root = (typeof commonjsGlobal === 'object' && commonjsGlobal) ? commonjsGlobal : window;\n target.document = opts.document || target.root.document;\n\n target.maxLength = 0;\n\n target.backspace = false;\n target.result = '';\n\n target.onValueChanged = opts.onValueChanged || (function () {});\n\n return target;\n }\n};\n\nvar DefaultProperties_1 = DefaultProperties;\n\n/**\n * Construct a new Cleave instance by passing the configuration object\n *\n * @param {String | HTMLElement} element\n * @param {Object} opts\n */\nvar Cleave = function (element, opts) {\n var owner = this;\n var hasMultipleElements = false;\n\n if (typeof element === 'string') {\n owner.element = document.querySelector(element);\n hasMultipleElements = document.querySelectorAll(element).length > 1;\n } else {\n if (typeof element.length !== 'undefined' && element.length > 0) {\n owner.element = element[0];\n hasMultipleElements = element.length > 1;\n } else {\n owner.element = element;\n }\n }\n\n if (!owner.element) {\n throw new Error('[cleave.js] Please check the element');\n }\n\n if (hasMultipleElements) {\n try {\n // eslint-disable-next-line\n console.warn('[cleave.js] Multiple input fields matched, cleave.js will only take the first one.');\n } catch (e) {\n // Old IE\n }\n }\n\n opts.initValue = owner.element.value;\n\n owner.properties = Cleave.DefaultProperties.assign({}, opts);\n\n owner.init();\n};\n\nCleave.prototype = {\n init: function () {\n var owner = this, pps = owner.properties;\n\n // no need to use this lib\n if (!pps.numeral && !pps.phone && !pps.creditCard && !pps.time && !pps.date && (pps.blocksLength === 0 && !pps.prefix)) {\n owner.onInput(pps.initValue);\n\n return;\n }\n\n pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\n\n owner.isAndroid = Cleave.Util.isAndroid();\n owner.lastInputValue = '';\n owner.isBackward = '';\n\n owner.onChangeListener = owner.onChange.bind(owner);\n owner.onKeyDownListener = owner.onKeyDown.bind(owner);\n owner.onFocusListener = owner.onFocus.bind(owner);\n owner.onCutListener = owner.onCut.bind(owner);\n owner.onCopyListener = owner.onCopy.bind(owner);\n\n owner.initSwapHiddenInput();\n\n owner.element.addEventListener('input', owner.onChangeListener);\n owner.element.addEventListener('keydown', owner.onKeyDownListener);\n owner.element.addEventListener('focus', owner.onFocusListener);\n owner.element.addEventListener('cut', owner.onCutListener);\n owner.element.addEventListener('copy', owner.onCopyListener);\n\n\n owner.initPhoneFormatter();\n owner.initDateFormatter();\n owner.initTimeFormatter();\n owner.initNumeralFormatter();\n\n // avoid touch input field if value is null\n // otherwise Firefox will add red box-shadow for \n if (pps.initValue || (pps.prefix && !pps.noImmediatePrefix)) {\n owner.onInput(pps.initValue);\n }\n },\n\n initSwapHiddenInput: function () {\n var owner = this, pps = owner.properties;\n if (!pps.swapHiddenInput) return;\n\n var inputFormatter = owner.element.cloneNode(true);\n owner.element.parentNode.insertBefore(inputFormatter, owner.element);\n\n owner.elementSwapHidden = owner.element;\n owner.elementSwapHidden.type = 'hidden';\n\n owner.element = inputFormatter;\n owner.element.id = '';\n },\n\n initNumeralFormatter: function () {\n var owner = this, pps = owner.properties;\n\n if (!pps.numeral) {\n return;\n }\n\n pps.numeralFormatter = new Cleave.NumeralFormatter(\n pps.numeralDecimalMark,\n pps.numeralIntegerScale,\n pps.numeralDecimalScale,\n pps.numeralThousandsGroupStyle,\n pps.numeralPositiveOnly,\n pps.stripLeadingZeroes,\n pps.prefix,\n pps.signBeforePrefix,\n pps.tailPrefix,\n pps.delimiter\n );\n },\n\n initTimeFormatter: function() {\n var owner = this, pps = owner.properties;\n\n if (!pps.time) {\n return;\n }\n\n pps.timeFormatter = new Cleave.TimeFormatter(pps.timePattern, pps.timeFormat);\n pps.blocks = pps.timeFormatter.getBlocks();\n pps.blocksLength = pps.blocks.length;\n pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\n },\n\n initDateFormatter: function () {\n var owner = this, pps = owner.properties;\n\n if (!pps.date) {\n return;\n }\n\n pps.dateFormatter = new Cleave.DateFormatter(pps.datePattern, pps.dateMin, pps.dateMax);\n pps.blocks = pps.dateFormatter.getBlocks();\n pps.blocksLength = pps.blocks.length;\n pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\n },\n\n initPhoneFormatter: function () {\n var owner = this, pps = owner.properties;\n\n if (!pps.phone) {\n return;\n }\n\n // Cleave.AsYouTypeFormatter should be provided by\n // external google closure lib\n try {\n pps.phoneFormatter = new Cleave.PhoneFormatter(\n new pps.root.Cleave.AsYouTypeFormatter(pps.phoneRegionCode),\n pps.delimiter\n );\n } catch (ex) {\n throw new Error('[cleave.js] Please include phone-type-formatter.{country}.js lib');\n }\n },\n\n onKeyDown: function (event) {\n var owner = this,\n charCode = event.which || event.keyCode;\n\n owner.lastInputValue = owner.element.value;\n owner.isBackward = charCode === 8;\n },\n\n onChange: function (event) {\n var owner = this, pps = owner.properties,\n Util = Cleave.Util;\n\n owner.isBackward = owner.isBackward || event.inputType === 'deleteContentBackward';\n\n var postDelimiter = Util.getPostDelimiter(owner.lastInputValue, pps.delimiter, pps.delimiters);\n\n if (owner.isBackward && postDelimiter) {\n pps.postDelimiterBackspace = postDelimiter;\n } else {\n pps.postDelimiterBackspace = false;\n }\n\n this.onInput(this.element.value);\n },\n\n onFocus: function () {\n var owner = this,\n pps = owner.properties;\n owner.lastInputValue = owner.element.value;\n\n if (pps.prefix && pps.noImmediatePrefix && !owner.element.value) {\n this.onInput(pps.prefix);\n }\n\n Cleave.Util.fixPrefixCursor(owner.element, pps.prefix, pps.delimiter, pps.delimiters);\n },\n\n onCut: function (e) {\n if (!Cleave.Util.checkFullSelection(this.element.value)) return;\n this.copyClipboardData(e);\n this.onInput('');\n },\n\n onCopy: function (e) {\n if (!Cleave.Util.checkFullSelection(this.element.value)) return;\n this.copyClipboardData(e);\n },\n\n copyClipboardData: function (e) {\n var owner = this,\n pps = owner.properties,\n Util = Cleave.Util,\n inputValue = owner.element.value,\n textToCopy = '';\n\n if (!pps.copyDelimiter) {\n textToCopy = Util.stripDelimiters(inputValue, pps.delimiter, pps.delimiters);\n } else {\n textToCopy = inputValue;\n }\n\n try {\n if (e.clipboardData) {\n e.clipboardData.setData('Text', textToCopy);\n } else {\n window.clipboardData.setData('Text', textToCopy);\n }\n\n e.preventDefault();\n } catch (ex) {\n // empty\n }\n },\n\n onInput: function (value) {\n var owner = this, pps = owner.properties,\n Util = Cleave.Util;\n\n // case 1: delete one more character \"4\"\n // 1234*| -> hit backspace -> 123|\n // case 2: last character is not delimiter which is:\n // 12|34* -> hit backspace -> 1|34*\n // note: no need to apply this for numeral mode\n var postDelimiterAfter = Util.getPostDelimiter(value, pps.delimiter, pps.delimiters);\n if (!pps.numeral && pps.postDelimiterBackspace && !postDelimiterAfter) {\n value = Util.headStr(value, value.length - pps.postDelimiterBackspace.length);\n }\n\n // phone formatter\n if (pps.phone) {\n if (pps.prefix && (!pps.noImmediatePrefix || value.length)) {\n pps.result = pps.prefix + pps.phoneFormatter.format(value).slice(pps.prefix.length);\n } else {\n pps.result = pps.phoneFormatter.format(value);\n }\n owner.updateValueState();\n\n return;\n }\n\n // numeral formatter\n if (pps.numeral) {\n // Do not show prefix when noImmediatePrefix is specified\n // This mostly because we need to show user the native input placeholder\n if (pps.prefix && pps.noImmediatePrefix && value.length === 0) {\n pps.result = '';\n } else {\n pps.result = pps.numeralFormatter.format(value);\n }\n owner.updateValueState();\n\n return;\n }\n\n // date\n if (pps.date) {\n value = pps.dateFormatter.getValidatedDate(value);\n }\n\n // time\n if (pps.time) {\n value = pps.timeFormatter.getValidatedTime(value);\n }\n\n // strip delimiters\n value = Util.stripDelimiters(value, pps.delimiter, pps.delimiters);\n\n // strip prefix\n value = Util.getPrefixStrippedValue(value, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters, pps.noImmediatePrefix, pps.tailPrefix, pps.signBeforePrefix);\n\n // strip non-numeric characters\n value = pps.numericOnly ? Util.strip(value, /[^\\d]/g) : value;\n\n // convert case\n value = pps.uppercase ? value.toUpperCase() : value;\n value = pps.lowercase ? value.toLowerCase() : value;\n\n // prevent from showing prefix when no immediate option enabled with empty input value\n if (pps.prefix) {\n if (pps.tailPrefix) {\n value = value + pps.prefix;\n } else {\n value = pps.prefix + value;\n }\n\n\n // no blocks specified, no need to do formatting\n if (pps.blocksLength === 0) {\n pps.result = value;\n owner.updateValueState();\n\n return;\n }\n }\n\n // update credit card props\n if (pps.creditCard) {\n owner.updateCreditCardPropsByValue(value);\n }\n\n // strip over length characters\n value = Util.headStr(value, pps.maxLength);\n\n // apply blocks\n pps.result = Util.getFormattedValue(\n value,\n pps.blocks, pps.blocksLength,\n pps.delimiter, pps.delimiters, pps.delimiterLazyShow\n );\n\n owner.updateValueState();\n },\n\n updateCreditCardPropsByValue: function (value) {\n var owner = this, pps = owner.properties,\n Util = Cleave.Util,\n creditCardInfo;\n\n // At least one of the first 4 characters has changed\n if (Util.headStr(pps.result, 4) === Util.headStr(value, 4)) {\n return;\n }\n\n creditCardInfo = Cleave.CreditCardDetector.getInfo(value, pps.creditCardStrictMode);\n\n pps.blocks = creditCardInfo.blocks;\n pps.blocksLength = pps.blocks.length;\n pps.maxLength = Util.getMaxLength(pps.blocks);\n\n // credit card type changed\n if (pps.creditCardType !== creditCardInfo.type) {\n pps.creditCardType = creditCardInfo.type;\n\n pps.onCreditCardTypeChanged.call(owner, pps.creditCardType);\n }\n },\n\n updateValueState: function () {\n var owner = this,\n Util = Cleave.Util,\n pps = owner.properties;\n\n if (!owner.element) {\n return;\n }\n\n var endPos = owner.element.selectionEnd;\n var oldValue = owner.element.value;\n var newValue = pps.result;\n\n endPos = Util.getNextCursorPosition(endPos, oldValue, newValue, pps.delimiter, pps.delimiters);\n\n // fix Android browser type=\"text\" input field\n // cursor not jumping issue\n if (owner.isAndroid) {\n window.setTimeout(function () {\n owner.element.value = newValue;\n Util.setSelection(owner.element, endPos, pps.document, false);\n owner.callOnValueChanged();\n }, 1);\n\n return;\n }\n\n owner.element.value = newValue;\n if (pps.swapHiddenInput) owner.elementSwapHidden.value = owner.getRawValue();\n\n Util.setSelection(owner.element, endPos, pps.document, false);\n owner.callOnValueChanged();\n },\n\n callOnValueChanged: function () {\n var owner = this,\n pps = owner.properties;\n\n pps.onValueChanged.call(owner, {\n target: {\n name: owner.element.name,\n value: pps.result,\n rawValue: owner.getRawValue()\n }\n });\n },\n\n setPhoneRegionCode: function (phoneRegionCode) {\n var owner = this, pps = owner.properties;\n\n pps.phoneRegionCode = phoneRegionCode;\n owner.initPhoneFormatter();\n owner.onChange();\n },\n\n setRawValue: function (value) {\n var owner = this, pps = owner.properties;\n\n value = value !== undefined && value !== null ? value.toString() : '';\n\n if (pps.numeral) {\n value = value.replace('.', pps.numeralDecimalMark);\n }\n\n pps.postDelimiterBackspace = false;\n\n owner.element.value = value;\n owner.onInput(value);\n },\n\n getRawValue: function () {\n var owner = this,\n pps = owner.properties,\n Util = Cleave.Util,\n rawValue = owner.element.value;\n\n if (pps.rawValueTrimPrefix) {\n rawValue = Util.getPrefixStrippedValue(rawValue, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters, pps.noImmediatePrefix, pps.tailPrefix, pps.signBeforePrefix);\n }\n\n if (pps.numeral) {\n rawValue = pps.numeralFormatter.getRawValue(rawValue);\n } else {\n rawValue = Util.stripDelimiters(rawValue, pps.delimiter, pps.delimiters);\n }\n\n return rawValue;\n },\n\n getISOFormatDate: function () {\n var owner = this,\n pps = owner.properties;\n\n return pps.date ? pps.dateFormatter.getISOFormatDate() : '';\n },\n\n getISOFormatTime: function () {\n var owner = this,\n pps = owner.properties;\n\n return pps.time ? pps.timeFormatter.getISOFormatTime() : '';\n },\n\n getFormattedValue: function () {\n return this.element.value;\n },\n\n destroy: function () {\n var owner = this;\n\n owner.element.removeEventListener('input', owner.onChangeListener);\n owner.element.removeEventListener('keydown', owner.onKeyDownListener);\n owner.element.removeEventListener('focus', owner.onFocusListener);\n owner.element.removeEventListener('cut', owner.onCutListener);\n owner.element.removeEventListener('copy', owner.onCopyListener);\n },\n\n toString: function () {\n return '[Cleave Object]';\n }\n};\n\nCleave.NumeralFormatter = NumeralFormatter_1;\nCleave.DateFormatter = DateFormatter_1;\nCleave.TimeFormatter = TimeFormatter_1;\nCleave.PhoneFormatter = PhoneFormatter_1;\nCleave.CreditCardDetector = CreditCardDetector_1;\nCleave.Util = Util_1;\nCleave.DefaultProperties = DefaultProperties_1;\n\n// for angular directive\n((typeof commonjsGlobal === 'object' && commonjsGlobal) ? commonjsGlobal : window)['Cleave'] = Cleave;\n\n// CommonJS\nvar Cleave_1 = Cleave;\n\nexport default Cleave_1;\n","/**\r\n * DevExtreme (esm/localization/ldml/date.format.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport numberLocalization from \"../number\";\r\nvar ARABIC_COMMA = \"\\u060c\";\r\nvar FORMAT_SEPARATORS = \" .,:;/\\\\<>()-[]\" + ARABIC_COMMA;\r\nvar AM_PM_PATTERN = \". m.\";\r\nvar checkDigit = function(char) {\r\n var code = char && numberLocalization.convertDigits(char, false).charCodeAt(0);\r\n var zeroCode = numberLocalization.convertDigits(\"0\", false).charCodeAt(0);\r\n return zeroCode <= code && code < zeroCode + 10\r\n};\r\nvar checkPatternContinue = function(text, patterns, index, isDigit) {\r\n var char = text[index];\r\n var nextChar = text[index + 1];\r\n if (!isDigit) {\r\n if (\".\" === char || \" \" === char && text.slice(index - 1, index + 3) === AM_PM_PATTERN) {\r\n return true\r\n }\r\n if (\"-\" === char && !checkDigit(nextChar)) {\r\n return true\r\n }\r\n }\r\n var isDigitChanged = isDigit && patterns.some(pattern => text[index] !== pattern[index]);\r\n return FORMAT_SEPARATORS.indexOf(char) < 0 && isDigit === checkDigit(char) && (!isDigit || isDigitChanged)\r\n};\r\nvar getPatternStartIndex = function(defaultPattern, index) {\r\n if (!checkDigit(defaultPattern[index])) {\r\n while (index > 0 && !checkDigit(defaultPattern[index - 1]) && (\".\" === defaultPattern[index - 1] || FORMAT_SEPARATORS.indexOf(defaultPattern[index - 1]) < 0)) {\r\n index--\r\n }\r\n }\r\n return index\r\n};\r\nvar getDifference = function(defaultPattern, patterns, processedIndexes, isDigit) {\r\n var i = 0;\r\n var result = [];\r\n var patternsFilter = function(pattern) {\r\n return defaultPattern[i] !== pattern[i] && (void 0 === isDigit || checkDigit(defaultPattern[i]) === isDigit)\r\n };\r\n if (!Array.isArray(patterns)) {\r\n patterns = [patterns]\r\n }\r\n for (i = 0; i < defaultPattern.length; i++) {\r\n if (processedIndexes.indexOf(i) < 0 && patterns.filter(patternsFilter).length) {\r\n i = getPatternStartIndex(defaultPattern, i);\r\n do {\r\n isDigit = checkDigit(defaultPattern[i]);\r\n if (!result.length && !isDigit && checkDigit(patterns[0][i])) {\r\n break\r\n }\r\n result.push(i);\r\n processedIndexes.unshift(i);\r\n i++\r\n } while (defaultPattern[i] && checkPatternContinue(defaultPattern, patterns, i, isDigit));\r\n break\r\n }\r\n }\r\n if (1 === result.length && (\"0\" === defaultPattern[processedIndexes[0] - 1] || \"\\u0660\" === defaultPattern[processedIndexes[0] - 1])) {\r\n processedIndexes.unshift(processedIndexes[0] - 1)\r\n }\r\n return result\r\n};\r\nvar replaceCharsCore = function(pattern, indexes, char, patternPositions) {\r\n var baseCharIndex = indexes[0];\r\n var patternIndex = baseCharIndex < patternPositions.length ? patternPositions[baseCharIndex] : baseCharIndex;\r\n indexes.forEach((function(_, index) {\r\n pattern = pattern.substr(0, patternIndex + index) + (char.length > 1 ? char[index] : char) + pattern.substr(patternIndex + index + 1)\r\n }));\r\n if (1 === indexes.length) {\r\n pattern = pattern.replace(\"0\" + char, char + char);\r\n pattern = pattern.replace(\"\\u0660\" + char, char + char)\r\n }\r\n return pattern\r\n};\r\nvar replaceChars = function(pattern, indexes, char, patternPositions) {\r\n var i;\r\n var index;\r\n var patternIndex;\r\n if (!checkDigit(pattern[indexes[0]] || \"0\")) {\r\n var letterCount = Math.max(indexes.length <= 3 ? 3 : 4, char.length);\r\n while (indexes.length > letterCount) {\r\n index = indexes.pop();\r\n patternIndex = patternPositions[index];\r\n patternPositions[index] = -1;\r\n for (i = index + 1; i < patternPositions.length; i++) {\r\n patternPositions[i]--\r\n }\r\n pattern = pattern.substr(0, patternIndex) + pattern.substr(patternIndex + 1)\r\n }\r\n index = indexes[indexes.length - 1] + 1, patternIndex = index < patternPositions.length ? patternPositions[index] : index;\r\n while (indexes.length < letterCount) {\r\n indexes.push(indexes[indexes.length - 1] + 1);\r\n for (i = index; i < patternPositions.length; i++) {\r\n patternPositions[i]++\r\n }\r\n pattern = pattern.substr(0, patternIndex) + \" \" + pattern.substr(patternIndex)\r\n }\r\n }\r\n pattern = replaceCharsCore(pattern, indexes, char, patternPositions);\r\n return pattern\r\n};\r\nvar formatValue = function(value, formatter) {\r\n if (Array.isArray(value)) {\r\n return value.map((function(value) {\r\n return (formatter(value) || \"\").toString()\r\n }))\r\n }\r\n return (formatter(value) || \"\").toString()\r\n};\r\nvar ESCAPE_CHARS_REGEXP = /[a-zA-Z]/g;\r\nvar escapeChars = function(pattern, defaultPattern, processedIndexes, patternPositions) {\r\n var escapeIndexes = defaultPattern.split(\"\").map((function(char, index) {\r\n if (processedIndexes.indexOf(index) < 0 && (char.match(ESCAPE_CHARS_REGEXP) || \"'\" === char)) {\r\n return patternPositions[index]\r\n }\r\n return -1\r\n }));\r\n pattern = pattern.split(\"\").map((function(char, index) {\r\n var result = char;\r\n var isCurrentCharEscaped = escapeIndexes.indexOf(index) >= 0;\r\n var isPrevCharEscaped = index > 0 && escapeIndexes.indexOf(index - 1) >= 0;\r\n var isNextCharEscaped = escapeIndexes.indexOf(index + 1) >= 0;\r\n if (isCurrentCharEscaped) {\r\n if (!isPrevCharEscaped) {\r\n result = \"'\" + result\r\n }\r\n if (!isNextCharEscaped) {\r\n result += \"'\"\r\n }\r\n }\r\n return result\r\n })).join(\"\");\r\n return pattern\r\n};\r\nexport var getFormat = function(formatter) {\r\n var processedIndexes = [];\r\n var defaultPattern = formatValue(new Date(2009, 8, 8, 6, 5, 4), formatter);\r\n var patternPositions = defaultPattern.split(\"\").map((function(_, index) {\r\n return index\r\n }));\r\n var result = defaultPattern;\r\n var replacedPatterns = {};\r\n var datePatterns = [{\r\n date: new Date(2009, 8, 8, 6, 5, 4, 111),\r\n pattern: \"S\"\r\n }, {\r\n date: new Date(2009, 8, 8, 6, 5, 2),\r\n pattern: \"s\"\r\n }, {\r\n date: new Date(2009, 8, 8, 6, 2, 4),\r\n pattern: \"m\"\r\n }, {\r\n date: new Date(2009, 8, 8, 18, 5, 4),\r\n pattern: \"H\",\r\n isDigit: true\r\n }, {\r\n date: new Date(2009, 8, 8, 2, 5, 4),\r\n pattern: \"h\",\r\n isDigit: true\r\n }, {\r\n date: new Date(2009, 8, 8, 18, 5, 4),\r\n pattern: \"a\",\r\n isDigit: false\r\n }, {\r\n date: new Date(2009, 8, 1, 6, 5, 4),\r\n pattern: \"d\"\r\n }, {\r\n date: [new Date(2009, 8, 2, 6, 5, 4), new Date(2009, 8, 3, 6, 5, 4), new Date(2009, 8, 4, 6, 5, 4)],\r\n pattern: \"E\"\r\n }, {\r\n date: new Date(2009, 9, 6, 6, 5, 4),\r\n pattern: \"M\"\r\n }, {\r\n date: new Date(1998, 8, 8, 6, 5, 4),\r\n pattern: \"y\"\r\n }];\r\n if (!result) {\r\n return\r\n }\r\n datePatterns.forEach((function(test) {\r\n var diff = getDifference(defaultPattern, formatValue(test.date, formatter), processedIndexes, test.isDigit);\r\n var pattern = \"M\" === test.pattern && !replacedPatterns.d ? \"L\" : test.pattern;\r\n result = replaceChars(result, diff, pattern, patternPositions);\r\n replacedPatterns[pattern] = diff.length\r\n }));\r\n result = escapeChars(result, defaultPattern, processedIndexes, patternPositions);\r\n if (processedIndexes.length) {\r\n return result\r\n }\r\n};\r\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nmodule.exports = ZStream;\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/events/swipe.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport {\r\n eventData\r\n} from \"./utils/index\";\r\nimport GestureEmitter from \"./gesture/emitter.gesture\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar SWIPE_START_EVENT = \"dxswipestart\";\r\nvar SWIPE_EVENT = \"dxswipe\";\r\nvar SWIPE_END_EVENT = \"dxswipeend\";\r\nvar HorizontalStrategy = {\r\n defaultItemSizeFunc: function() {\r\n return getWidth(this.getElement())\r\n },\r\n getBounds: function() {\r\n return [this._maxLeftOffset, this._maxRightOffset]\r\n },\r\n calcOffsetRatio: function(e) {\r\n var endEventData = eventData(e);\r\n return (endEventData.x - (this._savedEventData && this._savedEventData.x || 0)) / this._itemSizeFunc().call(this, e)\r\n },\r\n isFastSwipe: function(e) {\r\n var endEventData = eventData(e);\r\n return this.FAST_SWIPE_SPEED_LIMIT * Math.abs(endEventData.x - this._tickData.x) >= endEventData.time - this._tickData.time\r\n }\r\n};\r\nvar VerticalStrategy = {\r\n defaultItemSizeFunc: function() {\r\n return getHeight(this.getElement())\r\n },\r\n getBounds: function() {\r\n return [this._maxTopOffset, this._maxBottomOffset]\r\n },\r\n calcOffsetRatio: function(e) {\r\n var endEventData = eventData(e);\r\n return (endEventData.y - (this._savedEventData && this._savedEventData.y || 0)) / this._itemSizeFunc().call(this, e)\r\n },\r\n isFastSwipe: function(e) {\r\n var endEventData = eventData(e);\r\n return this.FAST_SWIPE_SPEED_LIMIT * Math.abs(endEventData.y - this._tickData.y) >= endEventData.time - this._tickData.time\r\n }\r\n};\r\nvar STRATEGIES = {\r\n horizontal: HorizontalStrategy,\r\n vertical: VerticalStrategy\r\n};\r\nvar SwipeEmitter = GestureEmitter.inherit({\r\n TICK_INTERVAL: 300,\r\n FAST_SWIPE_SPEED_LIMIT: 10,\r\n ctor: function(element) {\r\n this.callBase(element);\r\n this.direction = \"horizontal\";\r\n this.elastic = true\r\n },\r\n _getStrategy: function() {\r\n return STRATEGIES[this.direction]\r\n },\r\n _defaultItemSizeFunc: function() {\r\n return this._getStrategy().defaultItemSizeFunc.call(this)\r\n },\r\n _itemSizeFunc: function() {\r\n return this.itemSizeFunc || this._defaultItemSizeFunc\r\n },\r\n _init: function(e) {\r\n this._tickData = eventData(e)\r\n },\r\n _start: function(e) {\r\n this._savedEventData = eventData(e);\r\n e = this._fireEvent(SWIPE_START_EVENT, e);\r\n if (!e.cancel) {\r\n this._maxLeftOffset = e.maxLeftOffset;\r\n this._maxRightOffset = e.maxRightOffset;\r\n this._maxTopOffset = e.maxTopOffset;\r\n this._maxBottomOffset = e.maxBottomOffset\r\n }\r\n },\r\n _move: function(e) {\r\n var strategy = this._getStrategy();\r\n var moveEventData = eventData(e);\r\n var offset = strategy.calcOffsetRatio.call(this, e);\r\n offset = this._fitOffset(offset, this.elastic);\r\n if (moveEventData.time - this._tickData.time > this.TICK_INTERVAL) {\r\n this._tickData = moveEventData\r\n }\r\n this._fireEvent(SWIPE_EVENT, e, {\r\n offset: offset\r\n });\r\n e.preventDefault()\r\n },\r\n _end: function(e) {\r\n var strategy = this._getStrategy();\r\n var offsetRatio = strategy.calcOffsetRatio.call(this, e);\r\n var isFast = strategy.isFastSwipe.call(this, e);\r\n var startOffset = offsetRatio;\r\n var targetOffset = this._calcTargetOffset(offsetRatio, isFast);\r\n startOffset = this._fitOffset(startOffset, this.elastic);\r\n targetOffset = this._fitOffset(targetOffset, false);\r\n this._fireEvent(SWIPE_END_EVENT, e, {\r\n offset: startOffset,\r\n targetOffset: targetOffset\r\n })\r\n },\r\n _fitOffset: function(offset, elastic) {\r\n var strategy = this._getStrategy();\r\n var bounds = strategy.getBounds.call(this);\r\n if (offset < -bounds[0]) {\r\n return elastic ? (-2 * bounds[0] + offset) / 3 : -bounds[0]\r\n }\r\n if (offset > bounds[1]) {\r\n return elastic ? (2 * bounds[1] + offset) / 3 : bounds[1]\r\n }\r\n return offset\r\n },\r\n _calcTargetOffset: function(offsetRatio, isFast) {\r\n var result;\r\n if (isFast) {\r\n result = Math.ceil(Math.abs(offsetRatio));\r\n if (offsetRatio < 0) {\r\n result = -result\r\n }\r\n } else {\r\n result = Math.round(offsetRatio)\r\n }\r\n return result\r\n }\r\n});\r\nregisterEmitter({\r\n emitter: SwipeEmitter,\r\n events: [SWIPE_START_EVENT, SWIPE_EVENT, SWIPE_END_EVENT]\r\n});\r\nexport {\r\n SWIPE_EVENT as swipe, SWIPE_START_EVENT as start, SWIPE_END_EVENT as end\r\n};\r\n","import {\r\n ROOT,\r\n GET_LIST_MEMBER_API,\r\n CREATE_MEMBER_API,\r\n UPDATE_MEMBER_API,\r\n DETAIL_MEMBER_API,\r\n ACTIVE_MEMBER_API,\r\n DEACTIVE_MEMBER_API,\r\n DELETE_MEMBER_API,\r\n GET_COUNTRIES_API,\r\n GET_COMPANIES_API,\r\n GET_LIST_SUBSCRIPTION_API,\r\n UPDATE_SUBSCRIPTION_API,\r\n DELETE_SUBSCRIPTION_API,\r\n CREATE_SUBSCRIPTION_API,\r\n BANS_SUBSCRIPTION_API,\r\n UNBANS_SUBSCRIPTION_API,\r\n TRANSFER_SUBSCRIPTION_API,\r\n GET_LIST_COMBO_API,\r\n GET_HISTORY_API, GET_DETAIL_SUBSCRIPTION_API,\r\n ADD_PACKAGE_RETAIL,\r\n UPDATE_PACKAGE_RETAIL,\r\n CREATE_PAYMENT_RETAIL,\r\n ADD_PAYMENT_RETAIL,\r\n GET_PAYMENT_RETAIL,\r\n GET_PACKAGE_RETAIL_DETAIL,\r\n API_RMEH02,\r\n API_IME02,\r\n MERGE_MEMBER_API,\r\n CHECK_MEMBER_DUP_VGA\r\n} from '@/api/constant'\r\nimport {handleResponse} from '@/api/handle-response'\r\nimport {requestOptions} from '@/api/request-options'\r\n\r\nfunction getListMember(data) {\r\n return fetch(ROOT + GET_LIST_MEMBER_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction CheckMember_RME07(data) {\r\n return fetch(ROOT + CHECK_MEMBER_DUP_VGA, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction api_IME02(data) {\r\n return fetch(ROOT + API_IME02, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction createMember(data) {\r\n return fetch(ROOT + CREATE_MEMBER_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction mergeMember(data) {\r\n return fetch(ROOT + MERGE_MEMBER_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction updateMember(data) {\r\n return fetch(ROOT + UPDATE_MEMBER_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction activeMember(data) {\r\n return fetch(ROOT + ACTIVE_MEMBER_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction deActiveMember(data) {\r\n return fetch(ROOT + DEACTIVE_MEMBER_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction deleteMember(data) {\r\n return fetch(ROOT + DELETE_MEMBER_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction detailMember(data) {\r\n return fetch(ROOT + DETAIL_MEMBER_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getCountries(data) {\r\n return fetch(ROOT + GET_COUNTRIES_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getCompanies(data) {\r\n return fetch(ROOT + GET_COMPANIES_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getSubscriptions(data) {\r\n return fetch(ROOT + GET_LIST_SUBSCRIPTION_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction getSubscriptionDetail(data) {\r\n return fetch(ROOT + GET_DETAIL_SUBSCRIPTION_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction updateSubscription(data) {\r\n return fetch(ROOT + UPDATE_SUBSCRIPTION_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction deleteSubscription(data) {\r\n return fetch(ROOT + DELETE_SUBSCRIPTION_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction createSubscription(data) {\r\n return fetch(ROOT + CREATE_SUBSCRIPTION_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction bansSubscription(data) {\r\n return fetch(ROOT + BANS_SUBSCRIPTION_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction unBansSubscription(data) {\r\n return fetch(ROOT + UNBANS_SUBSCRIPTION_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction transferSubscription(data) {\r\n return fetch(ROOT + TRANSFER_SUBSCRIPTION_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction getListCombo(data) {\r\n return fetch(ROOT + GET_LIST_COMBO_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction getHistoryPlaying(data) {\r\n return fetch(ROOT + GET_HISTORY_API, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction addPackageRetail(data) {\r\n return fetch(ROOT + ADD_PACKAGE_RETAIL, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction updatePackageRetail(data) {\r\n return fetch(ROOT + UPDATE_PACKAGE_RETAIL, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction createPaymentRetail(data) {\r\n return fetch(ROOT + CREATE_PAYMENT_RETAIL, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction addPaymentRetail(data) {\r\n return fetch(ROOT + ADD_PAYMENT_RETAIL, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction getPaymentRetail(data) {\r\n return fetch(ROOT + GET_PAYMENT_RETAIL, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nfunction getPackageRetailDetail(data) {\r\n return fetch(ROOT + GET_PACKAGE_RETAIL_DETAIL, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\n\r\nfunction api_RMEH02(data) {\r\n return fetch(ROOT + API_RMEH02, requestOptions.postBody(data))\r\n .then(handleResponse)\r\n .then(data => data)\r\n}\r\nexport const members = {\r\n getListMember,\r\n createMember,\r\n updateMember,\r\n detailMember,\r\n deleteMember,\r\n activeMember,\r\n deActiveMember,\r\n getCountries,\r\n getCompanies,\r\n getSubscriptions,\r\n getSubscriptionDetail,\r\n updateSubscription,\r\n deleteSubscription,\r\n createSubscription,\r\n unBansSubscription,\r\n bansSubscription,\r\n transferSubscription,\r\n getListCombo,\r\n getHistoryPlaying,\r\n addPackageRetail,\r\n updatePackageRetail,\r\n createPaymentRetail,\r\n addPaymentRetail,\r\n getPaymentRetail,\r\n getPackageRetailDetail,\r\n api_RMEH02,\r\n api_IME02,\r\n mergeMember,\r\n CheckMember_RME07\r\n}\r\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\r\n * DevExtreme (esm/format_helper.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isString,\r\n isNumeric,\r\n isFunction,\r\n isDefined,\r\n isDate,\r\n isPlainObject\r\n} from \"./core/utils/type\";\r\nimport dateUtils from \"./core/utils/date\";\r\nimport numberLocalization from \"./localization/number\";\r\nimport dateLocalization from \"./localization/date\";\r\nimport dependencyInjector from \"./core/utils/dependency_injector\";\r\nimport \"./localization/currency\";\r\nexport default dependencyInjector({\r\n format: function(value, _format) {\r\n var formatIsValid = isString(_format) && \"\" !== _format || isPlainObject(_format) || isFunction(_format);\r\n var valueIsValid = isNumeric(value) || isDate(value);\r\n if (!formatIsValid || !valueIsValid) {\r\n return isDefined(value) ? value.toString() : \"\"\r\n }\r\n if (isFunction(_format)) {\r\n return _format(value)\r\n }\r\n if (isString(_format)) {\r\n _format = {\r\n type: _format\r\n }\r\n }\r\n if (isNumeric(value)) {\r\n return numberLocalization.format(value, _format)\r\n }\r\n if (isDate(value)) {\r\n return dateLocalization.format(value, _format)\r\n }\r\n },\r\n getTimeFormat: function(showSecond) {\r\n return showSecond ? \"longtime\" : \"shorttime\"\r\n },\r\n _normalizeFormat: function(format) {\r\n if (!Array.isArray(format)) {\r\n return format\r\n }\r\n if (1 === format.length) {\r\n return format[0]\r\n }\r\n return function(date) {\r\n return format.map((function(formatPart) {\r\n return dateLocalization.format(date, formatPart)\r\n })).join(\" \")\r\n }\r\n },\r\n getDateFormatByDifferences: function(dateDifferences, intervalFormat) {\r\n var resultFormat = [];\r\n var needSpecialSecondFormatter = intervalFormat && dateDifferences.millisecond && !(dateDifferences.year || dateDifferences.month || dateDifferences.day);\r\n if (needSpecialSecondFormatter) {\r\n resultFormat.push((function(date) {\r\n return date.getSeconds() + date.getMilliseconds() / 1e3 + \"s\"\r\n }))\r\n } else if (dateDifferences.millisecond) {\r\n resultFormat.push(\"millisecond\")\r\n }\r\n if (dateDifferences.hour || dateDifferences.minute || !needSpecialSecondFormatter && dateDifferences.second) {\r\n resultFormat.unshift(this.getTimeFormat(dateDifferences.second))\r\n }\r\n if (dateDifferences.year && dateDifferences.month && dateDifferences.day) {\r\n if (intervalFormat && \"month\" === intervalFormat) {\r\n return \"monthandyear\"\r\n } else {\r\n resultFormat.unshift(\"shortdate\");\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n }\r\n if (dateDifferences.year && dateDifferences.month) {\r\n return \"monthandyear\"\r\n }\r\n if (dateDifferences.year && dateDifferences.quarter) {\r\n return \"quarterandyear\"\r\n }\r\n if (dateDifferences.year) {\r\n return \"year\"\r\n }\r\n if (dateDifferences.quarter) {\r\n return \"quarter\"\r\n }\r\n if (dateDifferences.month && dateDifferences.day) {\r\n if (intervalFormat) {\r\n resultFormat.unshift((function(date) {\r\n return dateLocalization.getMonthNames(\"abbreviated\")[date.getMonth()] + \" \" + dateLocalization.format(date, \"day\")\r\n }))\r\n } else {\r\n resultFormat.unshift(\"monthandday\")\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n if (dateDifferences.month) {\r\n return \"month\"\r\n }\r\n if (dateDifferences.day) {\r\n if (intervalFormat) {\r\n resultFormat.unshift(\"day\")\r\n } else {\r\n resultFormat.unshift((function(date) {\r\n return dateLocalization.format(date, \"dayofweek\") + \", \" + dateLocalization.format(date, \"day\")\r\n }))\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n },\r\n getDateFormatByTicks: function(ticks) {\r\n var maxDiff;\r\n var currentDiff;\r\n var i;\r\n if (ticks.length > 1) {\r\n maxDiff = dateUtils.getDatesDifferences(ticks[0], ticks[1]);\r\n for (i = 1; i < ticks.length - 1; i++) {\r\n currentDiff = dateUtils.getDatesDifferences(ticks[i], ticks[i + 1]);\r\n if (maxDiff.count < currentDiff.count) {\r\n maxDiff = currentDiff\r\n }\r\n }\r\n } else {\r\n maxDiff = {\r\n year: true,\r\n month: true,\r\n day: true,\r\n hour: ticks[0].getHours() > 0,\r\n minute: ticks[0].getMinutes() > 0,\r\n second: ticks[0].getSeconds() > 0,\r\n millisecond: ticks[0].getMilliseconds() > 0\r\n }\r\n }\r\n var resultFormat = this.getDateFormatByDifferences(maxDiff);\r\n return resultFormat\r\n },\r\n getDateFormatByTickInterval: function(startValue, endValue, tickInterval) {\r\n var dateUnitInterval;\r\n var correctDateDifferences = function(dateDifferences, tickInterval, value) {\r\n switch (tickInterval) {\r\n case \"year\":\r\n case \"quarter\":\r\n dateDifferences.month = value;\r\n case \"month\":\r\n dateDifferences.day = value;\r\n case \"week\":\r\n case \"day\":\r\n dateDifferences.hour = value;\r\n case \"hour\":\r\n dateDifferences.minute = value;\r\n case \"minute\":\r\n dateDifferences.second = value;\r\n case \"second\":\r\n dateDifferences.millisecond = value\r\n }\r\n };\r\n tickInterval = isString(tickInterval) ? tickInterval.toLowerCase() : tickInterval;\r\n var dateDifferences = dateUtils.getDatesDifferences(startValue, endValue);\r\n if (startValue !== endValue) {\r\n ! function(differences, minDate, maxDate) {\r\n if (!maxDate.getMilliseconds() && maxDate.getSeconds()) {\r\n if (maxDate.getSeconds() - minDate.getSeconds() === 1) {\r\n differences.millisecond = true;\r\n differences.second = false\r\n }\r\n } else if (!maxDate.getSeconds() && maxDate.getMinutes()) {\r\n if (maxDate.getMinutes() - minDate.getMinutes() === 1) {\r\n differences.second = true;\r\n differences.minute = false\r\n }\r\n } else if (!maxDate.getMinutes() && maxDate.getHours()) {\r\n if (maxDate.getHours() - minDate.getHours() === 1) {\r\n differences.minute = true;\r\n differences.hour = false\r\n }\r\n } else if (!maxDate.getHours() && maxDate.getDate() > 1) {\r\n if (maxDate.getDate() - minDate.getDate() === 1) {\r\n differences.hour = true;\r\n differences.day = false\r\n }\r\n } else if (1 === maxDate.getDate() && maxDate.getMonth()) {\r\n if (maxDate.getMonth() - minDate.getMonth() === 1) {\r\n differences.day = true;\r\n differences.month = false\r\n }\r\n } else if (!maxDate.getMonth() && maxDate.getFullYear()) {\r\n if (maxDate.getFullYear() - minDate.getFullYear() === 1) {\r\n differences.month = true;\r\n differences.year = false\r\n }\r\n }\r\n }(dateDifferences, startValue > endValue ? endValue : startValue, startValue > endValue ? startValue : endValue)\r\n }\r\n dateUnitInterval = dateUtils.getDateUnitInterval(dateDifferences);\r\n correctDateDifferences(dateDifferences, dateUnitInterval, true);\r\n dateUnitInterval = dateUtils.getDateUnitInterval(tickInterval || \"second\");\r\n correctDateDifferences(dateDifferences, dateUnitInterval, false);\r\n dateDifferences[{\r\n week: \"day\"\r\n } [dateUnitInterval] || dateUnitInterval] = true;\r\n var resultFormat = this.getDateFormatByDifferences(dateDifferences);\r\n return resultFormat\r\n }\r\n});\r\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils = require('../utils/common');\nvar adler32 = require('./adler32');\nvar crc32 = require('./crc32');\nvar inflate_fast = require('./inffast');\nvar inflate_table = require('./inftrees');\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\n//var Z_NO_FLUSH = 0;\n//var Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH = 2;\n//var Z_FULL_FLUSH = 3;\nvar Z_FINISH = 4;\nvar Z_BLOCK = 5;\nvar Z_TREES = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\nvar Z_NEED_DICT = 2;\n//var Z_ERRNO = -1;\nvar Z_STREAM_ERROR = -2;\nvar Z_DATA_ERROR = -3;\nvar Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR = -5;\n//var Z_VERSION_ERROR = -6;\n\n/* The deflate compression method */\nvar Z_DEFLATED = 8;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nvar HEAD = 1; /* i: waiting for magic header */\nvar FLAGS = 2; /* i: waiting for method and flags (gzip) */\nvar TIME = 3; /* i: waiting for modification time (gzip) */\nvar OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nvar EXLEN = 5; /* i: waiting for extra length (gzip) */\nvar EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nvar NAME = 7; /* i: waiting for end of file name (gzip) */\nvar COMMENT = 8; /* i: waiting for end of comment (gzip) */\nvar HCRC = 9; /* i: waiting for header crc (gzip) */\nvar DICTID = 10; /* i: waiting for dictionary check value */\nvar DICT = 11; /* waiting for inflateSetDictionary() call */\nvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\nvar TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nvar STORED = 14; /* i: waiting for stored size (length and complement) */\nvar COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nvar COPY = 16; /* i/o: waiting for input or output to copy stored block */\nvar TABLE = 17; /* i: waiting for dynamic block table lengths */\nvar LENLENS = 18; /* i: waiting for code length code lengths */\nvar CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nvar LEN_ = 20; /* i: same as LEN below, but only first time in */\nvar LEN = 21; /* i: waiting for length/lit/eob code */\nvar LENEXT = 22; /* i: waiting for length extra bits */\nvar DIST = 23; /* i: waiting for distance code */\nvar DISTEXT = 24; /* i: waiting for distance extra bits */\nvar MATCH = 25; /* o: waiting for output space to copy string */\nvar LIT = 26; /* o: waiting for output space to write literal */\nvar CHECK = 27; /* i: waiting for 32-bit check value */\nvar LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nvar DONE = 29; /* finished check, done -- remain here until reset */\nvar BAD = 30; /* got a data error -- remain here until reset */\nvar MEM = 31; /* got an inflate() memory error -- remain here until reset */\nvar SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\nvar DEF_WBITS = MAX_WBITS;\n\n\nfunction zswap32(q) {\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n}\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new utils.Buf16(320); /* temporary storage for code lengths */\n this.work = new utils.Buf16(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new utils.Buf32(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\nfunction inflateResetKeep(strm) {\n var state;\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS);\n state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK;\n}\n\nfunction inflateReset(strm) {\n var state;\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n}\n\nfunction inflateReset2(strm, windowBits) {\n var wrap;\n var state;\n\n /* get the state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n}\n\nfunction inflateInit2(strm, windowBits) {\n var ret;\n var state;\n\n if (!strm) { return Z_STREAM_ERROR; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null/*Z_NULL*/;\n ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n}\n\nfunction inflateInit(strm) {\n return inflateInit2(strm, DEF_WBITS);\n}\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nvar virgin = true;\n\nvar lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\nfunction fixedtables(state) {\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n var sym;\n\n lenfix = new utils.Buf32(512);\n distfix = new utils.Buf32(32);\n\n /* literal/length table */\n sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n}\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nfunction updatewindow(strm, src, end, copy) {\n var dist;\n var state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new utils.Buf8(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n utils.arraySet(state.window, src, end - copy, dist, state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n utils.arraySet(state.window, src, end - copy, copy, 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n}\n\nfunction inflate(strm, flush) {\n var state;\n var input, output; // input/output buffers\n var next; /* next input INDEX */\n var put; /* next output INDEX */\n var have, left; /* available input and output */\n var hold; /* bit buffer */\n var bits; /* bits in bit buffer */\n var _in, _out; /* save starting available input and output */\n var copy; /* number of stored or match bytes to copy */\n var from; /* where to copy match bytes from */\n var from_source;\n var here = 0; /* current decoding table entry */\n var here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //var last; /* parent table entry */\n var last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n var len; /* length to copy for repeats, bits to drop */\n var ret; /* return code */\n var hbuf = new utils.Buf8(4); /* buffer for gzip header crc calculation */\n var opts;\n\n var n; // temporary var for NEED_BITS\n\n var order = /* permutation of code lengths */\n [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n state.dmax = 1 << len;\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Array(state.head.extra_len);\n }\n utils.arraySet(\n state.head.extra,\n input,\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n copy,\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n utils.arraySet(output, input, next, copy, put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inflate_fast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n}\n\nfunction inflateEnd(strm) {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR;\n }\n\n var state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK;\n}\n\nfunction inflateGetHeader(strm, head) {\n var state;\n\n /* check state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK;\n}\n\nfunction inflateSetDictionary(strm, dictionary) {\n var dictLength = dictionary.length;\n\n var state;\n var dictid;\n var ret;\n\n /* check state */\n if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK;\n}\n\nexports.inflateReset = inflateReset;\nexports.inflateReset2 = inflateReset2;\nexports.inflateResetKeep = inflateResetKeep;\nexports.inflateInit = inflateInit;\nexports.inflateInit2 = inflateInit2;\nexports.inflate = inflate;\nexports.inflateEnd = inflateEnd;\nexports.inflateGetHeader = inflateGetHeader;\nexports.inflateSetDictionary = inflateSetDictionary;\nexports.inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nexports.inflateCopy = inflateCopy;\nexports.inflateGetDictionary = inflateGetDictionary;\nexports.inflateMark = inflateMark;\nexports.inflatePrime = inflatePrime;\nexports.inflateSync = inflateSync;\nexports.inflateSyncPoint = inflateSyncPoint;\nexports.inflateUndermine = inflateUndermine;\n*/\n","/**\r\n * DevExtreme (esm/ui/popup/popup_drag.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n locate,\r\n move\r\n} from \"../../animation/translator\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getOffset,\r\n getOuterWidth,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n fitIntoRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n isWindow\r\n} from \"../../core/utils/type\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n start as dragStartEvent,\r\n move as dragMoveEvent,\r\n end as dragEndEvent\r\n} from \"../../events/drag\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nvar KEYBOARD_DRAG_STEP = 5;\r\nclass PopupDrag {\r\n constructor(config) {\r\n this.init(config)\r\n }\r\n init(_ref) {\r\n var {\r\n dragEnabled: dragEnabled,\r\n handle: handle,\r\n draggableElement: draggableElement,\r\n positionController: positionController\r\n } = _ref;\r\n this._positionController = positionController;\r\n this._draggableElement = draggableElement;\r\n this._handle = handle;\r\n this._dragEnabled = dragEnabled;\r\n this.unsubscribe();\r\n if (!dragEnabled) {\r\n return\r\n }\r\n this.subscribe()\r\n }\r\n moveDown(e) {\r\n this._moveTo(KEYBOARD_DRAG_STEP, 0, e)\r\n }\r\n moveUp(e) {\r\n this._moveTo(-KEYBOARD_DRAG_STEP, 0, e)\r\n }\r\n moveLeft(e) {\r\n this._moveTo(0, -KEYBOARD_DRAG_STEP, e)\r\n }\r\n moveRight(e) {\r\n this._moveTo(0, KEYBOARD_DRAG_STEP, e)\r\n }\r\n subscribe() {\r\n var eventNames = this._getEventNames();\r\n eventsEngine.on(this._handle, eventNames.startEventName, e => {\r\n this._dragStartHandler(e)\r\n });\r\n eventsEngine.on(this._handle, eventNames.updateEventName, e => {\r\n this._dragUpdateHandler(e)\r\n });\r\n eventsEngine.on(this._handle, eventNames.endEventName, e => {\r\n this._dragEndHandler(e)\r\n })\r\n }\r\n unsubscribe() {\r\n var eventNames = this._getEventNames();\r\n eventsEngine.off(this._handle, eventNames.startEventName);\r\n eventsEngine.off(this._handle, eventNames.updateEventName);\r\n eventsEngine.off(this._handle, eventNames.endEventName)\r\n }\r\n _getEventNames() {\r\n var startEventName = addNamespace(dragStartEvent, \"overlayDrag\");\r\n var updateEventName = addNamespace(dragMoveEvent, \"overlayDrag\");\r\n var endEventName = addNamespace(dragEndEvent, \"overlayDrag\");\r\n return {\r\n startEventName: startEventName,\r\n updateEventName: updateEventName,\r\n endEventName: endEventName\r\n }\r\n }\r\n _dragStartHandler(e) {\r\n var allowedOffsets = this._getAllowedOffsets();\r\n this._prevOffset = {\r\n x: 0,\r\n y: 0\r\n };\r\n e.targetElements = [];\r\n e.maxTopOffset = allowedOffsets.top;\r\n e.maxBottomOffset = allowedOffsets.bottom;\r\n e.maxLeftOffset = allowedOffsets.left;\r\n e.maxRightOffset = allowedOffsets.right\r\n }\r\n _dragUpdateHandler(e) {\r\n var targetOffset = {\r\n top: e.offset.y - this._prevOffset.y,\r\n left: e.offset.x - this._prevOffset.x\r\n };\r\n this._moveByOffset(targetOffset);\r\n this._prevOffset = e.offset\r\n }\r\n _dragEndHandler(event) {\r\n this._positionController.dragHandled();\r\n this._positionController.detectVisualPositionChange(event)\r\n }\r\n _moveTo(top, left, e) {\r\n if (!this._dragEnabled) {\r\n return\r\n }\r\n e.preventDefault();\r\n e.stopPropagation();\r\n var offset = this._fitOffsetIntoAllowedRange(top, left);\r\n this._moveByOffset(offset);\r\n this._dragEndHandler(e)\r\n }\r\n _fitOffsetIntoAllowedRange(top, left) {\r\n var allowedOffsets = this._getAllowedOffsets();\r\n return {\r\n top: fitIntoRange(top, -allowedOffsets.top, allowedOffsets.bottom),\r\n left: fitIntoRange(left, -allowedOffsets.left, allowedOffsets.right)\r\n }\r\n }\r\n _getContainerDimensions() {\r\n var document = domAdapter.getDocument();\r\n var container = this._positionController.$dragResizeContainer.get(0);\r\n var containerWidth = getOuterWidth(container);\r\n var containerHeight = getOuterHeight(container);\r\n if (isWindow(container)) {\r\n containerHeight = Math.max(document.body.clientHeight, containerHeight);\r\n containerWidth = Math.max(document.body.clientWidth, containerWidth)\r\n }\r\n return {\r\n width: containerWidth,\r\n height: containerHeight\r\n }\r\n }\r\n _getContainerPosition() {\r\n var container = this._positionController.$dragResizeContainer.get(0);\r\n return isWindow(container) ? {\r\n top: 0,\r\n left: 0\r\n } : getOffset(container)\r\n }\r\n _getElementPosition() {\r\n return getOffset(this._draggableElement)\r\n }\r\n _getInnerDelta() {\r\n var containerDimensions = this._getContainerDimensions();\r\n var elementDimensions = this._getElementDimensions();\r\n return {\r\n x: containerDimensions.width - elementDimensions.width,\r\n y: containerDimensions.height - elementDimensions.height\r\n }\r\n }\r\n _getOuterDelta() {\r\n var {\r\n width: width,\r\n height: height\r\n } = this._getElementDimensions();\r\n var outsideDragFactor = this._positionController.outsideDragFactor;\r\n return {\r\n x: width * outsideDragFactor,\r\n y: height * outsideDragFactor\r\n }\r\n }\r\n _getFullDelta() {\r\n var fullDelta = this._getInnerDelta();\r\n var outerDelta = this._getOuterDelta();\r\n return {\r\n x: fullDelta.x + outerDelta.x,\r\n y: fullDelta.y + outerDelta.y\r\n }\r\n }\r\n _getElementDimensions() {\r\n return {\r\n width: this._draggableElement.offsetWidth,\r\n height: this._draggableElement.offsetHeight\r\n }\r\n }\r\n _getAllowedOffsets() {\r\n var fullDelta = this._getFullDelta();\r\n var isDragAllowed = fullDelta.y >= 0 && fullDelta.x >= 0;\r\n if (!isDragAllowed) {\r\n return {\r\n top: 0,\r\n bottom: 0,\r\n left: 0,\r\n right: 0\r\n }\r\n }\r\n var elementPosition = this._getElementPosition();\r\n var containerPosition = this._getContainerPosition();\r\n var outerDelta = this._getOuterDelta();\r\n return {\r\n top: elementPosition.top - containerPosition.top + outerDelta.y,\r\n bottom: -elementPosition.top + containerPosition.top + fullDelta.y,\r\n left: elementPosition.left - containerPosition.left + outerDelta.x,\r\n right: -elementPosition.left + containerPosition.left + fullDelta.x\r\n }\r\n }\r\n _moveByOffset(offset) {\r\n var currentPosition = locate(this._draggableElement);\r\n var newPosition = {\r\n left: currentPosition.left + offset.left,\r\n top: currentPosition.top + offset.top\r\n };\r\n move(this._draggableElement, newPosition)\r\n }\r\n}\r\nexport default PopupDrag;\r\n","/**\r\n * DevExtreme (esm/ui/resizable.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 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 getOuterWidth,\r\n getOuterHeight,\r\n getInnerWidth,\r\n getInnerHeight,\r\n getWidth,\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport {\r\n locate,\r\n move\r\n} from \"../animation/translator\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport DOMComponent from \"../core/dom_component\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n pairToObject\r\n} from \"../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n fitIntoRange,\r\n inRange\r\n} from \"../core/utils/math\";\r\nimport {\r\n isPlainObject,\r\n isFunction,\r\n isWindow\r\n} from \"../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n start as dragEventStart,\r\n move as dragEventMove,\r\n end as dragEventEnd\r\n} from \"../events/drag\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../events/visibility_change\";\r\nvar RESIZABLE = \"dxResizable\";\r\nvar RESIZABLE_CLASS = \"dx-resizable\";\r\nvar RESIZABLE_RESIZING_CLASS = \"dx-resizable-resizing\";\r\nvar RESIZABLE_HANDLE_CLASS = \"dx-resizable-handle\";\r\nvar RESIZABLE_HANDLE_TOP_CLASS = \"dx-resizable-handle-top\";\r\nvar RESIZABLE_HANDLE_BOTTOM_CLASS = \"dx-resizable-handle-bottom\";\r\nvar RESIZABLE_HANDLE_LEFT_CLASS = \"dx-resizable-handle-left\";\r\nvar RESIZABLE_HANDLE_RIGHT_CLASS = \"dx-resizable-handle-right\";\r\nvar RESIZABLE_HANDLE_CORNER_CLASS = \"dx-resizable-handle-corner\";\r\nvar DRAGSTART_START_EVENT_NAME = addNamespace(dragEventStart, RESIZABLE);\r\nvar DRAGSTART_EVENT_NAME = addNamespace(dragEventMove, RESIZABLE);\r\nvar DRAGSTART_END_EVENT_NAME = addNamespace(dragEventEnd, RESIZABLE);\r\nvar SIDE_BORDER_WIDTH_STYLES = {\r\n left: \"borderLeftWidth\",\r\n top: \"borderTopWidth\",\r\n right: \"borderRightWidth\",\r\n bottom: \"borderBottomWidth\"\r\n};\r\nvar Resizable = DOMComponent.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n handles: \"all\",\r\n step: \"1\",\r\n stepPrecision: \"simple\",\r\n area: void 0,\r\n minWidth: 30,\r\n maxWidth: 1 / 0,\r\n minHeight: 30,\r\n maxHeight: 1 / 0,\r\n onResizeStart: null,\r\n onResize: null,\r\n onResizeEnd: null,\r\n roundStepValue: true,\r\n keepAspectRatio: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(RESIZABLE_CLASS)\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderHandles()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderActions()\r\n },\r\n _renderActions: function() {\r\n this._resizeStartAction = this._createActionByOption(\"onResizeStart\");\r\n this._resizeEndAction = this._createActionByOption(\"onResizeEnd\");\r\n this._resizeAction = this._createActionByOption(\"onResize\")\r\n },\r\n _renderHandles: function() {\r\n this._handles = [];\r\n var handles = this.option(\"handles\");\r\n if (\"none\" === handles || !handles) {\r\n return\r\n }\r\n var directions = \"all\" === handles ? [\"top\", \"bottom\", \"left\", \"right\"] : handles.split(\" \");\r\n var activeHandlesMap = {};\r\n each(directions, (index, handleName) => {\r\n activeHandlesMap[handleName] = true;\r\n this._renderHandle(handleName)\r\n });\r\n activeHandlesMap.bottom && activeHandlesMap.right && this._renderHandle(\"corner-bottom-right\");\r\n activeHandlesMap.bottom && activeHandlesMap.left && this._renderHandle(\"corner-bottom-left\");\r\n activeHandlesMap.top && activeHandlesMap.right && this._renderHandle(\"corner-top-right\");\r\n activeHandlesMap.top && activeHandlesMap.left && this._renderHandle(\"corner-top-left\");\r\n this._attachEventHandlers()\r\n },\r\n _renderHandle: function(handleName) {\r\n var $handle = $(\"
\").addClass(RESIZABLE_HANDLE_CLASS).addClass(RESIZABLE_HANDLE_CLASS + \"-\" + handleName).appendTo(this.$element());\r\n this._handles.push($handle)\r\n },\r\n _attachEventHandlers: function() {\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n var handlers = {};\r\n handlers[DRAGSTART_START_EVENT_NAME] = this._dragStartHandler.bind(this);\r\n handlers[DRAGSTART_EVENT_NAME] = this._dragHandler.bind(this);\r\n handlers[DRAGSTART_END_EVENT_NAME] = this._dragEndHandler.bind(this);\r\n this._handles.forEach(handleElement => {\r\n eventsEngine.on(handleElement, handlers, {\r\n direction: \"both\",\r\n immediate: true\r\n })\r\n })\r\n },\r\n _detachEventHandlers: function() {\r\n this._handles.forEach(handleElement => {\r\n eventsEngine.off(handleElement)\r\n })\r\n },\r\n _toggleEventHandlers: function(shouldAttachEvents) {\r\n shouldAttachEvents ? this._attachEventHandlers() : this._detachEventHandlers()\r\n },\r\n _getElementSize: function() {\r\n var $element = this.$element();\r\n return \"border-box\" === $element.css(\"boxSizing\") ? {\r\n width: getOuterWidth($element),\r\n height: getOuterHeight($element)\r\n } : {\r\n width: getWidth($element),\r\n height: getHeight($element)\r\n }\r\n },\r\n _dragStartHandler: function(e) {\r\n var $element = this.$element();\r\n if ($element.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n e.cancel = true;\r\n return\r\n }\r\n this._toggleResizingClass(true);\r\n this._movingSides = this._getMovingSides(e);\r\n this._elementLocation = locate($element);\r\n this._elementSize = this._getElementSize();\r\n this._renderDragOffsets(e);\r\n this._resizeStartAction({\r\n event: e,\r\n width: this._elementSize.width,\r\n height: this._elementSize.height,\r\n handles: this._movingSides\r\n });\r\n e.targetElements = null\r\n },\r\n _toggleResizingClass: function(value) {\r\n this.$element().toggleClass(RESIZABLE_RESIZING_CLASS, value)\r\n },\r\n _renderDragOffsets: function(e) {\r\n var area = this._getArea();\r\n if (!area) {\r\n return\r\n }\r\n var $handle = $(e.target).closest(\".\" + RESIZABLE_HANDLE_CLASS);\r\n var handleWidth = getOuterWidth($handle);\r\n var handleHeight = getOuterHeight($handle);\r\n var handleOffset = $handle.offset();\r\n var areaOffset = area.offset;\r\n var scrollOffset = this._getAreaScrollOffset();\r\n e.maxLeftOffset = this._leftMaxOffset = handleOffset.left - areaOffset.left - scrollOffset.scrollX;\r\n e.maxRightOffset = this._rightMaxOffset = areaOffset.left + area.width - handleOffset.left - handleWidth + scrollOffset.scrollX;\r\n e.maxTopOffset = this._topMaxOffset = handleOffset.top - areaOffset.top - scrollOffset.scrollY;\r\n e.maxBottomOffset = this._bottomMaxOffset = areaOffset.top + area.height - handleOffset.top - handleHeight + scrollOffset.scrollY\r\n },\r\n _getBorderWidth: function($element, direction) {\r\n if (isWindow($element.get(0))) {\r\n return 0\r\n }\r\n var borderWidth = $element.css(SIDE_BORDER_WIDTH_STYLES[direction]);\r\n return parseInt(borderWidth) || 0\r\n },\r\n _proportionate: function(direction, value) {\r\n var size = this._elementSize;\r\n var factor = \"x\" === direction ? size.width / size.height : size.height / size.width;\r\n return value * factor\r\n },\r\n _getProportionalDelta: function(_ref) {\r\n var {\r\n x: x,\r\n y: y\r\n } = _ref;\r\n var proportionalY = this._proportionate(\"y\", x);\r\n if (proportionalY >= y) {\r\n return {\r\n x: x,\r\n y: proportionalY\r\n }\r\n }\r\n var proportionalX = this._proportionate(\"x\", y);\r\n if (proportionalX >= x) {\r\n return {\r\n x: proportionalX,\r\n y: y\r\n }\r\n }\r\n return {\r\n x: 0,\r\n y: 0\r\n }\r\n },\r\n _getDirectionName: function(axis) {\r\n var sides = this._movingSides;\r\n if (\"x\" === axis) {\r\n return sides.left ? \"left\" : \"right\"\r\n } else {\r\n return sides.top ? \"top\" : \"bottom\"\r\n }\r\n },\r\n _fitIntoArea: function(axis, value) {\r\n var _this;\r\n var directionName = this._getDirectionName(axis);\r\n return Math.min(value, null !== (_this = this[\"_\".concat(directionName, \"MaxOffset\")]) && void 0 !== _this ? _this : 1 / 0)\r\n },\r\n _fitDeltaProportionally: function(delta) {\r\n var fittedDelta = _extends({}, delta);\r\n var size = this._elementSize;\r\n var {\r\n minWidth: minWidth,\r\n minHeight: minHeight,\r\n maxWidth: maxWidth,\r\n maxHeight: maxHeight\r\n } = this.option();\r\n var getWidth = () => size.width + fittedDelta.x;\r\n var getHeight = () => size.height + fittedDelta.y;\r\n var isInArea = axis => fittedDelta[axis] === this._fitIntoArea(axis, fittedDelta[axis]);\r\n var isFittedX = () => inRange(getWidth(), minWidth, maxWidth) && isInArea(\"x\");\r\n var isFittedY = () => inRange(getHeight(), minHeight, maxHeight) && isInArea(\"y\");\r\n if (!isFittedX()) {\r\n var x = this._fitIntoArea(\"x\", fitIntoRange(getWidth(), minWidth, maxWidth) - size.width);\r\n fittedDelta = {\r\n x: x,\r\n y: this._proportionate(\"y\", x)\r\n }\r\n }\r\n if (!isFittedY()) {\r\n var y = this._fitIntoArea(\"y\", fitIntoRange(getHeight(), minHeight, maxHeight) - size.height);\r\n fittedDelta = {\r\n x: this._proportionate(\"x\", y),\r\n y: y\r\n }\r\n }\r\n return isFittedX() && isFittedY() ? fittedDelta : {\r\n x: 0,\r\n y: 0\r\n }\r\n },\r\n _fitDelta: function(_ref2) {\r\n var {\r\n x: x,\r\n y: y\r\n } = _ref2;\r\n var size = this._elementSize;\r\n var {\r\n minWidth: minWidth,\r\n minHeight: minHeight,\r\n maxWidth: maxWidth,\r\n maxHeight: maxHeight\r\n } = this.option();\r\n return {\r\n x: fitIntoRange(size.width + x, minWidth, maxWidth) - size.width,\r\n y: fitIntoRange(size.height + y, minHeight, maxHeight) - size.height\r\n }\r\n },\r\n _getDeltaByOffset: function(offset) {\r\n var sides = this._movingSides;\r\n var shouldKeepAspectRatio = this._isCornerHandler(sides) && this.option(\"keepAspectRatio\");\r\n var delta = {\r\n x: offset.x * (sides.left ? -1 : 1),\r\n y: offset.y * (sides.top ? -1 : 1)\r\n };\r\n if (shouldKeepAspectRatio) {\r\n var proportionalDelta = this._getProportionalDelta(delta);\r\n var fittedProportionalDelta = this._fitDeltaProportionally(proportionalDelta);\r\n delta = fittedProportionalDelta\r\n } else {\r\n var fittedDelta = this._fitDelta(delta);\r\n var roundedFittedDelta = this._roundByStep(fittedDelta);\r\n delta = roundedFittedDelta\r\n }\r\n return delta\r\n },\r\n _updatePosition: function(delta, _ref3) {\r\n var {\r\n width: width,\r\n height: height\r\n } = _ref3;\r\n var location = this._elementLocation;\r\n var sides = this._movingSides;\r\n var $element = this.$element();\r\n var elementRect = this._getElementSize();\r\n var offsetTop = delta.y * (sides.top ? -1 : 1) - ((elementRect.height || height) - height);\r\n var offsetLeft = delta.x * (sides.left ? -1 : 1) - ((elementRect.width || width) - width);\r\n move($element, {\r\n top: location.top + (sides.top ? offsetTop : 0),\r\n left: location.left + (sides.left ? offsetLeft : 0)\r\n })\r\n },\r\n _dragHandler: function(e) {\r\n var offset = this._getOffset(e);\r\n var delta = this._getDeltaByOffset(offset);\r\n var dimensions = this._updateDimensions(delta);\r\n this._updatePosition(delta, dimensions);\r\n this._triggerResizeAction(e, dimensions)\r\n },\r\n _updateDimensions: function(delta) {\r\n var isAbsoluteSize = size => \"px\" === size.substring(size.length - 2);\r\n var isStepPrecisionStrict = \"strict\" === this.option(\"stepPrecision\");\r\n var size = this._elementSize;\r\n var width = size.width + delta.x;\r\n var height = size.height + delta.y;\r\n var elementStyle = this.$element().get(0).style;\r\n var shouldRenderWidth = delta.x || isStepPrecisionStrict || isAbsoluteSize(elementStyle.width);\r\n var shouldRenderHeight = delta.y || isStepPrecisionStrict || isAbsoluteSize(elementStyle.height);\r\n if (shouldRenderWidth) {\r\n this.option({\r\n width: width\r\n })\r\n }\r\n if (shouldRenderHeight) {\r\n this.option({\r\n height: height\r\n })\r\n }\r\n return {\r\n width: shouldRenderWidth ? width : size.width,\r\n height: shouldRenderHeight ? height : size.height\r\n }\r\n },\r\n _triggerResizeAction: function(e, _ref4) {\r\n var {\r\n width: width,\r\n height: height\r\n } = _ref4;\r\n this._resizeAction({\r\n event: e,\r\n width: this.option(\"width\") || width,\r\n height: this.option(\"height\") || height,\r\n handles: this._movingSides\r\n });\r\n triggerResizeEvent(this.$element())\r\n },\r\n _isCornerHandler: sides => 0 === Object.values(sides).reduce((xor, value) => xor ^ value, 0),\r\n _getOffset: function(e) {\r\n var offset = e.offset;\r\n var sides = this._movingSides;\r\n if (!sides.left && !sides.right) {\r\n offset.x = 0\r\n }\r\n if (!sides.top && !sides.bottom) {\r\n offset.y = 0\r\n }\r\n return offset\r\n },\r\n _roundByStep: function(delta) {\r\n return \"strict\" === this.option(\"stepPrecision\") ? this._roundStrict(delta) : this._roundNotStrict(delta)\r\n },\r\n _getSteps: function() {\r\n return pairToObject(this.option(\"step\"), !this.option(\"roundStepValue\"))\r\n },\r\n _roundNotStrict: function(delta) {\r\n var steps = this._getSteps();\r\n return {\r\n x: delta.x - delta.x % steps.h,\r\n y: delta.y - delta.y % steps.v\r\n }\r\n },\r\n _roundStrict: function(delta) {\r\n var sides = this._movingSides;\r\n var offset = {\r\n x: delta.x * (sides.left ? -1 : 1),\r\n y: delta.y * (sides.top ? -1 : 1)\r\n };\r\n var steps = this._getSteps();\r\n var location = this._elementLocation;\r\n var size = this._elementSize;\r\n var xPos = sides.left ? location.left : location.left + size.width;\r\n var yPos = sides.top ? location.top : location.top + size.height;\r\n var newXShift = (xPos + offset.x) % steps.h;\r\n var newYShift = (yPos + offset.y) % steps.v;\r\n var sign = Math.sign || (x => {\r\n x = +x;\r\n if (0 === x || isNaN(x)) {\r\n return x\r\n }\r\n return x > 0 ? 1 : -1\r\n });\r\n var separatorOffset = (steps, offset) => (1 + .2 * sign(offset)) % 1 * steps;\r\n var isSmallOffset = (offset, steps) => Math.abs(offset) < .2 * steps;\r\n var newOffsetX = offset.x - newXShift;\r\n var newOffsetY = offset.y - newYShift;\r\n if (newXShift > separatorOffset(steps.h, offset.x)) {\r\n newOffsetX += steps.h\r\n }\r\n if (newYShift > separatorOffset(steps.v, offset.y)) {\r\n newOffsetY += steps.v\r\n }\r\n var roundedOffset_x = (sides.left || sides.right) && !isSmallOffset(offset.x, steps.h) ? newOffsetX : 0,\r\n roundedOffset_y = (sides.top || sides.bottom) && !isSmallOffset(offset.y, steps.v) ? newOffsetY : 0;\r\n return {\r\n x: roundedOffset_x * (sides.left ? -1 : 1),\r\n y: roundedOffset_y * (sides.top ? -1 : 1)\r\n }\r\n },\r\n _getMovingSides: function(e) {\r\n var $target = $(e.target);\r\n var hasCornerTopLeftClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-top-left\");\r\n var hasCornerTopRightClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-top-right\");\r\n var hasCornerBottomLeftClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-bottom-left\");\r\n var hasCornerBottomRightClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-bottom-right\");\r\n return {\r\n top: $target.hasClass(RESIZABLE_HANDLE_TOP_CLASS) || hasCornerTopLeftClass || hasCornerTopRightClass,\r\n left: $target.hasClass(RESIZABLE_HANDLE_LEFT_CLASS) || hasCornerTopLeftClass || hasCornerBottomLeftClass,\r\n bottom: $target.hasClass(RESIZABLE_HANDLE_BOTTOM_CLASS) || hasCornerBottomLeftClass || hasCornerBottomRightClass,\r\n right: $target.hasClass(RESIZABLE_HANDLE_RIGHT_CLASS) || hasCornerTopRightClass || hasCornerBottomRightClass\r\n }\r\n },\r\n _getArea: function() {\r\n var area = this.option(\"area\");\r\n if (isFunction(area)) {\r\n area = area.call(this)\r\n }\r\n if (isPlainObject(area)) {\r\n return this._getAreaFromObject(area)\r\n }\r\n return this._getAreaFromElement(area)\r\n },\r\n _getAreaScrollOffset: function() {\r\n var area = this.option(\"area\");\r\n var isElement = !isFunction(area) && !isPlainObject(area);\r\n var scrollOffset = {\r\n scrollY: 0,\r\n scrollX: 0\r\n };\r\n if (isElement) {\r\n var areaElement = $(area)[0];\r\n if (isWindow(areaElement)) {\r\n scrollOffset.scrollX = areaElement.pageXOffset;\r\n scrollOffset.scrollY = areaElement.pageYOffset\r\n }\r\n }\r\n return scrollOffset\r\n },\r\n _getAreaFromObject: function(area) {\r\n var result = {\r\n width: area.right - area.left,\r\n height: area.bottom - area.top,\r\n offset: {\r\n left: area.left,\r\n top: area.top\r\n }\r\n };\r\n this._correctAreaGeometry(result);\r\n return result\r\n },\r\n _getAreaFromElement: function(area) {\r\n var $area = $(area);\r\n var result;\r\n if ($area.length) {\r\n result = {\r\n width: getInnerWidth($area),\r\n height: getInnerHeight($area),\r\n offset: extend({\r\n top: 0,\r\n left: 0\r\n }, isWindow($area[0]) ? {} : $area.offset())\r\n };\r\n this._correctAreaGeometry(result, $area)\r\n }\r\n return result\r\n },\r\n _correctAreaGeometry: function(result, $area) {\r\n var areaBorderLeft = $area ? this._getBorderWidth($area, \"left\") : 0;\r\n var areaBorderTop = $area ? this._getBorderWidth($area, \"top\") : 0;\r\n result.offset.left += areaBorderLeft + this._getBorderWidth(this.$element(), \"left\");\r\n result.offset.top += areaBorderTop + this._getBorderWidth(this.$element(), \"top\");\r\n result.width -= getOuterWidth(this.$element()) - getInnerWidth(this.$element());\r\n result.height -= getOuterHeight(this.$element()) - getInnerHeight(this.$element())\r\n },\r\n _dragEndHandler: function(e) {\r\n var $element = this.$element();\r\n this._resizeEndAction({\r\n event: e,\r\n width: getOuterWidth($element),\r\n height: getOuterHeight($element),\r\n handles: this._movingSides\r\n });\r\n this._toggleResizingClass(false)\r\n },\r\n _renderWidth: function(width) {\r\n this.option(\"width\", fitIntoRange(width, this.option(\"minWidth\"), this.option(\"maxWidth\")))\r\n },\r\n _renderHeight: function(height) {\r\n this.option(\"height\", fitIntoRange(height, this.option(\"minHeight\"), this.option(\"maxHeight\")))\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"disabled\":\r\n this._toggleEventHandlers(!args.value);\r\n this.callBase(args);\r\n break;\r\n case \"handles\":\r\n this._invalidate();\r\n break;\r\n case \"minWidth\":\r\n case \"maxWidth\":\r\n hasWindow() && this._renderWidth(getOuterWidth(this.$element()));\r\n break;\r\n case \"minHeight\":\r\n case \"maxHeight\":\r\n hasWindow() && this._renderHeight(getOuterHeight(this.$element()));\r\n break;\r\n case \"onResize\":\r\n case \"onResizeStart\":\r\n case \"onResizeEnd\":\r\n this._renderActions();\r\n break;\r\n case \"area\":\r\n case \"stepPrecision\":\r\n case \"step\":\r\n case \"roundStepValue\":\r\n case \"keepAspectRatio\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean: function() {\r\n this.$element().find(\".\" + RESIZABLE_HANDLE_CLASS).remove()\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\nregisterComponent(RESIZABLE, Resizable);\r\nexport default Resizable;\r\n","/**\r\n * DevExtreme (esm/ui/popup/popup_position_controller.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"fullScreen\", \"forceApplyBindings\", \"dragOutsideBoundary\", \"dragAndResizeArea\", \"outsideDragFactor\"];\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n originalViewPort\r\n} from \"../../core/utils/view_port\";\r\nimport {\r\n OverlayPositionController\r\n} from \"../overlay/overlay_position_controller\";\r\nvar window = getWindow();\r\nclass PopupPositionController extends OverlayPositionController {\r\n constructor(_ref) {\r\n var {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n } = _ref, args = _objectWithoutPropertiesLoose(_ref, _excluded);\r\n super(args);\r\n this._props = _extends({}, this._props, {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n });\r\n this._$dragResizeContainer = void 0;\r\n this._outsideDragFactor = void 0;\r\n this._lastPositionBeforeFullScreen = void 0;\r\n this._updateDragResizeContainer();\r\n this._updateOutsideDragFactor()\r\n }\r\n set fullScreen(fullScreen) {\r\n this._props.fullScreen = fullScreen;\r\n if (fullScreen) {\r\n this._fullScreenEnabled()\r\n } else {\r\n this._fullScreenDisabled()\r\n }\r\n }\r\n get $dragResizeContainer() {\r\n return this._$dragResizeContainer\r\n }\r\n get outsideDragFactor() {\r\n return this._outsideDragFactor\r\n }\r\n set dragAndResizeArea(dragAndResizeArea) {\r\n this._props.dragAndResizeArea = dragAndResizeArea;\r\n this._updateDragResizeContainer()\r\n }\r\n set dragOutsideBoundary(dragOutsideBoundary) {\r\n this._props.dragOutsideBoundary = dragOutsideBoundary;\r\n this._updateDragResizeContainer();\r\n this._updateOutsideDragFactor()\r\n }\r\n set outsideDragFactor(outsideDragFactor) {\r\n this._props.outsideDragFactor = outsideDragFactor;\r\n this._updateOutsideDragFactor()\r\n }\r\n updateContainer(containerProp) {\r\n super.updateContainer(containerProp);\r\n this._updateDragResizeContainer()\r\n }\r\n dragHandled() {\r\n this.restorePositionOnNextRender(false)\r\n }\r\n resizeHandled() {\r\n this.restorePositionOnNextRender(false)\r\n }\r\n positionContent() {\r\n if (this._props.fullScreen) {\r\n move(this._$content, {\r\n top: 0,\r\n left: 0\r\n });\r\n this.detectVisualPositionChange()\r\n } else {\r\n var _this$_props$forceApp, _this$_props;\r\n null === (_this$_props$forceApp = (_this$_props = this._props).forceApplyBindings) || void 0 === _this$_props$forceApp ? void 0 : _this$_props$forceApp.call(_this$_props);\r\n if (!this._shouldRenderContentInitialPosition && this._lastPositionBeforeFullScreen) {\r\n move(this._$content, this._lastPositionBeforeFullScreen);\r\n this._lastPositionBeforeFullScreen = void 0;\r\n this.detectVisualPositionChange()\r\n } else {\r\n super.positionContent()\r\n }\r\n }\r\n }\r\n _updateOutsideDragFactor() {\r\n this._outsideDragFactor = this._getOutsideDragFactor()\r\n }\r\n _getOutsideDragFactor() {\r\n if (this._props.dragOutsideBoundary) {\r\n return 1\r\n }\r\n return this._props.outsideDragFactor\r\n }\r\n _updateDragResizeContainer() {\r\n this._$dragResizeContainer = this._getDragResizeContainer()\r\n }\r\n _getDragResizeContainer() {\r\n if (this._props.dragOutsideBoundary) {\r\n return $(window)\r\n }\r\n if (this._props.dragAndResizeArea) {\r\n return $(this._props.dragAndResizeArea)\r\n }\r\n var isContainerDefined = originalViewPort().get(0) || this._props.container;\r\n return isContainerDefined ? this._$markupContainer : $(window)\r\n }\r\n _getVisualContainer() {\r\n if (this._props.fullScreen) {\r\n return $(window)\r\n }\r\n return super._getVisualContainer()\r\n }\r\n _fullScreenEnabled() {\r\n this.restorePositionOnNextRender(false);\r\n this._lastPositionBeforeFullScreen = this._visualPosition\r\n }\r\n _fullScreenDisabled() {\r\n this.restorePositionOnNextRender(false)\r\n }\r\n}\r\nexport {\r\n PopupPositionController\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/popup/ui.popup.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 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 devices from \"../../core/devices\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../../core/templates/empty_template\";\r\nimport browser from \"../../core/utils/browser\";\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 camelize\r\n} from \"../../core/utils/inflector\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getVisibleHeight,\r\n addOffsetToMaxHeight,\r\n addOffsetToMinHeight,\r\n getVerticalOffsets,\r\n getOuterWidth,\r\n getWidth,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n isDefined,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n compare as compareVersions\r\n} from \"../../core/utils/version\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../../events/visibility_change\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport PopupDrag from \"./popup_drag\";\r\nimport Resizable from \"../resizable\";\r\nimport Button from \"../button\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport {\r\n isMaterial,\r\n current as currentTheme\r\n} from \"../themes\";\r\nimport \"../toolbar/ui.toolbar.base\";\r\nimport resizeObserverSingleton from \"../../core/resize_observer\";\r\nimport * as zIndexPool from \"../overlay/z_index\";\r\nimport {\r\n PopupPositionController\r\n} from \"./popup_position_controller\";\r\nvar window = getWindow();\r\nvar POPUP_CLASS = \"dx-popup\";\r\nvar POPUP_WRAPPER_CLASS = \"dx-popup-wrapper\";\r\nvar POPUP_FULL_SCREEN_CLASS = \"dx-popup-fullscreen\";\r\nvar POPUP_FULL_SCREEN_WIDTH_CLASS = \"dx-popup-fullscreen-width\";\r\nvar POPUP_NORMAL_CLASS = \"dx-popup-normal\";\r\nvar POPUP_CONTENT_CLASS = \"dx-popup-content\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar POPUP_DRAGGABLE_CLASS = \"dx-popup-draggable\";\r\nvar POPUP_TITLE_CLASS = \"dx-popup-title\";\r\nvar POPUP_TITLE_CLOSEBUTTON_CLASS = \"dx-closebutton\";\r\nvar POPUP_BOTTOM_CLASS = \"dx-popup-bottom\";\r\nvar POPUP_HAS_CLOSE_BUTTON_CLASS = \"dx-has-close-button\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar POPUP_CONTENT_FLEX_HEIGHT_CLASS = \"dx-popup-flex-height\";\r\nvar POPUP_CONTENT_INHERIT_HEIGHT_CLASS = \"dx-popup-inherit-height\";\r\nvar ALLOWED_TOOLBAR_ITEM_ALIASES = [\"cancel\", \"clear\", \"done\"];\r\nvar BUTTON_DEFAULT_TYPE = \"default\";\r\nvar BUTTON_NORMAL_TYPE = \"normal\";\r\nvar BUTTON_TEXT_MODE = \"text\";\r\nvar BUTTON_CONTAINED_MODE = \"contained\";\r\nvar IS_OLD_SAFARI = browser.safari && compareVersions(browser.version, [11]) < 0;\r\nvar HEIGHT_STRATEGIES = {\r\n static: \"\",\r\n inherit: POPUP_CONTENT_INHERIT_HEIGHT_CLASS,\r\n flex: POPUP_CONTENT_FLEX_HEIGHT_CLASS\r\n};\r\nvar getButtonPlace = name => {\r\n var device = devices.current();\r\n var platform = device.platform;\r\n var toolbar = \"bottom\";\r\n var location = \"before\";\r\n if (\"ios\" === platform) {\r\n switch (name) {\r\n case \"cancel\":\r\n toolbar = \"top\";\r\n break;\r\n case \"clear\":\r\n toolbar = \"top\";\r\n location = \"after\";\r\n break;\r\n case \"done\":\r\n location = \"after\"\r\n }\r\n } else if (\"android\" === platform) {\r\n switch (name) {\r\n case \"cancel\":\r\n case \"done\":\r\n location = \"after\"\r\n }\r\n }\r\n return {\r\n toolbar: toolbar,\r\n location: location\r\n }\r\n};\r\nvar Popup = Overlay.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n upArrow: e => {\r\n var _this$_drag;\r\n null === (_this$_drag = this._drag) || void 0 === _this$_drag ? void 0 : _this$_drag.moveUp(e)\r\n },\r\n downArrow: e => {\r\n var _this$_drag2;\r\n null === (_this$_drag2 = this._drag) || void 0 === _this$_drag2 ? void 0 : _this$_drag2.moveDown(e)\r\n },\r\n leftArrow: e => {\r\n var _this$_drag3;\r\n null === (_this$_drag3 = this._drag) || void 0 === _this$_drag3 ? void 0 : _this$_drag3.moveLeft(e)\r\n },\r\n rightArrow: e => {\r\n var _this$_drag4;\r\n null === (_this$_drag4 = this._drag) || void 0 === _this$_drag4 ? void 0 : _this$_drag4.moveRight(e)\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n fullScreen: false,\r\n title: \"\",\r\n showTitle: true,\r\n titleTemplate: \"title\",\r\n onTitleRendered: null,\r\n dragOutsideBoundary: false,\r\n dragEnabled: false,\r\n dragAndResizeArea: void 0,\r\n outsideDragFactor: 0,\r\n onResizeStart: null,\r\n onResize: null,\r\n onResizeEnd: null,\r\n resizeEnabled: false,\r\n toolbarItems: [],\r\n showCloseButton: false,\r\n bottomTemplate: \"bottom\",\r\n useDefaultToolbarButtons: false,\r\n useFlatToolbarButtons: false,\r\n autoResizeEnabled: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = currentTheme();\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n animation: this._iosAnimation\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n animation: this._androidAnimation\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n showCloseButton: true\r\n }\r\n }, {\r\n device: function(_device) {\r\n return \"desktop\" === devices.real().deviceType && \"generic\" === _device.platform\r\n },\r\n options: {\r\n dragEnabled: true\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 useDefaultToolbarButtons: true,\r\n useFlatToolbarButtons: true,\r\n showCloseButton: false\r\n }\r\n }])\r\n },\r\n _iosAnimation: {\r\n show: {\r\n type: \"slide\",\r\n duration: 400,\r\n from: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\"\r\n }\r\n },\r\n to: {\r\n position: {\r\n my: \"center\",\r\n at: \"center\"\r\n }\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 400,\r\n from: {\r\n opacity: 1,\r\n position: {\r\n my: \"center\",\r\n at: \"center\"\r\n }\r\n },\r\n to: {\r\n opacity: 1,\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\"\r\n }\r\n }\r\n }\r\n },\r\n _androidAnimation: function() {\r\n return this.option(\"fullScreen\") ? {\r\n show: {\r\n type: \"slide\",\r\n duration: 300,\r\n from: {\r\n top: \"30%\",\r\n opacity: 0\r\n },\r\n to: {\r\n top: 0,\r\n opacity: 1\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 300,\r\n from: {\r\n top: 0,\r\n opacity: 1\r\n },\r\n to: {\r\n top: \"30%\",\r\n opacity: 0\r\n }\r\n }\r\n } : {\r\n show: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 1,\r\n to: 0\r\n }\r\n }\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._updateResizeCallbackSkipCondition();\r\n this.$element().addClass(POPUP_CLASS);\r\n this.$wrapper().addClass(POPUP_WRAPPER_CLASS);\r\n this._$popupContent = this._$content.wrapInner($(\"
\").addClass(POPUP_CONTENT_CLASS)).children().eq(0)\r\n },\r\n _render: function() {\r\n var isFullscreen = this.option(\"fullScreen\");\r\n this._toggleFullScreenClass(isFullscreen);\r\n this.callBase()\r\n },\r\n _toggleFullScreenClass: function(value) {\r\n this.$overlayContent().toggleClass(POPUP_FULL_SCREEN_CLASS, value).toggleClass(POPUP_NORMAL_CLASS, !value)\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n title: new EmptyTemplate,\r\n bottom: new EmptyTemplate\r\n })\r\n },\r\n _getActionsList: function() {\r\n return this.callBase().concat([\"onResizeStart\", \"onResize\", \"onResizeEnd\"])\r\n },\r\n _contentResizeHandler: function(entry) {\r\n if (!this._shouldSkipContentResize(entry)) {\r\n this._renderGeometry({\r\n shouldOnlyReposition: true\r\n })\r\n }\r\n },\r\n _doesShowAnimationChangeDimensions: function() {\r\n var animation = this.option(\"animation\");\r\n return [\"to\", \"from\"].some(prop => {\r\n var _animation$show;\r\n var config = null === animation || void 0 === animation ? void 0 : null === (_animation$show = animation.show) || void 0 === _animation$show ? void 0 : _animation$show[prop];\r\n return isObject(config) && (\"width\" in config || \"height\" in config)\r\n })\r\n },\r\n _updateResizeCallbackSkipCondition() {\r\n var doesShowAnimationChangeDimensions = this._doesShowAnimationChangeDimensions();\r\n this._shouldSkipContentResize = entry => doesShowAnimationChangeDimensions && this._showAnimationProcessing || this._areContentDimensionsRendered(entry)\r\n },\r\n _observeContentResize: function(shouldObserve) {\r\n if (!this.option(\"useResizeObserver\")) {\r\n return\r\n }\r\n var contentElement = this._$content.get(0);\r\n if (shouldObserve) {\r\n resizeObserverSingleton.observe(contentElement, entry => {\r\n this._contentResizeHandler(entry)\r\n })\r\n } else {\r\n resizeObserverSingleton.unobserve(contentElement)\r\n }\r\n },\r\n _renderContentImpl: function() {\r\n this._renderTitle();\r\n this.callBase();\r\n this._renderResize();\r\n this._renderBottom()\r\n },\r\n _renderTitle: function() {\r\n var items = this._getToolbarItems(\"top\");\r\n var titleText = this.option(\"title\");\r\n var showTitle = this.option(\"showTitle\");\r\n if (showTitle && !!titleText) {\r\n items.unshift({\r\n location: devices.current().ios ? \"center\" : \"before\",\r\n text: titleText\r\n })\r\n }\r\n if (showTitle || items.length > 0) {\r\n this._$title && this._$title.remove();\r\n var $title = $(\"
\").addClass(POPUP_TITLE_CLASS).insertBefore(this.$content());\r\n this._$title = this._renderTemplateByType(\"titleTemplate\", items, $title).addClass(POPUP_TITLE_CLASS);\r\n this._renderDrag();\r\n this._executeTitleRenderAction(this._$title);\r\n this._$title.toggleClass(POPUP_HAS_CLOSE_BUTTON_CLASS, this._hasCloseButton())\r\n } else if (this._$title) {\r\n this._$title.detach()\r\n }\r\n },\r\n _renderTemplateByType: function(optionName, data, $container, additionalToolbarOptions) {\r\n var {\r\n rtlEnabled: rtlEnabled,\r\n useDefaultToolbarButtons: useDefaultToolbarButtons,\r\n useFlatToolbarButtons: useFlatToolbarButtons,\r\n disabled: disabled\r\n } = this.option();\r\n var template = this._getTemplateByOption(optionName);\r\n var toolbarTemplate = template instanceof EmptyTemplate;\r\n if (toolbarTemplate) {\r\n var integrationOptions = extend({}, this.option(\"integrationOptions\"), {\r\n skipTemplates: [\"content\", \"title\"]\r\n });\r\n var toolbarOptions = extend(additionalToolbarOptions, {\r\n items: data,\r\n rtlEnabled: rtlEnabled,\r\n useDefaultButtons: useDefaultToolbarButtons,\r\n useFlatButtons: useFlatToolbarButtons,\r\n disabled: disabled,\r\n integrationOptions: integrationOptions\r\n });\r\n this._getTemplate(\"dx-polymorph-widget\").render({\r\n container: $container,\r\n model: {\r\n widget: \"dxToolbarBase\",\r\n options: toolbarOptions\r\n }\r\n });\r\n var $toolbar = $container.children(\"div\");\r\n $container.replaceWith($toolbar);\r\n return $toolbar\r\n } else {\r\n var $result = $(template.render({\r\n container: getPublicElement($container)\r\n }));\r\n if ($result.hasClass(TEMPLATE_WRAPPER_CLASS)) {\r\n $container.replaceWith($result);\r\n $container = $result\r\n }\r\n return $container\r\n }\r\n },\r\n _renderVisibilityAnimate: function(visible) {\r\n this._observeContentResize(visible);\r\n return this.callBase(visible)\r\n },\r\n _executeTitleRenderAction: function($titleElement) {\r\n this._getTitleRenderAction()({\r\n titleElement: getPublicElement($titleElement)\r\n })\r\n },\r\n _getTitleRenderAction: function() {\r\n return this._titleRenderAction || this._createTitleRenderAction()\r\n },\r\n _createTitleRenderAction: function() {\r\n return this._titleRenderAction = this._createActionByOption(\"onTitleRendered\", {\r\n element: this.element(),\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _getCloseButton: function() {\r\n return {\r\n toolbar: \"top\",\r\n location: \"after\",\r\n template: this._getCloseButtonRenderer()\r\n }\r\n },\r\n _getCloseButtonRenderer: function() {\r\n return (_, __, container) => {\r\n var $button = $(\"
\").addClass(POPUP_TITLE_CLOSEBUTTON_CLASS);\r\n this._createComponent($button, Button, {\r\n icon: \"close\",\r\n onClick: this._createToolbarItemAction(void 0),\r\n stylingMode: \"text\",\r\n integrationOptions: {}\r\n });\r\n $(container).append($button)\r\n }\r\n },\r\n _getToolbarItems: function(toolbar) {\r\n var toolbarItems = this.option(\"toolbarItems\");\r\n var toolbarsItems = [];\r\n this._toolbarItemClasses = [];\r\n var currentPlatform = devices.current().platform;\r\n var index = 0;\r\n each(toolbarItems, (_, data) => {\r\n var isShortcut = isDefined(data.shortcut);\r\n var item = isShortcut ? getButtonPlace(data.shortcut) : data;\r\n if (isShortcut && \"ios\" === currentPlatform && index < 2) {\r\n item.toolbar = \"top\";\r\n index++\r\n }\r\n item.toolbar = data.toolbar || item.toolbar || \"top\";\r\n if (item && item.toolbar === toolbar) {\r\n if (isShortcut) {\r\n extend(item, {\r\n location: data.location\r\n }, this._getToolbarItemByAlias(data))\r\n }\r\n var isLTROrder = \"generic\" === currentPlatform;\r\n if (\"done\" === data.shortcut && isLTROrder || \"cancel\" === data.shortcut && !isLTROrder) {\r\n toolbarsItems.unshift(item)\r\n } else {\r\n toolbarsItems.push(item)\r\n }\r\n }\r\n });\r\n if (\"top\" === toolbar && this._hasCloseButton()) {\r\n toolbarsItems.push(this._getCloseButton())\r\n }\r\n return toolbarsItems\r\n },\r\n _hasCloseButton() {\r\n return this.option(\"showCloseButton\") && this.option(\"showTitle\")\r\n },\r\n _getLocalizationKey: itemType => \"done\" === itemType.toLowerCase() ? \"OK\" : camelize(itemType, true),\r\n _getToolbarItemByAlias: function(data) {\r\n var that = this;\r\n var itemType = data.shortcut;\r\n if (!ALLOWED_TOOLBAR_ITEM_ALIASES.includes(itemType)) {\r\n return false\r\n }\r\n var itemConfig = extend({\r\n text: messageLocalization.format(this._getLocalizationKey(itemType)),\r\n onClick: this._createToolbarItemAction(data.onClick),\r\n integrationOptions: {},\r\n type: that.option(\"useDefaultToolbarButtons\") ? BUTTON_DEFAULT_TYPE : BUTTON_NORMAL_TYPE,\r\n stylingMode: that.option(\"useFlatToolbarButtons\") ? BUTTON_TEXT_MODE : BUTTON_CONTAINED_MODE\r\n }, data.options || {});\r\n var itemClass = POPUP_CLASS + \"-\" + itemType;\r\n this._toolbarItemClasses.push(itemClass);\r\n return {\r\n template: function(_, __, container) {\r\n var $toolbarItem = $(\"
\").addClass(itemClass).appendTo(container);\r\n that._createComponent($toolbarItem, Button, itemConfig)\r\n }\r\n }\r\n },\r\n _createToolbarItemAction: function(clickAction) {\r\n return this._createAction(clickAction, {\r\n afterExecute: function(e) {\r\n e.component.hide()\r\n }\r\n })\r\n },\r\n _renderBottom: function() {\r\n var items = this._getToolbarItems(\"bottom\");\r\n if (items.length) {\r\n this._$bottom && this._$bottom.remove();\r\n var $bottom = $(\"
\").addClass(POPUP_BOTTOM_CLASS).insertAfter(this.$content());\r\n this._$bottom = this._renderTemplateByType(\"bottomTemplate\", items, $bottom, {\r\n compactMode: true\r\n }).addClass(POPUP_BOTTOM_CLASS);\r\n this._toggleClasses()\r\n } else {\r\n this._$bottom && this._$bottom.detach()\r\n }\r\n },\r\n _toggleDisabledState: function(value) {\r\n this.callBase(...arguments);\r\n this.$content().toggleClass(DISABLED_STATE_CLASS, Boolean(value))\r\n },\r\n _toggleClasses: function() {\r\n var aliases = ALLOWED_TOOLBAR_ITEM_ALIASES;\r\n each(aliases, (_, alias) => {\r\n var className = POPUP_CLASS + \"-\" + alias;\r\n if (this._toolbarItemClasses.includes(className)) {\r\n this.$wrapper().addClass(className + \"-visible\");\r\n this._$bottom.addClass(className)\r\n } else {\r\n this.$wrapper().removeClass(className + \"-visible\");\r\n this._$bottom.removeClass(className)\r\n }\r\n })\r\n },\r\n _toggleFocusClass(isFocused, $element) {\r\n this.callBase(isFocused, $element);\r\n if (isFocused && !zIndexPool.isLastZIndexInStack(this._zIndex)) {\r\n var zIndex = zIndexPool.create(this._zIndexInitValue());\r\n zIndexPool.remove(this._zIndex);\r\n this._zIndex = zIndex;\r\n this._$wrapper.css(\"zIndex\", zIndex);\r\n this._$content.css(\"zIndex\", zIndex)\r\n }\r\n },\r\n _getPositionControllerConfig() {\r\n var {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n } = this.option();\r\n return extend({}, this.callBase(), {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n })\r\n },\r\n _initPositionController() {\r\n this._positionController = new PopupPositionController(this._getPositionControllerConfig())\r\n },\r\n _getDragTarget: function() {\r\n return this.topToolbar()\r\n },\r\n _renderGeometry: function(options) {\r\n var {\r\n visible: visible,\r\n useResizeObserver: useResizeObserver\r\n } = this.option();\r\n if (visible && hasWindow()) {\r\n var isAnimated = this._showAnimationProcessing;\r\n var shouldRepeatAnimation = isAnimated && !(null !== options && void 0 !== options && options.forceStopAnimation) && useResizeObserver;\r\n this._isAnimationPaused = shouldRepeatAnimation || void 0;\r\n this._stopAnimation();\r\n if (null !== options && void 0 !== options && options.shouldOnlyReposition) {\r\n this._positionController.positionContent()\r\n } else {\r\n this._renderGeometryImpl(null === options || void 0 === options ? void 0 : options.isDimensionChange)\r\n }\r\n if (shouldRepeatAnimation) {\r\n this._animateShowing();\r\n this._isAnimationPaused = void 0\r\n }\r\n }\r\n },\r\n _cacheDimensions: function() {\r\n if (!this.option(\"useResizeObserver\")) {\r\n return\r\n }\r\n this._renderedDimensions = {\r\n width: parseInt(getWidth(this._$content), 10),\r\n height: parseInt(getHeight(this._$content), 10)\r\n }\r\n },\r\n _renderGeometryImpl: function() {\r\n var isDimensionChange = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n if (!isDimensionChange) {\r\n this._resetContentHeight()\r\n }\r\n this.callBase();\r\n this._cacheDimensions();\r\n this._setContentHeight()\r\n },\r\n _resetContentHeight: function() {\r\n var height = this._getOptionValue(\"height\");\r\n if (\"auto\" === height) {\r\n this.$content().css({\r\n height: \"auto\",\r\n maxHeight: \"none\"\r\n })\r\n }\r\n },\r\n _renderDrag: function() {\r\n var $dragTarget = this._getDragTarget();\r\n var dragEnabled = this.option(\"dragEnabled\");\r\n if (!$dragTarget) {\r\n return\r\n }\r\n var config = {\r\n dragEnabled: dragEnabled,\r\n handle: $dragTarget.get(0),\r\n draggableElement: this._$content.get(0),\r\n positionController: this._positionController\r\n };\r\n if (this._drag) {\r\n this._drag.init(config)\r\n } else {\r\n this._drag = new PopupDrag(config)\r\n }\r\n this.$overlayContent().toggleClass(POPUP_DRAGGABLE_CLASS, dragEnabled)\r\n },\r\n _renderResize: function() {\r\n this._resizable = this._createComponent(this._$content, Resizable, {\r\n handles: this.option(\"resizeEnabled\") ? \"all\" : \"none\",\r\n onResizeEnd: e => {\r\n this._resizeEndHandler(e);\r\n this._observeContentResize(true)\r\n },\r\n onResize: e => {\r\n this._setContentHeight();\r\n this._actions.onResize(e)\r\n },\r\n onResizeStart: e => {\r\n this._observeContentResize(false);\r\n this._actions.onResizeStart(e)\r\n },\r\n minHeight: 100,\r\n minWidth: 100,\r\n area: this._positionController.$dragResizeContainer,\r\n keepAspectRatio: false\r\n })\r\n },\r\n _resizeEndHandler: function(e) {\r\n var width = this._resizable.option(\"width\");\r\n var height = this._resizable.option(\"height\");\r\n width && this._setOptionWithoutOptionChange(\"width\", width);\r\n height && this._setOptionWithoutOptionChange(\"height\", height);\r\n this._cacheDimensions();\r\n this._positionController.resizeHandled();\r\n this._positionController.detectVisualPositionChange(e.event);\r\n this._actions.onResizeEnd(e)\r\n },\r\n _setContentHeight: function() {\r\n (this.option(\"forceApplyBindings\") || noop)();\r\n var overlayContent = this.$overlayContent().get(0);\r\n var currentHeightStrategyClass = this._chooseHeightStrategy(overlayContent);\r\n this.$content().css(this._getHeightCssStyles(currentHeightStrategyClass, overlayContent));\r\n this._setHeightClasses(this.$overlayContent(), currentHeightStrategyClass)\r\n },\r\n _heightStrategyChangeOffset: function(currentHeightStrategyClass, popupVerticalPaddings) {\r\n return currentHeightStrategyClass === HEIGHT_STRATEGIES.flex ? -popupVerticalPaddings : 0\r\n },\r\n _chooseHeightStrategy: function(overlayContent) {\r\n var isAutoWidth = \"auto\" === overlayContent.style.width || \"\" === overlayContent.style.width;\r\n var currentHeightStrategyClass = HEIGHT_STRATEGIES.static;\r\n if (this._isAutoHeight() && this.option(\"autoResizeEnabled\")) {\r\n if (isAutoWidth || IS_OLD_SAFARI) {\r\n currentHeightStrategyClass = HEIGHT_STRATEGIES.inherit\r\n } else {\r\n currentHeightStrategyClass = HEIGHT_STRATEGIES.flex\r\n }\r\n }\r\n return currentHeightStrategyClass\r\n },\r\n _getHeightCssStyles: function(currentHeightStrategyClass, overlayContent) {\r\n var cssStyles = {};\r\n var contentMaxHeight = this._getOptionValue(\"maxHeight\", overlayContent);\r\n var contentMinHeight = this._getOptionValue(\"minHeight\", overlayContent);\r\n var popupHeightParts = this._splitPopupHeight();\r\n var toolbarsAndVerticalOffsetsHeight = popupHeightParts.header + popupHeightParts.footer + popupHeightParts.contentVerticalOffsets + popupHeightParts.popupVerticalOffsets + this._heightStrategyChangeOffset(currentHeightStrategyClass, popupHeightParts.popupVerticalPaddings);\r\n if (currentHeightStrategyClass === HEIGHT_STRATEGIES.static) {\r\n if (!this._isAutoHeight() || contentMaxHeight || contentMinHeight) {\r\n var overlayHeight = this.option(\"fullScreen\") ? Math.min(getBoundingRect(overlayContent).height, getWindow().innerHeight) : getBoundingRect(overlayContent).height;\r\n var contentHeight = overlayHeight - toolbarsAndVerticalOffsetsHeight;\r\n cssStyles = {\r\n height: Math.max(0, contentHeight),\r\n minHeight: \"auto\",\r\n maxHeight: \"auto\"\r\n }\r\n }\r\n } else {\r\n var container = $(this._positionController.$visualContainer).get(0);\r\n var maxHeightValue = addOffsetToMaxHeight(contentMaxHeight, -toolbarsAndVerticalOffsetsHeight, container);\r\n var minHeightValue = addOffsetToMinHeight(contentMinHeight, -toolbarsAndVerticalOffsetsHeight, container);\r\n cssStyles = {\r\n height: \"auto\",\r\n minHeight: minHeightValue,\r\n maxHeight: maxHeightValue\r\n }\r\n }\r\n return cssStyles\r\n },\r\n _setHeightClasses: function($container, currentClass) {\r\n var excessClasses = \"\";\r\n for (var name in HEIGHT_STRATEGIES) {\r\n if (HEIGHT_STRATEGIES[name] !== currentClass) {\r\n excessClasses += \" \" + HEIGHT_STRATEGIES[name]\r\n }\r\n }\r\n $container.removeClass(excessClasses).addClass(currentClass)\r\n },\r\n _isAutoHeight: function() {\r\n return \"auto\" === this.$overlayContent().get(0).style.height\r\n },\r\n _splitPopupHeight: function() {\r\n var topToolbar = this.topToolbar();\r\n var bottomToolbar = this.bottomToolbar();\r\n return {\r\n header: getVisibleHeight(topToolbar && topToolbar.get(0)),\r\n footer: getVisibleHeight(bottomToolbar && bottomToolbar.get(0)),\r\n contentVerticalOffsets: getVerticalOffsets(this.$overlayContent().get(0), true),\r\n popupVerticalOffsets: getVerticalOffsets(this.$content().get(0), true),\r\n popupVerticalPaddings: getVerticalOffsets(this.$content().get(0), false)\r\n }\r\n },\r\n _isAllWindowCovered: function() {\r\n return this.callBase() || this.option(\"fullScreen\")\r\n },\r\n _renderDimensions: function() {\r\n if (this.option(\"fullScreen\")) {\r\n this.$overlayContent().css({\r\n width: \"100%\",\r\n height: \"100%\",\r\n minWidth: \"\",\r\n maxWidth: \"\",\r\n minHeight: \"\",\r\n maxHeight: \"\"\r\n })\r\n } else {\r\n this.callBase()\r\n }\r\n if (hasWindow()) {\r\n this._renderFullscreenWidthClass()\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n this._renderGeometry({\r\n isDimensionChange: true\r\n })\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._observeContentResize(false)\r\n },\r\n _renderFullscreenWidthClass: function() {\r\n this.$overlayContent().toggleClass(POPUP_FULL_SCREEN_WIDTH_CLASS, getOuterWidth(this.$overlayContent()) === getWidth(window))\r\n },\r\n refreshPosition: function() {\r\n this._renderPosition()\r\n },\r\n _optionChanged: function(args) {\r\n var _this$_resizable2;\r\n var value = args.value;\r\n switch (args.name) {\r\n case \"disabled\":\r\n this.callBase(args);\r\n this._renderTitle();\r\n this._renderBottom();\r\n break;\r\n case \"animation\":\r\n this._updateResizeCallbackSkipCondition();\r\n break;\r\n case \"showTitle\":\r\n case \"title\":\r\n case \"titleTemplate\":\r\n this._renderTitle();\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"bottomTemplate\":\r\n this._renderBottom();\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"container\":\r\n this.callBase(args);\r\n if (this.option(\"resizeEnabled\")) {\r\n var _this$_resizable;\r\n null === (_this$_resizable = this._resizable) || void 0 === _this$_resizable ? void 0 : _this$_resizable.option(\"area\", this._positionController.$dragResizeContainer)\r\n }\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n null === (_this$_resizable2 = this._resizable) || void 0 === _this$_resizable2 ? void 0 : _this$_resizable2.option(args.name, args.value);\r\n break;\r\n case \"onTitleRendered\":\r\n this._createTitleRenderAction(args.value);\r\n break;\r\n case \"toolbarItems\":\r\n case \"useDefaultToolbarButtons\":\r\n case \"useFlatToolbarButtons\":\r\n var shouldRenderGeometry = !args.fullName.match(/^toolbarItems((\\[\\d+\\])(\\.(options|visible).*)?)?$/);\r\n this._renderTitle();\r\n this._renderBottom();\r\n if (shouldRenderGeometry) {\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent())\r\n }\r\n break;\r\n case \"dragEnabled\":\r\n this._renderDrag();\r\n break;\r\n case \"dragAndResizeArea\":\r\n this._positionController.dragAndResizeArea = value;\r\n if (this.option(\"resizeEnabled\")) {\r\n this._resizable.option(\"area\", this._positionController.$dragResizeContainer)\r\n }\r\n this._positionController.positionContent();\r\n break;\r\n case \"dragOutsideBoundary\":\r\n this._positionController.dragOutsideBoundary = value;\r\n if (this.option(\"resizeEnabled\")) {\r\n this._resizable.option(\"area\", this._positionController.$dragResizeContainer)\r\n }\r\n break;\r\n case \"outsideDragFactor\":\r\n this._positionController.outsideDragFactor = value;\r\n break;\r\n case \"resizeEnabled\":\r\n this._renderResize();\r\n this._renderGeometry();\r\n break;\r\n case \"autoResizeEnabled\":\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"fullScreen\":\r\n this._positionController.fullScreen = args.value;\r\n this._toggleFullScreenClass(args.value);\r\n this._toggleSafariScrolling();\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"showCloseButton\":\r\n this._renderTitle();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n bottomToolbar: function() {\r\n return this._$bottom\r\n },\r\n topToolbar: function() {\r\n return this._$title\r\n },\r\n $content: function() {\r\n return this._$popupContent\r\n },\r\n content: function() {\r\n return getPublicElement(this.$content())\r\n },\r\n $overlayContent: function() {\r\n return this._$content\r\n }\r\n});\r\nregisterComponent(\"dxPopup\", Popup);\r\nexport default Popup;\r\n","/**\r\n * DevExtreme (esm/ui/popup.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Popup from \"./popup/ui.popup\";\r\nexport default Popup;\r\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils = require('../utils/common');\nvar trees = require('./trees');\nvar adler32 = require('./adler32');\nvar crc32 = require('./crc32');\nvar msg = require('./messages');\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\nvar Z_NO_FLUSH = 0;\nvar Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH = 2;\nvar Z_FULL_FLUSH = 3;\nvar Z_FINISH = 4;\nvar Z_BLOCK = 5;\n//var Z_TREES = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\n//var Z_NEED_DICT = 2;\n//var Z_ERRNO = -1;\nvar Z_STREAM_ERROR = -2;\nvar Z_DATA_ERROR = -3;\n//var Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR = -5;\n//var Z_VERSION_ERROR = -6;\n\n\n/* compression levels */\n//var Z_NO_COMPRESSION = 0;\n//var Z_BEST_SPEED = 1;\n//var Z_BEST_COMPRESSION = 9;\nvar Z_DEFAULT_COMPRESSION = -1;\n\n\nvar Z_FILTERED = 1;\nvar Z_HUFFMAN_ONLY = 2;\nvar Z_RLE = 3;\nvar Z_FIXED = 4;\nvar Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\n//var Z_BINARY = 0;\n//var Z_TEXT = 1;\n//var Z_ASCII = 1; // = Z_TEXT\nvar Z_UNKNOWN = 2;\n\n\n/* The deflate compression method */\nvar Z_DEFLATED = 8;\n\n/*============================================================================*/\n\n\nvar MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\nvar DEF_MEM_LEVEL = 8;\n\n\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nvar D_CODES = 30;\n/* number of distance codes */\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nvar HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\nvar MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nvar PRESET_DICT = 0x20;\n\nvar INIT_STATE = 42;\nvar EXTRA_STATE = 69;\nvar NAME_STATE = 73;\nvar COMMENT_STATE = 91;\nvar HCRC_STATE = 103;\nvar BUSY_STATE = 113;\nvar FINISH_STATE = 666;\n\nvar BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nvar BS_BLOCK_DONE = 2; /* block flush performed */\nvar BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nvar BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nvar OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nfunction err(strm, errorCode) {\n strm.msg = msg[errorCode];\n return errorCode;\n}\n\nfunction rank(f) {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n}\n\nfunction zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nfunction flush_pending(strm) {\n var s = strm.state;\n\n //_tr_flush_bits(s);\n var len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n}\n\n\nfunction flush_block_only(s, last) {\n trees._tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n}\n\n\nfunction put_byte(s, b) {\n s.pending_buf[s.pending++] = b;\n}\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nfunction putShortMSB(s, b) {\n// put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n}\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nfunction read_buf(strm, buf, start, size) {\n var len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n utils.arraySet(buf, strm.input, strm.next_in, len, start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n}\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nfunction longest_match(s, cur_match) {\n var chain_length = s.max_chain_length; /* max hash chain length */\n var scan = s.strstart; /* current string */\n var match; /* matched string */\n var len; /* length of current match */\n var best_len = s.prev_length; /* best match length so far */\n var nice_match = s.nice_match; /* stop if match long enough */\n var limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n var _win = s.window; // shortcut\n\n var wmask = s.w_mask;\n var prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n var strend = s.strstart + MAX_MATCH;\n var scan_end1 = _win[scan + best_len - 1];\n var scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n}\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nfunction fill_window(s) {\n var _w_size = s.w_size;\n var p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n utils.arraySet(s.window, s.window, _w_size, _w_size, 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask;\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// var curr = s.strstart + s.lookahead;\n// var init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n}\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nfunction deflate_stored(s, flush) {\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n var max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n// s.block_start >= s.w_size)) {\n// throw new Error(\"slide too late\");\n// }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n// if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n var max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n}\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nfunction deflate_fast(s, flush) {\n var hash_head; /* head of the hash chain */\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask;\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nfunction deflate_slow(s, flush) {\n var hash_head; /* head of hash chain */\n var bflush; /* set if current block must be flushed */\n\n var max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n}\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nfunction deflate_rle(s, flush) {\n var bflush; /* set if current block must be flushed */\n var prev; /* byte at distance one to match */\n var scan, strend; /* scan goes up to strend for length of run */\n\n var _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nfunction deflate_huff(s, flush) {\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nvar configuration_table;\n\nconfiguration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nfunction lm_init(s) {\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n}\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new utils.Buf16(HEAP_SIZE * 2);\n this.dyn_dtree = new utils.Buf16((2 * D_CODES + 1) * 2);\n this.bl_tree = new utils.Buf16((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new utils.Buf16(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new utils.Buf16(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new utils.Buf16(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nfunction deflateResetKeep(strm) {\n var s;\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH;\n trees._tr_init(s);\n return Z_OK;\n}\n\n\nfunction deflateReset(strm) {\n var ret = deflateResetKeep(strm);\n if (ret === Z_OK) {\n lm_init(strm.state);\n }\n return ret;\n}\n\n\nfunction deflateSetHeader(strm, head) {\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; }\n strm.state.gzhead = head;\n return Z_OK;\n}\n\n\nfunction deflateInit2(strm, level, method, windowBits, memLevel, strategy) {\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR;\n }\n var wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n var s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new utils.Buf8(s.w_size * 2);\n s.head = new utils.Buf16(s.hash_size);\n s.prev = new utils.Buf16(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n\n //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n s.pending_buf = new utils.Buf8(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n s.d_buf = 1 * s.lit_bufsize;\n\n //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n}\n\nfunction deflateInit(strm, level) {\n return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);\n}\n\n\nfunction deflate(strm, flush) {\n var old_flush, s;\n var beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;\n }\n\n s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR);\n }\n\n s.strm = strm; /* just in case */\n old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n\n if (s.wrap === 2) { // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n else // DEFLATE header\n {\n var header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8;\n var level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n//#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n }\n else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n }\n else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n }\n else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n }\n else {\n s.status = BUSY_STATE;\n }\n }\n//#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) {\n var bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n trees._tr_align(s);\n }\n else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */\n\n trees._tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH) { return Z_OK; }\n if (s.wrap <= 0) { return Z_STREAM_END; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK : Z_STREAM_END;\n}\n\nfunction deflateEnd(strm) {\n var status;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR;\n }\n\n status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;\n}\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nfunction deflateSetDictionary(strm, dictionary) {\n var dictLength = dictionary.length;\n\n var s;\n var str, n;\n var wrap;\n var avail;\n var next;\n var input;\n var tmpDict;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR;\n }\n\n s = strm.state;\n wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n tmpDict = new utils.Buf8(s.w_size);\n utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n avail = strm.avail_in;\n next = strm.next_in;\n input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n str = s.strstart;\n n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK;\n}\n\n\nexports.deflateInit = deflateInit;\nexports.deflateInit2 = deflateInit2;\nexports.deflateReset = deflateReset;\nexports.deflateResetKeep = deflateResetKeep;\nexports.deflateSetHeader = deflateSetHeader;\nexports.deflate = deflate;\nexports.deflateEnd = deflateEnd;\nexports.deflateSetDictionary = deflateSetDictionary;\nexports.deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nexports.deflateBound = deflateBound;\nexports.deflateCopy = deflateCopy;\nexports.deflateParams = deflateParams;\nexports.deflatePending = deflatePending;\nexports.deflatePrime = deflatePrime;\nexports.deflateTune = deflateTune;\n*/\n","'use strict';\n\nvar zlib = require('zlib');\n\nmodule.exports = {\n gzip: function gzip(input, options) {\n var promise = new Promise(function (resolve, reject) {\n zlib.gzip(input, options, function (error, result) {\n if (!error) resolve(result);else reject(Error(error));\n });\n });\n return promise;\n },\n ungzip: function ungzip(input, options) {\n var promise = new Promise(function (resolve, reject) {\n zlib.gunzip(input, options, function (error, result) {\n if (!error) resolve(result);else reject(Error(error));\n });\n });\n return promise;\n }\n};","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('splice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\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","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, { hasUnpiped: false });\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.strategy.grouped.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 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 isNumeric\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport storeHelper from \"../../data/store_helper\";\r\nimport query from \"../../data/query\";\r\nimport EditStrategy from \"../collection/ui.collection_widget.edit.strategy.plain\";\r\nvar LIST_ITEM_CLASS = \"dx-list-item\";\r\nvar LIST_GROUP_CLASS = \"dx-list-group\";\r\nvar SELECTION_SHIFT = 20;\r\nvar SELECTION_MASK = (1 << SELECTION_SHIFT) - 1;\r\nvar combineIndex = function(indices) {\r\n return (indices.group << SELECTION_SHIFT) + indices.item\r\n};\r\nvar splitIndex = function(combinedIndex) {\r\n return {\r\n group: combinedIndex >> SELECTION_SHIFT,\r\n item: combinedIndex & SELECTION_MASK\r\n }\r\n};\r\nvar GroupedEditStrategy = EditStrategy.inherit({\r\n _groupElements: function() {\r\n return this._collectionWidget._itemContainer().find(\".\" + LIST_GROUP_CLASS)\r\n },\r\n _groupItemElements: function($group) {\r\n return $group.find(\".\" + LIST_ITEM_CLASS)\r\n },\r\n getIndexByItemData: function(itemData) {\r\n var groups = this._collectionWidget.option(\"items\");\r\n var index = false;\r\n if (!itemData) {\r\n return false\r\n }\r\n if (itemData.items && itemData.items.length) {\r\n itemData = itemData.items[0]\r\n }\r\n each(groups, (function(groupIndex, group) {\r\n if (!group.items) {\r\n return false\r\n }\r\n each(group.items, (function(itemIndex, item) {\r\n if (item !== itemData) {\r\n return true\r\n }\r\n index = {\r\n group: groupIndex,\r\n item: itemIndex\r\n };\r\n return false\r\n }));\r\n if (index) {\r\n return false\r\n }\r\n }));\r\n return index\r\n },\r\n getItemDataByIndex: function(index) {\r\n var items = this._collectionWidget.option(\"items\");\r\n if (isNumeric(index)) {\r\n return this.itemsGetter()[index]\r\n }\r\n return index && items[index.group] && items[index.group].items[index.item] || null\r\n },\r\n itemsGetter: function() {\r\n var resultItems = [];\r\n var items = this._collectionWidget.option(\"items\");\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i] && items[i].items) {\r\n resultItems = resultItems.concat(items[i].items)\r\n } else {\r\n resultItems.push(items[i])\r\n }\r\n }\r\n return resultItems\r\n },\r\n deleteItemAtIndex: function(index) {\r\n var indices = splitIndex(index);\r\n var itemGroup = this._collectionWidget.option(\"items\")[indices.group].items;\r\n itemGroup.splice(indices.item, 1)\r\n },\r\n getKeysByItems: function(items) {\r\n var plainItems = [];\r\n var i;\r\n for (i = 0; i < items.length; i++) {\r\n if (items[i] && items[i].items) {\r\n plainItems = plainItems.concat(items[i].items)\r\n } else {\r\n plainItems.push(items[i])\r\n }\r\n }\r\n var result = [];\r\n for (i = 0; i < plainItems.length; i++) {\r\n result.push(this._collectionWidget.keyOf(plainItems[i]))\r\n }\r\n return result\r\n },\r\n getIndexByKey: function(key, items) {\r\n var groups = items || this._collectionWidget.option(\"items\");\r\n var index = -1;\r\n var that = this;\r\n each(groups, (function(groupIndex, group) {\r\n if (!group.items) {\r\n return\r\n }\r\n each(group.items, (function(itemIndex, item) {\r\n var itemKey = that._collectionWidget.keyOf(item);\r\n if (that._equalKeys(itemKey, key)) {\r\n index = {\r\n group: groupIndex,\r\n item: itemIndex\r\n };\r\n return false\r\n }\r\n }));\r\n if (-1 !== index) {\r\n return false\r\n }\r\n }));\r\n return index\r\n },\r\n _getGroups: function(items) {\r\n var dataSource = this._collectionWidget.getDataSource();\r\n var group = dataSource && dataSource.group();\r\n if (group) {\r\n return storeHelper.queryByOptions(query(items), {\r\n group: group\r\n }).toArray()\r\n }\r\n return this._collectionWidget.option(\"items\")\r\n },\r\n getItemsByKeys: function(keys, items) {\r\n var result = [];\r\n var groups = this._getGroups(items);\r\n var groupItemByKeyMap = {};\r\n var getItemMeta = key => {\r\n var index = this.getIndexByKey(key, groups);\r\n var group = index && groups[index.group];\r\n if (!group) {\r\n return\r\n }\r\n return {\r\n groupKey: group.key,\r\n item: group.items[index.item]\r\n }\r\n };\r\n each(keys, (function(_, key) {\r\n var itemMeta = getItemMeta(key);\r\n if (!itemMeta) {\r\n return\r\n }\r\n var groupKey = itemMeta.groupKey;\r\n var item = itemMeta.item;\r\n var selectedGroup = groupItemByKeyMap[groupKey];\r\n if (!selectedGroup) {\r\n selectedGroup = {\r\n key: groupKey,\r\n items: []\r\n };\r\n groupItemByKeyMap[groupKey] = selectedGroup;\r\n result.push(selectedGroup)\r\n }\r\n selectedGroup.items.push(item)\r\n }));\r\n return result\r\n },\r\n moveItemAtIndexToIndex: function(movingIndex, destinationIndex) {\r\n var items = this._collectionWidget.option(\"items\");\r\n var movingIndices = splitIndex(movingIndex);\r\n var destinationIndices = splitIndex(destinationIndex);\r\n var movingItemGroup = items[movingIndices.group].items;\r\n var destinationItemGroup = items[destinationIndices.group].items;\r\n var movedItemData = movingItemGroup[movingIndices.item];\r\n movingItemGroup.splice(movingIndices.item, 1);\r\n destinationItemGroup.splice(destinationIndices.item, 0, movedItemData)\r\n },\r\n _isItemIndex: function(index) {\r\n return index && isNumeric(index.group) && isNumeric(index.item)\r\n },\r\n _getNormalizedItemIndex: function(itemElement) {\r\n var $item = $(itemElement);\r\n var $group = $item.closest(\".\" + LIST_GROUP_CLASS);\r\n if (!$group.length) {\r\n return -1\r\n }\r\n return combineIndex({\r\n group: this._groupElements().index($group),\r\n item: this._groupItemElements($group).index($item)\r\n })\r\n },\r\n _normalizeItemIndex: function(index) {\r\n return combineIndex(index)\r\n },\r\n _denormalizeItemIndex: function(index) {\r\n return splitIndex(index)\r\n },\r\n _getItemByNormalizedIndex: function(index) {\r\n var indices = splitIndex(index);\r\n var $group = this._groupElements().eq(indices.group);\r\n return this._groupItemElements($group).eq(indices.item)\r\n },\r\n _itemsFromSameParent: function(firstIndex, secondIndex) {\r\n return splitIndex(firstIndex).group === splitIndex(secondIndex).group\r\n }\r\n});\r\nexport default GroupedEditStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.provider.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n registry\r\n} from \"./ui.list.edit.decorator_registry\";\r\nvar editOptionsRegistry = [];\r\nvar registerOption = function(enabledFunc, decoratorTypeFunc, decoratorSubTypeFunc) {\r\n editOptionsRegistry.push({\r\n enabled: enabledFunc,\r\n decoratorType: decoratorTypeFunc,\r\n decoratorSubType: decoratorSubTypeFunc\r\n })\r\n};\r\nregisterOption((function() {\r\n return this.option(\"menuItems\").length\r\n}), (function() {\r\n return \"menu\"\r\n}), (function() {\r\n return this.option(\"menuMode\")\r\n}));\r\nregisterOption((function() {\r\n return !this.option(\"menuItems\").length && this.option(\"allowItemDeleting\")\r\n}), (function() {\r\n var mode = this.option(\"itemDeleteMode\");\r\n return \"toggle\" === mode || \"slideButton\" === mode || \"swipe\" === mode || \"static\" === mode ? \"delete\" : \"menu\"\r\n}), (function() {\r\n var mode = this.option(\"itemDeleteMode\");\r\n if (\"slideItem\" === mode) {\r\n mode = \"slide\"\r\n }\r\n return mode\r\n}));\r\nregisterOption((function() {\r\n return \"none\" !== this.option(\"selectionMode\") && this.option(\"showSelectionControls\")\r\n}), (function() {\r\n return \"selection\"\r\n}), (function() {\r\n return \"default\"\r\n}));\r\nregisterOption((function() {\r\n return this.option(\"itemDragging.allowReordering\") || this.option(\"itemDragging.allowDropInsideItem\") || this.option(\"itemDragging.group\")\r\n}), (function() {\r\n return \"reorder\"\r\n}), (function() {\r\n return \"default\"\r\n}));\r\nvar LIST_ITEM_BEFORE_BAG_CLASS = \"dx-list-item-before-bag\";\r\nvar LIST_ITEM_AFTER_BAG_CLASS = \"dx-list-item-after-bag\";\r\nvar DECORATOR_BEFORE_BAG_CREATE_METHOD = \"beforeBag\";\r\nvar DECORATOR_AFTER_BAG_CREATE_METHOD = \"afterBag\";\r\nvar DECORATOR_MODIFY_ELEMENT_METHOD = \"modifyElement\";\r\nvar DECORATOR_AFTER_RENDER_METHOD = \"afterRender\";\r\nvar DECORATOR_GET_EXCLUDED_SELECTORS_METHOD = \"getExcludedSelectors\";\r\nvar EditProvider = Class.inherit({\r\n ctor: function(list) {\r\n this._list = list;\r\n this._fetchRequiredDecorators()\r\n },\r\n dispose: function() {\r\n if (this._decorators && this._decorators.length) {\r\n each(this._decorators, (function(_, decorator) {\r\n decorator.dispose()\r\n }))\r\n }\r\n },\r\n _fetchRequiredDecorators: function() {\r\n this._decorators = [];\r\n each(editOptionsRegistry, function(_, option) {\r\n var optionEnabled = option.enabled.call(this._list);\r\n if (optionEnabled) {\r\n var decoratorType = option.decoratorType.call(this._list);\r\n var decoratorSubType = option.decoratorSubType.call(this._list);\r\n var decorator = this._createDecorator(decoratorType, decoratorSubType);\r\n this._decorators.push(decorator)\r\n }\r\n }.bind(this))\r\n },\r\n _createDecorator: function(type, subType) {\r\n var decoratorClass = this._findDecorator(type, subType);\r\n return new decoratorClass(this._list)\r\n },\r\n _findDecorator: function(type, subType) {\r\n var _registry$type;\r\n var foundDecorator = null === (_registry$type = registry[type]) || void 0 === _registry$type ? void 0 : _registry$type[subType];\r\n if (!foundDecorator) {\r\n throw errors.Error(\"E1012\", type, subType)\r\n }\r\n return foundDecorator\r\n },\r\n modifyItemElement: function(args) {\r\n var $itemElement = $(args.itemElement);\r\n var config = {\r\n $itemElement: $itemElement\r\n };\r\n this._prependBeforeBags($itemElement, config);\r\n this._appendAfterBags($itemElement, config);\r\n this._applyDecorators(DECORATOR_MODIFY_ELEMENT_METHOD, config)\r\n },\r\n afterItemsRendered: function() {\r\n this._applyDecorators(DECORATOR_AFTER_RENDER_METHOD)\r\n },\r\n _prependBeforeBags: function($itemElement, config) {\r\n var $beforeBags = this._collectDecoratorsMarkup(DECORATOR_BEFORE_BAG_CREATE_METHOD, config, LIST_ITEM_BEFORE_BAG_CLASS);\r\n $itemElement.prepend($beforeBags)\r\n },\r\n _appendAfterBags: function($itemElement, config) {\r\n var $afterBags = this._collectDecoratorsMarkup(DECORATOR_AFTER_BAG_CREATE_METHOD, config, LIST_ITEM_AFTER_BAG_CLASS);\r\n $itemElement.append($afterBags)\r\n },\r\n _collectDecoratorsMarkup: function(method, config, containerClass) {\r\n var $collector = $(\"
\");\r\n each(this._decorators, (function() {\r\n var $container = $(\"
\").addClass(containerClass);\r\n this[method](extend({\r\n $container: $container\r\n }, config));\r\n if ($container.children().length) {\r\n $collector.append($container)\r\n }\r\n }));\r\n return $collector.children()\r\n },\r\n _applyDecorators: function(method, config) {\r\n each(this._decorators, (function() {\r\n this[method](config)\r\n }))\r\n },\r\n _handlerExists: function(name) {\r\n if (!this._decorators) {\r\n return false\r\n }\r\n var decorators = this._decorators;\r\n var length = decorators.length;\r\n for (var i = 0; i < length; i++) {\r\n if (decorators[i][name] !== noop) {\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n _eventHandler: function(name, $itemElement, e) {\r\n if (!this._decorators) {\r\n return false\r\n }\r\n var response = false;\r\n var decorators = this._decorators;\r\n var length = decorators.length;\r\n for (var i = 0; i < length; i++) {\r\n response = decorators[i][name]($itemElement, e);\r\n if (response) {\r\n break\r\n }\r\n }\r\n return response\r\n },\r\n handleClick: function($itemElement, e) {\r\n return this._eventHandler(\"handleClick\", $itemElement, e)\r\n },\r\n handleKeyboardEvents: function(currentFocusedIndex, moveFocusUp) {\r\n return this._eventHandler(\"handleKeyboardEvents\", currentFocusedIndex, moveFocusUp)\r\n },\r\n handleEnterPressing: function(e) {\r\n return this._eventHandler(\"handleEnterPressing\", e)\r\n },\r\n contextMenuHandlerExists: function() {\r\n return this._handlerExists(\"handleContextMenu\")\r\n },\r\n handleContextMenu: function($itemElement, e) {\r\n return this._eventHandler(\"handleContextMenu\", $itemElement, e)\r\n },\r\n getExcludedItemSelectors: function() {\r\n var excludedSelectors = [];\r\n this._applyDecorators(DECORATOR_GET_EXCLUDED_SELECTORS_METHOD, excludedSelectors);\r\n return excludedSelectors.join(\",\")\r\n }\r\n});\r\nexport default EditProvider;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isTouchEvent\r\n} from \"../../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport GroupedEditStrategy from \"./ui.list.edit.strategy.grouped\";\r\nimport localizationMessage from \"../../localization/message\";\r\nimport EditProvider from \"./ui.list.edit.provider\";\r\nimport {\r\n ListBase\r\n} from \"./ui.list.base\";\r\nvar LIST_ITEM_SELECTED_CLASS = \"dx-list-item-selected\";\r\nvar LIST_ITEM_RESPONSE_WAIT_CLASS = \"dx-list-item-response-wait\";\r\nvar ListEdit = ListBase.inherit({\r\n _supportedKeys() {\r\n var that = this;\r\n var parent = this.callBase();\r\n var moveFocusedItem = (e, moveUp) => {\r\n var editStrategy = this._editStrategy;\r\n var focusedElement = this.option(\"focusedElement\");\r\n var focusedItemIndex = editStrategy.getNormalizedIndex(focusedElement);\r\n var isLastIndexFocused = focusedItemIndex === this._getLastItemIndex();\r\n if (isLastIndexFocused && this._isDataSourceLoading()) {\r\n return\r\n }\r\n if (e.shiftKey && that.option(\"itemDragging.allowReordering\")) {\r\n var nextItemIndex = focusedItemIndex + (moveUp ? -1 : 1);\r\n var $nextItem = editStrategy.getItemElement(nextItemIndex);\r\n this.reorderItem(focusedElement, $nextItem);\r\n this.scrollToItem(focusedElement);\r\n e.preventDefault()\r\n } else {\r\n var editProvider = this._editProvider;\r\n var isInternalMoving = editProvider.handleKeyboardEvents(focusedItemIndex, moveUp);\r\n if (!isInternalMoving) {\r\n moveUp ? parent.upArrow(e) : parent.downArrow(e)\r\n }\r\n }\r\n };\r\n return extend({}, parent, {\r\n del: e => {\r\n if (that.option(\"allowItemDeleting\")) {\r\n e.preventDefault();\r\n that.deleteItem(that.option(\"focusedElement\"))\r\n }\r\n },\r\n upArrow: e => moveFocusedItem(e, true),\r\n downArrow: e => moveFocusedItem(e),\r\n enter: function(e) {\r\n if (!this._editProvider.handleEnterPressing(e)) {\r\n parent.enter.apply(this, arguments)\r\n }\r\n },\r\n space: function(e) {\r\n if (!this._editProvider.handleEnterPressing(e)) {\r\n parent.space.apply(this, arguments)\r\n }\r\n }\r\n })\r\n },\r\n _updateSelection() {\r\n this._editProvider.afterItemsRendered();\r\n this.callBase()\r\n },\r\n _getLastItemIndex() {\r\n return this._itemElements().length - 1\r\n },\r\n _refreshItemElements() {\r\n this.callBase();\r\n var excludedSelectors = this._editProvider.getExcludedItemSelectors();\r\n if (excludedSelectors.length) {\r\n this._itemElementsCache = this._itemElementsCache.not(excludedSelectors)\r\n }\r\n },\r\n _isItemStrictEquals: function(item1, item2) {\r\n var privateKey = item1 && item1.__dx_key__;\r\n if (privateKey && !this.key() && this._selection.isItemSelected(privateKey)) {\r\n return false\r\n }\r\n return this.callBase(item1, item2)\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n showSelectionControls: false,\r\n selectionMode: \"none\",\r\n selectAllMode: \"page\",\r\n onSelectAllValueChanged: null,\r\n selectAllText: localizationMessage.format(\"dxList-selectAll\"),\r\n menuItems: [],\r\n menuMode: \"context\",\r\n allowItemDeleting: false,\r\n itemDeleteMode: \"static\",\r\n itemDragging: {}\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: _device => \"ios\" === _device.platform,\r\n options: {\r\n menuMode: \"slide\",\r\n itemDeleteMode: \"slideItem\"\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n itemDeleteMode: \"swipe\"\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initEditProvider()\r\n },\r\n _initDataSource() {\r\n this.callBase();\r\n if (!this._isPageSelectAll()) {\r\n this._dataSource && this._dataSource.requireTotalCount(true)\r\n }\r\n },\r\n _isPageSelectAll() {\r\n return \"page\" === this.option(\"selectAllMode\")\r\n },\r\n _initEditProvider() {\r\n this._editProvider = new EditProvider(this)\r\n },\r\n _disposeEditProvider() {\r\n if (this._editProvider) {\r\n this._editProvider.dispose()\r\n }\r\n },\r\n _refreshEditProvider() {\r\n this._disposeEditProvider();\r\n this._initEditProvider()\r\n },\r\n _initEditStrategy() {\r\n if (this.option(\"grouped\")) {\r\n this._editStrategy = new GroupedEditStrategy(this)\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n _initMarkup() {\r\n this._refreshEditProvider();\r\n this.callBase()\r\n },\r\n _renderItems() {\r\n this.callBase(...arguments);\r\n this._editProvider.afterItemsRendered()\r\n },\r\n _selectedItemClass: () => LIST_ITEM_SELECTED_CLASS,\r\n _itemResponseWaitClass: () => LIST_ITEM_RESPONSE_WAIT_CLASS,\r\n _itemClickHandler(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n var handledByEditProvider = this._editProvider.handleClick($itemElement, e);\r\n if (handledByEditProvider) {\r\n return\r\n }\r\n this._saveSelectionChangeEvent(e);\r\n this.callBase(...arguments)\r\n },\r\n _shouldFireContextMenuEvent() {\r\n return this.callBase(...arguments) || this._editProvider.contextMenuHandlerExists()\r\n },\r\n _itemHoldHandler(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n var handledByEditProvider = isTouchEvent(e) && this._editProvider.handleContextMenu($itemElement, e);\r\n if (handledByEditProvider) {\r\n e.handledByEditProvider = true;\r\n return\r\n }\r\n this.callBase(...arguments)\r\n },\r\n _getItemContainer: function(changeData) {\r\n if (this.option(\"grouped\")) {\r\n var _this$_editStrategy$g;\r\n var groupIndex = null === (_this$_editStrategy$g = this._editStrategy.getIndexByItemData(changeData)) || void 0 === _this$_editStrategy$g ? void 0 : _this$_editStrategy$g.group;\r\n return this._getGroupContainerByIndex(groupIndex)\r\n } else {\r\n return this.callBase(changeData)\r\n }\r\n },\r\n _itemContextMenuHandler(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n var handledByEditProvider = !e.handledByEditProvider && this._editProvider.handleContextMenu($itemElement, e);\r\n if (handledByEditProvider) {\r\n e.preventDefault();\r\n return\r\n }\r\n this.callBase(...arguments)\r\n },\r\n _postprocessRenderItem(args) {\r\n this.callBase(...arguments);\r\n this._editProvider.modifyItemElement(args)\r\n },\r\n _clean() {\r\n this._disposeEditProvider();\r\n this.callBase()\r\n },\r\n focusListItem(index) {\r\n var $item = this._editStrategy.getItemElement(index);\r\n this.option(\"focusedElement\", $item);\r\n this.focus();\r\n this.scrollToItem(this.option(\"focusedElement\"))\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"selectAllMode\":\r\n this._initDataSource();\r\n this._dataSource.pageIndex(0);\r\n this._dataSource.load();\r\n break;\r\n case \"grouped\":\r\n this._clearSelectedItems();\r\n delete this._renderingGroupIndex;\r\n this._initEditStrategy();\r\n this.callBase(args);\r\n break;\r\n case \"showSelectionControls\":\r\n case \"menuItems\":\r\n case \"menuMode\":\r\n case \"allowItemDeleting\":\r\n case \"itemDeleteMode\":\r\n case \"itemDragging\":\r\n case \"selectAllText\":\r\n this._invalidate();\r\n break;\r\n case \"onSelectAllValueChanged\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n selectAll() {\r\n return this._selection.selectAll(this._isPageSelectAll())\r\n },\r\n unselectAll() {\r\n return this._selection.deselectAll(this._isPageSelectAll())\r\n },\r\n isSelectAll() {\r\n return this._selection.getSelectAllState(this._isPageSelectAll())\r\n },\r\n getFlatIndexByItemElement(itemElement) {\r\n return this._itemElements().index(itemElement)\r\n },\r\n getItemElementByFlatIndex(flatIndex) {\r\n var $itemElements = this._itemElements();\r\n if (flatIndex < 0 || flatIndex >= $itemElements.length) {\r\n return $()\r\n }\r\n return $itemElements.eq(flatIndex)\r\n },\r\n getItemByIndex(index) {\r\n return this._editStrategy.getItemDataByIndex(index)\r\n }\r\n});\r\nexport default ListEdit;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.search.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ListEdit from \"./ui.list.edit\";\r\nimport searchBoxMixin from \"../widget/ui.search_box_mixin\";\r\nvar ListSearch = ListEdit.inherit(searchBoxMixin).inherit({\r\n _addWidgetPrefix: function(className) {\r\n return \"dx-list-\" + className\r\n },\r\n _getCombinedFilter: function() {\r\n var filter;\r\n var storeLoadOptions;\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n storeLoadOptions = {\r\n filter: dataSource.filter()\r\n };\r\n dataSource._addSearchFilter(storeLoadOptions);\r\n filter = storeLoadOptions.filter\r\n }\r\n return filter\r\n },\r\n _initDataSource: function() {\r\n var value = this.option(\"searchValue\");\r\n var expr = this.option(\"searchExpr\");\r\n var mode = this.option(\"searchMode\");\r\n this.callBase();\r\n if (this._dataSource) {\r\n value && value.length && this._dataSource.searchValue(value);\r\n mode.length && this._dataSource.searchOperation(searchBoxMixin.getOperationBySearchMode(mode));\r\n expr && this._dataSource.searchExpr(expr)\r\n }\r\n }\r\n});\r\nexport default ListSearch;\r\n","/**\r\n * DevExtreme (esm/ui/list_light.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ListEdit from \"./list/ui.list.edit.search\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nregisterComponent(\"dxList\", ListEdit);\r\nexport default ListEdit;\r\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.async.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport CollectionWidgetEdit from \"./ui.collection_widget.edit\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar AsyncCollectionWidget = CollectionWidgetEdit.inherit({\r\n _initMarkup() {\r\n this._deferredItems = [];\r\n this.callBase()\r\n },\r\n _renderItemContent(args) {\r\n var renderContentDeferred = new Deferred;\r\n var itemDeferred = new Deferred;\r\n this._deferredItems[args.index] = itemDeferred;\r\n var $itemContent = this.callBase.call(this, args);\r\n itemDeferred.done(() => {\r\n renderContentDeferred.resolve($itemContent)\r\n });\r\n return renderContentDeferred.promise()\r\n },\r\n _createItemByTemplate(itemTemplate, renderArgs) {\r\n return itemTemplate.render({\r\n model: renderArgs.itemData,\r\n container: renderArgs.container,\r\n index: renderArgs.index,\r\n onRendered: () => {\r\n this._deferredItems[renderArgs.index].resolve()\r\n }\r\n })\r\n },\r\n _postProcessRenderItems: noop,\r\n _renderItemsAsync() {\r\n var d = new Deferred;\r\n when.apply(this, this._deferredItems).done(() => {\r\n this._postProcessRenderItems();\r\n d.resolve()\r\n });\r\n return d.promise()\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._deferredItems = []\r\n }\r\n});\r\nexport default AsyncCollectionWidget;\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/ui.toolbar.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 getWidth,\r\n getOuterWidth,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isMaterial,\r\n waitWebFont\r\n} from \"../themes\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isPlainObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\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 getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport AsyncCollectionWidget from \"../collection/ui.collection_widget.async\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nimport errors from \"../../core/errors\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n TOOLBAR_CLASS\r\n} from \"./constants\";\r\nvar TOOLBAR_BEFORE_CLASS = \"dx-toolbar-before\";\r\nvar TOOLBAR_CENTER_CLASS = \"dx-toolbar-center\";\r\nvar TOOLBAR_AFTER_CLASS = \"dx-toolbar-after\";\r\nvar TOOLBAR_MINI_CLASS = \"dx-toolbar-mini\";\r\nvar TOOLBAR_ITEM_CLASS = \"dx-toolbar-item\";\r\nvar TOOLBAR_LABEL_CLASS = \"dx-toolbar-label\";\r\nvar TOOLBAR_BUTTON_CLASS = \"dx-toolbar-button\";\r\nvar TOOLBAR_ITEMS_CONTAINER_CLASS = \"dx-toolbar-items-container\";\r\nvar TOOLBAR_GROUP_CLASS = \"dx-toolbar-group\";\r\nvar TOOLBAR_COMPACT_CLASS = \"dx-toolbar-compact\";\r\nvar TOOLBAR_LABEL_SELECTOR = \".\" + TOOLBAR_LABEL_CLASS;\r\nvar TOOLBAR_MULTILINE_CLASS = \"dx-toolbar-multiline\";\r\nvar TEXT_BUTTON_MODE = \"text\";\r\nvar DEFAULT_BUTTON_TYPE = \"default\";\r\nvar DEFAULT_DROPDOWNBUTTON_STYLING_MODE = \"contained\";\r\nvar TOOLBAR_ITEM_DATA_KEY = \"dxToolbarItemDataKey\";\r\nvar ToolbarBase = AsyncCollectionWidget.inherit({\r\n compactMode: false,\r\n ctor: function(element, options) {\r\n this._userOptions = options || {};\r\n this.callBase(element, options);\r\n if (\"height\" in this._userOptions) {\r\n errors.log(\"W0001\", this.NAME, \"height\", \"20.1\", \"Functionality associated with this option is not intended for the Toolbar widget.\")\r\n }\r\n },\r\n _getSynchronizableOptionsForCreateComponent: function() {\r\n return this.callBase().filter(item => \"disabled\" !== item)\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n var template = new BindableTemplate(function($container, data, rawModel) {\r\n if (isPlainObject(data)) {\r\n if (data.text) {\r\n $container.text(data.text).wrapInner(\"
\")\r\n }\r\n if (data.html) {\r\n $container.html(data.html)\r\n }\r\n if (\"dxDropDownButton\" === data.widget) {\r\n data.options = data.options || {};\r\n if (!isDefined(data.options.stylingMode)) {\r\n data.options.stylingMode = this.option(\"useFlatButtons\") ? TEXT_BUTTON_MODE : DEFAULT_DROPDOWNBUTTON_STYLING_MODE\r\n }\r\n }\r\n if (\"dxButton\" === data.widget) {\r\n if (this.option(\"useFlatButtons\")) {\r\n data.options = data.options || {};\r\n data.options.stylingMode = data.options.stylingMode || TEXT_BUTTON_MODE\r\n }\r\n if (this.option(\"useDefaultButtons\")) {\r\n data.options = data.options || {};\r\n data.options.type = data.options.type || DEFAULT_BUTTON_TYPE\r\n }\r\n }\r\n } else {\r\n $container.text(String(data))\r\n }\r\n this._getTemplate(\"dx-polymorph-widget\").render({\r\n container: $container,\r\n model: rawModel,\r\n parent: this\r\n })\r\n }.bind(this), [\"text\", \"html\", \"widget\", \"options\"], this.option(\"integrationOptions.watchMethod\"));\r\n this._templateManager.addDefaultTemplates({\r\n item: template,\r\n menuItem: template\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n renderAs: \"topToolbar\",\r\n grouped: false,\r\n useFlatButtons: false,\r\n useDefaultButtons: false,\r\n multiline: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n useFlatButtons: true\r\n }\r\n }])\r\n },\r\n _itemContainer: function() {\r\n return this._$toolbarItemsContainer.find([\".\" + TOOLBAR_BEFORE_CLASS, \".\" + TOOLBAR_CENTER_CLASS, \".\" + TOOLBAR_AFTER_CLASS].join(\",\"))\r\n },\r\n _itemClass: function() {\r\n return TOOLBAR_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return TOOLBAR_ITEM_DATA_KEY\r\n },\r\n _buttonClass: function() {\r\n return TOOLBAR_BUTTON_CLASS\r\n },\r\n _dimensionChanged: function() {\r\n this._arrangeItems();\r\n this._applyCompactMode()\r\n },\r\n _initMarkup: function() {\r\n this._renderToolbar();\r\n this._renderSections();\r\n this.callBase();\r\n this.setAria(\"role\", \"toolbar\")\r\n },\r\n _waitParentAnimationFinished: function() {\r\n var $element = this.$element();\r\n return new Promise(resolve => {\r\n var runCheck = () => {\r\n clearTimeout(this._waitParentAnimationTimeout);\r\n this._waitParentAnimationTimeout = setTimeout(() => (() => {\r\n var readyToResolve = true;\r\n $element.parents().each((_, parent) => {\r\n if (fx.isAnimating($(parent))) {\r\n readyToResolve = false;\r\n return false\r\n }\r\n });\r\n if (readyToResolve) {\r\n resolve()\r\n }\r\n return readyToResolve\r\n })() || runCheck(), 15)\r\n };\r\n runCheck()\r\n })\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderItemsAsync();\r\n if (isMaterial()) {\r\n Promise.all([this._waitParentAnimationFinished(), this._checkWebFontForLabelsLoaded()]).then(this._dimensionChanged.bind(this))\r\n }\r\n },\r\n _postProcessRenderItems: function() {\r\n this._arrangeItems()\r\n },\r\n _renderToolbar: function() {\r\n this.$element().addClass(TOOLBAR_CLASS).toggleClass(TOOLBAR_MULTILINE_CLASS, this.option(\"multiline\"));\r\n this._$toolbarItemsContainer = $(\"
\").addClass(TOOLBAR_ITEMS_CONTAINER_CLASS).appendTo(this.$element())\r\n },\r\n _renderSections: function() {\r\n var $container = this._$toolbarItemsContainer;\r\n var that = this;\r\n each([\"before\", \"center\", \"after\"], (function() {\r\n var sectionClass = \"dx-toolbar-\" + this;\r\n var $section = $container.find(\".\" + sectionClass);\r\n if (!$section.length) {\r\n that[\"_$\" + this + \"Section\"] = $section = $(\"
\").addClass(sectionClass).appendTo($container)\r\n }\r\n }))\r\n },\r\n _checkWebFontForLabelsLoaded: function() {\r\n var $labels = this.$element().find(TOOLBAR_LABEL_SELECTOR);\r\n var promises = [];\r\n $labels.each((_, label) => {\r\n var text = $(label).text();\r\n var fontWeight = $(label).css(\"fontWeight\");\r\n promises.push(waitWebFont(text, fontWeight))\r\n });\r\n return Promise.all(promises)\r\n },\r\n _arrangeItems: function(elementWidth) {\r\n elementWidth = elementWidth || getWidth(this.$element());\r\n this._$centerSection.css({\r\n margin: \"0 auto\",\r\n float: \"none\"\r\n });\r\n var beforeRect = getBoundingRect(this._$beforeSection.get(0));\r\n var afterRect = getBoundingRect(this._$afterSection.get(0));\r\n this._alignCenterSection(beforeRect, afterRect, elementWidth);\r\n var $label = this._$toolbarItemsContainer.find(TOOLBAR_LABEL_SELECTOR).eq(0);\r\n var $section = $label.parent();\r\n if (!$label.length) {\r\n return\r\n }\r\n var labelOffset = beforeRect.width ? beforeRect.width : $label.position().left;\r\n var widthBeforeSection = $section.hasClass(TOOLBAR_BEFORE_CLASS) ? 0 : labelOffset;\r\n var widthAfterSection = $section.hasClass(TOOLBAR_AFTER_CLASS) ? 0 : afterRect.width;\r\n var elemsAtSectionWidth = 0;\r\n $section.children().not(TOOLBAR_LABEL_SELECTOR).each((function() {\r\n elemsAtSectionWidth += getOuterWidth(this)\r\n }));\r\n var freeSpace = elementWidth - elemsAtSectionWidth;\r\n var sectionMaxWidth = Math.max(freeSpace - widthBeforeSection - widthAfterSection, 0);\r\n if ($section.hasClass(TOOLBAR_BEFORE_CLASS)) {\r\n this._alignSection(this._$beforeSection, sectionMaxWidth)\r\n } else {\r\n var labelPaddings = getOuterWidth($label) - getWidth($label);\r\n $label.css(\"maxWidth\", sectionMaxWidth - labelPaddings)\r\n }\r\n },\r\n _alignCenterSection: function(beforeRect, afterRect, elementWidth) {\r\n this._alignSection(this._$centerSection, elementWidth - beforeRect.width - afterRect.width);\r\n var isRTL = this.option(\"rtlEnabled\");\r\n var leftRect = isRTL ? afterRect : beforeRect;\r\n var rightRect = isRTL ? beforeRect : afterRect;\r\n var centerRect = getBoundingRect(this._$centerSection.get(0));\r\n if (leftRect.right > centerRect.left || centerRect.right > rightRect.left) {\r\n this._$centerSection.css({\r\n marginLeft: leftRect.width,\r\n marginRight: rightRect.width,\r\n float: leftRect.width > rightRect.width ? \"none\" : \"right\"\r\n })\r\n }\r\n },\r\n _alignSection: function($section, maxWidth) {\r\n var $labels = $section.find(TOOLBAR_LABEL_SELECTOR);\r\n var labels = $labels.toArray();\r\n maxWidth -= this._getCurrentLabelsPaddings(labels);\r\n var currentWidth = this._getCurrentLabelsWidth(labels);\r\n var difference = Math.abs(currentWidth - maxWidth);\r\n if (maxWidth < currentWidth) {\r\n labels = labels.reverse();\r\n this._alignSectionLabels(labels, difference, false)\r\n } else {\r\n this._alignSectionLabels(labels, difference, true)\r\n }\r\n },\r\n _alignSectionLabels: function(labels, difference, expanding) {\r\n var getRealLabelWidth = function(label) {\r\n return getBoundingRect(label).width\r\n };\r\n for (var i = 0; i < labels.length; i++) {\r\n var $label = $(labels[i]);\r\n var currentLabelWidth = Math.ceil(getRealLabelWidth(labels[i]));\r\n var labelMaxWidth = void 0;\r\n if (expanding) {\r\n $label.css(\"maxWidth\", \"inherit\")\r\n }\r\n var possibleLabelWidth = Math.ceil(expanding ? getRealLabelWidth(labels[i]) : currentLabelWidth);\r\n if (possibleLabelWidth < difference) {\r\n labelMaxWidth = expanding ? possibleLabelWidth : 0;\r\n difference -= possibleLabelWidth\r\n } else {\r\n labelMaxWidth = expanding ? currentLabelWidth + difference : currentLabelWidth - difference;\r\n $label.css(\"maxWidth\", labelMaxWidth);\r\n break\r\n }\r\n $label.css(\"maxWidth\", labelMaxWidth)\r\n }\r\n },\r\n _applyCompactMode: function() {\r\n var $element = this.$element();\r\n $element.removeClass(TOOLBAR_COMPACT_CLASS);\r\n if (this.option(\"compactMode\") && this._getSummaryItemsWidth(this.itemElements(), true) > getWidth($element)) {\r\n $element.addClass(TOOLBAR_COMPACT_CLASS)\r\n }\r\n },\r\n _getCurrentLabelsWidth: function(labels) {\r\n var width = 0;\r\n labels.forEach((function(label, index) {\r\n width += getOuterWidth(label)\r\n }));\r\n return width\r\n },\r\n _getCurrentLabelsPaddings: function(labels) {\r\n var padding = 0;\r\n labels.forEach((function(label, index) {\r\n padding += getOuterWidth(label) - getWidth(label)\r\n }));\r\n return padding\r\n },\r\n _renderItem: function(index, item, itemContainer, $after) {\r\n var location = item.location || \"center\";\r\n var container = itemContainer || this[\"_$\" + location + \"Section\"];\r\n var itemHasText = !!(item.text || item.html);\r\n var itemElement = this.callBase(index, item, container, $after);\r\n itemElement.toggleClass(this._buttonClass(), !itemHasText).toggleClass(TOOLBAR_LABEL_CLASS, itemHasText).addClass(item.cssClass);\r\n return itemElement\r\n },\r\n _renderGroupedItems: function() {\r\n var that = this;\r\n each(this.option(\"items\"), (function(groupIndex, group) {\r\n var groupItems = group.items;\r\n var $container = $(\"
\").addClass(TOOLBAR_GROUP_CLASS);\r\n var location = group.location || \"center\";\r\n if (!groupItems || !groupItems.length) {\r\n return\r\n }\r\n each(groupItems, (function(itemIndex, item) {\r\n that._renderItem(itemIndex, item, $container, null)\r\n }));\r\n that._$toolbarItemsContainer.find(\".dx-toolbar-\" + location).append($container)\r\n }))\r\n },\r\n _renderItems: function(items) {\r\n var grouped = this.option(\"grouped\") && items.length && items[0].items;\r\n grouped ? this._renderGroupedItems() : this.callBase(items)\r\n },\r\n _getToolbarItems: function() {\r\n return this.option(\"items\") || []\r\n },\r\n _renderContentImpl: function() {\r\n var items = this._getToolbarItems();\r\n this.$element().toggleClass(TOOLBAR_MINI_CLASS, 0 === items.length);\r\n if (this._renderedItemsCount) {\r\n this._renderItems(items.slice(this._renderedItemsCount))\r\n } else {\r\n this._renderItems(items)\r\n }\r\n this._applyCompactMode()\r\n },\r\n _renderEmptyMessage: noop,\r\n _clean: function() {\r\n this._$toolbarItemsContainer.children().empty();\r\n this.$element().empty()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._arrangeItems()\r\n }\r\n },\r\n _isVisible: function() {\r\n return getWidth(this.$element()) > 0 && getHeight(this.$element()) > 0\r\n },\r\n _getIndexByItem: function(item) {\r\n return this._getToolbarItems().indexOf(item)\r\n },\r\n _itemOptionChanged: function(item, property, value) {\r\n this.callBase.apply(this, [item, property, value]);\r\n this._arrangeItems()\r\n },\r\n _optionChanged: function(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"width\":\r\n this.callBase.apply(this, arguments);\r\n this._dimensionChanged();\r\n break;\r\n case \"multiline\":\r\n this.$element().toggleClass(TOOLBAR_MULTILINE_CLASS, args.value);\r\n break;\r\n case \"renderAs\":\r\n case \"useFlatButtons\":\r\n case \"useDefaultButtons\":\r\n this._invalidate();\r\n break;\r\n case \"compactMode\":\r\n this._applyCompactMode();\r\n break;\r\n case \"grouped\":\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._waitParentAnimationTimeout)\r\n }\r\n});\r\nregisterComponent(\"dxToolbarBase\", ToolbarBase);\r\nexport default ToolbarBase;\r\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","/**\r\n * DevExtreme (esm/ui/list/modules/search.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport searchBoxMixin from \"../../widget/ui.search_box_mixin\";\r\nimport TextBox from \"../../text_box\";\r\nsearchBoxMixin.setEditorClass(TextBox);\r\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","'use strict';\n\n\nvar TYPED_OK = (typeof Uint8Array !== 'undefined') &&\n (typeof Uint16Array !== 'undefined') &&\n (typeof Int32Array !== 'undefined');\n\nfunction _has(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nexports.assign = function (obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n var source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (var p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// reduce buffer size, avoiding mem copy\nexports.shrinkBuf = function (buf, size) {\n if (buf.length === size) { return buf; }\n if (buf.subarray) { return buf.subarray(0, size); }\n buf.length = size;\n return buf;\n};\n\n\nvar fnTyped = {\n arraySet: function (dest, src, src_offs, len, dest_offs) {\n if (src.subarray && dest.subarray) {\n dest.set(src.subarray(src_offs, src_offs + len), dest_offs);\n return;\n }\n // Fallback to ordinary array\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n },\n // Join array of chunks to single array.\n flattenChunks: function (chunks) {\n var i, l, len, pos, chunk, result;\n\n // calculate data length\n len = 0;\n for (i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n result = new Uint8Array(len);\n pos = 0;\n for (i = 0, l = chunks.length; i < l; i++) {\n chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n }\n};\n\nvar fnUntyped = {\n arraySet: function (dest, src, src_offs, len, dest_offs) {\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n },\n // Join array of chunks to single array.\n flattenChunks: function (chunks) {\n return [].concat.apply([], chunks);\n }\n};\n\n\n// Enable/Disable typed arrays use, for testing\n//\nexports.setTyped = function (on) {\n if (on) {\n exports.Buf8 = Uint8Array;\n exports.Buf16 = Uint16Array;\n exports.Buf32 = Int32Array;\n exports.assign(exports, fnTyped);\n } else {\n exports.Buf8 = Array;\n exports.Buf16 = Array;\n exports.Buf32 = Array;\n exports.assign(exports, fnUntyped);\n }\n};\n\nexports.setTyped(TYPED_OK);\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!./config-system-parameters.vue?vue&type=style&index=0&id=1d4af8ae&prod&lang=scss\"","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","module.exports = require('./readable').PassThrough\n","/**\r\n * DevExtreme (esm/ui/radio_group/radio_button.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport Editor from \"../editor/editor\";\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 RADIO_BUTTON_CLASS = \"dx-radiobutton\";\r\nvar RADIO_BUTTON_ICON_CLASS = \"dx-radiobutton-icon\";\r\nvar RADIO_BUTTON_ICON_DOT_CLASS = \"dx-radiobutton-icon-dot\";\r\nvar RADIO_BUTTON_CHECKED_CLASS = \"dx-radiobutton-checked\";\r\nvar RADIO_BUTTON_ICON_CHECKED_CLASS = \"dx-radiobutton-icon-checked\";\r\nvar RadioButton = Editor.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n space: function(e) {\r\n e.preventDefault();\r\n this._clickAction({\r\n event: e\r\n })\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n value: false\r\n })\r\n },\r\n _canValueBeChangedByClick: function() {\r\n return true\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(RADIO_BUTTON_CLASS)\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderIcon();\r\n this._renderCheckedState(this.option(\"value\"));\r\n this._renderClick();\r\n this.setAria(\"role\", \"radio\")\r\n },\r\n _renderIcon: function() {\r\n this._$icon = $(\"
\").addClass(RADIO_BUTTON_ICON_CLASS);\r\n $(\"
\").addClass(RADIO_BUTTON_ICON_DOT_CLASS).appendTo(this._$icon);\r\n this.$element().append(this._$icon)\r\n },\r\n _renderCheckedState: function(checked) {\r\n this.$element().toggleClass(RADIO_BUTTON_CHECKED_CLASS, checked).find(\".\" + RADIO_BUTTON_ICON_CLASS).toggleClass(RADIO_BUTTON_ICON_CHECKED_CLASS, checked);\r\n this.setAria(\"checked\", checked)\r\n },\r\n _renderClick: function() {\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n this._clickAction = this._createAction(function(args) {\r\n this._clickHandler(args.event)\r\n }.bind(this));\r\n eventsEngine.off(this.$element(), eventName);\r\n eventsEngine.on(this.$element(), eventName, function(e) {\r\n this._clickAction({\r\n event: e\r\n })\r\n }.bind(this))\r\n },\r\n _clickHandler: function(e) {\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", true)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._renderCheckedState(args.value);\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxRadioButton\", RadioButton);\r\nexport default RadioButton;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.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 {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport CheckBox from \"../check_box\";\r\nimport RadioButton from \"../radio_group/radio_button\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n register as registerDecorator\r\n} from \"./ui.list.edit.decorator_registry\";\r\nimport EditDecorator from \"./ui.list.edit.decorator\";\r\nvar SELECT_DECORATOR_ENABLED_CLASS = \"dx-list-select-decorator-enabled\";\r\nvar SELECT_DECORATOR_SELECT_ALL_CLASS = \"dx-list-select-all\";\r\nvar SELECT_DECORATOR_SELECT_ALL_CHECKBOX_CLASS = \"dx-list-select-all-checkbox\";\r\nvar SELECT_DECORATOR_SELECT_ALL_LABEL_CLASS = \"dx-list-select-all-label\";\r\nvar SELECT_CHECKBOX_CONTAINER_CLASS = \"dx-list-select-checkbox-container\";\r\nvar SELECT_CHECKBOX_CLASS = \"dx-list-select-checkbox\";\r\nvar SELECT_RADIO_BUTTON_CONTAINER_CLASS = \"dx-list-select-radiobutton-container\";\r\nvar SELECT_RADIO_BUTTON_CLASS = \"dx-list-select-radiobutton\";\r\nvar FOCUSED_STATE_CLASS = \"dx-state-focused\";\r\nvar CLICK_EVENT_NAME = addNamespace(clickEventName, \"dxListEditDecorator\");\r\nregisterDecorator(\"selection\", \"default\", EditDecorator.inherit({\r\n _init: function() {\r\n this.callBase.apply(this, arguments);\r\n var selectionMode = this._list.option(\"selectionMode\");\r\n this._singleStrategy = \"single\" === selectionMode;\r\n this._containerClass = this._singleStrategy ? SELECT_RADIO_BUTTON_CONTAINER_CLASS : SELECT_CHECKBOX_CONTAINER_CLASS;\r\n this._controlClass = this._singleStrategy ? SELECT_RADIO_BUTTON_CLASS : SELECT_CHECKBOX_CLASS;\r\n this._controlWidget = this._singleStrategy ? RadioButton : CheckBox;\r\n this._list.$element().addClass(SELECT_DECORATOR_ENABLED_CLASS)\r\n },\r\n beforeBag: function(config) {\r\n var $itemElement = config.$itemElement;\r\n var $container = config.$container.addClass(this._containerClass);\r\n var $control = $(\"
\").addClass(this._controlClass).appendTo($container);\r\n new this._controlWidget($control, extend(this._commonOptions(), {\r\n value: this._isSelected($itemElement),\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n onValueChanged: function(e) {\r\n e.event && this._list._saveSelectionChangeEvent(e.event);\r\n this._processCheckedState($itemElement, e.value);\r\n e.event && e.event.stopPropagation()\r\n }.bind(this)\r\n }))\r\n },\r\n modifyElement: function(config) {\r\n this.callBase.apply(this, arguments);\r\n var $itemElement = config.$itemElement;\r\n var control = this._controlWidget.getInstance($itemElement.find(\".\" + this._controlClass));\r\n eventsEngine.on($itemElement, \"stateChanged\", function(e, state) {\r\n control.option(\"value\", state)\r\n }.bind(this))\r\n },\r\n _updateSelectAllState: function() {\r\n if (!this._$selectAll) {\r\n return\r\n }\r\n this._selectAllCheckBox.option(\"value\", this._list.isSelectAll())\r\n },\r\n afterRender: function() {\r\n if (\"all\" !== this._list.option(\"selectionMode\")) {\r\n return\r\n }\r\n if (!this._$selectAll) {\r\n this._renderSelectAll()\r\n } else {\r\n this._updateSelectAllState()\r\n }\r\n },\r\n handleKeyboardEvents: function(currentFocusedIndex, moveFocusUp) {\r\n var moveFocusDown = !moveFocusUp;\r\n var list = this._list;\r\n var $selectAll = this._$selectAll;\r\n var lastItemIndex = list._getLastItemIndex();\r\n var isFocusOutOfList = moveFocusUp && 0 === currentFocusedIndex || moveFocusDown && currentFocusedIndex === lastItemIndex;\r\n var hasSelectAllItem = !!$selectAll;\r\n if (hasSelectAllItem && isFocusOutOfList) {\r\n list.option(\"focusedElement\", $selectAll);\r\n list.scrollToItem(list.option(\"focusedElement\"));\r\n return true\r\n }\r\n return false\r\n },\r\n handleEnterPressing: function(e) {\r\n if (this._$selectAll && this._$selectAll.hasClass(FOCUSED_STATE_CLASS)) {\r\n e.target = this._$selectAll.get(0);\r\n this._list._saveSelectionChangeEvent(e);\r\n this._selectAllCheckBox.option(\"value\", !this._selectAllCheckBox.option(\"value\"));\r\n return true\r\n }\r\n },\r\n _renderSelectAll: function() {\r\n var $selectAll = this._$selectAll = $(\"
\").addClass(SELECT_DECORATOR_SELECT_ALL_CLASS);\r\n var list = this._list;\r\n var downArrowHandler = list._supportedKeys().downArrow.bind(list);\r\n this._selectAllCheckBox = list._createComponent($(\"
\").addClass(SELECT_DECORATOR_SELECT_ALL_CHECKBOX_CLASS).appendTo($selectAll), CheckBox, {\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false\r\n });\r\n this._selectAllCheckBox.registerKeyHandler(\"downArrow\", downArrowHandler);\r\n $(\"
\").addClass(SELECT_DECORATOR_SELECT_ALL_LABEL_CLASS).text(this._list.option(\"selectAllText\")).appendTo($selectAll);\r\n this._list.itemsContainer().prepend($selectAll);\r\n this._updateSelectAllState();\r\n this._attachSelectAllHandler()\r\n },\r\n _attachSelectAllHandler: function() {\r\n this._selectAllCheckBox.option(\"onValueChanged\", this._selectAllHandler.bind(this));\r\n eventsEngine.off(this._$selectAll, CLICK_EVENT_NAME);\r\n eventsEngine.on(this._$selectAll, CLICK_EVENT_NAME, this._selectAllClickHandler.bind(this))\r\n },\r\n _selectAllHandler: function(e) {\r\n e.event && e.event.stopPropagation();\r\n var isSelectedAll = this._selectAllCheckBox.option(\"value\");\r\n e.event && this._list._saveSelectionChangeEvent(e.event);\r\n if (true === isSelectedAll) {\r\n this._selectAllItems()\r\n } else if (false === isSelectedAll) {\r\n this._unselectAllItems()\r\n }\r\n this._list._createActionByOption(\"onSelectAllValueChanged\")({\r\n value: isSelectedAll\r\n })\r\n },\r\n _checkSelectAllCapability: function() {\r\n var list = this._list;\r\n var dataSource = list.getDataSource();\r\n if (\"allPages\" === list.option(\"selectAllMode\") && list.option(\"grouped\") && (!dataSource || !dataSource.group())) {\r\n errors.log(\"W1010\");\r\n return false\r\n }\r\n return true\r\n },\r\n _selectAllItems: function() {\r\n if (!this._checkSelectAllCapability()) {\r\n return\r\n }\r\n this._list._selection.selectAll(\"page\" === this._list.option(\"selectAllMode\"))\r\n },\r\n _unselectAllItems: function() {\r\n if (!this._checkSelectAllCapability()) {\r\n return\r\n }\r\n this._list._selection.deselectAll(\"page\" === this._list.option(\"selectAllMode\"))\r\n },\r\n _selectAllClickHandler: function(e) {\r\n this._list._saveSelectionChangeEvent(e);\r\n this._selectAllCheckBox.option(\"value\", !this._selectAllCheckBox.option(\"value\"))\r\n },\r\n _isSelected: function($itemElement) {\r\n return this._list.isItemSelected($itemElement)\r\n },\r\n _processCheckedState: function($itemElement, checked) {\r\n if (checked) {\r\n this._list.selectItem($itemElement)\r\n } else {\r\n this._list.unselectItem($itemElement)\r\n }\r\n },\r\n dispose: function() {\r\n this._disposeSelectAll();\r\n this._list.$element().removeClass(SELECT_DECORATOR_ENABLED_CLASS);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _disposeSelectAll: function() {\r\n if (this._$selectAll) {\r\n this._$selectAll.remove();\r\n this._$selectAll = null\r\n }\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>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n}\n\n\nmodule.exports = adler32;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar lacksProperEnumerationOrder = function () {\n\tif (!Object.assign) {\n\t\treturn false;\n\t}\n\t/*\n\t * v8, specifically in node 4.x, has a bug with incorrect property enumeration order\n\t * note: this does not detect the bug unless there's 20 characters\n\t */\n\tvar str = 'abcdefghijklmnopqrst';\n\tvar letters = str.split('');\n\tvar map = {};\n\tfor (var i = 0; i < letters.length; ++i) {\n\t\tmap[letters[i]] = letters[i];\n\t}\n\tvar obj = Object.assign({}, map);\n\tvar actual = '';\n\tfor (var k in obj) {\n\t\tactual += k;\n\t}\n\treturn str !== actual;\n};\n\nvar assignHasPendingExceptions = function () {\n\tif (!Object.assign || !Object.preventExtensions) {\n\t\treturn false;\n\t}\n\t/*\n\t * Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t * which is 72% slower than our shim, and Firefox 40's native implementation.\n\t */\n\tvar thrower = Object.preventExtensions({ 1: 2 });\n\ttry {\n\t\tObject.assign(thrower, 'xy');\n\t} catch (e) {\n\t\treturn thrower[1] === 'y';\n\t}\n\treturn false;\n};\n\nmodule.exports = function getPolyfill() {\n\tif (!Object.assign) {\n\t\treturn implementation;\n\t}\n\tif (lacksProperEnumerationOrder()) {\n\t\treturn implementation;\n\t}\n\tif (assignHasPendingExceptions()) {\n\t\treturn implementation;\n\t}\n\treturn Object.assign;\n};\n","/*!\n * vue-treeselect v0.4.0 | (c) 2017-2019 Riophae Lee\n * Released under the MIT License.\n * https://vue-treeselect.js.org/\n */\nmodule.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 16);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"@babel/runtime/helpers/slicedToArray\");\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"@babel/runtime/helpers/toConsumableArray\");\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"@babel/runtime/helpers/defineProperty\");\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"fuzzysearch\");\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"lodash/noop\");\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"lodash/debounce\");\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"watch-size\");\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"is-promise\");\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"lodash/once\");\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"lodash/identity\");\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"lodash/constant\");\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"@babel/runtime/helpers/typeof\");\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"lodash/last\");\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"babel-helper-vue-jsx-merge-props\");\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"vue\");\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n/* 16 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: external \"@babel/runtime/helpers/slicedToArray\"\nvar slicedToArray_ = __webpack_require__(0);\nvar slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray_);\n\n// EXTERNAL MODULE: external \"@babel/runtime/helpers/toConsumableArray\"\nvar toConsumableArray_ = __webpack_require__(1);\nvar toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray_);\n\n// EXTERNAL MODULE: external \"@babel/runtime/helpers/defineProperty\"\nvar defineProperty_ = __webpack_require__(2);\nvar defineProperty_default = /*#__PURE__*/__webpack_require__.n(defineProperty_);\n\n// EXTERNAL MODULE: external \"fuzzysearch\"\nvar external_fuzzysearch_ = __webpack_require__(3);\nvar external_fuzzysearch_default = /*#__PURE__*/__webpack_require__.n(external_fuzzysearch_);\n\n// EXTERNAL MODULE: external \"lodash/noop\"\nvar noop_ = __webpack_require__(4);\nvar noop_default = /*#__PURE__*/__webpack_require__.n(noop_);\n\n// CONCATENATED MODULE: ./src/utils/noop.js\n\n// CONCATENATED MODULE: ./src/utils/warning.js\n\n\nvar warning_warning = process.env.NODE_ENV === 'production' ? noop_default.a : function warning(checker, complainer) {\n if (!checker()) {\n var _console;\n\n var message = ['[Vue-Treeselect Warning]'].concat(complainer());\n\n (_console = console).error.apply(_console, toConsumableArray_default()(message));\n }\n};\n// CONCATENATED MODULE: ./src/utils/onLeftClick.js\nfunction onLeftClick(mouseDownHandler) {\n return function onMouseDown(evt) {\n if (evt.type === 'mousedown' && evt.button === 0) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n mouseDownHandler.call.apply(mouseDownHandler, [this, evt].concat(args));\n }\n };\n}\n// CONCATENATED MODULE: ./src/utils/scrollIntoView.js\nfunction scrollIntoView($scrollingEl, $focusedEl) {\n var scrollingReact = $scrollingEl.getBoundingClientRect();\n var focusedRect = $focusedEl.getBoundingClientRect();\n var overScroll = $focusedEl.offsetHeight / 3;\n\n if (focusedRect.bottom + overScroll > scrollingReact.bottom) {\n $scrollingEl.scrollTop = Math.min($focusedEl.offsetTop + $focusedEl.clientHeight - $scrollingEl.offsetHeight + overScroll, $scrollingEl.scrollHeight);\n } else if (focusedRect.top - overScroll < scrollingReact.top) {\n $scrollingEl.scrollTop = Math.max($focusedEl.offsetTop - overScroll, 0);\n }\n}\n// EXTERNAL MODULE: external \"lodash/debounce\"\nvar debounce_ = __webpack_require__(5);\nvar debounce_default = /*#__PURE__*/__webpack_require__.n(debounce_);\n\n// CONCATENATED MODULE: ./src/utils/debounce.js\n\n// EXTERNAL MODULE: external \"watch-size\"\nvar external_watch_size_ = __webpack_require__(6);\nvar external_watch_size_default = /*#__PURE__*/__webpack_require__.n(external_watch_size_);\n\n// CONCATENATED MODULE: ./src/utils/removeFromArray.js\nfunction removeFromArray(arr, elem) {\n var idx = arr.indexOf(elem);\n if (idx !== -1) arr.splice(idx, 1);\n}\n// CONCATENATED MODULE: ./src/utils/watchSize.js\n\n\nvar intervalId;\nvar registered = [];\nvar INTERVAL_DURATION = 100;\n\nfunction run() {\n intervalId = setInterval(function () {\n registered.forEach(test);\n }, INTERVAL_DURATION);\n}\n\nfunction stop() {\n clearInterval(intervalId);\n intervalId = null;\n}\n\nfunction test(item) {\n var $el = item.$el,\n listener = item.listener,\n lastWidth = item.lastWidth,\n lastHeight = item.lastHeight;\n var width = $el.offsetWidth;\n var height = $el.offsetHeight;\n\n if (lastWidth !== width || lastHeight !== height) {\n item.lastWidth = width;\n item.lastHeight = height;\n listener({\n width: width,\n height: height\n });\n }\n}\n\nfunction watchSizeForIE9($el, listener) {\n var item = {\n $el: $el,\n listener: listener,\n lastWidth: null,\n lastHeight: null\n };\n\n var unwatch = function unwatch() {\n removeFromArray(registered, item);\n if (!registered.length) stop();\n };\n\n registered.push(item);\n test(item);\n run();\n return unwatch;\n}\n\nfunction watchSize($el, listener) {\n var isIE9 = document.documentMode === 9;\n var locked = true;\n\n var wrappedListener = function wrappedListener() {\n return locked || listener.apply(void 0, arguments);\n };\n\n var implementation = isIE9 ? watchSizeForIE9 : external_watch_size_default.a;\n var removeSizeWatcher = implementation($el, wrappedListener);\n locked = false;\n return removeSizeWatcher;\n}\n// CONCATENATED MODULE: ./src/utils/setupResizeAndScrollEventListeners.js\nfunction findScrollParents($el) {\n var $scrollParents = [];\n var $parent = $el.parentNode;\n\n while ($parent && $parent.nodeName !== 'BODY' && $parent.nodeType === document.ELEMENT_NODE) {\n if (isScrollElment($parent)) $scrollParents.push($parent);\n $parent = $parent.parentNode;\n }\n\n $scrollParents.push(window);\n return $scrollParents;\n}\n\nfunction isScrollElment($el) {\n var _getComputedStyle = getComputedStyle($el),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /(auto|scroll|overlay)/.test(overflow + overflowY + overflowX);\n}\n\nfunction setupResizeAndScrollEventListeners($el, listener) {\n var $scrollParents = findScrollParents($el);\n window.addEventListener('resize', listener, {\n passive: true\n });\n $scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', listener, {\n passive: true\n });\n });\n return function removeEventListeners() {\n window.removeEventListener('resize', listener, {\n passive: true\n });\n $scrollParents.forEach(function ($scrollParent) {\n $scrollParent.removeEventListener('scroll', listener, {\n passive: true\n });\n });\n };\n}\n// CONCATENATED MODULE: ./src/utils/isNaN.js\nfunction isNaN_isNaN(x) {\n return x !== x;\n}\n// EXTERNAL MODULE: external \"is-promise\"\nvar external_is_promise_ = __webpack_require__(7);\nvar external_is_promise_default = /*#__PURE__*/__webpack_require__.n(external_is_promise_);\n\n// CONCATENATED MODULE: ./src/utils/isPromise.js\n\n// EXTERNAL MODULE: external \"lodash/once\"\nvar once_ = __webpack_require__(8);\nvar once_default = /*#__PURE__*/__webpack_require__.n(once_);\n\n// CONCATENATED MODULE: ./src/utils/once.js\n\n// EXTERNAL MODULE: external \"lodash/identity\"\nvar identity_ = __webpack_require__(9);\nvar identity_default = /*#__PURE__*/__webpack_require__.n(identity_);\n\n// CONCATENATED MODULE: ./src/utils/identity.js\n\n// EXTERNAL MODULE: external \"lodash/constant\"\nvar constant_ = __webpack_require__(10);\nvar constant_default = /*#__PURE__*/__webpack_require__.n(constant_);\n\n// CONCATENATED MODULE: ./src/utils/constant.js\n\n// CONCATENATED MODULE: ./src/utils/createMap.js\nvar createMap = function createMap() {\n return Object.create(null);\n};\n// EXTERNAL MODULE: external \"@babel/runtime/helpers/typeof\"\nvar typeof_ = __webpack_require__(11);\nvar typeof_default = /*#__PURE__*/__webpack_require__.n(typeof_);\n\n// CONCATENATED MODULE: ./src/utils/deepExtend.js\n\n\nfunction isPlainObject(value) {\n if (value == null || typeof_default()(value) !== 'object') return false;\n return Object.getPrototypeOf(value) === Object.prototype;\n}\n\nfunction copy(obj, key, value) {\n if (isPlainObject(value)) {\n obj[key] || (obj[key] = {});\n deepExtend(obj[key], value);\n } else {\n obj[key] = value;\n }\n}\n\nfunction deepExtend(target, source) {\n if (isPlainObject(source)) {\n var keys = Object.keys(source);\n\n for (var i = 0, len = keys.length; i < len; i++) {\n copy(target, keys[i], source[keys[i]]);\n }\n }\n\n return target;\n}\n// EXTERNAL MODULE: external \"lodash/last\"\nvar last_ = __webpack_require__(12);\nvar last_default = /*#__PURE__*/__webpack_require__.n(last_);\n\n// CONCATENATED MODULE: ./src/utils/last.js\n\n// CONCATENATED MODULE: ./src/utils/includes.js\nfunction includes(arrOrStr, elem) {\n return arrOrStr.indexOf(elem) !== -1;\n}\n// CONCATENATED MODULE: ./src/utils/find.js\nfunction find(arr, predicate, ctx) {\n for (var i = 0, len = arr.length; i < len; i++) {\n if (predicate.call(ctx, arr[i], i, arr)) return arr[i];\n }\n\n return undefined;\n}\n// CONCATENATED MODULE: ./src/utils/quickDiff.js\nfunction quickDiff(arrA, arrB) {\n if (arrA.length !== arrB.length) return true;\n\n for (var i = 0; i < arrA.length; i++) {\n if (arrA[i] !== arrB[i]) return true;\n }\n\n return false;\n}\n// CONCATENATED MODULE: ./src/utils/index.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// CONCATENATED MODULE: ./src/constants.js\nvar NO_PARENT_NODE = null;\nvar UNCHECKED = 0;\nvar INDETERMINATE = 1;\nvar CHECKED = 2;\nvar ALL_CHILDREN = 'ALL_CHILDREN';\nvar ALL_DESCENDANTS = 'ALL_DESCENDANTS';\nvar LEAF_CHILDREN = 'LEAF_CHILDREN';\nvar LEAF_DESCENDANTS = 'LEAF_DESCENDANTS';\nvar LOAD_ROOT_OPTIONS = 'LOAD_ROOT_OPTIONS';\nvar LOAD_CHILDREN_OPTIONS = 'LOAD_CHILDREN_OPTIONS';\nvar ASYNC_SEARCH = 'ASYNC_SEARCH';\nvar ALL = 'ALL';\nvar BRANCH_PRIORITY = 'BRANCH_PRIORITY';\nvar LEAF_PRIORITY = 'LEAF_PRIORITY';\nvar ALL_WITH_INDETERMINATE = 'ALL_WITH_INDETERMINATE';\nvar ORDER_SELECTED = 'ORDER_SELECTED';\nvar LEVEL = 'LEVEL';\nvar INDEX = 'INDEX';\nvar KEY_CODES = {\n BACKSPACE: 8,\n ENTER: 13,\n ESCAPE: 27,\n END: 35,\n HOME: 36,\n ARROW_LEFT: 37,\n ARROW_UP: 38,\n ARROW_RIGHT: 39,\n ARROW_DOWN: 40,\n DELETE: 46\n};\nvar INPUT_DEBOUNCE_DELAY = process.env.NODE_ENV === 'testing' ? 10 : 200;\nvar MIN_INPUT_WIDTH = 5;\nvar MENU_BUFFER = 40;\n// CONCATENATED MODULE: ./src/mixins/treeselectMixin.js\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { defineProperty_default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n\n\n\n\nfunction sortValueByIndex(a, b) {\n var i = 0;\n\n do {\n if (a.level < i) return -1;\n if (b.level < i) return 1;\n if (a.index[i] !== b.index[i]) return a.index[i] - b.index[i];\n i++;\n } while (true);\n}\n\nfunction sortValueByLevel(a, b) {\n return a.level === b.level ? sortValueByIndex(a, b) : a.level - b.level;\n}\n\nfunction createAsyncOptionsStates() {\n return {\n isLoaded: false,\n isLoading: false,\n loadingError: ''\n };\n}\n\nfunction stringifyOptionPropValue(value) {\n if (typeof value === 'string') return value;\n if (typeof value === 'number' && !isNaN_isNaN(value)) return value + '';\n return '';\n}\n\nfunction match(enableFuzzyMatch, needle, haystack) {\n return enableFuzzyMatch ? external_fuzzysearch_default()(needle, haystack) : includes(haystack, needle);\n}\n\nfunction getErrorMessage(err) {\n return err.message || String(err);\n}\n\nvar instanceId = 0;\n/* harmony default export */ var treeselectMixin = ({\n provide: function provide() {\n return {\n instance: this\n };\n },\n props: {\n allowClearingDisabled: {\n type: Boolean,\n default: false\n },\n allowSelectingDisabledDescendants: {\n type: Boolean,\n default: false\n },\n alwaysOpen: {\n type: Boolean,\n default: false\n },\n appendToBody: {\n type: Boolean,\n default: false\n },\n async: {\n type: Boolean,\n default: false\n },\n autoFocus: {\n type: Boolean,\n default: false\n },\n autoLoadRootOptions: {\n type: Boolean,\n default: true\n },\n autoDeselectAncestors: {\n type: Boolean,\n default: false\n },\n autoDeselectDescendants: {\n type: Boolean,\n default: false\n },\n autoSelectAncestors: {\n type: Boolean,\n default: false\n },\n autoSelectDescendants: {\n type: Boolean,\n default: false\n },\n backspaceRemoves: {\n type: Boolean,\n default: true\n },\n beforeClearAll: {\n type: Function,\n default: constant_default()(true)\n },\n branchNodesFirst: {\n type: Boolean,\n default: false\n },\n cacheOptions: {\n type: Boolean,\n default: true\n },\n clearable: {\n type: Boolean,\n default: true\n },\n clearAllText: {\n type: String,\n default: 'Clear all'\n },\n clearOnSelect: {\n type: Boolean,\n default: false\n },\n clearValueText: {\n type: String,\n default: 'Clear value'\n },\n closeOnSelect: {\n type: Boolean,\n default: true\n },\n defaultExpandLevel: {\n type: Number,\n default: 0\n },\n defaultOptions: {\n default: false\n },\n deleteRemoves: {\n type: Boolean,\n default: true\n },\n delimiter: {\n type: String,\n default: ','\n },\n flattenSearchResults: {\n type: Boolean,\n default: false\n },\n disableBranchNodes: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n disableFuzzyMatching: {\n type: Boolean,\n default: false\n },\n flat: {\n type: Boolean,\n default: false\n },\n instanceId: {\n default: function _default() {\n return \"\".concat(instanceId++, \"$$\");\n },\n type: [String, Number]\n },\n joinValues: {\n type: Boolean,\n default: false\n },\n limit: {\n type: Number,\n default: Infinity\n },\n limitText: {\n type: Function,\n default: function limitTextDefault(count) {\n return \"and \".concat(count, \" more\");\n }\n },\n loadingText: {\n type: String,\n default: 'Loading...'\n },\n loadOptions: {\n type: Function\n },\n matchKeys: {\n type: Array,\n default: constant_default()(['label'])\n },\n maxHeight: {\n type: Number,\n default: 300\n },\n multiple: {\n type: Boolean,\n default: false\n },\n name: {\n type: String\n },\n noChildrenText: {\n type: String,\n default: 'No sub-options.'\n },\n noOptionsText: {\n type: String,\n default: 'No options available.'\n },\n noResultsText: {\n type: String,\n default: 'No results found...'\n },\n normalizer: {\n type: Function,\n default: identity_default.a\n },\n openDirection: {\n type: String,\n default: 'auto',\n validator: function validator(value) {\n var acceptableValues = ['auto', 'top', 'bottom', 'above', 'below'];\n return includes(acceptableValues, value);\n }\n },\n openOnClick: {\n type: Boolean,\n default: true\n },\n openOnFocus: {\n type: Boolean,\n default: false\n },\n options: {\n type: Array\n },\n placeholder: {\n type: String,\n default: 'Select...'\n },\n required: {\n type: Boolean,\n default: false\n },\n retryText: {\n type: String,\n default: 'Retry?'\n },\n retryTitle: {\n type: String,\n default: 'Click to retry'\n },\n searchable: {\n type: Boolean,\n default: true\n },\n searchNested: {\n type: Boolean,\n default: false\n },\n searchPromptText: {\n type: String,\n default: 'Type to search...'\n },\n showCount: {\n type: Boolean,\n default: false\n },\n showCountOf: {\n type: String,\n default: ALL_CHILDREN,\n validator: function validator(value) {\n var acceptableValues = [ALL_CHILDREN, ALL_DESCENDANTS, LEAF_CHILDREN, LEAF_DESCENDANTS];\n return includes(acceptableValues, value);\n }\n },\n showCountOnSearch: null,\n sortValueBy: {\n type: String,\n default: ORDER_SELECTED,\n validator: function validator(value) {\n var acceptableValues = [ORDER_SELECTED, LEVEL, INDEX];\n return includes(acceptableValues, value);\n }\n },\n tabIndex: {\n type: Number,\n default: 0\n },\n value: null,\n valueConsistsOf: {\n type: String,\n default: BRANCH_PRIORITY,\n validator: function validator(value) {\n var acceptableValues = [ALL, BRANCH_PRIORITY, LEAF_PRIORITY, ALL_WITH_INDETERMINATE];\n return includes(acceptableValues, value);\n }\n },\n valueFormat: {\n type: String,\n default: 'id'\n },\n zIndex: {\n type: [Number, String],\n default: 999\n }\n },\n data: function data() {\n return {\n trigger: {\n isFocused: false,\n searchQuery: ''\n },\n menu: {\n isOpen: false,\n current: null,\n lastScrollPosition: 0,\n placement: 'bottom'\n },\n forest: {\n normalizedOptions: [],\n nodeMap: createMap(),\n checkedStateMap: createMap(),\n selectedNodeIds: this.extractCheckedNodeIdsFromValue(),\n selectedNodeMap: createMap()\n },\n rootOptionsStates: createAsyncOptionsStates(),\n localSearch: {\n active: false,\n noResults: true,\n countMap: createMap()\n },\n remoteSearch: createMap()\n };\n },\n computed: {\n selectedNodes: function selectedNodes() {\n return this.forest.selectedNodeIds.map(this.getNode);\n },\n internalValue: function internalValue() {\n var _this = this;\n\n var internalValue;\n\n if (this.single || this.flat || this.disableBranchNodes || this.valueConsistsOf === ALL) {\n internalValue = this.forest.selectedNodeIds.slice();\n } else if (this.valueConsistsOf === BRANCH_PRIORITY) {\n internalValue = this.forest.selectedNodeIds.filter(function (id) {\n var node = _this.getNode(id);\n\n if (node.isRootNode) return true;\n return !_this.isSelected(node.parentNode);\n });\n } else if (this.valueConsistsOf === LEAF_PRIORITY) {\n internalValue = this.forest.selectedNodeIds.filter(function (id) {\n var node = _this.getNode(id);\n\n if (node.isLeaf) return true;\n return node.children.length === 0;\n });\n } else if (this.valueConsistsOf === ALL_WITH_INDETERMINATE) {\n var _internalValue;\n\n var indeterminateNodeIds = [];\n internalValue = this.forest.selectedNodeIds.slice();\n this.selectedNodes.forEach(function (selectedNode) {\n selectedNode.ancestors.forEach(function (ancestor) {\n if (includes(indeterminateNodeIds, ancestor.id)) return;\n if (includes(internalValue, ancestor.id)) return;\n indeterminateNodeIds.push(ancestor.id);\n });\n });\n\n (_internalValue = internalValue).push.apply(_internalValue, indeterminateNodeIds);\n }\n\n if (this.sortValueBy === LEVEL) {\n internalValue.sort(function (a, b) {\n return sortValueByLevel(_this.getNode(a), _this.getNode(b));\n });\n } else if (this.sortValueBy === INDEX) {\n internalValue.sort(function (a, b) {\n return sortValueByIndex(_this.getNode(a), _this.getNode(b));\n });\n }\n\n return internalValue;\n },\n hasValue: function hasValue() {\n return this.internalValue.length > 0;\n },\n single: function single() {\n return !this.multiple;\n },\n visibleOptionIds: function visibleOptionIds() {\n var _this2 = this;\n\n var visibleOptionIds = [];\n this.traverseAllNodesByIndex(function (node) {\n if (!_this2.localSearch.active || _this2.shouldOptionBeIncludedInSearchResult(node)) {\n visibleOptionIds.push(node.id);\n }\n\n if (node.isBranch && !_this2.shouldExpand(node)) {\n return false;\n }\n });\n return visibleOptionIds;\n },\n hasVisibleOptions: function hasVisibleOptions() {\n return this.visibleOptionIds.length !== 0;\n },\n showCountOnSearchComputed: function showCountOnSearchComputed() {\n return typeof this.showCountOnSearch === 'boolean' ? this.showCountOnSearch : this.showCount;\n },\n hasBranchNodes: function hasBranchNodes() {\n return this.forest.normalizedOptions.some(function (rootNode) {\n return rootNode.isBranch;\n });\n },\n shouldFlattenOptions: function shouldFlattenOptions() {\n return this.localSearch.active && this.flattenSearchResults;\n }\n },\n watch: {\n alwaysOpen: function alwaysOpen(newValue) {\n if (newValue) this.openMenu();else this.closeMenu();\n },\n branchNodesFirst: function branchNodesFirst() {\n this.initialize();\n },\n disabled: function disabled(newValue) {\n if (newValue && this.menu.isOpen) this.closeMenu();else if (!newValue && !this.menu.isOpen && this.alwaysOpen) this.openMenu();\n },\n flat: function flat() {\n this.initialize();\n },\n internalValue: function internalValue(newValue, oldValue) {\n var hasChanged = quickDiff(newValue, oldValue);\n if (hasChanged) this.$emit('input', this.getValue(), this.getInstanceId());\n },\n matchKeys: function matchKeys() {\n this.initialize();\n },\n multiple: function multiple(newValue) {\n if (newValue) this.buildForestState();\n },\n options: {\n handler: function handler() {\n if (this.async) return;\n this.initialize();\n this.rootOptionsStates.isLoaded = Array.isArray(this.options);\n },\n deep: true,\n immediate: true\n },\n 'trigger.searchQuery': function triggerSearchQuery() {\n if (this.async) {\n this.handleRemoteSearch();\n } else {\n this.handleLocalSearch();\n }\n\n this.$emit('search-change', this.trigger.searchQuery, this.getInstanceId());\n },\n value: function value() {\n var nodeIdsFromValue = this.extractCheckedNodeIdsFromValue();\n var hasChanged = quickDiff(nodeIdsFromValue, this.internalValue);\n if (hasChanged) this.fixSelectedNodeIds(nodeIdsFromValue);\n }\n },\n methods: {\n verifyProps: function verifyProps() {\n var _this3 = this;\n\n warning_warning(function () {\n return _this3.async ? _this3.searchable : true;\n }, function () {\n return 'For async search mode, the value of \"searchable\" prop must be true.';\n });\n\n if (this.options == null && !this.loadOptions) {\n warning_warning(function () {\n return false;\n }, function () {\n return 'Are you meant to dynamically load options? You need to use \"loadOptions\" prop.';\n });\n }\n\n if (this.flat) {\n warning_warning(function () {\n return _this3.multiple;\n }, function () {\n return 'You are using flat mode. But you forgot to add \"multiple=true\"?';\n });\n }\n\n if (!this.flat) {\n var propNames = ['autoSelectAncestors', 'autoSelectDescendants', 'autoDeselectAncestors', 'autoDeselectDescendants'];\n propNames.forEach(function (propName) {\n warning_warning(function () {\n return !_this3[propName];\n }, function () {\n return \"\\\"\".concat(propName, \"\\\" only applies to flat mode.\");\n });\n });\n }\n },\n resetFlags: function resetFlags() {\n this._blurOnSelect = false;\n },\n initialize: function initialize() {\n var options = this.async ? this.getRemoteSearchEntry().options : this.options;\n\n if (Array.isArray(options)) {\n var prevNodeMap = this.forest.nodeMap;\n this.forest.nodeMap = createMap();\n this.keepDataOfSelectedNodes(prevNodeMap);\n this.forest.normalizedOptions = this.normalize(NO_PARENT_NODE, options, prevNodeMap);\n this.fixSelectedNodeIds(this.internalValue);\n } else {\n this.forest.normalizedOptions = [];\n }\n },\n getInstanceId: function getInstanceId() {\n return this.instanceId == null ? this.id : this.instanceId;\n },\n getValue: function getValue() {\n var _this4 = this;\n\n if (this.valueFormat === 'id') {\n return this.multiple ? this.internalValue.slice() : this.internalValue[0];\n }\n\n var rawNodes = this.internalValue.map(function (id) {\n return _this4.getNode(id).raw;\n });\n return this.multiple ? rawNodes : rawNodes[0];\n },\n getNode: function getNode(nodeId) {\n warning_warning(function () {\n return nodeId != null;\n }, function () {\n return \"Invalid node id: \".concat(nodeId);\n });\n if (nodeId == null) return null;\n return nodeId in this.forest.nodeMap ? this.forest.nodeMap[nodeId] : this.createFallbackNode(nodeId);\n },\n createFallbackNode: function createFallbackNode(id) {\n var raw = this.extractNodeFromValue(id);\n var label = this.enhancedNormalizer(raw).label || \"\".concat(id, \" (unknown)\");\n var fallbackNode = {\n id: id,\n label: label,\n ancestors: [],\n parentNode: NO_PARENT_NODE,\n isFallbackNode: true,\n isRootNode: true,\n isLeaf: true,\n isBranch: false,\n isDisabled: false,\n isNew: false,\n index: [-1],\n level: 0,\n raw: raw\n };\n return this.$set(this.forest.nodeMap, id, fallbackNode);\n },\n extractCheckedNodeIdsFromValue: function extractCheckedNodeIdsFromValue() {\n var _this5 = this;\n\n if (this.value == null) return [];\n\n if (this.valueFormat === 'id') {\n return this.multiple ? this.value.slice() : [this.value];\n }\n\n return (this.multiple ? this.value : [this.value]).map(function (node) {\n return _this5.enhancedNormalizer(node);\n }).map(function (node) {\n return node.id;\n });\n },\n extractNodeFromValue: function extractNodeFromValue(id) {\n var _this6 = this;\n\n var defaultNode = {\n id: id\n };\n\n if (this.valueFormat === 'id') {\n return defaultNode;\n }\n\n var valueArray = this.multiple ? Array.isArray(this.value) ? this.value : [] : this.value ? [this.value] : [];\n var matched = find(valueArray, function (node) {\n return node && _this6.enhancedNormalizer(node).id === id;\n });\n return matched || defaultNode;\n },\n fixSelectedNodeIds: function fixSelectedNodeIds(nodeIdListOfPrevValue) {\n var _this7 = this;\n\n var nextSelectedNodeIds = [];\n\n if (this.single || this.flat || this.disableBranchNodes || this.valueConsistsOf === ALL) {\n nextSelectedNodeIds = nodeIdListOfPrevValue;\n } else if (this.valueConsistsOf === BRANCH_PRIORITY) {\n nodeIdListOfPrevValue.forEach(function (nodeId) {\n nextSelectedNodeIds.push(nodeId);\n\n var node = _this7.getNode(nodeId);\n\n if (node.isBranch) _this7.traverseDescendantsBFS(node, function (descendant) {\n nextSelectedNodeIds.push(descendant.id);\n });\n });\n } else if (this.valueConsistsOf === LEAF_PRIORITY) {\n var map = createMap();\n var queue = nodeIdListOfPrevValue.slice();\n\n while (queue.length) {\n var nodeId = queue.shift();\n var node = this.getNode(nodeId);\n nextSelectedNodeIds.push(nodeId);\n if (node.isRootNode) continue;\n if (!(node.parentNode.id in map)) map[node.parentNode.id] = node.parentNode.children.length;\n if (--map[node.parentNode.id] === 0) queue.push(node.parentNode.id);\n }\n } else if (this.valueConsistsOf === ALL_WITH_INDETERMINATE) {\n var _map = createMap();\n\n var _queue = nodeIdListOfPrevValue.filter(function (nodeId) {\n var node = _this7.getNode(nodeId);\n\n return node.isLeaf || node.children.length === 0;\n });\n\n while (_queue.length) {\n var _nodeId = _queue.shift();\n\n var _node = this.getNode(_nodeId);\n\n nextSelectedNodeIds.push(_nodeId);\n if (_node.isRootNode) continue;\n if (!(_node.parentNode.id in _map)) _map[_node.parentNode.id] = _node.parentNode.children.length;\n if (--_map[_node.parentNode.id] === 0) _queue.push(_node.parentNode.id);\n }\n }\n\n var hasChanged = quickDiff(this.forest.selectedNodeIds, nextSelectedNodeIds);\n if (hasChanged) this.forest.selectedNodeIds = nextSelectedNodeIds;\n this.buildForestState();\n },\n keepDataOfSelectedNodes: function keepDataOfSelectedNodes(prevNodeMap) {\n var _this8 = this;\n\n this.forest.selectedNodeIds.forEach(function (id) {\n if (!prevNodeMap[id]) return;\n\n var node = _objectSpread({}, prevNodeMap[id], {\n isFallbackNode: true\n });\n\n _this8.$set(_this8.forest.nodeMap, id, node);\n });\n },\n isSelected: function isSelected(node) {\n return this.forest.selectedNodeMap[node.id] === true;\n },\n traverseDescendantsBFS: function traverseDescendantsBFS(parentNode, callback) {\n if (!parentNode.isBranch) return;\n var queue = parentNode.children.slice();\n\n while (queue.length) {\n var currNode = queue[0];\n if (currNode.isBranch) queue.push.apply(queue, toConsumableArray_default()(currNode.children));\n callback(currNode);\n queue.shift();\n }\n },\n traverseDescendantsDFS: function traverseDescendantsDFS(parentNode, callback) {\n var _this9 = this;\n\n if (!parentNode.isBranch) return;\n parentNode.children.forEach(function (child) {\n _this9.traverseDescendantsDFS(child, callback);\n\n callback(child);\n });\n },\n traverseAllNodesDFS: function traverseAllNodesDFS(callback) {\n var _this10 = this;\n\n this.forest.normalizedOptions.forEach(function (rootNode) {\n _this10.traverseDescendantsDFS(rootNode, callback);\n\n callback(rootNode);\n });\n },\n traverseAllNodesByIndex: function traverseAllNodesByIndex(callback) {\n var walk = function walk(parentNode) {\n parentNode.children.forEach(function (child) {\n if (callback(child) !== false && child.isBranch) {\n walk(child);\n }\n });\n };\n\n walk({\n children: this.forest.normalizedOptions\n });\n },\n toggleClickOutsideEvent: function toggleClickOutsideEvent(enabled) {\n if (enabled) {\n document.addEventListener('mousedown', this.handleClickOutside, false);\n } else {\n document.removeEventListener('mousedown', this.handleClickOutside, false);\n }\n },\n getValueContainer: function getValueContainer() {\n return this.$refs.control.$refs['value-container'];\n },\n getInput: function getInput() {\n return this.getValueContainer().$refs.input;\n },\n focusInput: function focusInput() {\n this.getInput().focus();\n },\n blurInput: function blurInput() {\n this.getInput().blur();\n },\n handleMouseDown: onLeftClick(function handleMouseDown(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n if (this.disabled) return;\n var isClickedOnValueContainer = this.getValueContainer().$el.contains(evt.target);\n\n if (isClickedOnValueContainer && !this.menu.isOpen && (this.openOnClick || this.trigger.isFocused)) {\n this.openMenu();\n }\n\n if (this._blurOnSelect) {\n this.blurInput();\n } else {\n this.focusInput();\n }\n\n this.resetFlags();\n }),\n handleClickOutside: function handleClickOutside(evt) {\n if (this.$refs.wrapper && !this.$refs.wrapper.contains(evt.target)) {\n this.blurInput();\n this.closeMenu();\n }\n },\n handleLocalSearch: function handleLocalSearch() {\n var _this11 = this;\n\n var searchQuery = this.trigger.searchQuery;\n\n var done = function done() {\n return _this11.resetHighlightedOptionWhenNecessary(true);\n };\n\n if (!searchQuery) {\n this.localSearch.active = false;\n return done();\n }\n\n this.localSearch.active = true;\n this.localSearch.noResults = true;\n this.traverseAllNodesDFS(function (node) {\n if (node.isBranch) {\n var _this11$$set;\n\n node.isExpandedOnSearch = false;\n node.showAllChildrenOnSearch = false;\n node.isMatched = false;\n node.hasMatchedDescendants = false;\n\n _this11.$set(_this11.localSearch.countMap, node.id, (_this11$$set = {}, defineProperty_default()(_this11$$set, ALL_CHILDREN, 0), defineProperty_default()(_this11$$set, ALL_DESCENDANTS, 0), defineProperty_default()(_this11$$set, LEAF_CHILDREN, 0), defineProperty_default()(_this11$$set, LEAF_DESCENDANTS, 0), _this11$$set));\n }\n });\n var lowerCasedSearchQuery = searchQuery.trim().toLocaleLowerCase();\n var splitSearchQuery = lowerCasedSearchQuery.replace(/\\s+/g, ' ').split(' ');\n this.traverseAllNodesDFS(function (node) {\n if (_this11.searchNested && splitSearchQuery.length > 1) {\n node.isMatched = splitSearchQuery.every(function (filterValue) {\n return match(false, filterValue, node.nestedSearchLabel);\n });\n } else {\n node.isMatched = _this11.matchKeys.some(function (matchKey) {\n return match(!_this11.disableFuzzyMatching, lowerCasedSearchQuery, node.lowerCased[matchKey]);\n });\n }\n\n if (node.isMatched) {\n _this11.localSearch.noResults = false;\n node.ancestors.forEach(function (ancestor) {\n return _this11.localSearch.countMap[ancestor.id][ALL_DESCENDANTS]++;\n });\n if (node.isLeaf) node.ancestors.forEach(function (ancestor) {\n return _this11.localSearch.countMap[ancestor.id][LEAF_DESCENDANTS]++;\n });\n\n if (node.parentNode !== NO_PARENT_NODE) {\n _this11.localSearch.countMap[node.parentNode.id][ALL_CHILDREN] += 1;\n if (node.isLeaf) _this11.localSearch.countMap[node.parentNode.id][LEAF_CHILDREN] += 1;\n }\n }\n\n if ((node.isMatched || node.isBranch && node.isExpandedOnSearch) && node.parentNode !== NO_PARENT_NODE) {\n node.parentNode.isExpandedOnSearch = true;\n node.parentNode.hasMatchedDescendants = true;\n }\n });\n done();\n },\n handleRemoteSearch: function handleRemoteSearch() {\n var _this12 = this;\n\n var searchQuery = this.trigger.searchQuery;\n var entry = this.getRemoteSearchEntry();\n\n var done = function done() {\n _this12.initialize();\n\n _this12.resetHighlightedOptionWhenNecessary(true);\n };\n\n if ((searchQuery === '' || this.cacheOptions) && entry.isLoaded) {\n return done();\n }\n\n this.callLoadOptionsProp({\n action: ASYNC_SEARCH,\n args: {\n searchQuery: searchQuery\n },\n isPending: function isPending() {\n return entry.isLoading;\n },\n start: function start() {\n entry.isLoading = true;\n entry.isLoaded = false;\n entry.loadingError = '';\n },\n succeed: function succeed(options) {\n entry.isLoaded = true;\n entry.options = options;\n if (_this12.trigger.searchQuery === searchQuery) done();\n },\n fail: function fail(err) {\n entry.loadingError = getErrorMessage(err);\n },\n end: function end() {\n entry.isLoading = false;\n }\n });\n },\n getRemoteSearchEntry: function getRemoteSearchEntry() {\n var _this13 = this;\n\n var searchQuery = this.trigger.searchQuery;\n\n var entry = this.remoteSearch[searchQuery] || _objectSpread({}, createAsyncOptionsStates(), {\n options: []\n });\n\n this.$watch(function () {\n return entry.options;\n }, function () {\n if (_this13.trigger.searchQuery === searchQuery) _this13.initialize();\n }, {\n deep: true\n });\n\n if (searchQuery === '') {\n if (Array.isArray(this.defaultOptions)) {\n entry.options = this.defaultOptions;\n entry.isLoaded = true;\n return entry;\n } else if (this.defaultOptions !== true) {\n entry.isLoaded = true;\n return entry;\n }\n }\n\n if (!this.remoteSearch[searchQuery]) {\n this.$set(this.remoteSearch, searchQuery, entry);\n }\n\n return entry;\n },\n shouldExpand: function shouldExpand(node) {\n return this.localSearch.active ? node.isExpandedOnSearch : node.isExpanded;\n },\n shouldOptionBeIncludedInSearchResult: function shouldOptionBeIncludedInSearchResult(node) {\n if (node.isMatched) return true;\n if (node.isBranch && node.hasMatchedDescendants && !this.flattenSearchResults) return true;\n if (!node.isRootNode && node.parentNode.showAllChildrenOnSearch) return true;\n return false;\n },\n shouldShowOptionInMenu: function shouldShowOptionInMenu(node) {\n if (this.localSearch.active && !this.shouldOptionBeIncludedInSearchResult(node)) {\n return false;\n }\n\n return true;\n },\n getControl: function getControl() {\n return this.$refs.control.$el;\n },\n getMenu: function getMenu() {\n var ref = this.appendToBody ? this.$refs.portal.portalTarget : this;\n var $menu = ref.$refs.menu.$refs.menu;\n return $menu && $menu.nodeName !== '#comment' ? $menu : null;\n },\n setCurrentHighlightedOption: function setCurrentHighlightedOption(node) {\n var _this14 = this;\n\n var scroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var prev = this.menu.current;\n\n if (prev != null && prev in this.forest.nodeMap) {\n this.forest.nodeMap[prev].isHighlighted = false;\n }\n\n this.menu.current = node.id;\n node.isHighlighted = true;\n\n if (this.menu.isOpen && scroll) {\n var scrollToOption = function scrollToOption() {\n var $menu = _this14.getMenu();\n\n var $option = $menu.querySelector(\".vue-treeselect__option[data-id=\\\"\".concat(node.id, \"\\\"]\"));\n if ($option) scrollIntoView($menu, $option);\n };\n\n if (this.getMenu()) {\n scrollToOption();\n } else {\n this.$nextTick(scrollToOption);\n }\n }\n },\n resetHighlightedOptionWhenNecessary: function resetHighlightedOptionWhenNecessary() {\n var forceReset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var current = this.menu.current;\n\n if (forceReset || current == null || !(current in this.forest.nodeMap) || !this.shouldShowOptionInMenu(this.getNode(current))) {\n this.highlightFirstOption();\n }\n },\n highlightFirstOption: function highlightFirstOption() {\n if (!this.hasVisibleOptions) return;\n var first = this.visibleOptionIds[0];\n this.setCurrentHighlightedOption(this.getNode(first));\n },\n highlightPrevOption: function highlightPrevOption() {\n if (!this.hasVisibleOptions) return;\n var prev = this.visibleOptionIds.indexOf(this.menu.current) - 1;\n if (prev === -1) return this.highlightLastOption();\n this.setCurrentHighlightedOption(this.getNode(this.visibleOptionIds[prev]));\n },\n highlightNextOption: function highlightNextOption() {\n if (!this.hasVisibleOptions) return;\n var next = this.visibleOptionIds.indexOf(this.menu.current) + 1;\n if (next === this.visibleOptionIds.length) return this.highlightFirstOption();\n this.setCurrentHighlightedOption(this.getNode(this.visibleOptionIds[next]));\n },\n highlightLastOption: function highlightLastOption() {\n if (!this.hasVisibleOptions) return;\n var last = last_default()(this.visibleOptionIds);\n this.setCurrentHighlightedOption(this.getNode(last));\n },\n resetSearchQuery: function resetSearchQuery() {\n this.trigger.searchQuery = '';\n },\n closeMenu: function closeMenu() {\n if (!this.menu.isOpen || !this.disabled && this.alwaysOpen) return;\n this.saveMenuScrollPosition();\n this.menu.isOpen = false;\n this.toggleClickOutsideEvent(false);\n this.resetSearchQuery();\n this.$emit('close', this.getValue(), this.getInstanceId());\n },\n openMenu: function openMenu() {\n if (this.disabled || this.menu.isOpen) return;\n this.menu.isOpen = true;\n this.$nextTick(this.resetHighlightedOptionWhenNecessary);\n this.$nextTick(this.restoreMenuScrollPosition);\n if (!this.options && !this.async) this.loadRootOptions();\n this.toggleClickOutsideEvent(true);\n this.$emit('open', this.getInstanceId());\n },\n toggleMenu: function toggleMenu() {\n if (this.menu.isOpen) {\n this.closeMenu();\n } else {\n this.openMenu();\n }\n },\n toggleExpanded: function toggleExpanded(node) {\n var nextState;\n\n if (this.localSearch.active) {\n nextState = node.isExpandedOnSearch = !node.isExpandedOnSearch;\n if (nextState) node.showAllChildrenOnSearch = true;\n } else {\n nextState = node.isExpanded = !node.isExpanded;\n }\n\n if (nextState && !node.childrenStates.isLoaded) {\n this.loadChildrenOptions(node);\n }\n },\n buildForestState: function buildForestState() {\n var _this15 = this;\n\n var selectedNodeMap = createMap();\n this.forest.selectedNodeIds.forEach(function (selectedNodeId) {\n selectedNodeMap[selectedNodeId] = true;\n });\n this.forest.selectedNodeMap = selectedNodeMap;\n var checkedStateMap = createMap();\n\n if (this.multiple) {\n this.traverseAllNodesByIndex(function (node) {\n checkedStateMap[node.id] = UNCHECKED;\n });\n this.selectedNodes.forEach(function (selectedNode) {\n checkedStateMap[selectedNode.id] = CHECKED;\n\n if (!_this15.flat && !_this15.disableBranchNodes) {\n selectedNode.ancestors.forEach(function (ancestorNode) {\n if (!_this15.isSelected(ancestorNode)) {\n checkedStateMap[ancestorNode.id] = INDETERMINATE;\n }\n });\n }\n });\n }\n\n this.forest.checkedStateMap = checkedStateMap;\n },\n enhancedNormalizer: function enhancedNormalizer(raw) {\n return _objectSpread({}, raw, {}, this.normalizer(raw, this.getInstanceId()));\n },\n normalize: function normalize(parentNode, nodes, prevNodeMap) {\n var _this16 = this;\n\n var normalizedOptions = nodes.map(function (node) {\n return [_this16.enhancedNormalizer(node), node];\n }).map(function (_ref, index) {\n var _ref2 = slicedToArray_default()(_ref, 2),\n node = _ref2[0],\n raw = _ref2[1];\n\n _this16.checkDuplication(node);\n\n _this16.verifyNodeShape(node);\n\n var id = node.id,\n label = node.label,\n children = node.children,\n isDefaultExpanded = node.isDefaultExpanded;\n var isRootNode = parentNode === NO_PARENT_NODE;\n var level = isRootNode ? 0 : parentNode.level + 1;\n var isBranch = Array.isArray(children) || children === null;\n var isLeaf = !isBranch;\n var isDisabled = !!node.isDisabled || !_this16.flat && !isRootNode && parentNode.isDisabled;\n var isNew = !!node.isNew;\n\n var lowerCased = _this16.matchKeys.reduce(function (prev, key) {\n return _objectSpread({}, prev, defineProperty_default()({}, key, stringifyOptionPropValue(node[key]).toLocaleLowerCase()));\n }, {});\n\n var nestedSearchLabel = isRootNode ? lowerCased.label : parentNode.nestedSearchLabel + ' ' + lowerCased.label;\n\n var normalized = _this16.$set(_this16.forest.nodeMap, id, createMap());\n\n _this16.$set(normalized, 'id', id);\n\n _this16.$set(normalized, 'label', label);\n\n _this16.$set(normalized, 'level', level);\n\n _this16.$set(normalized, 'ancestors', isRootNode ? [] : [parentNode].concat(parentNode.ancestors));\n\n _this16.$set(normalized, 'index', (isRootNode ? [] : parentNode.index).concat(index));\n\n _this16.$set(normalized, 'parentNode', parentNode);\n\n _this16.$set(normalized, 'lowerCased', lowerCased);\n\n _this16.$set(normalized, 'nestedSearchLabel', nestedSearchLabel);\n\n _this16.$set(normalized, 'isDisabled', isDisabled);\n\n _this16.$set(normalized, 'isNew', isNew);\n\n _this16.$set(normalized, 'isMatched', false);\n\n _this16.$set(normalized, 'isHighlighted', false);\n\n _this16.$set(normalized, 'isBranch', isBranch);\n\n _this16.$set(normalized, 'isLeaf', isLeaf);\n\n _this16.$set(normalized, 'isRootNode', isRootNode);\n\n _this16.$set(normalized, 'raw', raw);\n\n if (isBranch) {\n var _this16$$set;\n\n var isLoaded = Array.isArray(children);\n\n _this16.$set(normalized, 'childrenStates', _objectSpread({}, createAsyncOptionsStates(), {\n isLoaded: isLoaded\n }));\n\n _this16.$set(normalized, 'isExpanded', typeof isDefaultExpanded === 'boolean' ? isDefaultExpanded : level < _this16.defaultExpandLevel);\n\n _this16.$set(normalized, 'hasMatchedDescendants', false);\n\n _this16.$set(normalized, 'hasDisabledDescendants', false);\n\n _this16.$set(normalized, 'isExpandedOnSearch', false);\n\n _this16.$set(normalized, 'showAllChildrenOnSearch', false);\n\n _this16.$set(normalized, 'count', (_this16$$set = {}, defineProperty_default()(_this16$$set, ALL_CHILDREN, 0), defineProperty_default()(_this16$$set, ALL_DESCENDANTS, 0), defineProperty_default()(_this16$$set, LEAF_CHILDREN, 0), defineProperty_default()(_this16$$set, LEAF_DESCENDANTS, 0), _this16$$set));\n\n _this16.$set(normalized, 'children', isLoaded ? _this16.normalize(normalized, children, prevNodeMap) : []);\n\n if (isDefaultExpanded === true) normalized.ancestors.forEach(function (ancestor) {\n ancestor.isExpanded = true;\n });\n\n if (!isLoaded && typeof _this16.loadOptions !== 'function') {\n warning_warning(function () {\n return false;\n }, function () {\n return 'Unloaded branch node detected. \"loadOptions\" prop is required to load its children.';\n });\n } else if (!isLoaded && normalized.isExpanded) {\n _this16.loadChildrenOptions(normalized);\n }\n }\n\n normalized.ancestors.forEach(function (ancestor) {\n return ancestor.count[ALL_DESCENDANTS]++;\n });\n if (isLeaf) normalized.ancestors.forEach(function (ancestor) {\n return ancestor.count[LEAF_DESCENDANTS]++;\n });\n\n if (!isRootNode) {\n parentNode.count[ALL_CHILDREN] += 1;\n if (isLeaf) parentNode.count[LEAF_CHILDREN] += 1;\n if (isDisabled) parentNode.hasDisabledDescendants = true;\n }\n\n if (prevNodeMap && prevNodeMap[id]) {\n var prev = prevNodeMap[id];\n normalized.isMatched = prev.isMatched;\n normalized.showAllChildrenOnSearch = prev.showAllChildrenOnSearch;\n normalized.isHighlighted = prev.isHighlighted;\n\n if (prev.isBranch && normalized.isBranch) {\n normalized.isExpanded = prev.isExpanded;\n normalized.isExpandedOnSearch = prev.isExpandedOnSearch;\n\n if (prev.childrenStates.isLoaded && !normalized.childrenStates.isLoaded) {\n normalized.isExpanded = false;\n } else {\n normalized.childrenStates = _objectSpread({}, prev.childrenStates);\n }\n }\n }\n\n return normalized;\n });\n\n if (this.branchNodesFirst) {\n var branchNodes = normalizedOptions.filter(function (option) {\n return option.isBranch;\n });\n var leafNodes = normalizedOptions.filter(function (option) {\n return option.isLeaf;\n });\n normalizedOptions = branchNodes.concat(leafNodes);\n }\n\n return normalizedOptions;\n },\n loadRootOptions: function loadRootOptions() {\n var _this17 = this;\n\n this.callLoadOptionsProp({\n action: LOAD_ROOT_OPTIONS,\n isPending: function isPending() {\n return _this17.rootOptionsStates.isLoading;\n },\n start: function start() {\n _this17.rootOptionsStates.isLoading = true;\n _this17.rootOptionsStates.loadingError = '';\n },\n succeed: function succeed() {\n _this17.rootOptionsStates.isLoaded = true;\n\n _this17.$nextTick(function () {\n _this17.resetHighlightedOptionWhenNecessary(true);\n });\n },\n fail: function fail(err) {\n _this17.rootOptionsStates.loadingError = getErrorMessage(err);\n },\n end: function end() {\n _this17.rootOptionsStates.isLoading = false;\n }\n });\n },\n loadChildrenOptions: function loadChildrenOptions(parentNode) {\n var _this18 = this;\n\n var id = parentNode.id,\n raw = parentNode.raw;\n this.callLoadOptionsProp({\n action: LOAD_CHILDREN_OPTIONS,\n args: {\n parentNode: raw\n },\n isPending: function isPending() {\n return _this18.getNode(id).childrenStates.isLoading;\n },\n start: function start() {\n _this18.getNode(id).childrenStates.isLoading = true;\n _this18.getNode(id).childrenStates.loadingError = '';\n },\n succeed: function succeed() {\n _this18.getNode(id).childrenStates.isLoaded = true;\n },\n fail: function fail(err) {\n _this18.getNode(id).childrenStates.loadingError = getErrorMessage(err);\n },\n end: function end() {\n _this18.getNode(id).childrenStates.isLoading = false;\n }\n });\n },\n callLoadOptionsProp: function callLoadOptionsProp(_ref3) {\n var action = _ref3.action,\n args = _ref3.args,\n isPending = _ref3.isPending,\n start = _ref3.start,\n succeed = _ref3.succeed,\n fail = _ref3.fail,\n end = _ref3.end;\n\n if (!this.loadOptions || isPending()) {\n return;\n }\n\n start();\n var callback = once_default()(function (err, result) {\n if (err) {\n fail(err);\n } else {\n succeed(result);\n }\n\n end();\n });\n var result = this.loadOptions(_objectSpread({\n id: this.getInstanceId(),\n instanceId: this.getInstanceId(),\n action: action\n }, args, {\n callback: callback\n }));\n\n if (external_is_promise_default()(result)) {\n result.then(function () {\n callback();\n }, function (err) {\n callback(err);\n }).catch(function (err) {\n console.error(err);\n });\n }\n },\n checkDuplication: function checkDuplication(node) {\n var _this19 = this;\n\n warning_warning(function () {\n return !(node.id in _this19.forest.nodeMap && !_this19.forest.nodeMap[node.id].isFallbackNode);\n }, function () {\n return \"Detected duplicate presence of node id \".concat(JSON.stringify(node.id), \". \") + \"Their labels are \\\"\".concat(_this19.forest.nodeMap[node.id].label, \"\\\" and \\\"\").concat(node.label, \"\\\" respectively.\");\n });\n },\n verifyNodeShape: function verifyNodeShape(node) {\n warning_warning(function () {\n return !(node.children === undefined && node.isBranch === true);\n }, function () {\n return 'Are you meant to declare an unloaded branch node? ' + '`isBranch: true` is no longer supported, please use `children: null` instead.';\n });\n },\n select: function select(node) {\n if (this.disabled || node.isDisabled) {\n return;\n }\n\n if (this.single) {\n this.clear();\n }\n\n var nextState = this.multiple && !this.flat ? this.forest.checkedStateMap[node.id] === UNCHECKED : !this.isSelected(node);\n\n if (nextState) {\n this._selectNode(node);\n } else {\n this._deselectNode(node);\n }\n\n this.buildForestState();\n\n if (nextState) {\n this.$emit('select', node.raw, this.getInstanceId());\n } else {\n this.$emit('deselect', node.raw, this.getInstanceId());\n }\n\n if (this.localSearch.active && nextState && (this.single || this.clearOnSelect)) {\n this.resetSearchQuery();\n }\n\n if (this.single && this.closeOnSelect) {\n this.closeMenu();\n\n if (this.searchable) {\n this._blurOnSelect = true;\n }\n }\n },\n clear: function clear() {\n var _this20 = this;\n\n if (this.hasValue) {\n if (this.single || this.allowClearingDisabled) {\n this.forest.selectedNodeIds = [];\n } else {\n this.forest.selectedNodeIds = this.forest.selectedNodeIds.filter(function (nodeId) {\n return _this20.getNode(nodeId).isDisabled;\n });\n }\n\n this.buildForestState();\n }\n },\n _selectNode: function _selectNode(node) {\n var _this21 = this;\n\n if (this.single || this.disableBranchNodes) {\n return this.addValue(node);\n }\n\n if (this.flat) {\n this.addValue(node);\n\n if (this.autoSelectAncestors) {\n node.ancestors.forEach(function (ancestor) {\n if (!_this21.isSelected(ancestor) && !ancestor.isDisabled) _this21.addValue(ancestor);\n });\n } else if (this.autoSelectDescendants) {\n this.traverseDescendantsBFS(node, function (descendant) {\n if (!_this21.isSelected(descendant) && !descendant.isDisabled) _this21.addValue(descendant);\n });\n }\n\n return;\n }\n\n var isFullyChecked = node.isLeaf || !node.hasDisabledDescendants || this.allowSelectingDisabledDescendants;\n\n if (isFullyChecked) {\n this.addValue(node);\n }\n\n if (node.isBranch) {\n this.traverseDescendantsBFS(node, function (descendant) {\n if (!descendant.isDisabled || _this21.allowSelectingDisabledDescendants) {\n _this21.addValue(descendant);\n }\n });\n }\n\n if (isFullyChecked) {\n var curr = node;\n\n while ((curr = curr.parentNode) !== NO_PARENT_NODE) {\n if (curr.children.every(this.isSelected)) this.addValue(curr);else break;\n }\n }\n },\n _deselectNode: function _deselectNode(node) {\n var _this22 = this;\n\n if (this.disableBranchNodes) {\n return this.removeValue(node);\n }\n\n if (this.flat) {\n this.removeValue(node);\n\n if (this.autoDeselectAncestors) {\n node.ancestors.forEach(function (ancestor) {\n if (_this22.isSelected(ancestor) && !ancestor.isDisabled) _this22.removeValue(ancestor);\n });\n } else if (this.autoDeselectDescendants) {\n this.traverseDescendantsBFS(node, function (descendant) {\n if (_this22.isSelected(descendant) && !descendant.isDisabled) _this22.removeValue(descendant);\n });\n }\n\n return;\n }\n\n var hasUncheckedSomeDescendants = false;\n\n if (node.isBranch) {\n this.traverseDescendantsDFS(node, function (descendant) {\n if (!descendant.isDisabled || _this22.allowSelectingDisabledDescendants) {\n _this22.removeValue(descendant);\n\n hasUncheckedSomeDescendants = true;\n }\n });\n }\n\n if (node.isLeaf || hasUncheckedSomeDescendants || node.children.length === 0) {\n this.removeValue(node);\n var curr = node;\n\n while ((curr = curr.parentNode) !== NO_PARENT_NODE) {\n if (this.isSelected(curr)) this.removeValue(curr);else break;\n }\n }\n },\n addValue: function addValue(node) {\n this.forest.selectedNodeIds.push(node.id);\n this.forest.selectedNodeMap[node.id] = true;\n },\n removeValue: function removeValue(node) {\n removeFromArray(this.forest.selectedNodeIds, node.id);\n delete this.forest.selectedNodeMap[node.id];\n },\n removeLastValue: function removeLastValue() {\n if (!this.hasValue) return;\n if (this.single) return this.clear();\n var lastValue = last_default()(this.internalValue);\n var lastSelectedNode = this.getNode(lastValue);\n this.select(lastSelectedNode);\n },\n saveMenuScrollPosition: function saveMenuScrollPosition() {\n var $menu = this.getMenu();\n if ($menu) this.menu.lastScrollPosition = $menu.scrollTop;\n },\n restoreMenuScrollPosition: function restoreMenuScrollPosition() {\n var $menu = this.getMenu();\n if ($menu) $menu.scrollTop = this.menu.lastScrollPosition;\n }\n },\n created: function created() {\n this.verifyProps();\n this.resetFlags();\n },\n mounted: function mounted() {\n if (this.autoFocus) this.focusInput();\n if (!this.options && !this.async && this.autoLoadRootOptions) this.loadRootOptions();\n if (this.alwaysOpen) this.openMenu();\n if (this.async && this.defaultOptions) this.handleRemoteSearch();\n },\n destroyed: function destroyed() {\n this.toggleClickOutsideEvent(false);\n }\n});\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/HiddenFields.vue?vue&type=script&lang=js&\n\n\nfunction stringifyValue(value) {\n if (typeof value === 'string') return value;\n if (value != null && !isNaN_isNaN(value)) return JSON.stringify(value);\n return '';\n}\n\n/* harmony default export */ var HiddenFieldsvue_type_script_lang_js_ = ({\n name: 'vue-treeselect--hidden-fields',\n inject: ['instance'],\n functional: true,\n render: function render(_, context) {\n var h = arguments[0];\n var instance = context.injections.instance;\n if (!instance.name || instance.disabled || !instance.hasValue) return null;\n var stringifiedValues = instance.internalValue.map(stringifyValue);\n if (instance.multiple && instance.joinValues) stringifiedValues = [stringifiedValues.join(instance.delimiter)];\n return stringifiedValues.map(function (stringifiedValue, i) {\n return h(\"input\", {\n attrs: {\n type: \"hidden\",\n name: instance.name\n },\n domProps: {\n \"value\": stringifiedValue\n },\n key: 'hidden-field-' + i\n });\n });\n }\n});\n// CONCATENATED MODULE: ./src/components/HiddenFields.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_HiddenFieldsvue_type_script_lang_js_ = (HiddenFieldsvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nfunction normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n\n// CONCATENATED MODULE: ./src/components/HiddenFields.vue\nvar HiddenFields_render, staticRenderFns\n\n\n\n\n/* normalize component */\n\nvar component = normalizeComponent(\n components_HiddenFieldsvue_type_script_lang_js_,\n HiddenFields_render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/components/HiddenFields.vue\"\n/* harmony default export */ var HiddenFields = (component.exports);\n// EXTERNAL MODULE: external \"babel-helper-vue-jsx-merge-props\"\nvar external_babel_helper_vue_jsx_merge_props_ = __webpack_require__(13);\nvar external_babel_helper_vue_jsx_merge_props_default = /*#__PURE__*/__webpack_require__.n(external_babel_helper_vue_jsx_merge_props_);\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Input.vue?vue&type=script&lang=js&\n\n\n\nvar keysThatRequireMenuBeingOpen = [KEY_CODES.ENTER, KEY_CODES.END, KEY_CODES.HOME, KEY_CODES.ARROW_LEFT, KEY_CODES.ARROW_UP, KEY_CODES.ARROW_RIGHT, KEY_CODES.ARROW_DOWN];\n/* harmony default export */ var Inputvue_type_script_lang_js_ = ({\n name: 'vue-treeselect--input',\n inject: ['instance'],\n data: function data() {\n return {\n inputWidth: MIN_INPUT_WIDTH,\n value: ''\n };\n },\n computed: {\n needAutoSize: function needAutoSize() {\n var instance = this.instance;\n return instance.searchable && !instance.disabled && instance.multiple;\n },\n inputStyle: function inputStyle() {\n return {\n width: this.needAutoSize ? \"\".concat(this.inputWidth, \"px\") : null\n };\n }\n },\n watch: {\n 'instance.trigger.searchQuery': function instanceTriggerSearchQuery(newValue) {\n this.value = newValue;\n },\n value: function value() {\n if (this.needAutoSize) this.$nextTick(this.updateInputWidth);\n }\n },\n created: function created() {\n this.debouncedCallback = debounce_default()(this.updateSearchQuery, INPUT_DEBOUNCE_DELAY, {\n leading: true,\n trailing: true\n });\n },\n methods: {\n clear: function clear() {\n this.onInput({\n target: {\n value: ''\n }\n });\n },\n focus: function focus() {\n var instance = this.instance;\n\n if (!instance.disabled) {\n this.$refs.input && this.$refs.input.focus();\n }\n },\n blur: function blur() {\n this.$refs.input && this.$refs.input.blur();\n },\n onFocus: function onFocus() {\n var instance = this.instance;\n instance.trigger.isFocused = true;\n if (instance.openOnFocus) instance.openMenu();\n },\n onBlur: function onBlur() {\n var instance = this.instance;\n var menu = instance.getMenu();\n\n if (menu && document.activeElement === menu) {\n return this.focus();\n }\n\n instance.trigger.isFocused = false;\n instance.closeMenu();\n },\n onInput: function onInput(evt) {\n var value = evt.target.value;\n this.value = value;\n\n if (value) {\n this.debouncedCallback();\n } else {\n this.debouncedCallback.cancel();\n this.updateSearchQuery();\n }\n },\n onKeyDown: function onKeyDown(evt) {\n var instance = this.instance;\n var key = 'which' in evt ? evt.which : evt.keyCode;\n if (evt.ctrlKey || evt.shiftKey || evt.altKey || evt.metaKey) return;\n\n if (!instance.menu.isOpen && includes(keysThatRequireMenuBeingOpen, key)) {\n evt.preventDefault();\n return instance.openMenu();\n }\n\n switch (key) {\n case KEY_CODES.BACKSPACE:\n {\n if (instance.backspaceRemoves && !this.value.length) {\n instance.removeLastValue();\n }\n\n break;\n }\n\n case KEY_CODES.ENTER:\n {\n evt.preventDefault();\n if (instance.menu.current === null) return;\n var current = instance.getNode(instance.menu.current);\n if (current.isBranch && instance.disableBranchNodes) return;\n instance.select(current);\n break;\n }\n\n case KEY_CODES.ESCAPE:\n {\n if (this.value.length) {\n this.clear();\n } else if (instance.menu.isOpen) {\n instance.closeMenu();\n }\n\n break;\n }\n\n case KEY_CODES.END:\n {\n evt.preventDefault();\n instance.highlightLastOption();\n break;\n }\n\n case KEY_CODES.HOME:\n {\n evt.preventDefault();\n instance.highlightFirstOption();\n break;\n }\n\n case KEY_CODES.ARROW_LEFT:\n {\n var _current = instance.getNode(instance.menu.current);\n\n if (_current.isBranch && instance.shouldExpand(_current)) {\n evt.preventDefault();\n instance.toggleExpanded(_current);\n } else if (!_current.isRootNode && (_current.isLeaf || _current.isBranch && !instance.shouldExpand(_current))) {\n evt.preventDefault();\n instance.setCurrentHighlightedOption(_current.parentNode);\n }\n\n break;\n }\n\n case KEY_CODES.ARROW_UP:\n {\n evt.preventDefault();\n instance.highlightPrevOption();\n break;\n }\n\n case KEY_CODES.ARROW_RIGHT:\n {\n var _current2 = instance.getNode(instance.menu.current);\n\n if (_current2.isBranch && !instance.shouldExpand(_current2)) {\n evt.preventDefault();\n instance.toggleExpanded(_current2);\n }\n\n break;\n }\n\n case KEY_CODES.ARROW_DOWN:\n {\n evt.preventDefault();\n instance.highlightNextOption();\n break;\n }\n\n case KEY_CODES.DELETE:\n {\n if (instance.deleteRemoves && !this.value.length) {\n instance.removeLastValue();\n }\n\n break;\n }\n\n default:\n {\n instance.openMenu();\n }\n }\n },\n onMouseDown: function onMouseDown(evt) {\n if (this.value.length) {\n evt.stopPropagation();\n }\n },\n renderInputContainer: function renderInputContainer() {\n var h = this.$createElement;\n var instance = this.instance;\n var props = {};\n var children = [];\n\n if (instance.searchable && !instance.disabled) {\n children.push(this.renderInput());\n if (this.needAutoSize) children.push(this.renderSizer());\n }\n\n if (!instance.searchable) {\n deepExtend(props, {\n on: {\n focus: this.onFocus,\n blur: this.onBlur,\n keydown: this.onKeyDown\n },\n ref: 'input'\n });\n }\n\n if (!instance.searchable && !instance.disabled) {\n deepExtend(props, {\n attrs: {\n tabIndex: instance.tabIndex\n }\n });\n }\n\n return h(\"div\", external_babel_helper_vue_jsx_merge_props_default()([{\n \"class\": \"vue-treeselect__input-container\"\n }, props]), [children]);\n },\n renderInput: function renderInput() {\n var h = this.$createElement;\n var instance = this.instance;\n return h(\"input\", {\n ref: \"input\",\n \"class\": \"vue-treeselect__input\",\n attrs: {\n type: \"text\",\n autocomplete: \"off\",\n tabIndex: instance.tabIndex,\n required: instance.required && !instance.hasValue\n },\n domProps: {\n \"value\": this.value\n },\n style: this.inputStyle,\n on: {\n \"focus\": this.onFocus,\n \"input\": this.onInput,\n \"blur\": this.onBlur,\n \"keydown\": this.onKeyDown,\n \"mousedown\": this.onMouseDown\n }\n });\n },\n renderSizer: function renderSizer() {\n var h = this.$createElement;\n return h(\"div\", {\n ref: \"sizer\",\n \"class\": \"vue-treeselect__sizer\"\n }, [this.value]);\n },\n updateInputWidth: function updateInputWidth() {\n this.inputWidth = Math.max(MIN_INPUT_WIDTH, this.$refs.sizer.scrollWidth + 15);\n },\n updateSearchQuery: function updateSearchQuery() {\n var instance = this.instance;\n instance.trigger.searchQuery = this.value;\n }\n },\n render: function render() {\n return this.renderInputContainer();\n }\n});\n// CONCATENATED MODULE: ./src/components/Input.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_Inputvue_type_script_lang_js_ = (Inputvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/components/Input.vue\nvar Input_render, Input_staticRenderFns\n\n\n\n\n/* normalize component */\n\nvar Input_component = normalizeComponent(\n components_Inputvue_type_script_lang_js_,\n Input_render,\n Input_staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var Input_api; }\nInput_component.options.__file = \"src/components/Input.vue\"\n/* harmony default export */ var Input = (Input_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Placeholder.vue?vue&type=script&lang=js&\n/* harmony default export */ var Placeholdervue_type_script_lang_js_ = ({\n name: 'vue-treeselect--placeholder',\n inject: ['instance'],\n render: function render() {\n var h = arguments[0];\n var instance = this.instance;\n var placeholderClass = {\n 'vue-treeselect__placeholder': true,\n 'vue-treeselect-helper-zoom-effect-off': true,\n 'vue-treeselect-helper-hide': instance.hasValue || instance.trigger.searchQuery\n };\n return h(\"div\", {\n \"class\": placeholderClass\n }, [instance.placeholder]);\n }\n});\n// CONCATENATED MODULE: ./src/components/Placeholder.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_Placeholdervue_type_script_lang_js_ = (Placeholdervue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/components/Placeholder.vue\nvar Placeholder_render, Placeholder_staticRenderFns\n\n\n\n\n/* normalize component */\n\nvar Placeholder_component = normalizeComponent(\n components_Placeholdervue_type_script_lang_js_,\n Placeholder_render,\n Placeholder_staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var Placeholder_api; }\nPlaceholder_component.options.__file = \"src/components/Placeholder.vue\"\n/* harmony default export */ var Placeholder = (Placeholder_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/SingleValue.vue?vue&type=script&lang=js&\n\n\n/* harmony default export */ var SingleValuevue_type_script_lang_js_ = ({\n name: 'vue-treeselect--single-value',\n inject: ['instance'],\n methods: {\n renderSingleValueLabel: function renderSingleValueLabel() {\n var instance = this.instance;\n var node = instance.selectedNodes[0];\n var customValueLabelRenderer = instance.$scopedSlots['value-label'];\n return customValueLabelRenderer ? customValueLabelRenderer({\n node: node\n }) : node.label;\n }\n },\n render: function render() {\n var h = arguments[0];\n var instance = this.instance,\n renderValueContainer = this.$parent.renderValueContainer;\n var shouldShowValue = instance.hasValue && !instance.trigger.searchQuery;\n return renderValueContainer([shouldShowValue && h(\"div\", {\n \"class\": \"vue-treeselect__single-value\"\n }, [this.renderSingleValueLabel()]), h(Placeholder), h(Input, {\n ref: \"input\"\n })]);\n }\n});\n// CONCATENATED MODULE: ./src/components/SingleValue.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_SingleValuevue_type_script_lang_js_ = (SingleValuevue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/components/SingleValue.vue\nvar SingleValue_render, SingleValue_staticRenderFns\n\n\n\n\n/* normalize component */\n\nvar SingleValue_component = normalizeComponent(\n components_SingleValuevue_type_script_lang_js_,\n SingleValue_render,\n SingleValue_staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var SingleValue_api; }\nSingleValue_component.options.__file = \"src/components/SingleValue.vue\"\n/* harmony default export */ var SingleValue = (SingleValue_component.exports);\n// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js!./node_modules/vue-loader/lib??vue-loader-options!./src/components/icons/Delete.vue?vue&type=template&id=364b6320&\nvar Deletevue_type_template_id_364b6320_render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"svg\",\n {\n attrs: {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 348.333 348.333\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d:\n \"M336.559 68.611L231.016 174.165l105.543 105.549c15.699 15.705 15.699 41.145 0 56.85-7.844 7.844-18.128 11.769-28.407 11.769-10.296 0-20.581-3.919-28.419-11.769L174.167 231.003 68.609 336.563c-7.843 7.844-18.128 11.769-28.416 11.769-10.285 0-20.563-3.919-28.413-11.769-15.699-15.698-15.699-41.139 0-56.85l105.54-105.549L11.774 68.611c-15.699-15.699-15.699-41.145 0-56.844 15.696-15.687 41.127-15.687 56.829 0l105.563 105.554L279.721 11.767c15.705-15.687 41.139-15.687 56.832 0 15.705 15.699 15.705 41.145.006 56.844z\"\n }\n })\n ]\n )\n}\nvar Deletevue_type_template_id_364b6320_staticRenderFns = []\nDeletevue_type_template_id_364b6320_render._withStripped = true\n\n\n// CONCATENATED MODULE: ./src/components/icons/Delete.vue?vue&type=template&id=364b6320&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/icons/Delete.vue?vue&type=script&lang=js&\n/* harmony default export */ var Deletevue_type_script_lang_js_ = ({\n name: 'vue-treeselect--x'\n});\n// CONCATENATED MODULE: ./src/components/icons/Delete.vue?vue&type=script&lang=js&\n /* harmony default export */ var icons_Deletevue_type_script_lang_js_ = (Deletevue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/components/icons/Delete.vue\n\n\n\n\n\n/* normalize component */\n\nvar Delete_component = normalizeComponent(\n icons_Deletevue_type_script_lang_js_,\n Deletevue_type_template_id_364b6320_render,\n Deletevue_type_template_id_364b6320_staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var Delete_api; }\nDelete_component.options.__file = \"src/components/icons/Delete.vue\"\n/* harmony default export */ var Delete = (Delete_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/MultiValueItem.vue?vue&type=script&lang=js&\n\n\n/* harmony default export */ var MultiValueItemvue_type_script_lang_js_ = ({\n name: 'vue-treeselect--multi-value-item',\n inject: ['instance'],\n props: {\n node: {\n type: Object,\n required: true\n }\n },\n methods: {\n handleMouseDown: onLeftClick(function handleMouseDown() {\n var instance = this.instance,\n node = this.node;\n instance.select(node);\n })\n },\n render: function render() {\n var h = arguments[0];\n var instance = this.instance,\n node = this.node;\n var itemClass = {\n 'vue-treeselect__multi-value-item': true,\n 'vue-treeselect__multi-value-item-disabled': node.isDisabled,\n 'vue-treeselect__multi-value-item-new': node.isNew\n };\n var customValueLabelRenderer = instance.$scopedSlots['value-label'];\n var labelRenderer = customValueLabelRenderer ? customValueLabelRenderer({\n node: node\n }) : node.label;\n return h(\"div\", {\n \"class\": \"vue-treeselect__multi-value-item-container\"\n }, [h(\"div\", {\n \"class\": itemClass,\n on: {\n \"mousedown\": this.handleMouseDown\n }\n }, [h(\"span\", {\n \"class\": \"vue-treeselect__multi-value-label\"\n }, [labelRenderer]), h(\"span\", {\n \"class\": \"vue-treeselect__icon vue-treeselect__value-remove\"\n }, [h(Delete)])])]);\n }\n});\n// CONCATENATED MODULE: ./src/components/MultiValueItem.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_MultiValueItemvue_type_script_lang_js_ = (MultiValueItemvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/components/MultiValueItem.vue\nvar MultiValueItem_render, MultiValueItem_staticRenderFns\n\n\n\n\n/* normalize component */\n\nvar MultiValueItem_component = normalizeComponent(\n components_MultiValueItemvue_type_script_lang_js_,\n MultiValueItem_render,\n MultiValueItem_staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var MultiValueItem_api; }\nMultiValueItem_component.options.__file = \"src/components/MultiValueItem.vue\"\n/* harmony default export */ var MultiValueItem = (MultiValueItem_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/MultiValue.vue?vue&type=script&lang=js&\n\n\n\n\n/* harmony default export */ var MultiValuevue_type_script_lang_js_ = ({\n name: 'vue-treeselect--multi-value',\n inject: ['instance'],\n methods: {\n renderMultiValueItems: function renderMultiValueItems() {\n var h = this.$createElement;\n var instance = this.instance;\n return instance.internalValue.slice(0, instance.limit).map(instance.getNode).map(function (node) {\n return h(MultiValueItem, {\n key: \"multi-value-item-\".concat(node.id),\n attrs: {\n node: node\n }\n });\n });\n },\n renderExceedLimitTip: function renderExceedLimitTip() {\n var h = this.$createElement;\n var instance = this.instance;\n var count = instance.internalValue.length - instance.limit;\n if (count <= 0) return null;\n return h(\"div\", {\n \"class\": \"vue-treeselect__limit-tip vue-treeselect-helper-zoom-effect-off\",\n key: \"exceed-limit-tip\"\n }, [h(\"span\", {\n \"class\": \"vue-treeselect__limit-tip-text\"\n }, [instance.limitText(count)])]);\n }\n },\n render: function render() {\n var h = arguments[0];\n var renderValueContainer = this.$parent.renderValueContainer;\n var transitionGroupProps = {\n props: {\n tag: 'div',\n name: 'vue-treeselect__multi-value-item--transition',\n appear: true\n }\n };\n return renderValueContainer(h(\"transition-group\", external_babel_helper_vue_jsx_merge_props_default()([{\n \"class\": \"vue-treeselect__multi-value\"\n }, transitionGroupProps]), [this.renderMultiValueItems(), this.renderExceedLimitTip(), h(Placeholder, {\n key: \"placeholder\"\n }), h(Input, {\n ref: \"input\",\n key: \"input\"\n })]));\n }\n});\n// CONCATENATED MODULE: ./src/components/MultiValue.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_MultiValuevue_type_script_lang_js_ = (MultiValuevue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/components/MultiValue.vue\nvar MultiValue_render, MultiValue_staticRenderFns\n\n\n\n\n/* normalize component */\n\nvar MultiValue_component = normalizeComponent(\n components_MultiValuevue_type_script_lang_js_,\n MultiValue_render,\n MultiValue_staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var MultiValue_api; }\nMultiValue_component.options.__file = \"src/components/MultiValue.vue\"\n/* harmony default export */ var MultiValue = (MultiValue_component.exports);\n// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js!./node_modules/vue-loader/lib??vue-loader-options!./src/components/icons/Arrow.vue?vue&type=template&id=11186cd4&\nvar Arrowvue_type_template_id_11186cd4_render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"svg\",\n {\n attrs: {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 292.362 292.362\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d:\n \"M286.935 69.377c-3.614-3.617-7.898-5.424-12.848-5.424H18.274c-4.952 0-9.233 1.807-12.85 5.424C1.807 72.998 0 77.279 0 82.228c0 4.948 1.807 9.229 5.424 12.847l127.907 127.907c3.621 3.617 7.902 5.428 12.85 5.428s9.233-1.811 12.847-5.428L286.935 95.074c3.613-3.617 5.427-7.898 5.427-12.847 0-4.948-1.814-9.229-5.427-12.85z\"\n }\n })\n ]\n )\n}\nvar Arrowvue_type_template_id_11186cd4_staticRenderFns = []\nArrowvue_type_template_id_11186cd4_render._withStripped = true\n\n\n// CONCATENATED MODULE: ./src/components/icons/Arrow.vue?vue&type=template&id=11186cd4&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/icons/Arrow.vue?vue&type=script&lang=js&\n/* harmony default export */ var Arrowvue_type_script_lang_js_ = ({\n name: 'vue-treeselect--arrow'\n});\n// CONCATENATED MODULE: ./src/components/icons/Arrow.vue?vue&type=script&lang=js&\n /* harmony default export */ var icons_Arrowvue_type_script_lang_js_ = (Arrowvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/components/icons/Arrow.vue\n\n\n\n\n\n/* normalize component */\n\nvar Arrow_component = normalizeComponent(\n icons_Arrowvue_type_script_lang_js_,\n Arrowvue_type_template_id_11186cd4_render,\n Arrowvue_type_template_id_11186cd4_staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var Arrow_api; }\nArrow_component.options.__file = \"src/components/icons/Arrow.vue\"\n/* harmony default export */ var Arrow = (Arrow_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Control.vue?vue&type=script&lang=js&\n\n\n\n\n\n/* harmony default export */ var Controlvue_type_script_lang_js_ = ({\n name: 'vue-treeselect--control',\n inject: ['instance'],\n computed: {\n shouldShowX: function shouldShowX() {\n var instance = this.instance;\n return instance.clearable && !instance.disabled && instance.hasValue && (this.hasUndisabledValue || instance.allowClearingDisabled);\n },\n shouldShowArrow: function shouldShowArrow() {\n var instance = this.instance;\n if (!instance.alwaysOpen) return true;\n return !instance.menu.isOpen;\n },\n hasUndisabledValue: function hasUndisabledValue() {\n var instance = this.instance;\n return instance.hasValue && instance.internalValue.some(function (id) {\n return !instance.getNode(id).isDisabled;\n });\n }\n },\n methods: {\n renderX: function renderX() {\n var h = this.$createElement;\n var instance = this.instance;\n var title = instance.multiple ? instance.clearAllText : instance.clearValueText;\n if (!this.shouldShowX) return null;\n return h(\"div\", {\n \"class\": \"vue-treeselect__x-container\",\n attrs: {\n title: title\n },\n on: {\n \"mousedown\": this.handleMouseDownOnX\n }\n }, [h(Delete, {\n \"class\": \"vue-treeselect__x\"\n })]);\n },\n renderArrow: function renderArrow() {\n var h = this.$createElement;\n var instance = this.instance;\n var arrowClass = {\n 'vue-treeselect__control-arrow': true,\n 'vue-treeselect__control-arrow--rotated': instance.menu.isOpen\n };\n if (!this.shouldShowArrow) return null;\n return h(\"div\", {\n \"class\": \"vue-treeselect__control-arrow-container\",\n on: {\n \"mousedown\": this.handleMouseDownOnArrow\n }\n }, [h(Arrow, {\n \"class\": arrowClass\n })]);\n },\n handleMouseDownOnX: onLeftClick(function handleMouseDownOnX(evt) {\n evt.stopPropagation();\n evt.preventDefault();\n var instance = this.instance;\n var result = instance.beforeClearAll();\n\n var handler = function handler(shouldClear) {\n if (shouldClear) instance.clear();\n };\n\n if (external_is_promise_default()(result)) {\n result.then(handler);\n } else {\n setTimeout(function () {\n return handler(result);\n }, 0);\n }\n }),\n handleMouseDownOnArrow: onLeftClick(function handleMouseDownOnArrow(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n var instance = this.instance;\n instance.focusInput();\n instance.toggleMenu();\n }),\n renderValueContainer: function renderValueContainer(children) {\n var h = this.$createElement;\n return h(\"div\", {\n \"class\": \"vue-treeselect__value-container\"\n }, [children]);\n }\n },\n render: function render() {\n var h = arguments[0];\n var instance = this.instance;\n var ValueContainer = instance.single ? SingleValue : MultiValue;\n return h(\"div\", {\n \"class\": \"vue-treeselect__control\",\n on: {\n \"mousedown\": instance.handleMouseDown\n }\n }, [h(ValueContainer, {\n ref: \"value-container\"\n }), this.renderX(), this.renderArrow()]);\n }\n});\n// CONCATENATED MODULE: ./src/components/Control.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_Controlvue_type_script_lang_js_ = (Controlvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/components/Control.vue\nvar Control_render, Control_staticRenderFns\n\n\n\n\n/* normalize component */\n\nvar Control_component = normalizeComponent(\n components_Controlvue_type_script_lang_js_,\n Control_render,\n Control_staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var Control_api; }\nControl_component.options.__file = \"src/components/Control.vue\"\n/* harmony default export */ var Control = (Control_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Tip.vue?vue&type=script&lang=js&\n/* harmony default export */ var Tipvue_type_script_lang_js_ = ({\n name: 'vue-treeselect--tip',\n functional: true,\n props: {\n type: {\n type: String,\n required: true\n },\n icon: {\n type: String,\n required: true\n }\n },\n render: function render(_, context) {\n var h = arguments[0];\n var props = context.props,\n children = context.children;\n return h(\"div\", {\n \"class\": \"vue-treeselect__tip vue-treeselect__\".concat(props.type, \"-tip\")\n }, [h(\"div\", {\n \"class\": \"vue-treeselect__icon-container\"\n }, [h(\"span\", {\n \"class\": \"vue-treeselect__icon-\".concat(props.icon)\n })]), h(\"span\", {\n \"class\": \"vue-treeselect__tip-text vue-treeselect__\".concat(props.type, \"-tip-text\")\n }, [children])]);\n }\n});\n// CONCATENATED MODULE: ./src/components/Tip.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_Tipvue_type_script_lang_js_ = (Tipvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/components/Tip.vue\nvar Tip_render, Tip_staticRenderFns\n\n\n\n\n/* normalize component */\n\nvar Tip_component = normalizeComponent(\n components_Tipvue_type_script_lang_js_,\n Tip_render,\n Tip_staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var Tip_api; }\nTip_component.options.__file = \"src/components/Tip.vue\"\n/* harmony default export */ var Tip = (Tip_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Option.vue?vue&type=script&lang=js&\n\n\n\n\n\nvar arrowPlaceholder, checkMark, minusMark;\nvar Option = {\n name: 'vue-treeselect--option',\n inject: ['instance'],\n props: {\n node: {\n type: Object,\n required: true\n }\n },\n computed: {\n shouldExpand: function shouldExpand() {\n var instance = this.instance,\n node = this.node;\n return node.isBranch && instance.shouldExpand(node);\n },\n shouldShow: function shouldShow() {\n var instance = this.instance,\n node = this.node;\n return instance.shouldShowOptionInMenu(node);\n }\n },\n methods: {\n renderOption: function renderOption() {\n var h = this.$createElement;\n var instance = this.instance,\n node = this.node;\n var optionClass = {\n 'vue-treeselect__option': true,\n 'vue-treeselect__option--disabled': node.isDisabled,\n 'vue-treeselect__option--selected': instance.isSelected(node),\n 'vue-treeselect__option--highlight': node.isHighlighted,\n 'vue-treeselect__option--matched': instance.localSearch.active && node.isMatched,\n 'vue-treeselect__option--hide': !this.shouldShow\n };\n return h(\"div\", {\n \"class\": optionClass,\n on: {\n \"mouseenter\": this.handleMouseEnterOption\n },\n attrs: {\n \"data-id\": node.id\n }\n }, [this.renderArrow(), this.renderLabelContainer([this.renderCheckboxContainer([this.renderCheckbox()]), this.renderLabel()])]);\n },\n renderSubOptionsList: function renderSubOptionsList() {\n var h = this.$createElement;\n if (!this.shouldExpand) return null;\n return h(\"div\", {\n \"class\": \"vue-treeselect__list\"\n }, [this.renderSubOptions(), this.renderNoChildrenTip(), this.renderLoadingChildrenTip(), this.renderLoadingChildrenErrorTip()]);\n },\n renderArrow: function renderArrow() {\n var h = this.$createElement;\n var instance = this.instance,\n node = this.node;\n if (instance.shouldFlattenOptions && this.shouldShow) return null;\n\n if (node.isBranch) {\n var transitionProps = {\n props: {\n name: 'vue-treeselect__option-arrow--prepare',\n appear: true\n }\n };\n var arrowClass = {\n 'vue-treeselect__option-arrow': true,\n 'vue-treeselect__option-arrow--rotated': this.shouldExpand\n };\n return h(\"div\", {\n \"class\": \"vue-treeselect__option-arrow-container\",\n on: {\n \"mousedown\": this.handleMouseDownOnArrow\n }\n }, [h(\"transition\", transitionProps, [h(Arrow, {\n \"class\": arrowClass\n })])]);\n }\n\n if (instance.hasBranchNodes) {\n if (!arrowPlaceholder) arrowPlaceholder = h(\"div\", {\n \"class\": \"vue-treeselect__option-arrow-placeholder\"\n }, [\"\\xA0\"]);\n return arrowPlaceholder;\n }\n\n return null;\n },\n renderLabelContainer: function renderLabelContainer(children) {\n var h = this.$createElement;\n return h(\"div\", {\n \"class\": \"vue-treeselect__label-container\",\n on: {\n \"mousedown\": this.handleMouseDownOnLabelContainer\n }\n }, [children]);\n },\n renderCheckboxContainer: function renderCheckboxContainer(children) {\n var h = this.$createElement;\n var instance = this.instance,\n node = this.node;\n if (instance.single) return null;\n if (instance.disableBranchNodes && node.isBranch) return null;\n return h(\"div\", {\n \"class\": \"vue-treeselect__checkbox-container\"\n }, [children]);\n },\n renderCheckbox: function renderCheckbox() {\n var h = this.$createElement;\n var instance = this.instance,\n node = this.node;\n var checkedState = instance.forest.checkedStateMap[node.id];\n var checkboxClass = {\n 'vue-treeselect__checkbox': true,\n 'vue-treeselect__checkbox--checked': checkedState === CHECKED,\n 'vue-treeselect__checkbox--indeterminate': checkedState === INDETERMINATE,\n 'vue-treeselect__checkbox--unchecked': checkedState === UNCHECKED,\n 'vue-treeselect__checkbox--disabled': node.isDisabled\n };\n if (!checkMark) checkMark = h(\"span\", {\n \"class\": \"vue-treeselect__check-mark\"\n });\n if (!minusMark) minusMark = h(\"span\", {\n \"class\": \"vue-treeselect__minus-mark\"\n });\n return h(\"span\", {\n \"class\": checkboxClass\n }, [checkMark, minusMark]);\n },\n renderLabel: function renderLabel() {\n var h = this.$createElement;\n var instance = this.instance,\n node = this.node;\n var shouldShowCount = node.isBranch && (instance.localSearch.active ? instance.showCountOnSearchComputed : instance.showCount);\n var count = shouldShowCount ? instance.localSearch.active ? instance.localSearch.countMap[node.id][instance.showCountOf] : node.count[instance.showCountOf] : NaN;\n var labelClassName = 'vue-treeselect__label';\n var countClassName = 'vue-treeselect__count';\n var customLabelRenderer = instance.$scopedSlots['option-label'];\n if (customLabelRenderer) return customLabelRenderer({\n node: node,\n shouldShowCount: shouldShowCount,\n count: count,\n labelClassName: labelClassName,\n countClassName: countClassName\n });\n return h(\"label\", {\n \"class\": labelClassName\n }, [node.label, shouldShowCount && h(\"span\", {\n \"class\": countClassName\n }, [\"(\", count, \")\"])]);\n },\n renderSubOptions: function renderSubOptions() {\n var h = this.$createElement;\n var node = this.node;\n if (!node.childrenStates.isLoaded) return null;\n return node.children.map(function (childNode) {\n return h(Option, {\n attrs: {\n node: childNode\n },\n key: childNode.id\n });\n });\n },\n renderNoChildrenTip: function renderNoChildrenTip() {\n var h = this.$createElement;\n var instance = this.instance,\n node = this.node;\n if (!node.childrenStates.isLoaded || node.children.length) return null;\n return h(Tip, {\n attrs: {\n type: \"no-children\",\n icon: \"warning\"\n }\n }, [instance.noChildrenText]);\n },\n renderLoadingChildrenTip: function renderLoadingChildrenTip() {\n var h = this.$createElement;\n var instance = this.instance,\n node = this.node;\n if (!node.childrenStates.isLoading) return null;\n return h(Tip, {\n attrs: {\n type: \"loading\",\n icon: \"loader\"\n }\n }, [instance.loadingText]);\n },\n renderLoadingChildrenErrorTip: function renderLoadingChildrenErrorTip() {\n var h = this.$createElement;\n var instance = this.instance,\n node = this.node;\n if (!node.childrenStates.loadingError) return null;\n return h(Tip, {\n attrs: {\n type: \"error\",\n icon: \"error\"\n }\n }, [node.childrenStates.loadingError, h(\"a\", {\n \"class\": \"vue-treeselect__retry\",\n attrs: {\n title: instance.retryTitle\n },\n on: {\n \"mousedown\": this.handleMouseDownOnRetry\n }\n }, [instance.retryText])]);\n },\n handleMouseEnterOption: function handleMouseEnterOption(evt) {\n var instance = this.instance,\n node = this.node;\n if (evt.target !== evt.currentTarget) return;\n instance.setCurrentHighlightedOption(node, false);\n },\n handleMouseDownOnArrow: onLeftClick(function handleMouseDownOnOptionArrow() {\n var instance = this.instance,\n node = this.node;\n instance.toggleExpanded(node);\n }),\n handleMouseDownOnLabelContainer: onLeftClick(function handleMouseDownOnLabelContainer() {\n var instance = this.instance,\n node = this.node;\n\n if (node.isBranch && instance.disableBranchNodes) {\n instance.toggleExpanded(node);\n } else {\n instance.select(node);\n }\n }),\n handleMouseDownOnRetry: onLeftClick(function handleMouseDownOnRetry() {\n var instance = this.instance,\n node = this.node;\n instance.loadChildrenOptions(node);\n })\n },\n render: function render() {\n var h = arguments[0];\n var node = this.node;\n var indentLevel = this.instance.shouldFlattenOptions ? 0 : node.level;\n\n var listItemClass = defineProperty_default()({\n 'vue-treeselect__list-item': true\n }, \"vue-treeselect__indent-level-\".concat(indentLevel), true);\n\n var transitionProps = {\n props: {\n name: 'vue-treeselect__list--transition'\n }\n };\n return h(\"div\", {\n \"class\": listItemClass\n }, [this.renderOption(), node.isBranch && h(\"transition\", transitionProps, [this.renderSubOptionsList()])]);\n }\n};\n/* harmony default export */ var Optionvue_type_script_lang_js_ = (Option);\n// CONCATENATED MODULE: ./src/components/Option.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_Optionvue_type_script_lang_js_ = (Optionvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/components/Option.vue\nvar Option_render, Option_staticRenderFns\n\n\n\n\n/* normalize component */\n\nvar Option_component = normalizeComponent(\n components_Optionvue_type_script_lang_js_,\n Option_render,\n Option_staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var Option_api; }\nOption_component.options.__file = \"src/components/Option.vue\"\n/* harmony default export */ var components_Option = (Option_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Menu.vue?vue&type=script&lang=js&\n\n\n\n\nvar directionMap = {\n top: 'top',\n bottom: 'bottom',\n above: 'top',\n below: 'bottom'\n};\n/* harmony default export */ var Menuvue_type_script_lang_js_ = ({\n name: 'vue-treeselect--menu',\n inject: ['instance'],\n computed: {\n menuStyle: function menuStyle() {\n var instance = this.instance;\n return {\n maxHeight: instance.maxHeight + 'px'\n };\n },\n menuContainerStyle: function menuContainerStyle() {\n var instance = this.instance;\n return {\n zIndex: instance.appendToBody ? null : instance.zIndex\n };\n }\n },\n watch: {\n 'instance.menu.isOpen': function instanceMenuIsOpen(newValue) {\n if (newValue) {\n this.$nextTick(this.onMenuOpen);\n } else {\n this.onMenuClose();\n }\n }\n },\n created: function created() {\n this.menuSizeWatcher = null;\n this.menuResizeAndScrollEventListeners = null;\n },\n mounted: function mounted() {\n var instance = this.instance;\n if (instance.menu.isOpen) this.$nextTick(this.onMenuOpen);\n },\n destroyed: function destroyed() {\n this.onMenuClose();\n },\n methods: {\n renderMenu: function renderMenu() {\n var h = this.$createElement;\n var instance = this.instance;\n if (!instance.menu.isOpen) return null;\n return h(\"div\", {\n ref: \"menu\",\n \"class\": \"vue-treeselect__menu\",\n on: {\n \"mousedown\": instance.handleMouseDown\n },\n style: this.menuStyle\n }, [this.renderBeforeList(), instance.async ? this.renderAsyncSearchMenuInner() : instance.localSearch.active ? this.renderLocalSearchMenuInner() : this.renderNormalMenuInner(), this.renderAfterList()]);\n },\n renderBeforeList: function renderBeforeList() {\n var instance = this.instance;\n var beforeListRenderer = instance.$scopedSlots['before-list'];\n return beforeListRenderer ? beforeListRenderer() : null;\n },\n renderAfterList: function renderAfterList() {\n var instance = this.instance;\n var afterListRenderer = instance.$scopedSlots['after-list'];\n return afterListRenderer ? afterListRenderer() : null;\n },\n renderNormalMenuInner: function renderNormalMenuInner() {\n var instance = this.instance;\n\n if (instance.rootOptionsStates.isLoading) {\n return this.renderLoadingOptionsTip();\n } else if (instance.rootOptionsStates.loadingError) {\n return this.renderLoadingRootOptionsErrorTip();\n } else if (instance.rootOptionsStates.isLoaded && instance.forest.normalizedOptions.length === 0) {\n return this.renderNoAvailableOptionsTip();\n } else {\n return this.renderOptionList();\n }\n },\n renderLocalSearchMenuInner: function renderLocalSearchMenuInner() {\n var instance = this.instance;\n\n if (instance.rootOptionsStates.isLoading) {\n return this.renderLoadingOptionsTip();\n } else if (instance.rootOptionsStates.loadingError) {\n return this.renderLoadingRootOptionsErrorTip();\n } else if (instance.rootOptionsStates.isLoaded && instance.forest.normalizedOptions.length === 0) {\n return this.renderNoAvailableOptionsTip();\n } else if (instance.localSearch.noResults) {\n return this.renderNoResultsTip();\n } else {\n return this.renderOptionList();\n }\n },\n renderAsyncSearchMenuInner: function renderAsyncSearchMenuInner() {\n var instance = this.instance;\n var entry = instance.getRemoteSearchEntry();\n var shouldShowSearchPromptTip = instance.trigger.searchQuery === '' && !instance.defaultOptions;\n var shouldShowNoResultsTip = shouldShowSearchPromptTip ? false : entry.isLoaded && entry.options.length === 0;\n\n if (shouldShowSearchPromptTip) {\n return this.renderSearchPromptTip();\n } else if (entry.isLoading) {\n return this.renderLoadingOptionsTip();\n } else if (entry.loadingError) {\n return this.renderAsyncSearchLoadingErrorTip();\n } else if (shouldShowNoResultsTip) {\n return this.renderNoResultsTip();\n } else {\n return this.renderOptionList();\n }\n },\n renderOptionList: function renderOptionList() {\n var h = this.$createElement;\n var instance = this.instance;\n return h(\"div\", {\n \"class\": \"vue-treeselect__list\"\n }, [instance.forest.normalizedOptions.map(function (rootNode) {\n return h(components_Option, {\n attrs: {\n node: rootNode\n },\n key: rootNode.id\n });\n })]);\n },\n renderSearchPromptTip: function renderSearchPromptTip() {\n var h = this.$createElement;\n var instance = this.instance;\n return h(Tip, {\n attrs: {\n type: \"search-prompt\",\n icon: \"warning\"\n }\n }, [instance.searchPromptText]);\n },\n renderLoadingOptionsTip: function renderLoadingOptionsTip() {\n var h = this.$createElement;\n var instance = this.instance;\n return h(Tip, {\n attrs: {\n type: \"loading\",\n icon: \"loader\"\n }\n }, [instance.loadingText]);\n },\n renderLoadingRootOptionsErrorTip: function renderLoadingRootOptionsErrorTip() {\n var h = this.$createElement;\n var instance = this.instance;\n return h(Tip, {\n attrs: {\n type: \"error\",\n icon: \"error\"\n }\n }, [instance.rootOptionsStates.loadingError, h(\"a\", {\n \"class\": \"vue-treeselect__retry\",\n on: {\n \"click\": instance.loadRootOptions\n },\n attrs: {\n title: instance.retryTitle\n }\n }, [instance.retryText])]);\n },\n renderAsyncSearchLoadingErrorTip: function renderAsyncSearchLoadingErrorTip() {\n var h = this.$createElement;\n var instance = this.instance;\n var entry = instance.getRemoteSearchEntry();\n return h(Tip, {\n attrs: {\n type: \"error\",\n icon: \"error\"\n }\n }, [entry.loadingError, h(\"a\", {\n \"class\": \"vue-treeselect__retry\",\n on: {\n \"click\": instance.handleRemoteSearch\n },\n attrs: {\n title: instance.retryTitle\n }\n }, [instance.retryText])]);\n },\n renderNoAvailableOptionsTip: function renderNoAvailableOptionsTip() {\n var h = this.$createElement;\n var instance = this.instance;\n return h(Tip, {\n attrs: {\n type: \"no-options\",\n icon: \"warning\"\n }\n }, [instance.noOptionsText]);\n },\n renderNoResultsTip: function renderNoResultsTip() {\n var h = this.$createElement;\n var instance = this.instance;\n return h(Tip, {\n attrs: {\n type: \"no-results\",\n icon: \"warning\"\n }\n }, [instance.noResultsText]);\n },\n onMenuOpen: function onMenuOpen() {\n this.adjustMenuOpenDirection();\n this.setupMenuSizeWatcher();\n this.setupMenuResizeAndScrollEventListeners();\n },\n onMenuClose: function onMenuClose() {\n this.removeMenuSizeWatcher();\n this.removeMenuResizeAndScrollEventListeners();\n },\n adjustMenuOpenDirection: function adjustMenuOpenDirection() {\n var instance = this.instance;\n if (!instance.menu.isOpen) return;\n var $menu = instance.getMenu();\n var $control = instance.getControl();\n var menuRect = $menu.getBoundingClientRect();\n var controlRect = $control.getBoundingClientRect();\n var menuHeight = menuRect.height;\n var viewportHeight = window.innerHeight;\n var spaceAbove = controlRect.top;\n var spaceBelow = window.innerHeight - controlRect.bottom;\n var isControlInViewport = controlRect.top >= 0 && controlRect.top <= viewportHeight || controlRect.top < 0 && controlRect.bottom > 0;\n var hasEnoughSpaceBelow = spaceBelow > menuHeight + MENU_BUFFER;\n var hasEnoughSpaceAbove = spaceAbove > menuHeight + MENU_BUFFER;\n\n if (!isControlInViewport) {\n instance.closeMenu();\n } else if (instance.openDirection !== 'auto') {\n instance.menu.placement = directionMap[instance.openDirection];\n } else if (hasEnoughSpaceBelow || !hasEnoughSpaceAbove) {\n instance.menu.placement = 'bottom';\n } else {\n instance.menu.placement = 'top';\n }\n },\n setupMenuSizeWatcher: function setupMenuSizeWatcher() {\n var instance = this.instance;\n var $menu = instance.getMenu();\n if (this.menuSizeWatcher) return;\n this.menuSizeWatcher = {\n remove: watchSize($menu, this.adjustMenuOpenDirection)\n };\n },\n setupMenuResizeAndScrollEventListeners: function setupMenuResizeAndScrollEventListeners() {\n var instance = this.instance;\n var $control = instance.getControl();\n if (this.menuResizeAndScrollEventListeners) return;\n this.menuResizeAndScrollEventListeners = {\n remove: setupResizeAndScrollEventListeners($control, this.adjustMenuOpenDirection)\n };\n },\n removeMenuSizeWatcher: function removeMenuSizeWatcher() {\n if (!this.menuSizeWatcher) return;\n this.menuSizeWatcher.remove();\n this.menuSizeWatcher = null;\n },\n removeMenuResizeAndScrollEventListeners: function removeMenuResizeAndScrollEventListeners() {\n if (!this.menuResizeAndScrollEventListeners) return;\n this.menuResizeAndScrollEventListeners.remove();\n this.menuResizeAndScrollEventListeners = null;\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n ref: \"menu-container\",\n \"class\": \"vue-treeselect__menu-container\",\n style: this.menuContainerStyle\n }, [h(\"transition\", {\n attrs: {\n name: \"vue-treeselect__menu--transition\"\n }\n }, [this.renderMenu()])]);\n }\n});\n// CONCATENATED MODULE: ./src/components/Menu.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_Menuvue_type_script_lang_js_ = (Menuvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/components/Menu.vue\nvar Menu_render, Menu_staticRenderFns\n\n\n\n\n/* normalize component */\n\nvar Menu_component = normalizeComponent(\n components_Menuvue_type_script_lang_js_,\n Menu_render,\n Menu_staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var Menu_api; }\nMenu_component.options.__file = \"src/components/Menu.vue\"\n/* harmony default export */ var Menu = (Menu_component.exports);\n// EXTERNAL MODULE: external \"vue\"\nvar external_vue_ = __webpack_require__(14);\nvar external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_);\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/MenuPortal.vue?vue&type=script&lang=js&\n\n\nfunction MenuPortalvue_type_script_lang_js_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction MenuPortalvue_type_script_lang_js_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { MenuPortalvue_type_script_lang_js_ownKeys(source, true).forEach(function (key) { defineProperty_default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { MenuPortalvue_type_script_lang_js_ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n\n\n\nvar PortalTarget = {\n name: 'vue-treeselect--portal-target',\n inject: ['instance'],\n watch: {\n 'instance.menu.isOpen': function instanceMenuIsOpen(newValue) {\n if (newValue) {\n this.setupHandlers();\n } else {\n this.removeHandlers();\n }\n },\n 'instance.menu.placement': function instanceMenuPlacement() {\n this.updateMenuContainerOffset();\n }\n },\n created: function created() {\n this.controlResizeAndScrollEventListeners = null;\n this.controlSizeWatcher = null;\n },\n mounted: function mounted() {\n var instance = this.instance;\n if (instance.menu.isOpen) this.setupHandlers();\n },\n methods: {\n setupHandlers: function setupHandlers() {\n this.updateWidth();\n this.updateMenuContainerOffset();\n this.setupControlResizeAndScrollEventListeners();\n this.setupControlSizeWatcher();\n },\n removeHandlers: function removeHandlers() {\n this.removeControlResizeAndScrollEventListeners();\n this.removeControlSizeWatcher();\n },\n setupControlResizeAndScrollEventListeners: function setupControlResizeAndScrollEventListeners() {\n var instance = this.instance;\n var $control = instance.getControl();\n if (this.controlResizeAndScrollEventListeners) return;\n this.controlResizeAndScrollEventListeners = {\n remove: setupResizeAndScrollEventListeners($control, this.updateMenuContainerOffset)\n };\n },\n setupControlSizeWatcher: function setupControlSizeWatcher() {\n var _this = this;\n\n var instance = this.instance;\n var $control = instance.getControl();\n if (this.controlSizeWatcher) return;\n this.controlSizeWatcher = {\n remove: watchSize($control, function () {\n _this.updateWidth();\n\n _this.updateMenuContainerOffset();\n })\n };\n },\n removeControlResizeAndScrollEventListeners: function removeControlResizeAndScrollEventListeners() {\n if (!this.controlResizeAndScrollEventListeners) return;\n this.controlResizeAndScrollEventListeners.remove();\n this.controlResizeAndScrollEventListeners = null;\n },\n removeControlSizeWatcher: function removeControlSizeWatcher() {\n if (!this.controlSizeWatcher) return;\n this.controlSizeWatcher.remove();\n this.controlSizeWatcher = null;\n },\n updateWidth: function updateWidth() {\n var instance = this.instance;\n var $portalTarget = this.$el;\n var $control = instance.getControl();\n var controlRect = $control.getBoundingClientRect();\n $portalTarget.style.width = controlRect.width + 'px';\n },\n updateMenuContainerOffset: function updateMenuContainerOffset() {\n var instance = this.instance;\n var $control = instance.getControl();\n var $portalTarget = this.$el;\n var controlRect = $control.getBoundingClientRect();\n var portalTargetRect = $portalTarget.getBoundingClientRect();\n var offsetY = instance.menu.placement === 'bottom' ? controlRect.height : 0;\n var left = Math.round(controlRect.left - portalTargetRect.left) + 'px';\n var top = Math.round(controlRect.top - portalTargetRect.top + offsetY) + 'px';\n var menuContainerStyle = this.$refs.menu.$refs['menu-container'].style;\n var transformVariations = ['transform', 'webkitTransform', 'MozTransform', 'msTransform'];\n var transform = find(transformVariations, function (t) {\n return t in document.body.style;\n });\n menuContainerStyle[transform] = \"translate(\".concat(left, \", \").concat(top, \")\");\n }\n },\n render: function render() {\n var h = arguments[0];\n var instance = this.instance;\n var portalTargetClass = ['vue-treeselect__portal-target', instance.wrapperClass];\n var portalTargetStyle = {\n zIndex: instance.zIndex\n };\n return h(\"div\", {\n \"class\": portalTargetClass,\n style: portalTargetStyle,\n attrs: {\n \"data-instance-id\": instance.getInstanceId()\n }\n }, [h(Menu, {\n ref: \"menu\"\n })]);\n },\n destroyed: function destroyed() {\n this.removeHandlers();\n }\n};\nvar placeholder;\n/* harmony default export */ var MenuPortalvue_type_script_lang_js_ = ({\n name: 'vue-treeselect--menu-portal',\n created: function created() {\n this.portalTarget = null;\n },\n mounted: function mounted() {\n this.setup();\n },\n destroyed: function destroyed() {\n this.teardown();\n },\n methods: {\n setup: function setup() {\n var el = document.createElement('div');\n document.body.appendChild(el);\n this.portalTarget = new external_vue_default.a(MenuPortalvue_type_script_lang_js_objectSpread({\n el: el,\n parent: this\n }, PortalTarget));\n },\n teardown: function teardown() {\n document.body.removeChild(this.portalTarget.$el);\n this.portalTarget.$el.innerHTML = '';\n this.portalTarget.$destroy();\n this.portalTarget = null;\n }\n },\n render: function render() {\n var h = arguments[0];\n if (!placeholder) placeholder = h(\"div\", {\n \"class\": \"vue-treeselect__menu-placeholder\"\n });\n return placeholder;\n }\n});\n// CONCATENATED MODULE: ./src/components/MenuPortal.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_MenuPortalvue_type_script_lang_js_ = (MenuPortalvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/components/MenuPortal.vue\nvar MenuPortal_render, MenuPortal_staticRenderFns\n\n\n\n\n/* normalize component */\n\nvar MenuPortal_component = normalizeComponent(\n components_MenuPortalvue_type_script_lang_js_,\n MenuPortal_render,\n MenuPortal_staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var MenuPortal_api; }\nMenuPortal_component.options.__file = \"src/components/MenuPortal.vue\"\n/* harmony default export */ var MenuPortal = (MenuPortal_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Treeselect.vue?vue&type=script&lang=js&\n\n\n\n\n\n/* harmony default export */ var Treeselectvue_type_script_lang_js_ = ({\n name: 'vue-treeselect',\n mixins: [treeselectMixin],\n computed: {\n wrapperClass: function wrapperClass() {\n return {\n 'vue-treeselect': true,\n 'vue-treeselect--single': this.single,\n 'vue-treeselect--multi': this.multiple,\n 'vue-treeselect--searchable': this.searchable,\n 'vue-treeselect--disabled': this.disabled,\n 'vue-treeselect--focused': this.trigger.isFocused,\n 'vue-treeselect--has-value': this.hasValue,\n 'vue-treeselect--open': this.menu.isOpen,\n 'vue-treeselect--open-above': this.menu.placement === 'top',\n 'vue-treeselect--open-below': this.menu.placement === 'bottom',\n 'vue-treeselect--branch-nodes-disabled': this.disableBranchNodes,\n 'vue-treeselect--append-to-body': this.appendToBody\n };\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n ref: \"wrapper\",\n \"class\": this.wrapperClass\n }, [h(HiddenFields), h(Control, {\n ref: \"control\"\n }), this.appendToBody ? h(MenuPortal, {\n ref: \"portal\"\n }) : h(Menu, {\n ref: \"menu\"\n })]);\n }\n});\n// CONCATENATED MODULE: ./src/components/Treeselect.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_Treeselectvue_type_script_lang_js_ = (Treeselectvue_type_script_lang_js_); \n// CONCATENATED MODULE: ./src/components/Treeselect.vue\nvar Treeselect_render, Treeselect_staticRenderFns\n\n\n\n\n/* normalize component */\n\nvar Treeselect_component = normalizeComponent(\n components_Treeselectvue_type_script_lang_js_,\n Treeselect_render,\n Treeselect_staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var Treeselect_api; }\nTreeselect_component.options.__file = \"src/components/Treeselect.vue\"\n/* harmony default export */ var Treeselect = (Treeselect_component.exports);\n// EXTERNAL MODULE: ./src/style.less\nvar style = __webpack_require__(15);\n\n// CONCATENATED MODULE: ./src/index.js\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VERSION\", function() { return VERSION; });\n/* concated harmony reexport Treeselect */__webpack_require__.d(__webpack_exports__, \"Treeselect\", function() { return Treeselect; });\n/* concated harmony reexport treeselectMixin */__webpack_require__.d(__webpack_exports__, \"treeselectMixin\", function() { return treeselectMixin; });\n/* concated harmony reexport LOAD_ROOT_OPTIONS */__webpack_require__.d(__webpack_exports__, \"LOAD_ROOT_OPTIONS\", function() { return LOAD_ROOT_OPTIONS; });\n/* concated harmony reexport LOAD_CHILDREN_OPTIONS */__webpack_require__.d(__webpack_exports__, \"LOAD_CHILDREN_OPTIONS\", function() { return LOAD_CHILDREN_OPTIONS; });\n/* concated harmony reexport ASYNC_SEARCH */__webpack_require__.d(__webpack_exports__, \"ASYNC_SEARCH\", function() { return ASYNC_SEARCH; });\n\n\n\n/* harmony default export */ var src = __webpack_exports__[\"default\"] = (Treeselect);\n\n\nvar VERSION = \"0.4.0\";\n\n/***/ })\n/******/ ]);\n//# sourceMappingURL=vue-treeselect.cjs.js.map","/**\r\n * DevExtreme (esm/renovation/utils/type_conversion.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (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 toNumber(attribute) {\r\n return attribute ? Number(attribute.replace(\"px\", \"\")) : 0\r\n}\r\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","module.exports = __webpack_public_path__ + \"img/vi_vn.a0e23328.svg\";","module.exports = require('./readable').Transform\n","/*!\n * devextreme-vue\n * Version: 22.1.6\n * Build date: Tue Oct 18 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DxLookup = exports.DxLoadPanel = exports.DxLabel = exports.DxKeyboardNavigation = exports.DxItem = exports.DxHide = exports.DxHeaderFilter = exports.DxGroupPanel = exports.DxGroupOperationDescriptions = exports.DxGroupItem = exports.DxGroupingTexts = exports.DxGrouping = exports.DxFrom = exports.DxFormItem = exports.DxFormat = exports.DxForm = exports.DxFilterRow = exports.DxFilterPanelTexts = exports.DxFilterPanel = exports.DxFilterOperationDescriptions = exports.DxFilterBuilderPopup = exports.DxFilterBuilder = exports.DxFieldLookup = exports.DxField = exports.DxExportTexts = exports.DxExport = exports.DxEmailRule = exports.DxEditingTexts = exports.DxEditing = exports.DxDataGridHeaderFilterTexts = exports.DxDataGridHeaderFilter = exports.DxCustomRule = exports.DxCustomOperation = exports.DxCursorOffset = exports.DxCompareRule = exports.DxColumnLookup = exports.DxColumnHeaderFilter = exports.DxColumnFixingTexts = exports.DxColumnFixing = exports.DxColumnChooser = exports.DxColumn = exports.DxCollision = exports.DxColCountByScreen = exports.DxChange = exports.DxButton = exports.DxBoundaryOffset = exports.DxAt = exports.DxAsyncRule = exports.DxAnimation = exports.DxDataGrid = void 0;\nexports.DxValueFormat = exports.DxValidationRule = exports.DxTotalItem = exports.DxToolbarItem = exports.DxToolbar = exports.DxTo = exports.DxTexts = exports.DxSummaryTexts = exports.DxSummary = exports.DxStringLengthRule = exports.DxStateStoring = exports.DxSorting = exports.DxSortByGroupSummaryInfo = exports.DxShow = exports.DxSelection = exports.DxSearchPanel = exports.DxScrolling = exports.DxRowDragging = exports.DxRequiredRule = exports.DxRemoteOperations = exports.DxRangeRule = exports.DxPosition = exports.DxPopup = exports.DxPatternRule = exports.DxPaging = exports.DxPager = exports.DxOperationDescriptions = exports.DxOffset = exports.DxNumericRule = exports.DxMy = exports.DxMasterDetail = void 0;\nvar data_grid_1 = __importDefault(require(\"devextreme/ui/data_grid\"));\nvar index_1 = require(\"./core/index\");\nvar index_2 = require(\"./core/index\");\nvar DxDataGrid = index_1.createComponent({\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n allowColumnReordering: Boolean,\n allowColumnResizing: Boolean,\n autoNavigateToFocusedRow: Boolean,\n cacheEnabled: Boolean,\n cellHintEnabled: Boolean,\n columnAutoWidth: Boolean,\n columnChooser: Object,\n columnFixing: Object,\n columnHidingEnabled: Boolean,\n columnMinWidth: Number,\n columnResizingMode: String,\n columns: Array,\n columnWidth: [Number, String],\n customizeColumns: Function,\n customizeExportData: Function,\n dataRowTemplate: {},\n dataSource: {},\n dateSerializationFormat: String,\n disabled: Boolean,\n editing: Object,\n elementAttr: Object,\n errorRowEnabled: Boolean,\n export: Object,\n filterBuilder: Object,\n filterBuilderPopup: Object,\n filterPanel: Object,\n filterRow: Object,\n filterSyncEnabled: [Boolean, String],\n filterValue: [Array, Function, String],\n focusedColumnIndex: Number,\n focusedRowEnabled: Boolean,\n focusedRowIndex: Number,\n focusedRowKey: {},\n focusStateEnabled: Boolean,\n grouping: Object,\n groupPanel: Object,\n headerFilter: Object,\n height: [Function, Number, String],\n highlightChanges: Boolean,\n hint: String,\n hoverStateEnabled: Boolean,\n keyboardNavigation: Object,\n keyExpr: [Array, String],\n loadPanel: Object,\n masterDetail: Object,\n noDataText: String,\n onAdaptiveDetailRowPreparing: Function,\n onCellClick: Function,\n onCellDblClick: Function,\n onCellHoverChanged: Function,\n onCellPrepared: Function,\n onContentReady: Function,\n onContextMenuPreparing: Function,\n onDataErrorOccurred: Function,\n onDisposing: Function,\n onEditCanceled: Function,\n onEditCanceling: Function,\n onEditingStart: Function,\n onEditorPrepared: Function,\n onEditorPreparing: Function,\n onExported: Function,\n onExporting: Function,\n onFileSaving: Function,\n onFocusedCellChanged: Function,\n onFocusedCellChanging: Function,\n onFocusedRowChanged: Function,\n onFocusedRowChanging: Function,\n onInitialized: Function,\n onInitNewRow: Function,\n onKeyDown: Function,\n onOptionChanged: Function,\n onRowClick: Function,\n onRowCollapsed: Function,\n onRowCollapsing: Function,\n onRowDblClick: Function,\n onRowExpanded: Function,\n onRowExpanding: Function,\n onRowInserted: Function,\n onRowInserting: Function,\n onRowPrepared: Function,\n onRowRemoved: Function,\n onRowRemoving: Function,\n onRowUpdated: Function,\n onRowUpdating: Function,\n onRowValidating: Function,\n onSaved: Function,\n onSaving: Function,\n onSelectionChanged: Function,\n onToolbarPreparing: Function,\n pager: Object,\n paging: Object,\n remoteOperations: [Boolean, Object, String],\n renderAsync: Boolean,\n repaintChangesOnly: Boolean,\n rowAlternationEnabled: Boolean,\n rowDragging: Object,\n rowTemplate: {},\n rtlEnabled: Boolean,\n scrolling: Object,\n searchPanel: Object,\n selectedRowKeys: Array,\n selection: Object,\n selectionFilter: [Array, Function, String],\n showBorders: Boolean,\n showColumnHeaders: Boolean,\n showColumnLines: Boolean,\n showRowLines: Boolean,\n sortByGroupSummaryInfo: Array,\n sorting: Object,\n stateStoring: Object,\n summary: Object,\n syncLookupFilterValues: Boolean,\n tabIndex: Number,\n toolbar: Object,\n twoWayBindingEnabled: Boolean,\n visible: Boolean,\n width: [Function, Number, String],\n wordWrapEnabled: Boolean\n },\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:allowColumnReordering\": null,\n \"update:allowColumnResizing\": null,\n \"update:autoNavigateToFocusedRow\": null,\n \"update:cacheEnabled\": null,\n \"update:cellHintEnabled\": null,\n \"update:columnAutoWidth\": null,\n \"update:columnChooser\": null,\n \"update:columnFixing\": null,\n \"update:columnHidingEnabled\": null,\n \"update:columnMinWidth\": null,\n \"update:columnResizingMode\": null,\n \"update:columns\": null,\n \"update:columnWidth\": null,\n \"update:customizeColumns\": null,\n \"update:customizeExportData\": null,\n \"update:dataRowTemplate\": null,\n \"update:dataSource\": null,\n \"update:dateSerializationFormat\": null,\n \"update:disabled\": null,\n \"update:editing\": null,\n \"update:elementAttr\": null,\n \"update:errorRowEnabled\": null,\n \"update:export\": null,\n \"update:filterBuilder\": null,\n \"update:filterBuilderPopup\": null,\n \"update:filterPanel\": null,\n \"update:filterRow\": null,\n \"update:filterSyncEnabled\": null,\n \"update:filterValue\": null,\n \"update:focusedColumnIndex\": null,\n \"update:focusedRowEnabled\": null,\n \"update:focusedRowIndex\": null,\n \"update:focusedRowKey\": null,\n \"update:focusStateEnabled\": null,\n \"update:grouping\": null,\n \"update:groupPanel\": null,\n \"update:headerFilter\": null,\n \"update:height\": null,\n \"update:highlightChanges\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:keyboardNavigation\": null,\n \"update:keyExpr\": null,\n \"update:loadPanel\": null,\n \"update:masterDetail\": null,\n \"update:noDataText\": null,\n \"update:onAdaptiveDetailRowPreparing\": null,\n \"update:onCellClick\": null,\n \"update:onCellDblClick\": null,\n \"update:onCellHoverChanged\": null,\n \"update:onCellPrepared\": null,\n \"update:onContentReady\": null,\n \"update:onContextMenuPreparing\": null,\n \"update:onDataErrorOccurred\": null,\n \"update:onDisposing\": null,\n \"update:onEditCanceled\": null,\n \"update:onEditCanceling\": null,\n \"update:onEditingStart\": null,\n \"update:onEditorPrepared\": null,\n \"update:onEditorPreparing\": null,\n \"update:onExported\": null,\n \"update:onExporting\": null,\n \"update:onFileSaving\": null,\n \"update:onFocusedCellChanged\": null,\n \"update:onFocusedCellChanging\": null,\n \"update:onFocusedRowChanged\": null,\n \"update:onFocusedRowChanging\": null,\n \"update:onInitialized\": null,\n \"update:onInitNewRow\": null,\n \"update:onKeyDown\": null,\n \"update:onOptionChanged\": null,\n \"update:onRowClick\": null,\n \"update:onRowCollapsed\": null,\n \"update:onRowCollapsing\": null,\n \"update:onRowDblClick\": null,\n \"update:onRowExpanded\": null,\n \"update:onRowExpanding\": null,\n \"update:onRowInserted\": null,\n \"update:onRowInserting\": null,\n \"update:onRowPrepared\": null,\n \"update:onRowRemoved\": null,\n \"update:onRowRemoving\": null,\n \"update:onRowUpdated\": null,\n \"update:onRowUpdating\": null,\n \"update:onRowValidating\": null,\n \"update:onSaved\": null,\n \"update:onSaving\": null,\n \"update:onSelectionChanged\": null,\n \"update:onToolbarPreparing\": null,\n \"update:pager\": null,\n \"update:paging\": null,\n \"update:remoteOperations\": null,\n \"update:renderAsync\": null,\n \"update:repaintChangesOnly\": null,\n \"update:rowAlternationEnabled\": null,\n \"update:rowDragging\": null,\n \"update:rowTemplate\": null,\n \"update:rtlEnabled\": null,\n \"update:scrolling\": null,\n \"update:searchPanel\": null,\n \"update:selectedRowKeys\": null,\n \"update:selection\": null,\n \"update:selectionFilter\": null,\n \"update:showBorders\": null,\n \"update:showColumnHeaders\": null,\n \"update:showColumnLines\": null,\n \"update:showRowLines\": null,\n \"update:sortByGroupSummaryInfo\": null,\n \"update:sorting\": null,\n \"update:stateStoring\": null,\n \"update:summary\": null,\n \"update:syncLookupFilterValues\": null,\n \"update:tabIndex\": null,\n \"update:toolbar\": null,\n \"update:twoWayBindingEnabled\": null,\n \"update:visible\": null,\n \"update:width\": null,\n \"update:wordWrapEnabled\": null,\n },\n computed: {\n instance: function () {\n return this.$_instance;\n }\n },\n beforeCreate: function () {\n this.$_WidgetClass = data_grid_1.default;\n this.$_hasAsyncTemplate = true;\n this.$_expectedChildren = {\n column: { isCollectionItem: true, optionName: \"columns\" },\n columnChooser: { isCollectionItem: false, optionName: \"columnChooser\" },\n columnFixing: { isCollectionItem: false, optionName: \"columnFixing\" },\n dataGridHeaderFilter: { isCollectionItem: false, optionName: \"headerFilter\" },\n editing: { isCollectionItem: false, optionName: \"editing\" },\n export: { isCollectionItem: false, optionName: \"export\" },\n filterBuilder: { isCollectionItem: false, optionName: \"filterBuilder\" },\n filterBuilderPopup: { isCollectionItem: false, optionName: \"filterBuilderPopup\" },\n filterPanel: { isCollectionItem: false, optionName: \"filterPanel\" },\n filterRow: { isCollectionItem: false, optionName: \"filterRow\" },\n grouping: { isCollectionItem: false, optionName: \"grouping\" },\n groupPanel: { isCollectionItem: false, optionName: \"groupPanel\" },\n headerFilter: { isCollectionItem: false, optionName: \"headerFilter\" },\n keyboardNavigation: { isCollectionItem: false, optionName: \"keyboardNavigation\" },\n loadPanel: { isCollectionItem: false, optionName: \"loadPanel\" },\n masterDetail: { isCollectionItem: false, optionName: \"masterDetail\" },\n pager: { isCollectionItem: false, optionName: \"pager\" },\n paging: { isCollectionItem: false, optionName: \"paging\" },\n remoteOperations: { isCollectionItem: false, optionName: \"remoteOperations\" },\n rowDragging: { isCollectionItem: false, optionName: \"rowDragging\" },\n scrolling: { isCollectionItem: false, optionName: \"scrolling\" },\n searchPanel: { isCollectionItem: false, optionName: \"searchPanel\" },\n selection: { isCollectionItem: false, optionName: \"selection\" },\n sortByGroupSummaryInfo: { isCollectionItem: true, optionName: \"sortByGroupSummaryInfo\" },\n sorting: { isCollectionItem: false, optionName: \"sorting\" },\n stateStoring: { isCollectionItem: false, optionName: \"stateStoring\" },\n summary: { isCollectionItem: false, optionName: \"summary\" },\n toolbar: { isCollectionItem: false, optionName: \"toolbar\" }\n };\n }\n});\nexports.DxDataGrid = DxDataGrid;\nvar DxAnimation = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:hide\": null,\n \"update:show\": null,\n },\n props: {\n hide: [Object, Number, String],\n show: [Object, Number, String]\n }\n});\nexports.DxAnimation = DxAnimation;\nDxAnimation.$_optionName = \"animation\";\nDxAnimation.$_expectedChildren = {\n hide: { isCollectionItem: false, optionName: \"hide\" },\n show: { isCollectionItem: false, optionName: \"show\" }\n};\nvar DxAsyncRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:reevaluate\": null,\n \"update:type\": null,\n \"update:validationCallback\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n reevaluate: Boolean,\n type: String,\n validationCallback: Function\n }\n});\nexports.DxAsyncRule = DxAsyncRule;\nDxAsyncRule.$_optionName = \"validationRules\";\nDxAsyncRule.$_isCollectionItem = true;\nDxAsyncRule.$_predefinedProps = {\n type: \"async\"\n};\nvar DxAt = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxAt = DxAt;\nDxAt.$_optionName = \"at\";\nvar DxBoundaryOffset = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: Number,\n y: Number\n }\n});\nexports.DxBoundaryOffset = DxBoundaryOffset;\nDxBoundaryOffset.$_optionName = \"boundaryOffset\";\nvar DxButton = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:cssClass\": null,\n \"update:disabled\": null,\n \"update:hint\": null,\n \"update:icon\": null,\n \"update:name\": null,\n \"update:onClick\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:visible\": null,\n },\n props: {\n cssClass: String,\n disabled: [Boolean, Function],\n hint: String,\n icon: String,\n name: String,\n onClick: Function,\n template: {},\n text: String,\n visible: [Boolean, Function]\n }\n});\nexports.DxButton = DxButton;\nDxButton.$_optionName = \"buttons\";\nDxButton.$_isCollectionItem = true;\nvar DxChange = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:data\": null,\n \"update:insertAfterKey\": null,\n \"update:insertBeforeKey\": null,\n \"update:type\": null,\n },\n props: {\n data: {},\n insertAfterKey: {},\n insertBeforeKey: {},\n type: String\n }\n});\nexports.DxChange = DxChange;\nDxChange.$_optionName = \"changes\";\nDxChange.$_isCollectionItem = true;\nvar DxColCountByScreen = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:lg\": null,\n \"update:md\": null,\n \"update:sm\": null,\n \"update:xs\": null,\n },\n props: {\n lg: Number,\n md: Number,\n sm: Number,\n xs: Number\n }\n});\nexports.DxColCountByScreen = DxColCountByScreen;\nDxColCountByScreen.$_optionName = \"colCountByScreen\";\nvar DxCollision = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxCollision = DxCollision;\nDxCollision.$_optionName = \"collision\";\nvar DxColumn = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:alignment\": null,\n \"update:allowEditing\": null,\n \"update:allowExporting\": null,\n \"update:allowFiltering\": null,\n \"update:allowFixing\": null,\n \"update:allowGrouping\": null,\n \"update:allowHeaderFiltering\": null,\n \"update:allowHiding\": null,\n \"update:allowReordering\": null,\n \"update:allowResizing\": null,\n \"update:allowSearch\": null,\n \"update:allowSorting\": null,\n \"update:autoExpandGroup\": null,\n \"update:buttons\": null,\n \"update:calculateCellValue\": null,\n \"update:calculateDisplayValue\": null,\n \"update:calculateFilterExpression\": null,\n \"update:calculateGroupValue\": null,\n \"update:calculateSortValue\": null,\n \"update:caption\": null,\n \"update:cellTemplate\": null,\n \"update:columns\": null,\n \"update:cssClass\": null,\n \"update:customizeText\": null,\n \"update:dataField\": null,\n \"update:dataType\": null,\n \"update:editCellTemplate\": null,\n \"update:editorOptions\": null,\n \"update:encodeHtml\": null,\n \"update:falseText\": null,\n \"update:filterOperations\": null,\n \"update:filterType\": null,\n \"update:filterValue\": null,\n \"update:filterValues\": null,\n \"update:fixed\": null,\n \"update:fixedPosition\": null,\n \"update:format\": null,\n \"update:formItem\": null,\n \"update:groupCellTemplate\": null,\n \"update:grouped\": null,\n \"update:groupIndex\": null,\n \"update:headerCellTemplate\": null,\n \"update:headerFilter\": null,\n \"update:hidingPriority\": null,\n \"update:isBand\": null,\n \"update:lookup\": null,\n \"update:minWidth\": null,\n \"update:name\": null,\n \"update:ownerBand\": null,\n \"update:renderAsync\": null,\n \"update:resized\": null,\n \"update:selectedFilterOperation\": null,\n \"update:setCellValue\": null,\n \"update:showEditorAlways\": null,\n \"update:showInColumnChooser\": null,\n \"update:showWhenGrouped\": null,\n \"update:sortIndex\": null,\n \"update:sortingMethod\": null,\n \"update:sortOrder\": null,\n \"update:trueText\": null,\n \"update:type\": null,\n \"update:validationRules\": null,\n \"update:visible\": null,\n \"update:visibleIndex\": null,\n \"update:width\": null,\n },\n props: {\n alignment: String,\n allowEditing: Boolean,\n allowExporting: Boolean,\n allowFiltering: Boolean,\n allowFixing: Boolean,\n allowGrouping: Boolean,\n allowHeaderFiltering: Boolean,\n allowHiding: Boolean,\n allowReordering: Boolean,\n allowResizing: Boolean,\n allowSearch: Boolean,\n allowSorting: Boolean,\n autoExpandGroup: Boolean,\n buttons: Array,\n calculateCellValue: Function,\n calculateDisplayValue: [Function, String],\n calculateFilterExpression: Function,\n calculateGroupValue: [Function, String],\n calculateSortValue: [Function, String],\n caption: String,\n cellTemplate: {},\n columns: Array,\n cssClass: String,\n customizeText: Function,\n dataField: String,\n dataType: String,\n editCellTemplate: {},\n editorOptions: {},\n encodeHtml: Boolean,\n falseText: String,\n filterOperations: Array,\n filterType: String,\n filterValue: {},\n filterValues: Array,\n fixed: Boolean,\n fixedPosition: String,\n format: [Object, Function, String],\n formItem: Object,\n groupCellTemplate: {},\n grouped: Boolean,\n groupIndex: Number,\n headerCellTemplate: {},\n headerFilter: Object,\n hidingPriority: Number,\n isBand: Boolean,\n lookup: Object,\n minWidth: Number,\n name: String,\n ownerBand: Number,\n renderAsync: Boolean,\n resized: Function,\n selectedFilterOperation: String,\n setCellValue: Function,\n showEditorAlways: Boolean,\n showInColumnChooser: Boolean,\n showWhenGrouped: Boolean,\n sortIndex: Number,\n sortingMethod: Function,\n sortOrder: String,\n trueText: String,\n type: String,\n validationRules: Array,\n visible: Boolean,\n visibleIndex: Number,\n width: [Number, String]\n }\n});\nexports.DxColumn = DxColumn;\nDxColumn.$_optionName = \"columns\";\nDxColumn.$_isCollectionItem = true;\nDxColumn.$_expectedChildren = {\n AsyncRule: { isCollectionItem: true, optionName: \"validationRules\" },\n button: { isCollectionItem: true, optionName: \"buttons\" },\n columnHeaderFilter: { isCollectionItem: false, optionName: \"headerFilter\" },\n columnLookup: { isCollectionItem: false, optionName: \"lookup\" },\n CompareRule: { isCollectionItem: true, optionName: \"validationRules\" },\n CustomRule: { isCollectionItem: true, optionName: \"validationRules\" },\n EmailRule: { isCollectionItem: true, optionName: \"validationRules\" },\n format: { isCollectionItem: false, optionName: \"format\" },\n formItem: { isCollectionItem: false, optionName: \"formItem\" },\n headerFilter: { isCollectionItem: false, optionName: \"headerFilter\" },\n lookup: { isCollectionItem: false, optionName: \"lookup\" },\n NumericRule: { isCollectionItem: true, optionName: \"validationRules\" },\n PatternRule: { isCollectionItem: true, optionName: \"validationRules\" },\n RangeRule: { isCollectionItem: true, optionName: \"validationRules\" },\n RequiredRule: { isCollectionItem: true, optionName: \"validationRules\" },\n StringLengthRule: { isCollectionItem: true, optionName: \"validationRules\" },\n validationRule: { isCollectionItem: true, optionName: \"validationRules\" }\n};\nvar DxColumnChooser = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSearch\": null,\n \"update:emptyPanelText\": null,\n \"update:enabled\": null,\n \"update:height\": null,\n \"update:mode\": null,\n \"update:searchTimeout\": null,\n \"update:sortOrder\": null,\n \"update:title\": null,\n \"update:width\": null,\n },\n props: {\n allowSearch: Boolean,\n emptyPanelText: String,\n enabled: Boolean,\n height: Number,\n mode: String,\n searchTimeout: Number,\n sortOrder: String,\n title: String,\n width: Number\n }\n});\nexports.DxColumnChooser = DxColumnChooser;\nDxColumnChooser.$_optionName = \"columnChooser\";\nvar DxColumnFixing = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:enabled\": null,\n \"update:texts\": null,\n },\n props: {\n enabled: Boolean,\n texts: Object\n }\n});\nexports.DxColumnFixing = DxColumnFixing;\nDxColumnFixing.$_optionName = \"columnFixing\";\nDxColumnFixing.$_expectedChildren = {\n columnFixingTexts: { isCollectionItem: false, optionName: \"texts\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxColumnFixingTexts = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:fix\": null,\n \"update:leftPosition\": null,\n \"update:rightPosition\": null,\n \"update:unfix\": null,\n },\n props: {\n fix: String,\n leftPosition: String,\n rightPosition: String,\n unfix: String\n }\n});\nexports.DxColumnFixingTexts = DxColumnFixingTexts;\nDxColumnFixingTexts.$_optionName = \"texts\";\nvar DxColumnHeaderFilter = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSearch\": null,\n \"update:dataSource\": null,\n \"update:groupInterval\": null,\n \"update:height\": null,\n \"update:searchMode\": null,\n \"update:width\": null,\n },\n props: {\n allowSearch: Boolean,\n dataSource: {},\n groupInterval: [Number, String],\n height: Number,\n searchMode: String,\n width: Number\n }\n});\nexports.DxColumnHeaderFilter = DxColumnHeaderFilter;\nDxColumnHeaderFilter.$_optionName = \"headerFilter\";\nvar DxColumnLookup = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowClearing\": null,\n \"update:calculateCellValue\": null,\n \"update:dataSource\": null,\n \"update:displayExpr\": null,\n \"update:valueExpr\": null,\n },\n props: {\n allowClearing: Boolean,\n calculateCellValue: Function,\n dataSource: {},\n displayExpr: [Function, String],\n valueExpr: String\n }\n});\nexports.DxColumnLookup = DxColumnLookup;\nDxColumnLookup.$_optionName = \"lookup\";\nvar DxCompareRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:comparisonTarget\": null,\n \"update:comparisonType\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:type\": null,\n },\n props: {\n comparisonTarget: Function,\n comparisonType: String,\n ignoreEmptyValue: Boolean,\n message: String,\n type: String\n }\n});\nexports.DxCompareRule = DxCompareRule;\nDxCompareRule.$_optionName = \"validationRules\";\nDxCompareRule.$_isCollectionItem = true;\nDxCompareRule.$_predefinedProps = {\n type: \"compare\"\n};\nvar DxCursorOffset = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: Number,\n y: Number\n }\n});\nexports.DxCursorOffset = DxCursorOffset;\nDxCursorOffset.$_optionName = \"cursorOffset\";\nvar DxCustomOperation = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:calculateFilterExpression\": null,\n \"update:caption\": null,\n \"update:customizeText\": null,\n \"update:dataTypes\": null,\n \"update:editorTemplate\": null,\n \"update:hasValue\": null,\n \"update:icon\": null,\n \"update:name\": null,\n },\n props: {\n calculateFilterExpression: Function,\n caption: String,\n customizeText: Function,\n dataTypes: Array,\n editorTemplate: {},\n hasValue: Boolean,\n icon: String,\n name: String\n }\n});\nexports.DxCustomOperation = DxCustomOperation;\nDxCustomOperation.$_optionName = \"customOperations\";\nDxCustomOperation.$_isCollectionItem = true;\nvar DxCustomRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:reevaluate\": null,\n \"update:type\": null,\n \"update:validationCallback\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n reevaluate: Boolean,\n type: String,\n validationCallback: Function\n }\n});\nexports.DxCustomRule = DxCustomRule;\nDxCustomRule.$_optionName = \"validationRules\";\nDxCustomRule.$_isCollectionItem = true;\nDxCustomRule.$_predefinedProps = {\n type: \"custom\"\n};\nvar DxDataGridHeaderFilter = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSearch\": null,\n \"update:height\": null,\n \"update:searchTimeout\": null,\n \"update:texts\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n allowSearch: Boolean,\n height: Number,\n searchTimeout: Number,\n texts: Object,\n visible: Boolean,\n width: Number\n }\n});\nexports.DxDataGridHeaderFilter = DxDataGridHeaderFilter;\nDxDataGridHeaderFilter.$_optionName = \"headerFilter\";\nDxDataGridHeaderFilter.$_expectedChildren = {\n dataGridHeaderFilterTexts: { isCollectionItem: false, optionName: \"texts\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxDataGridHeaderFilterTexts = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:cancel\": null,\n \"update:emptyValue\": null,\n \"update:ok\": null,\n },\n props: {\n cancel: String,\n emptyValue: String,\n ok: String\n }\n});\nexports.DxDataGridHeaderFilterTexts = DxDataGridHeaderFilterTexts;\nDxDataGridHeaderFilterTexts.$_optionName = \"texts\";\nvar DxEditing = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowAdding\": null,\n \"update:allowDeleting\": null,\n \"update:allowUpdating\": null,\n \"update:changes\": null,\n \"update:confirmDelete\": null,\n \"update:editColumnName\": null,\n \"update:editRowKey\": null,\n \"update:form\": null,\n \"update:mode\": null,\n \"update:newRowPosition\": null,\n \"update:popup\": null,\n \"update:refreshMode\": null,\n \"update:selectTextOnEditStart\": null,\n \"update:startEditAction\": null,\n \"update:texts\": null,\n \"update:useIcons\": null,\n },\n props: {\n allowAdding: Boolean,\n allowDeleting: [Boolean, Function],\n allowUpdating: [Boolean, Function],\n changes: Array,\n confirmDelete: Boolean,\n editColumnName: String,\n editRowKey: {},\n form: Object,\n mode: String,\n newRowPosition: String,\n popup: Object,\n refreshMode: String,\n selectTextOnEditStart: Boolean,\n startEditAction: String,\n texts: {},\n useIcons: Boolean\n }\n});\nexports.DxEditing = DxEditing;\nDxEditing.$_optionName = \"editing\";\nDxEditing.$_expectedChildren = {\n change: { isCollectionItem: true, optionName: \"changes\" },\n editingTexts: { isCollectionItem: false, optionName: \"texts\" },\n form: { isCollectionItem: false, optionName: \"form\" },\n popup: { isCollectionItem: false, optionName: \"popup\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxEditingTexts = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:addRow\": null,\n \"update:cancelAllChanges\": null,\n \"update:cancelRowChanges\": null,\n \"update:confirmDeleteMessage\": null,\n \"update:confirmDeleteTitle\": null,\n \"update:deleteRow\": null,\n \"update:editRow\": null,\n \"update:saveAllChanges\": null,\n \"update:saveRowChanges\": null,\n \"update:undeleteRow\": null,\n \"update:validationCancelChanges\": null,\n },\n props: {\n addRow: String,\n cancelAllChanges: String,\n cancelRowChanges: String,\n confirmDeleteMessage: String,\n confirmDeleteTitle: String,\n deleteRow: String,\n editRow: String,\n saveAllChanges: String,\n saveRowChanges: String,\n undeleteRow: String,\n validationCancelChanges: String\n }\n});\nexports.DxEditingTexts = DxEditingTexts;\nDxEditingTexts.$_optionName = \"texts\";\nvar DxEmailRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:type\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n type: String\n }\n});\nexports.DxEmailRule = DxEmailRule;\nDxEmailRule.$_optionName = \"validationRules\";\nDxEmailRule.$_isCollectionItem = true;\nDxEmailRule.$_predefinedProps = {\n type: \"email\"\n};\nvar DxExport = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowExportSelectedData\": null,\n \"update:customizeExcelCell\": null,\n \"update:enabled\": null,\n \"update:excelFilterEnabled\": null,\n \"update:excelWrapTextEnabled\": null,\n \"update:fileName\": null,\n \"update:formats\": null,\n \"update:ignoreExcelErrors\": null,\n \"update:proxyUrl\": null,\n \"update:texts\": null,\n },\n props: {\n allowExportSelectedData: Boolean,\n customizeExcelCell: Function,\n enabled: Boolean,\n excelFilterEnabled: Boolean,\n excelWrapTextEnabled: Boolean,\n fileName: String,\n formats: Array,\n ignoreExcelErrors: Boolean,\n proxyUrl: String,\n texts: Object\n }\n});\nexports.DxExport = DxExport;\nDxExport.$_optionName = \"export\";\nDxExport.$_expectedChildren = {\n exportTexts: { isCollectionItem: false, optionName: \"texts\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxExportTexts = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:exportAll\": null,\n \"update:exportSelectedRows\": null,\n \"update:exportTo\": null,\n },\n props: {\n exportAll: String,\n exportSelectedRows: String,\n exportTo: String\n }\n});\nexports.DxExportTexts = DxExportTexts;\nDxExportTexts.$_optionName = \"texts\";\nvar DxField = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:calculateFilterExpression\": null,\n \"update:caption\": null,\n \"update:customizeText\": null,\n \"update:dataField\": null,\n \"update:dataType\": null,\n \"update:defaultFilterOperation\": null,\n \"update:editorOptions\": null,\n \"update:editorTemplate\": null,\n \"update:falseText\": null,\n \"update:filterOperations\": null,\n \"update:format\": null,\n \"update:lookup\": null,\n \"update:name\": null,\n \"update:trueText\": null,\n },\n props: {\n calculateFilterExpression: Function,\n caption: String,\n customizeText: Function,\n dataField: String,\n dataType: String,\n defaultFilterOperation: String,\n editorOptions: {},\n editorTemplate: {},\n falseText: String,\n filterOperations: Array,\n format: [Object, Function, String],\n lookup: Object,\n name: String,\n trueText: String\n }\n});\nexports.DxField = DxField;\nDxField.$_optionName = \"fields\";\nDxField.$_isCollectionItem = true;\nDxField.$_expectedChildren = {\n fieldLookup: { isCollectionItem: false, optionName: \"lookup\" },\n format: { isCollectionItem: false, optionName: \"format\" },\n lookup: { isCollectionItem: false, optionName: \"lookup\" }\n};\nvar DxFieldLookup = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowClearing\": null,\n \"update:dataSource\": null,\n \"update:displayExpr\": null,\n \"update:valueExpr\": null,\n },\n props: {\n allowClearing: Boolean,\n dataSource: [Array, Object],\n displayExpr: [Function, String],\n valueExpr: [Function, String]\n }\n});\nexports.DxFieldLookup = DxFieldLookup;\nDxFieldLookup.$_optionName = \"lookup\";\nvar DxFilterBuilder = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:allowHierarchicalFields\": null,\n \"update:bindingOptions\": null,\n \"update:customOperations\": null,\n \"update:disabled\": null,\n \"update:elementAttr\": null,\n \"update:fields\": null,\n \"update:filterOperationDescriptions\": null,\n \"update:focusStateEnabled\": null,\n \"update:groupOperationDescriptions\": null,\n \"update:groupOperations\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:maxGroupLevel\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onEditorPrepared\": null,\n \"update:onEditorPreparing\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:onValueChanged\": null,\n \"update:rtlEnabled\": null,\n \"update:tabIndex\": null,\n \"update:value\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n allowHierarchicalFields: Boolean,\n bindingOptions: Object,\n customOperations: Array,\n disabled: Boolean,\n elementAttr: Object,\n fields: Array,\n filterOperationDescriptions: Object,\n focusStateEnabled: Boolean,\n groupOperationDescriptions: Object,\n groupOperations: Array,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n maxGroupLevel: Number,\n onContentReady: Function,\n onDisposing: Function,\n onEditorPrepared: Function,\n onEditorPreparing: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n onValueChanged: Function,\n rtlEnabled: Boolean,\n tabIndex: Number,\n value: [Array, Function, String],\n visible: Boolean,\n width: [Function, Number, String]\n }\n});\nexports.DxFilterBuilder = DxFilterBuilder;\nDxFilterBuilder.$_optionName = \"filterBuilder\";\nDxFilterBuilder.$_expectedChildren = {\n customOperation: { isCollectionItem: true, optionName: \"customOperations\" },\n field: { isCollectionItem: true, optionName: \"fields\" },\n filterOperationDescriptions: { isCollectionItem: false, optionName: \"filterOperationDescriptions\" },\n groupOperationDescriptions: { isCollectionItem: false, optionName: \"groupOperationDescriptions\" }\n};\nvar DxFilterBuilderPopup = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:animation\": null,\n \"update:bindingOptions\": null,\n \"update:closeOnOutsideClick\": null,\n \"update:container\": null,\n \"update:contentTemplate\": null,\n \"update:copyRootClassesToWrapper\": null,\n \"update:deferRendering\": null,\n \"update:disabled\": null,\n \"update:dragAndResizeArea\": null,\n \"update:dragEnabled\": null,\n \"update:dragOutsideBoundary\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:fullScreen\": null,\n \"update:height\": null,\n \"update:hideOnOutsideClick\": null,\n \"update:hideOnParentScroll\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:maxHeight\": null,\n \"update:maxWidth\": null,\n \"update:minHeight\": null,\n \"update:minWidth\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onHidden\": null,\n \"update:onHiding\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:onResize\": null,\n \"update:onResizeEnd\": null,\n \"update:onResizeStart\": null,\n \"update:onShowing\": null,\n \"update:onShown\": null,\n \"update:onTitleRendered\": null,\n \"update:position\": null,\n \"update:resizeEnabled\": null,\n \"update:restorePosition\": null,\n \"update:rtlEnabled\": null,\n \"update:shading\": null,\n \"update:shadingColor\": null,\n \"update:showCloseButton\": null,\n \"update:showTitle\": null,\n \"update:tabIndex\": null,\n \"update:title\": null,\n \"update:titleTemplate\": null,\n \"update:toolbarItems\": null,\n \"update:visible\": null,\n \"update:width\": null,\n \"update:wrapperAttr\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n animation: Object,\n bindingOptions: Object,\n closeOnOutsideClick: [Boolean, Function],\n container: {},\n contentTemplate: {},\n copyRootClassesToWrapper: Boolean,\n deferRendering: Boolean,\n disabled: Boolean,\n dragAndResizeArea: {},\n dragEnabled: Boolean,\n dragOutsideBoundary: Boolean,\n elementAttr: {},\n focusStateEnabled: Boolean,\n fullScreen: Boolean,\n height: [Function, Number, String],\n hideOnOutsideClick: [Boolean, Function],\n hideOnParentScroll: Boolean,\n hint: String,\n hoverStateEnabled: Boolean,\n maxHeight: [Function, Number, String],\n maxWidth: [Function, Number, String],\n minHeight: [Function, Number, String],\n minWidth: [Function, Number, String],\n onContentReady: Function,\n onDisposing: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onHidden: Function,\n onHiding: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n onResize: Function,\n onResizeEnd: Function,\n onResizeStart: Function,\n onShowing: Function,\n onShown: Function,\n onTitleRendered: Function,\n position: [Function, Object, String],\n resizeEnabled: Boolean,\n restorePosition: Boolean,\n rtlEnabled: Boolean,\n shading: Boolean,\n shadingColor: String,\n showCloseButton: Boolean,\n showTitle: Boolean,\n tabIndex: Number,\n title: String,\n titleTemplate: {},\n toolbarItems: Array,\n visible: Boolean,\n width: [Function, Number, String],\n wrapperAttr: {}\n }\n});\nexports.DxFilterBuilderPopup = DxFilterBuilderPopup;\nDxFilterBuilderPopup.$_optionName = \"filterBuilderPopup\";\nvar DxFilterOperationDescriptions = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:between\": null,\n \"update:contains\": null,\n \"update:endsWith\": null,\n \"update:equal\": null,\n \"update:greaterThan\": null,\n \"update:greaterThanOrEqual\": null,\n \"update:isBlank\": null,\n \"update:isNotBlank\": null,\n \"update:lessThan\": null,\n \"update:lessThanOrEqual\": null,\n \"update:notContains\": null,\n \"update:notEqual\": null,\n \"update:startsWith\": null,\n },\n props: {\n between: String,\n contains: String,\n endsWith: String,\n equal: String,\n greaterThan: String,\n greaterThanOrEqual: String,\n isBlank: String,\n isNotBlank: String,\n lessThan: String,\n lessThanOrEqual: String,\n notContains: String,\n notEqual: String,\n startsWith: String\n }\n});\nexports.DxFilterOperationDescriptions = DxFilterOperationDescriptions;\nDxFilterOperationDescriptions.$_optionName = \"filterOperationDescriptions\";\nvar DxFilterPanel = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:customizeText\": null,\n \"update:filterEnabled\": null,\n \"update:texts\": null,\n \"update:visible\": null,\n },\n props: {\n customizeText: Function,\n filterEnabled: Boolean,\n texts: Object,\n visible: Boolean\n }\n});\nexports.DxFilterPanel = DxFilterPanel;\nDxFilterPanel.$_optionName = \"filterPanel\";\nDxFilterPanel.$_expectedChildren = {\n filterPanelTexts: { isCollectionItem: false, optionName: \"texts\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxFilterPanelTexts = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:clearFilter\": null,\n \"update:createFilter\": null,\n \"update:filterEnabledHint\": null,\n },\n props: {\n clearFilter: String,\n createFilter: String,\n filterEnabledHint: String\n }\n});\nexports.DxFilterPanelTexts = DxFilterPanelTexts;\nDxFilterPanelTexts.$_optionName = \"texts\";\nvar DxFilterRow = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:applyFilter\": null,\n \"update:applyFilterText\": null,\n \"update:betweenEndText\": null,\n \"update:betweenStartText\": null,\n \"update:operationDescriptions\": null,\n \"update:resetOperationText\": null,\n \"update:showAllText\": null,\n \"update:showOperationChooser\": null,\n \"update:visible\": null,\n },\n props: {\n applyFilter: String,\n applyFilterText: String,\n betweenEndText: String,\n betweenStartText: String,\n operationDescriptions: Object,\n resetOperationText: String,\n showAllText: String,\n showOperationChooser: Boolean,\n visible: Boolean\n }\n});\nexports.DxFilterRow = DxFilterRow;\nDxFilterRow.$_optionName = \"filterRow\";\nDxFilterRow.$_expectedChildren = {\n operationDescriptions: { isCollectionItem: false, optionName: \"operationDescriptions\" }\n};\nvar DxForm = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:alignItemLabels\": null,\n \"update:alignItemLabelsInAllGroups\": null,\n \"update:bindingOptions\": null,\n \"update:colCount\": null,\n \"update:colCountByScreen\": null,\n \"update:customizeItem\": null,\n \"update:disabled\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:formData\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:items\": null,\n \"update:labelLocation\": null,\n \"update:labelMode\": null,\n \"update:minColWidth\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onEditorEnterKey\": null,\n \"update:onFieldDataChanged\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:optionalMark\": null,\n \"update:readOnly\": null,\n \"update:requiredMark\": null,\n \"update:requiredMessage\": null,\n \"update:rtlEnabled\": null,\n \"update:screenByWidth\": null,\n \"update:scrollingEnabled\": null,\n \"update:showColonAfterLabel\": null,\n \"update:showOptionalMark\": null,\n \"update:showRequiredMark\": null,\n \"update:showValidationSummary\": null,\n \"update:tabIndex\": null,\n \"update:validationGroup\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n alignItemLabels: Boolean,\n alignItemLabelsInAllGroups: Boolean,\n bindingOptions: Object,\n colCount: [Number, String],\n colCountByScreen: Object,\n customizeItem: Function,\n disabled: Boolean,\n elementAttr: Object,\n focusStateEnabled: Boolean,\n formData: {},\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n items: Array,\n labelLocation: String,\n labelMode: String,\n minColWidth: Number,\n onContentReady: Function,\n onDisposing: Function,\n onEditorEnterKey: Function,\n onFieldDataChanged: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n optionalMark: String,\n readOnly: Boolean,\n requiredMark: String,\n requiredMessage: String,\n rtlEnabled: Boolean,\n screenByWidth: Function,\n scrollingEnabled: Boolean,\n showColonAfterLabel: Boolean,\n showOptionalMark: Boolean,\n showRequiredMark: Boolean,\n showValidationSummary: Boolean,\n tabIndex: Number,\n validationGroup: String,\n visible: Boolean,\n width: [Function, Number, String]\n }\n});\nexports.DxForm = DxForm;\nDxForm.$_optionName = \"form\";\nDxForm.$_expectedChildren = {\n colCountByScreen: { isCollectionItem: false, optionName: \"colCountByScreen\" }\n};\nvar DxFormat = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:currency\": null,\n \"update:formatter\": null,\n \"update:parser\": null,\n \"update:precision\": null,\n \"update:type\": null,\n \"update:useCurrencyAccountingStyle\": null,\n },\n props: {\n currency: String,\n formatter: Function,\n parser: Function,\n precision: Number,\n type: String,\n useCurrencyAccountingStyle: Boolean\n }\n});\nexports.DxFormat = DxFormat;\nDxFormat.$_optionName = \"format\";\nvar DxFormItem = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:colSpan\": null,\n \"update:cssClass\": null,\n \"update:dataField\": null,\n \"update:editorOptions\": null,\n \"update:editorType\": null,\n \"update:helpText\": null,\n \"update:isRequired\": null,\n \"update:itemType\": null,\n \"update:label\": null,\n \"update:name\": null,\n \"update:template\": null,\n \"update:validationRules\": null,\n \"update:visible\": null,\n \"update:visibleIndex\": null,\n },\n props: {\n colSpan: Number,\n cssClass: String,\n dataField: String,\n editorOptions: {},\n editorType: String,\n helpText: String,\n isRequired: Boolean,\n itemType: String,\n label: Object,\n name: String,\n template: {},\n validationRules: Array,\n visible: Boolean,\n visibleIndex: Number\n }\n});\nexports.DxFormItem = DxFormItem;\nDxFormItem.$_optionName = \"formItem\";\nDxFormItem.$_expectedChildren = {\n AsyncRule: { isCollectionItem: true, optionName: \"validationRules\" },\n CompareRule: { isCollectionItem: true, optionName: \"validationRules\" },\n CustomRule: { isCollectionItem: true, optionName: \"validationRules\" },\n EmailRule: { isCollectionItem: true, optionName: \"validationRules\" },\n label: { isCollectionItem: false, optionName: \"label\" },\n NumericRule: { isCollectionItem: true, optionName: \"validationRules\" },\n PatternRule: { isCollectionItem: true, optionName: \"validationRules\" },\n RangeRule: { isCollectionItem: true, optionName: \"validationRules\" },\n RequiredRule: { isCollectionItem: true, optionName: \"validationRules\" },\n StringLengthRule: { isCollectionItem: true, optionName: \"validationRules\" },\n validationRule: { isCollectionItem: true, optionName: \"validationRules\" }\n};\nvar DxFrom = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:left\": null,\n \"update:opacity\": null,\n \"update:position\": null,\n \"update:scale\": null,\n \"update:top\": null,\n },\n props: {\n left: Number,\n opacity: Number,\n position: Object,\n scale: Number,\n top: Number\n }\n});\nexports.DxFrom = DxFrom;\nDxFrom.$_optionName = \"from\";\nDxFrom.$_expectedChildren = {\n position: { isCollectionItem: false, optionName: \"position\" }\n};\nvar DxGrouping = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowCollapsing\": null,\n \"update:autoExpandAll\": null,\n \"update:contextMenuEnabled\": null,\n \"update:expandMode\": null,\n \"update:texts\": null,\n },\n props: {\n allowCollapsing: Boolean,\n autoExpandAll: Boolean,\n contextMenuEnabled: Boolean,\n expandMode: String,\n texts: Object\n }\n});\nexports.DxGrouping = DxGrouping;\nDxGrouping.$_optionName = \"grouping\";\nDxGrouping.$_expectedChildren = {\n groupingTexts: { isCollectionItem: false, optionName: \"texts\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxGroupingTexts = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:groupByThisColumn\": null,\n \"update:groupContinuedMessage\": null,\n \"update:groupContinuesMessage\": null,\n \"update:ungroup\": null,\n \"update:ungroupAll\": null,\n },\n props: {\n groupByThisColumn: String,\n groupContinuedMessage: String,\n groupContinuesMessage: String,\n ungroup: String,\n ungroupAll: String\n }\n});\nexports.DxGroupingTexts = DxGroupingTexts;\nDxGroupingTexts.$_optionName = \"texts\";\nvar DxGroupItem = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:alignByColumn\": null,\n \"update:column\": null,\n \"update:customizeText\": null,\n \"update:displayFormat\": null,\n \"update:name\": null,\n \"update:showInColumn\": null,\n \"update:showInGroupFooter\": null,\n \"update:skipEmptyValues\": null,\n \"update:summaryType\": null,\n \"update:valueFormat\": null,\n },\n props: {\n alignByColumn: Boolean,\n column: String,\n customizeText: Function,\n displayFormat: String,\n name: String,\n showInColumn: String,\n showInGroupFooter: Boolean,\n skipEmptyValues: Boolean,\n summaryType: String,\n valueFormat: [Object, Function, String]\n }\n});\nexports.DxGroupItem = DxGroupItem;\nDxGroupItem.$_optionName = \"groupItems\";\nDxGroupItem.$_isCollectionItem = true;\nDxGroupItem.$_expectedChildren = {\n valueFormat: { isCollectionItem: false, optionName: \"valueFormat\" }\n};\nvar DxGroupOperationDescriptions = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:and\": null,\n \"update:notAnd\": null,\n \"update:notOr\": null,\n \"update:or\": null,\n },\n props: {\n and: String,\n notAnd: String,\n notOr: String,\n or: String\n }\n});\nexports.DxGroupOperationDescriptions = DxGroupOperationDescriptions;\nDxGroupOperationDescriptions.$_optionName = \"groupOperationDescriptions\";\nvar DxGroupPanel = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowColumnDragging\": null,\n \"update:emptyPanelText\": null,\n \"update:visible\": null,\n },\n props: {\n allowColumnDragging: Boolean,\n emptyPanelText: String,\n visible: [Boolean, String]\n }\n});\nexports.DxGroupPanel = DxGroupPanel;\nDxGroupPanel.$_optionName = \"groupPanel\";\nvar DxHeaderFilter = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSearch\": null,\n \"update:dataSource\": null,\n \"update:groupInterval\": null,\n \"update:height\": null,\n \"update:searchMode\": null,\n \"update:searchTimeout\": null,\n \"update:texts\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n allowSearch: Boolean,\n dataSource: {},\n groupInterval: [Number, String],\n height: Number,\n searchMode: String,\n searchTimeout: Number,\n texts: Object,\n visible: Boolean,\n width: Number\n }\n});\nexports.DxHeaderFilter = DxHeaderFilter;\nDxHeaderFilter.$_optionName = \"headerFilter\";\nvar DxHide = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:complete\": null,\n \"update:delay\": null,\n \"update:direction\": null,\n \"update:duration\": null,\n \"update:easing\": null,\n \"update:from\": null,\n \"update:staggerDelay\": null,\n \"update:start\": null,\n \"update:to\": null,\n \"update:type\": null,\n },\n props: {\n complete: Function,\n delay: Number,\n direction: String,\n duration: Number,\n easing: String,\n from: Object,\n staggerDelay: Number,\n start: Function,\n to: Object,\n type: String\n }\n});\nexports.DxHide = DxHide;\nDxHide.$_optionName = \"hide\";\nDxHide.$_expectedChildren = {\n from: { isCollectionItem: false, optionName: \"from\" },\n to: { isCollectionItem: false, optionName: \"to\" }\n};\nvar DxItem = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:cssClass\": null,\n \"update:disabled\": null,\n \"update:html\": null,\n \"update:locateInMenu\": null,\n \"update:location\": null,\n \"update:menuItemTemplate\": null,\n \"update:name\": null,\n \"update:options\": null,\n \"update:showText\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:visible\": null,\n \"update:widget\": null,\n },\n props: {\n cssClass: String,\n disabled: Boolean,\n html: String,\n locateInMenu: String,\n location: String,\n menuItemTemplate: {},\n name: String,\n options: {},\n showText: String,\n template: {},\n text: String,\n visible: Boolean,\n widget: String\n }\n});\nexports.DxItem = DxItem;\nDxItem.$_optionName = \"items\";\nDxItem.$_isCollectionItem = true;\nvar DxKeyboardNavigation = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:editOnKeyPress\": null,\n \"update:enabled\": null,\n \"update:enterKeyAction\": null,\n \"update:enterKeyDirection\": null,\n },\n props: {\n editOnKeyPress: Boolean,\n enabled: Boolean,\n enterKeyAction: String,\n enterKeyDirection: String\n }\n});\nexports.DxKeyboardNavigation = DxKeyboardNavigation;\nDxKeyboardNavigation.$_optionName = \"keyboardNavigation\";\nvar DxLabel = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:alignment\": null,\n \"update:location\": null,\n \"update:showColon\": null,\n \"update:text\": null,\n \"update:visible\": null,\n },\n props: {\n alignment: String,\n location: String,\n showColon: Boolean,\n text: String,\n visible: Boolean\n }\n});\nexports.DxLabel = DxLabel;\nDxLabel.$_optionName = \"label\";\nvar DxLoadPanel = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:enabled\": null,\n \"update:height\": null,\n \"update:indicatorSrc\": null,\n \"update:shading\": null,\n \"update:shadingColor\": null,\n \"update:showIndicator\": null,\n \"update:showPane\": null,\n \"update:text\": null,\n \"update:width\": null,\n },\n props: {\n enabled: [Boolean, String],\n height: Number,\n indicatorSrc: String,\n shading: Boolean,\n shadingColor: String,\n showIndicator: Boolean,\n showPane: Boolean,\n text: String,\n width: Number\n }\n});\nexports.DxLoadPanel = DxLoadPanel;\nDxLoadPanel.$_optionName = \"loadPanel\";\nvar DxLookup = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowClearing\": null,\n \"update:calculateCellValue\": null,\n \"update:dataSource\": null,\n \"update:displayExpr\": null,\n \"update:valueExpr\": null,\n },\n props: {\n allowClearing: Boolean,\n calculateCellValue: Function,\n dataSource: {},\n displayExpr: [Function, String],\n valueExpr: String\n }\n});\nexports.DxLookup = DxLookup;\nDxLookup.$_optionName = \"lookup\";\nvar DxMasterDetail = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:autoExpandAll\": null,\n \"update:enabled\": null,\n \"update:template\": null,\n },\n props: {\n autoExpandAll: Boolean,\n enabled: Boolean,\n template: {}\n }\n});\nexports.DxMasterDetail = DxMasterDetail;\nDxMasterDetail.$_optionName = \"masterDetail\";\nvar DxMy = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxMy = DxMy;\nDxMy.$_optionName = \"my\";\nvar DxNumericRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:type\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n type: String\n }\n});\nexports.DxNumericRule = DxNumericRule;\nDxNumericRule.$_optionName = \"validationRules\";\nDxNumericRule.$_isCollectionItem = true;\nDxNumericRule.$_predefinedProps = {\n type: \"numeric\"\n};\nvar DxOffset = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: Number,\n y: Number\n }\n});\nexports.DxOffset = DxOffset;\nDxOffset.$_optionName = \"offset\";\nvar DxOperationDescriptions = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:between\": null,\n \"update:contains\": null,\n \"update:endsWith\": null,\n \"update:equal\": null,\n \"update:greaterThan\": null,\n \"update:greaterThanOrEqual\": null,\n \"update:lessThan\": null,\n \"update:lessThanOrEqual\": null,\n \"update:notContains\": null,\n \"update:notEqual\": null,\n \"update:startsWith\": null,\n },\n props: {\n between: String,\n contains: String,\n endsWith: String,\n equal: String,\n greaterThan: String,\n greaterThanOrEqual: String,\n lessThan: String,\n lessThanOrEqual: String,\n notContains: String,\n notEqual: String,\n startsWith: String\n }\n});\nexports.DxOperationDescriptions = DxOperationDescriptions;\nDxOperationDescriptions.$_optionName = \"operationDescriptions\";\nvar DxPager = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowedPageSizes\": null,\n \"update:displayMode\": null,\n \"update:infoText\": null,\n \"update:label\": null,\n \"update:showInfo\": null,\n \"update:showNavigationButtons\": null,\n \"update:showPageSizeSelector\": null,\n \"update:visible\": null,\n },\n props: {\n allowedPageSizes: [Array, String],\n displayMode: String,\n infoText: String,\n label: String,\n showInfo: Boolean,\n showNavigationButtons: Boolean,\n showPageSizeSelector: Boolean,\n visible: [Boolean, String]\n }\n});\nexports.DxPager = DxPager;\nDxPager.$_optionName = \"pager\";\nvar DxPaging = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:enabled\": null,\n \"update:pageIndex\": null,\n \"update:pageSize\": null,\n },\n props: {\n enabled: Boolean,\n pageIndex: Number,\n pageSize: Number\n }\n});\nexports.DxPaging = DxPaging;\nDxPaging.$_optionName = \"paging\";\nvar DxPatternRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:pattern\": null,\n \"update:type\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n pattern: {},\n type: String\n }\n});\nexports.DxPatternRule = DxPatternRule;\nDxPatternRule.$_optionName = \"validationRules\";\nDxPatternRule.$_isCollectionItem = true;\nDxPatternRule.$_predefinedProps = {\n type: \"pattern\"\n};\nvar DxPopup = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:animation\": null,\n \"update:bindingOptions\": null,\n \"update:closeOnOutsideClick\": null,\n \"update:container\": null,\n \"update:contentTemplate\": null,\n \"update:copyRootClassesToWrapper\": null,\n \"update:deferRendering\": null,\n \"update:disabled\": null,\n \"update:dragAndResizeArea\": null,\n \"update:dragEnabled\": null,\n \"update:dragOutsideBoundary\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:fullScreen\": null,\n \"update:height\": null,\n \"update:hideOnOutsideClick\": null,\n \"update:hideOnParentScroll\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:maxHeight\": null,\n \"update:maxWidth\": null,\n \"update:minHeight\": null,\n \"update:minWidth\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onHidden\": null,\n \"update:onHiding\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:onResize\": null,\n \"update:onResizeEnd\": null,\n \"update:onResizeStart\": null,\n \"update:onShowing\": null,\n \"update:onShown\": null,\n \"update:onTitleRendered\": null,\n \"update:position\": null,\n \"update:resizeEnabled\": null,\n \"update:restorePosition\": null,\n \"update:rtlEnabled\": null,\n \"update:shading\": null,\n \"update:shadingColor\": null,\n \"update:showCloseButton\": null,\n \"update:showTitle\": null,\n \"update:tabIndex\": null,\n \"update:title\": null,\n \"update:titleTemplate\": null,\n \"update:toolbarItems\": null,\n \"update:visible\": null,\n \"update:width\": null,\n \"update:wrapperAttr\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n animation: Object,\n bindingOptions: Object,\n closeOnOutsideClick: [Boolean, Function],\n container: {},\n contentTemplate: {},\n copyRootClassesToWrapper: Boolean,\n deferRendering: Boolean,\n disabled: Boolean,\n dragAndResizeArea: {},\n dragEnabled: Boolean,\n dragOutsideBoundary: Boolean,\n elementAttr: {},\n focusStateEnabled: Boolean,\n fullScreen: Boolean,\n height: [Function, Number, String],\n hideOnOutsideClick: [Boolean, Function],\n hideOnParentScroll: Boolean,\n hint: String,\n hoverStateEnabled: Boolean,\n maxHeight: [Function, Number, String],\n maxWidth: [Function, Number, String],\n minHeight: [Function, Number, String],\n minWidth: [Function, Number, String],\n onContentReady: Function,\n onDisposing: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onHidden: Function,\n onHiding: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n onResize: Function,\n onResizeEnd: Function,\n onResizeStart: Function,\n onShowing: Function,\n onShown: Function,\n onTitleRendered: Function,\n position: [Function, Object, String],\n resizeEnabled: Boolean,\n restorePosition: Boolean,\n rtlEnabled: Boolean,\n shading: Boolean,\n shadingColor: String,\n showCloseButton: Boolean,\n showTitle: Boolean,\n tabIndex: Number,\n title: String,\n titleTemplate: {},\n toolbarItems: Array,\n visible: Boolean,\n width: [Function, Number, String],\n wrapperAttr: {}\n }\n});\nexports.DxPopup = DxPopup;\nDxPopup.$_optionName = \"popup\";\nDxPopup.$_expectedChildren = {\n animation: { isCollectionItem: false, optionName: \"animation\" },\n position: { isCollectionItem: false, optionName: \"position\" },\n toolbarItem: { isCollectionItem: true, optionName: \"toolbarItems\" }\n};\nvar DxPosition = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:at\": null,\n \"update:boundary\": null,\n \"update:boundaryOffset\": null,\n \"update:collision\": null,\n \"update:my\": null,\n \"update:of\": null,\n \"update:offset\": null,\n },\n props: {\n at: [Object, String],\n boundary: {},\n boundaryOffset: [Object, String],\n collision: [Object, String],\n my: [Object, String],\n of: {},\n offset: [Object, String]\n }\n});\nexports.DxPosition = DxPosition;\nDxPosition.$_optionName = \"position\";\nvar DxRangeRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:max\": null,\n \"update:message\": null,\n \"update:min\": null,\n \"update:reevaluate\": null,\n \"update:type\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n max: {},\n message: String,\n min: {},\n reevaluate: Boolean,\n type: String\n }\n});\nexports.DxRangeRule = DxRangeRule;\nDxRangeRule.$_optionName = \"validationRules\";\nDxRangeRule.$_isCollectionItem = true;\nDxRangeRule.$_predefinedProps = {\n type: \"range\"\n};\nvar DxRemoteOperations = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:filtering\": null,\n \"update:grouping\": null,\n \"update:groupPaging\": null,\n \"update:paging\": null,\n \"update:sorting\": null,\n \"update:summary\": null,\n },\n props: {\n filtering: Boolean,\n grouping: Boolean,\n groupPaging: Boolean,\n paging: Boolean,\n sorting: Boolean,\n summary: Boolean\n }\n});\nexports.DxRemoteOperations = DxRemoteOperations;\nDxRemoteOperations.$_optionName = \"remoteOperations\";\nvar DxRequiredRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:message\": null,\n \"update:trim\": null,\n \"update:type\": null,\n },\n props: {\n message: String,\n trim: Boolean,\n type: String\n }\n});\nexports.DxRequiredRule = DxRequiredRule;\nDxRequiredRule.$_optionName = \"validationRules\";\nDxRequiredRule.$_isCollectionItem = true;\nDxRequiredRule.$_predefinedProps = {\n type: \"required\"\n};\nvar DxRowDragging = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowDropInsideItem\": null,\n \"update:allowReordering\": null,\n \"update:autoScroll\": null,\n \"update:boundary\": null,\n \"update:container\": null,\n \"update:cursorOffset\": null,\n \"update:data\": null,\n \"update:dragDirection\": null,\n \"update:dragTemplate\": null,\n \"update:dropFeedbackMode\": null,\n \"update:filter\": null,\n \"update:group\": null,\n \"update:handle\": null,\n \"update:onAdd\": null,\n \"update:onDragChange\": null,\n \"update:onDragEnd\": null,\n \"update:onDragMove\": null,\n \"update:onDragStart\": null,\n \"update:onRemove\": null,\n \"update:onReorder\": null,\n \"update:scrollSensitivity\": null,\n \"update:scrollSpeed\": null,\n \"update:showDragIcons\": null,\n },\n props: {\n allowDropInsideItem: Boolean,\n allowReordering: Boolean,\n autoScroll: Boolean,\n boundary: {},\n container: {},\n cursorOffset: [Object, String],\n data: {},\n dragDirection: String,\n dragTemplate: {},\n dropFeedbackMode: String,\n filter: String,\n group: String,\n handle: String,\n onAdd: Function,\n onDragChange: Function,\n onDragEnd: Function,\n onDragMove: Function,\n onDragStart: Function,\n onRemove: Function,\n onReorder: Function,\n scrollSensitivity: Number,\n scrollSpeed: Number,\n showDragIcons: Boolean\n }\n});\nexports.DxRowDragging = DxRowDragging;\nDxRowDragging.$_optionName = \"rowDragging\";\nDxRowDragging.$_expectedChildren = {\n cursorOffset: { isCollectionItem: false, optionName: \"cursorOffset\" }\n};\nvar DxScrolling = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:columnRenderingMode\": null,\n \"update:mode\": null,\n \"update:preloadEnabled\": null,\n \"update:renderAsync\": null,\n \"update:rowRenderingMode\": null,\n \"update:scrollByContent\": null,\n \"update:scrollByThumb\": null,\n \"update:showScrollbar\": null,\n \"update:useNative\": null,\n },\n props: {\n columnRenderingMode: String,\n mode: String,\n preloadEnabled: Boolean,\n renderAsync: Boolean,\n rowRenderingMode: String,\n scrollByContent: Boolean,\n scrollByThumb: Boolean,\n showScrollbar: String,\n useNative: [Boolean, String]\n }\n});\nexports.DxScrolling = DxScrolling;\nDxScrolling.$_optionName = \"scrolling\";\nvar DxSearchPanel = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:highlightCaseSensitive\": null,\n \"update:highlightSearchText\": null,\n \"update:placeholder\": null,\n \"update:searchVisibleColumnsOnly\": null,\n \"update:text\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n highlightCaseSensitive: Boolean,\n highlightSearchText: Boolean,\n placeholder: String,\n searchVisibleColumnsOnly: Boolean,\n text: String,\n visible: Boolean,\n width: Number\n }\n});\nexports.DxSearchPanel = DxSearchPanel;\nDxSearchPanel.$_optionName = \"searchPanel\";\nvar DxSelection = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSelectAll\": null,\n \"update:deferred\": null,\n \"update:maxFilterLengthInRequest\": null,\n \"update:mode\": null,\n \"update:selectAllMode\": null,\n \"update:showCheckBoxesMode\": null,\n },\n props: {\n allowSelectAll: Boolean,\n deferred: Boolean,\n maxFilterLengthInRequest: Number,\n mode: String,\n selectAllMode: String,\n showCheckBoxesMode: String\n }\n});\nexports.DxSelection = DxSelection;\nDxSelection.$_optionName = \"selection\";\nvar DxShow = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:complete\": null,\n \"update:delay\": null,\n \"update:direction\": null,\n \"update:duration\": null,\n \"update:easing\": null,\n \"update:from\": null,\n \"update:staggerDelay\": null,\n \"update:start\": null,\n \"update:to\": null,\n \"update:type\": null,\n },\n props: {\n complete: Function,\n delay: Number,\n direction: String,\n duration: Number,\n easing: String,\n from: Object,\n staggerDelay: Number,\n start: Function,\n to: Object,\n type: String\n }\n});\nexports.DxShow = DxShow;\nDxShow.$_optionName = \"show\";\nvar DxSortByGroupSummaryInfo = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:groupColumn\": null,\n \"update:sortOrder\": null,\n \"update:summaryItem\": null,\n },\n props: {\n groupColumn: String,\n sortOrder: String,\n summaryItem: [Number, String]\n }\n});\nexports.DxSortByGroupSummaryInfo = DxSortByGroupSummaryInfo;\nDxSortByGroupSummaryInfo.$_optionName = \"sortByGroupSummaryInfo\";\nDxSortByGroupSummaryInfo.$_isCollectionItem = true;\nvar DxSorting = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ascendingText\": null,\n \"update:clearText\": null,\n \"update:descendingText\": null,\n \"update:mode\": null,\n \"update:showSortIndexes\": null,\n },\n props: {\n ascendingText: String,\n clearText: String,\n descendingText: String,\n mode: String,\n showSortIndexes: Boolean\n }\n});\nexports.DxSorting = DxSorting;\nDxSorting.$_optionName = \"sorting\";\nvar DxStateStoring = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:customLoad\": null,\n \"update:customSave\": null,\n \"update:enabled\": null,\n \"update:savingTimeout\": null,\n \"update:storageKey\": null,\n \"update:type\": null,\n },\n props: {\n customLoad: Function,\n customSave: Function,\n enabled: Boolean,\n savingTimeout: Number,\n storageKey: String,\n type: String\n }\n});\nexports.DxStateStoring = DxStateStoring;\nDxStateStoring.$_optionName = \"stateStoring\";\nvar DxStringLengthRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:max\": null,\n \"update:message\": null,\n \"update:min\": null,\n \"update:trim\": null,\n \"update:type\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n max: Number,\n message: String,\n min: Number,\n trim: Boolean,\n type: String\n }\n});\nexports.DxStringLengthRule = DxStringLengthRule;\nDxStringLengthRule.$_optionName = \"validationRules\";\nDxStringLengthRule.$_isCollectionItem = true;\nDxStringLengthRule.$_predefinedProps = {\n type: \"stringLength\"\n};\nvar DxSummary = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:calculateCustomSummary\": null,\n \"update:groupItems\": null,\n \"update:recalculateWhileEditing\": null,\n \"update:skipEmptyValues\": null,\n \"update:texts\": null,\n \"update:totalItems\": null,\n },\n props: {\n calculateCustomSummary: Function,\n groupItems: Array,\n recalculateWhileEditing: Boolean,\n skipEmptyValues: Boolean,\n texts: Object,\n totalItems: Array\n }\n});\nexports.DxSummary = DxSummary;\nDxSummary.$_optionName = \"summary\";\nDxSummary.$_expectedChildren = {\n groupItem: { isCollectionItem: true, optionName: \"groupItems\" },\n summaryTexts: { isCollectionItem: false, optionName: \"texts\" },\n texts: { isCollectionItem: false, optionName: \"texts\" },\n totalItem: { isCollectionItem: true, optionName: \"totalItems\" }\n};\nvar DxSummaryTexts = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:avg\": null,\n \"update:avgOtherColumn\": null,\n \"update:count\": null,\n \"update:max\": null,\n \"update:maxOtherColumn\": null,\n \"update:min\": null,\n \"update:minOtherColumn\": null,\n \"update:sum\": null,\n \"update:sumOtherColumn\": null,\n },\n props: {\n avg: String,\n avgOtherColumn: String,\n count: String,\n max: String,\n maxOtherColumn: String,\n min: String,\n minOtherColumn: String,\n sum: String,\n sumOtherColumn: String\n }\n});\nexports.DxSummaryTexts = DxSummaryTexts;\nDxSummaryTexts.$_optionName = \"texts\";\nvar DxTexts = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:addRow\": null,\n \"update:avg\": null,\n \"update:avgOtherColumn\": null,\n \"update:cancel\": null,\n \"update:cancelAllChanges\": null,\n \"update:cancelRowChanges\": null,\n \"update:clearFilter\": null,\n \"update:confirmDeleteMessage\": null,\n \"update:confirmDeleteTitle\": null,\n \"update:count\": null,\n \"update:createFilter\": null,\n \"update:deleteRow\": null,\n \"update:editRow\": null,\n \"update:emptyValue\": null,\n \"update:exportAll\": null,\n \"update:exportSelectedRows\": null,\n \"update:exportTo\": null,\n \"update:filterEnabledHint\": null,\n \"update:fix\": null,\n \"update:groupByThisColumn\": null,\n \"update:groupContinuedMessage\": null,\n \"update:groupContinuesMessage\": null,\n \"update:leftPosition\": null,\n \"update:max\": null,\n \"update:maxOtherColumn\": null,\n \"update:min\": null,\n \"update:minOtherColumn\": null,\n \"update:ok\": null,\n \"update:rightPosition\": null,\n \"update:saveAllChanges\": null,\n \"update:saveRowChanges\": null,\n \"update:sum\": null,\n \"update:sumOtherColumn\": null,\n \"update:undeleteRow\": null,\n \"update:unfix\": null,\n \"update:ungroup\": null,\n \"update:ungroupAll\": null,\n \"update:validationCancelChanges\": null,\n },\n props: {\n addRow: String,\n avg: String,\n avgOtherColumn: String,\n cancel: String,\n cancelAllChanges: String,\n cancelRowChanges: String,\n clearFilter: String,\n confirmDeleteMessage: String,\n confirmDeleteTitle: String,\n count: String,\n createFilter: String,\n deleteRow: String,\n editRow: String,\n emptyValue: String,\n exportAll: String,\n exportSelectedRows: String,\n exportTo: String,\n filterEnabledHint: String,\n fix: String,\n groupByThisColumn: String,\n groupContinuedMessage: String,\n groupContinuesMessage: String,\n leftPosition: String,\n max: String,\n maxOtherColumn: String,\n min: String,\n minOtherColumn: String,\n ok: String,\n rightPosition: String,\n saveAllChanges: String,\n saveRowChanges: String,\n sum: String,\n sumOtherColumn: String,\n undeleteRow: String,\n unfix: String,\n ungroup: String,\n ungroupAll: String,\n validationCancelChanges: String\n }\n});\nexports.DxTexts = DxTexts;\nDxTexts.$_optionName = \"texts\";\nvar DxTo = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:left\": null,\n \"update:opacity\": null,\n \"update:position\": null,\n \"update:scale\": null,\n \"update:top\": null,\n },\n props: {\n left: Number,\n opacity: Number,\n position: Object,\n scale: Number,\n top: Number\n }\n});\nexports.DxTo = DxTo;\nDxTo.$_optionName = \"to\";\nvar DxToolbar = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:disabled\": null,\n \"update:items\": null,\n \"update:visible\": null,\n },\n props: {\n disabled: Boolean,\n items: Array,\n visible: Boolean\n }\n});\nexports.DxToolbar = DxToolbar;\nDxToolbar.$_optionName = \"toolbar\";\nDxToolbar.$_expectedChildren = {\n item: { isCollectionItem: true, optionName: \"items\" }\n};\nvar DxToolbarItem = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:disabled\": null,\n \"update:html\": null,\n \"update:location\": null,\n \"update:options\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:toolbar\": null,\n \"update:visible\": null,\n \"update:widget\": null,\n },\n props: {\n disabled: Boolean,\n html: String,\n location: String,\n options: {},\n template: {},\n text: String,\n toolbar: String,\n visible: Boolean,\n widget: String\n }\n});\nexports.DxToolbarItem = DxToolbarItem;\nDxToolbarItem.$_optionName = \"toolbarItems\";\nDxToolbarItem.$_isCollectionItem = true;\nvar DxTotalItem = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:alignment\": null,\n \"update:column\": null,\n \"update:cssClass\": null,\n \"update:customizeText\": null,\n \"update:displayFormat\": null,\n \"update:name\": null,\n \"update:showInColumn\": null,\n \"update:skipEmptyValues\": null,\n \"update:summaryType\": null,\n \"update:valueFormat\": null,\n },\n props: {\n alignment: String,\n column: String,\n cssClass: String,\n customizeText: Function,\n displayFormat: String,\n name: String,\n showInColumn: String,\n skipEmptyValues: Boolean,\n summaryType: String,\n valueFormat: [Object, Function, String]\n }\n});\nexports.DxTotalItem = DxTotalItem;\nDxTotalItem.$_optionName = \"totalItems\";\nDxTotalItem.$_isCollectionItem = true;\nDxTotalItem.$_expectedChildren = {\n valueFormat: { isCollectionItem: false, optionName: \"valueFormat\" }\n};\nvar DxValidationRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:comparisonTarget\": null,\n \"update:comparisonType\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:max\": null,\n \"update:message\": null,\n \"update:min\": null,\n \"update:pattern\": null,\n \"update:reevaluate\": null,\n \"update:trim\": null,\n \"update:type\": null,\n \"update:validationCallback\": null,\n },\n props: {\n comparisonTarget: Function,\n comparisonType: String,\n ignoreEmptyValue: Boolean,\n max: {},\n message: String,\n min: {},\n pattern: {},\n reevaluate: Boolean,\n trim: Boolean,\n type: String,\n validationCallback: Function\n }\n});\nexports.DxValidationRule = DxValidationRule;\nDxValidationRule.$_optionName = \"validationRules\";\nDxValidationRule.$_isCollectionItem = true;\nDxValidationRule.$_predefinedProps = {\n type: \"required\"\n};\nvar DxValueFormat = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:currency\": null,\n \"update:formatter\": null,\n \"update:parser\": null,\n \"update:precision\": null,\n \"update:type\": null,\n \"update:useCurrencyAccountingStyle\": null,\n },\n props: {\n currency: String,\n formatter: Function,\n parser: Function,\n precision: Number,\n type: String,\n useCurrencyAccountingStyle: Boolean\n }\n});\nexports.DxValueFormat = DxValueFormat;\nDxValueFormat.$_optionName = \"valueFormat\";\nexports.default = DxDataGrid;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/readable.js');\nStream.Writable = require('readable-stream/writable.js');\nStream.Duplex = require('readable-stream/duplex.js');\nStream.Transform = require('readable-stream/transform.js');\nStream.PassThrough = require('readable-stream/passthrough.js');\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.modules.js)\r\n * Version: 22.1.6\r\n * Build date: Tue Oct 18 2022\r\n *\r\n * Copyright (c) 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 Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n grep\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar WIDGET_WITH_LEGACY_CONTAINER_NAME = \"dxDataGrid\";\r\nvar ModuleItem = Class.inherit({\r\n _endUpdateCore: function() {},\r\n ctor: function(component) {\r\n var that = this;\r\n that._updateLockCount = 0;\r\n that.component = component;\r\n that._actions = {};\r\n that._actionConfigs = {};\r\n each(this.callbackNames() || [], (function(index, name) {\r\n var flags = that.callbackFlags(name) || {};\r\n flags.unique = true, flags.syncStrategy = true;\r\n that[this] = Callbacks(flags)\r\n }))\r\n },\r\n init: function() {},\r\n callbackNames: function() {},\r\n callbackFlags: function() {},\r\n publicMethods: function() {},\r\n beginUpdate: function() {\r\n this._updateLockCount++\r\n },\r\n endUpdate: function() {\r\n if (this._updateLockCount > 0) {\r\n this._updateLockCount--;\r\n if (!this._updateLockCount) {\r\n this._endUpdateCore()\r\n }\r\n }\r\n },\r\n option: function(name) {\r\n var component = this.component;\r\n var optionCache = component._optionCache;\r\n if (1 === arguments.length && optionCache) {\r\n if (!(name in optionCache)) {\r\n optionCache[name] = component.option(name)\r\n }\r\n return optionCache[name]\r\n }\r\n return component.option.apply(component, arguments)\r\n },\r\n _silentOption: function(name, value) {\r\n var component = this.component;\r\n var optionCache = component._optionCache;\r\n if (optionCache) {\r\n optionCache[name] = value\r\n }\r\n return component._setOptionWithoutOptionChange(name, value)\r\n },\r\n localize: function(name) {\r\n var optionCache = this.component._optionCache;\r\n if (optionCache) {\r\n if (!(name in optionCache)) {\r\n optionCache[name] = messageLocalization.format(name)\r\n }\r\n return optionCache[name]\r\n }\r\n return messageLocalization.format(name)\r\n },\r\n on: function() {\r\n return this.component.on.apply(this.component, arguments)\r\n },\r\n off: function() {\r\n return this.component.off.apply(this.component, arguments)\r\n },\r\n optionChanged: function(args) {\r\n if (args.name in this._actions) {\r\n this.createAction(args.name, this._actionConfigs[args.name]);\r\n args.handled = true\r\n }\r\n },\r\n getAction: function(actionName) {\r\n return this._actions[actionName]\r\n },\r\n setAria: function(name, value, $target) {\r\n var target = $target.get(0);\r\n var prefix = \"role\" !== name && \"id\" !== name ? \"aria-\" : \"\";\r\n if (target.setAttribute) {\r\n target.setAttribute(prefix + name, value)\r\n } else {\r\n $target.attr(prefix + name, value)\r\n }\r\n },\r\n _createComponent: function() {\r\n return this.component._createComponent.apply(this.component, arguments)\r\n },\r\n getController: function(name) {\r\n return this.component._controllers[name]\r\n },\r\n createAction: function(actionName, config) {\r\n if (isFunction(actionName)) {\r\n var action = this.component._createAction(actionName.bind(this), config);\r\n return function(e) {\r\n action({\r\n event: e\r\n })\r\n }\r\n } else {\r\n this._actions[actionName] = this.component._createActionByOption(actionName, config);\r\n this._actionConfigs[actionName] = config\r\n }\r\n },\r\n executeAction: function(actionName, options) {\r\n var action = this._actions[actionName];\r\n return action && action(options)\r\n },\r\n dispose: function() {\r\n var that = this;\r\n each(that.callbackNames() || [], (function() {\r\n that[this].empty()\r\n }))\r\n },\r\n addWidgetPrefix: function(className) {\r\n var componentName = this.component.NAME;\r\n return \"dx-\" + componentName.slice(2).toLowerCase() + (className ? \"-\" + className : \"\")\r\n },\r\n getWidgetContainerClass: function() {\r\n var containerName = this.component.NAME === WIDGET_WITH_LEGACY_CONTAINER_NAME ? null : \"container\";\r\n return this.addWidgetPrefix(containerName)\r\n },\r\n 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 $(\"