{"version":3,"sources":["../static/js/main.d657becd.js","../webpack/bootstrap 5af54dec4b6c4c244613","../node_modules/react/index.js","../node_modules/prop-types/index.js","../node_modules/reactstrap/es/utils.js","../node_modules/@easydata/core/dist/lib/public_api.js","../node_modules/reactstrap/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/classnames/index.js","../node_modules/reactstrap/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@easyquery/core/dist/lib/public_api.js","../node_modules/@easydata/ui/dist/lib/public_api.js","../node_modules/@easyquery/ui/dist/lib/utils/browser_utils.js","../node_modules/reactstrap/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/reactstrap/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@easyquery/ui/dist/lib/utils/utils.js","../node_modules/axios/lib/utils.js","../node_modules/reactstrap/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@easyquery/ui/dist/lib/utils/popup_menu.js","../node_modules/warning/warning.js","../node_modules/@easyquery/ui/dist/lib/types/qp_editable_part.js","../node_modules/@easydata/ui/dist/lib/utils/dom_elem_builder.js","../node_modules/invariant/browser.js","../node_modules/@easydata/core/dist/lib/types/data_type.js","../node_modules/@easyquery/core/dist/lib/types/expr_tag.js","../node_modules/react-dom/index.js","../node_modules/history/esm/history.js","../node_modules/@easydata/core/dist/lib/utils/utils.js","../node_modules/@easyquery/core/dist/lib/types/data_kind.js","../node_modules/@easyquery/ui/dist/lib/types/facet_type.js","../node_modules/reactstrap/es/DropdownContext.js","../node_modules/reactstrap/es/Fade.js","../node_modules/@easyquery/core/dist/lib/query/query.js","../node_modules/@easyquery/core/dist/lib/query/query_events.js","../node_modules/@easydata/ui/dist/lib/utils/ui-utils.js","../node_modules/@easyquery/ui/dist/lib/widgets/query_panel.js","../node_modules/@easyquery/ui/dist/lib/widgets/renderers/querypanel/expression_renderer.js","../node_modules/@easyquery/enterprise/dist/lib/utils/lcv.js","../node_modules/react-router/es/Router.js","../node_modules/react-router/es/matchPath.js","../node_modules/reactstrap/es/Dropdown.js","../node_modules/react-popper/lib/esm/index.js","../node_modules/@easydata/core/dist/lib/i18n/i18n.js","../node_modules/@easyquery/core/dist/lib/utils/utils.js","../node_modules/@easyquery/core/dist/lib/types/link_type.js","../node_modules/@easyquery/core/dist/lib/query/expression.js","../node_modules/@easyquery/ui/dist/lib/widgets/renderers/columnspanel/simple_column_renderer.js","../node_modules/@easyquery/ui/dist/lib/widgets/renderers/querypanel/list_expression_renderer.js","../node_modules/@easyquery/ui/dist/lib/facets/result_facet.js","../node_modules/@easyquery/ui/dist/lib/widgets/charts/chart_type.js","../node_modules/@easyquery/ui/dist/lib/views/view.js","../node_modules/webpack/buildin/global.js","../node_modules/object-assign/index.js","../node_modules/react-router-dom/es/Router.js","../node_modules/react-router/es/Route.js","../node_modules/react-router/es/generatePath.js","../node_modules/reactstrap/es/Button.js","../node_modules/@babel/runtime/helpers/inheritsLoose.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/define-properties/index.js","../node_modules/react-popper/lib/esm/Manager.js","../node_modules/react-transition-group/index.js","../node_modules/reactstrap/es/CarouselItem.js","../node_modules/@easydata/core/dist/lib/types/editor_tag.js","../node_modules/@easyquery/core/dist/lib/dm/data_model.js","../node_modules/@easyquery/core/dist/lib/types/eq_editor_tag.js","../node_modules/@easyquery/core/dist/lib/query/query_column.js","../node_modules/@easyquery/core/dist/lib/types/cond_tag.js","../node_modules/@easydata/ui/dist/lib/grid/easy_grid_columns.js","../node_modules/@easydata/ui/dist/lib/grid/easy_grid_cell_renderer.js","../node_modules/@easyquery/ui/dist/lib/widgets/columns_bar.js","../node_modules/@easyquery/ui/dist/lib/widgets/renderers/columnsbar/simple_column_renderer.js","../node_modules/@easyquery/ui/dist/lib/widgets/renderers/querypanel/condition_renderer.js","../node_modules/@easyquery/ui/dist/lib/widgets/renderers/base_element_renderer.js","../node_modules/@easyquery/ui/dist/lib/widgets/renderers/dropdown_renderer.js","../node_modules/@easyquery/ui/dist/lib/widgets/easy_grid_widget.js","../node_modules/@easyquery/ui/dist/lib/dialog/export_dialog.js","../node_modules/@easyquery/ui/dist/lib/widgets/charts/chart_widget_chartjs.js","../node_modules/@easyquery/ui/dist/lib/widgets/charts/chart_widget.js","../node_modules/@easyquery/enterprise/dist/lib/query/query_ex.js","../node_modules/promise/lib/core.js","../node_modules/react-router-dom/es/Link.js","../node_modules/react-router/es/MemoryRouter.js","../node_modules/react-router-dom/es/Route.js","../node_modules/path-to-regexp/index.js","../node_modules/react-router/es/Prompt.js","../node_modules/react-router/es/Redirect.js","../node_modules/react-router/es/StaticRouter.js","../node_modules/react-router/es/Switch.js","../node_modules/react-router/es/withRouter.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/reactstrap/es/index.js","../node_modules/reactstrap/es/ButtonDropdown.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/object-keys/index.js","../node_modules/object-keys/isArguments.js","../node_modules/regexp.prototype.flags/implementation.js","../node_modules/regexp.prototype.flags/polyfill.js","../node_modules/react-popper/lib/esm/utils.js","../node_modules/react-transition-group/Transition.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-transition-group/utils/PropTypes.js","../node_modules/react-transition-group/TransitionGroup.js","../node_modules/reactstrap/es/Carousel.js","../node_modules/reactstrap/es/CarouselControl.js","../node_modules/reactstrap/es/CarouselIndicators.js","../node_modules/reactstrap/es/CarouselCaption.js","../node_modules/reactstrap/es/CustomFileInput.js","../node_modules/reactstrap/es/PopperContent.js","../node_modules/reactstrap/es/Popover.js","../node_modules/reactstrap/es/TooltipPopoverWrapper.js","../node_modules/reactstrap/es/Tooltip.js","../node_modules/reactstrap/es/InputGroupText.js","../node_modules/reactstrap/es/TabContext.js","../node_modules/reactstrap/es/Alert.js","../node_modules/reactstrap/es/Collapse.js","../node_modules/@easyquery/ui/dist/lib/widgets/entities_panel.js","../node_modules/@easydata/core/dist/lib/types/entity_attr_kind.js","../node_modules/@easydata/core/dist/lib/http/http_method.js","../node_modules/@easydata/core/dist/lib/http/http_request.js","../node_modules/@easydata/core/dist/lib/utils/string_utils.js","../node_modules/@easydata/core/dist/lib/meta/meta_entity.js","../node_modules/@easydata/core/dist/lib/meta/value_editor.js","../node_modules/@easydata/core/dist/lib/data/data_column.js","../node_modules/@easydata/core/dist/lib/data/data_row.js","../node_modules/@easydata/core/dist/lib/utils/easy_guid.js","../node_modules/@easyquery/core/dist/lib/utils/format_parser.js","../node_modules/@easyquery/core/dist/lib/common/eq_services.js","../node_modules/@easyquery/core/dist/lib/dm/aggr_function.js","../node_modules/@easyquery/core/dist/lib/dm/operator.js","../node_modules/@easyquery/core/dist/lib/dm/value_editor.js","../node_modules/@easyquery/core/dist/lib/dm/entity.js","../node_modules/@easyquery/core/dist/lib/common/tree.js","../node_modules/@easyquery/core/dist/lib/query/condition.js","../node_modules/@easyquery/core/dist/lib/types/cond_part.js","../node_modules/@easyquery/core/dist/lib/main/query_storage.js","../node_modules/@easyquery/core/dist/lib/eqs/eqs_model_loader.js","../node_modules/@easyquery/core/dist/lib/main/model_loader.js","../node_modules/@easyquery/core/dist/lib/eqs/eqs_data_fetcher.js","../node_modules/@easyquery/core/dist/lib/eqs/eqs_query_synchronizer.js","../node_modules/@easyquery/core/dist/lib/eqs/eqs_value_list_resolver.js","../node_modules/@easyquery/core/dist/lib/eqs/eqs_query_file_loader.js","../node_modules/@easyquery/core/dist/lib/data/eq_totals_container.js","../node_modules/@easyquery/core/dist/lib/data/eq_data_loader.js","../node_modules/@easyquery/core/dist/lib/types/widget_group.js","../node_modules/@easyquery/core/dist/lib/main/eq_actions.js","../node_modules/@easyquery/core/dist/lib/main/action.js","../node_modules/@easyquery/core/dist/lib/eqs/eqs_exporter.js","../node_modules/@easydata/ui/dist/lib/utils/drag_manager.js","../node_modules/@easydata/ui/dist/lib/utils/browser_utils.js","../node_modules/@easydata/ui/dist/lib/utils/mask.js","../node_modules/@easydata/ui/dist/lib/datetimepicker/calendar.js","../node_modules/@easydata/ui/dist/lib/datetimepicker/date_time_picker.js","../node_modules/@easydata/ui/dist/lib/datetimepicker/default_calendar.js","../node_modules/@easydata/ui/dist/lib/datetimepicker/default_time_picker.js","../node_modules/@easydata/ui/dist/lib/datetimepicker/time_picker.js","../node_modules/@easydata/ui/dist/lib/dialogs/default_dialog_service.js","../node_modules/@easyquery/ui/dist/lib/widgets/columns_panel.js","../node_modules/@easyquery/ui/dist/lib/widgets/renderers/columnspanel/aggrfunc_column_renderer.js","../node_modules/@easyquery/ui/dist/lib/widgets/renderers/columnspanel/column_renderer.js","../node_modules/@easyquery/ui/dist/lib/widgets/renderers/columnspanel/customsql_column_renderer.js","../node_modules/@easyquery/ui/dist/lib/widgets/renderers/columnsbar/aggrfunc_column_renderer.js","../node_modules/@easyquery/ui/dist/lib/widgets/renderers/columnsbar/column_renderer.js","../node_modules/@easyquery/ui/dist/lib/widgets/sorting_bar.js","../node_modules/@easyquery/ui/dist/lib/widgets/renderers/querypanel/text_renderer.js","../node_modules/@easyquery/ui/dist/lib/widgets/renderers/querypanel/condition_group_renderer.js","../node_modules/@easyquery/ui/dist/lib/utils/dropdown.js","../node_modules/@easyquery/ui/dist/lib/widgets/renderers/querypanel/input_expression_renderer.js","../node_modules/@easyquery/ui/dist/lib/widgets/renderers/querypanel/attribute_expression_renderer.js","../node_modules/@easyquery/ui/dist/lib/widgets/renderers/querypanel/addrow_renderer.js","../node_modules/@easyquery/ui/dist/lib/widgets/renderers/querypanel/operator_renderer.js","../node_modules/@easyquery/ui/dist/lib/widgets/renderers/querypanel/datetime_expression_render.js","../node_modules/@easyquery/ui/dist/lib/widgets/renderers/querypanel/subquery_expression_renderer.js","../node_modules/@easyquery/ui/dist/lib/widgets/filter_bar.js","../node_modules/@easyquery/ui/dist/lib/widgets/html_content_widget.js","../node_modules/@easyquery/ui/dist/lib/widgets/eq_result_html_grid.js","../node_modules/@easyquery/ui/dist/lib/widgets/grid.js","../node_modules/@easyquery/ui/dist/lib/widgets/statement_panel.js","../node_modules/@easyquery/ui/dist/lib/widgets/process_widget.js","../node_modules/@easyquery/ui/dist/lib/widgets/result_facets_panel.js","../node_modules/@easyquery/ui/dist/lib/facets/chart_facet.js","../node_modules/@easyquery/ui/dist/lib/widgets/charts/chart_widget_google.js","../node_modules/@easyquery/ui/dist/lib/facets/pivot_table_facet.js","../node_modules/@easyquery/ui/dist/lib/facets/datatable_facet.js","../node_modules/@easyquery/ui/dist/lib/dialog/totals_dialog.js","../node_modules/@easyquery/ui/dist/lib/widgets/export_widget.js","../node_modules/@easyquery/ui/dist/lib/views/data_filter_view.js","../node_modules/@easyquery/enterprise/dist/lib/query/condition_ex.js","../node_modules/@easyquery/enterprise/dist/lib/query/query_column_ex.js","../node_modules/@easyquery/enterprise/dist/lib/main/eqs_query_storage.js","../node_modules/@easyquery/enterprise/dist/lib/dm/model_ex.js","../node_modules/@easyquery/enterprise/dist/lib/data/eqs_totals_calculator.js","../node_modules/react-scripts/config/polyfills.js","../node_modules/promise/lib/rejection-tracking.js","../node_modules/asap/browser-raw.js","../node_modules/promise/lib/es6-extensions.js","../node_modules/whatwg-fetch/fetch.js","index.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/react-router-dom/es/index.js","../node_modules/react-router-dom/es/BrowserRouter.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/react-router-dom/es/HashRouter.js","../node_modules/react-router-dom/es/MemoryRouter.js","../node_modules/react-router-dom/es/NavLink.js","../node_modules/isarray/index.js","../node_modules/react-router-dom/es/Prompt.js","../node_modules/react-router-dom/es/Redirect.js","../node_modules/react-router-dom/es/StaticRouter.js","../node_modules/react-router-dom/es/Switch.js","../node_modules/react-router-dom/es/generatePath.js","../node_modules/react-router-dom/es/matchPath.js","../node_modules/react-router-dom/es/withRouter.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","App.js","../node_modules/babel-runtime/regenerator/index.js","../node_modules/babel-runtime/node_modules/regenerator-runtime/runtime-module.js","../node_modules/babel-runtime/node_modules/regenerator-runtime/runtime.js","../node_modules/react-router/es/index.js","../node_modules/axios/index.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/transformData.js","../node_modules/process/browser.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","config/config.json","components/Gate.js","../node_modules/reactstrap/es/Container.js","../node_modules/reactstrap/es/Row.js","../node_modules/reactstrap/es/Col.js","../node_modules/reactstrap/es/Navbar.js","../node_modules/reactstrap/es/NavbarBrand.js","../node_modules/reactstrap/es/NavbarText.js","../node_modules/reactstrap/es/NavbarToggler.js","../node_modules/reactstrap/es/Nav.js","../node_modules/reactstrap/es/NavItem.js","../node_modules/reactstrap/es/NavLink.js","../node_modules/reactstrap/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/reactstrap/es/Breadcrumb.js","../node_modules/reactstrap/es/BreadcrumbItem.js","../node_modules/reactstrap/es/ButtonToggle.js","../node_modules/react-popper/lib/esm/Popper.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/react-popper/node_modules/deep-equal/index.js","../node_modules/object-keys/implementation.js","../node_modules/is-arguments/index.js","../node_modules/object-is/index.js","../node_modules/is-regex/index.js","../node_modules/has/src/index.js","../node_modules/function-bind/index.js","../node_modules/function-bind/implementation.js","../node_modules/regexp.prototype.flags/index.js","../node_modules/regexp.prototype.flags/shim.js","../node_modules/is-date-object/index.js","../node_modules/popper.js/dist/esm/popper.js","../node_modules/@hypnosphi/create-react-context/lib/index.js","../node_modules/@hypnosphi/create-react-context/lib/implementation.js","../node_modules/gud/index.js","../node_modules/react-popper/lib/esm/Reference.js","../node_modules/reactstrap/es/ButtonGroup.js","../node_modules/reactstrap/es/ButtonToolbar.js","../node_modules/reactstrap/es/DropdownItem.js","../node_modules/reactstrap/es/DropdownMenu.js","../node_modules/reactstrap/es/DropdownToggle.js","../node_modules/react-transition-group/CSSTransition.js","../node_modules/dom-helpers/class/addClass.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/dom-helpers/class/hasClass.js","../node_modules/dom-helpers/class/removeClass.js","../node_modules/react-transition-group/ReplaceTransition.js","../node_modules/react-transition-group/utils/ChildMapping.js","../node_modules/reactstrap/es/Badge.js","../node_modules/reactstrap/es/Card.js","../node_modules/reactstrap/es/CardGroup.js","../node_modules/reactstrap/es/CardDeck.js","../node_modules/reactstrap/es/CardColumns.js","../node_modules/reactstrap/es/CardBody.js","../node_modules/reactstrap/es/CardLink.js","../node_modules/reactstrap/es/CardFooter.js","../node_modules/reactstrap/es/CardHeader.js","../node_modules/reactstrap/es/CardImg.js","../node_modules/reactstrap/es/CardImgOverlay.js","../node_modules/reactstrap/es/UncontrolledCarousel.js","../node_modules/reactstrap/es/CardSubtitle.js","../node_modules/reactstrap/es/CardText.js","../node_modules/reactstrap/es/CardTitle.js","../node_modules/reactstrap/es/CustomInput.js","../node_modules/reactstrap/es/PopperTargetHelper.js","../node_modules/reactstrap/es/UncontrolledPopover.js","../node_modules/reactstrap/es/PopoverHeader.js","../node_modules/reactstrap/es/PopoverBody.js","../node_modules/reactstrap/es/Progress.js","../node_modules/reactstrap/es/Modal.js","../node_modules/reactstrap/es/Portal.js","../node_modules/reactstrap/es/ModalHeader.js","../node_modules/reactstrap/es/ModalBody.js","../node_modules/reactstrap/es/ModalFooter.js","../node_modules/reactstrap/es/Table.js","../node_modules/reactstrap/es/ListGroup.js","../node_modules/reactstrap/es/Form.js","../node_modules/reactstrap/es/FormFeedback.js","../node_modules/reactstrap/es/FormGroup.js","../node_modules/reactstrap/es/FormText.js","../node_modules/reactstrap/es/Input.js","../node_modules/reactstrap/es/InputGroup.js","../node_modules/reactstrap/es/InputGroupAddon.js","../node_modules/reactstrap/es/InputGroupButtonDropdown.js","../node_modules/reactstrap/es/Label.js","../node_modules/reactstrap/es/Media.js","../node_modules/reactstrap/es/Pagination.js","../node_modules/reactstrap/es/PaginationItem.js","../node_modules/reactstrap/es/PaginationLink.js","../node_modules/reactstrap/es/TabContent.js","../node_modules/reactstrap/es/TabPane.js","../node_modules/reactstrap/es/Jumbotron.js","../node_modules/reactstrap/es/Toast.js","../node_modules/reactstrap/es/ToastBody.js","../node_modules/reactstrap/es/ToastHeader.js","../node_modules/reactstrap/es/ListGroupItem.js","../node_modules/reactstrap/es/ListGroupItemHeading.js","../node_modules/reactstrap/es/ListGroupItemText.js","../node_modules/reactstrap/es/List.js","../node_modules/reactstrap/es/ListInlineItem.js","../node_modules/reactstrap/es/UncontrolledAlert.js","../node_modules/reactstrap/es/UncontrolledButtonDropdown.js","../node_modules/reactstrap/es/UncontrolledCollapse.js","../node_modules/reactstrap/es/UncontrolledDropdown.js","../node_modules/reactstrap/es/UncontrolledTooltip.js","../node_modules/reactstrap/es/Spinner.js","../node_modules/reactstrap/es/polyfill.js","components/Layout.js","components/KIQAdhoc.js","../node_modules/@easyquery/ui/dist/lib/public_api.js","../node_modules/@easydata/core/dist/lib/http/http_client.js","../node_modules/@easydata/core/dist/lib/http/http_action_result.js","../node_modules/@easydata/core/dist/lib/meta/meta_data.js","../node_modules/@easydata/core/dist/lib/data/easy_data_table.js","../node_modules/@easydata/core/dist/lib/event/event_emitter.js","../node_modules/@easydata/core/dist/lib/i18n/load_default_locale_settings.js","../node_modules/@easyquery/core/dist/lib/utils/constants.js","../node_modules/@easyquery/core/dist/lib/data/google_data_converter.js","../node_modules/@easyquery/core/dist/lib/main/context.js","../node_modules/@easyquery/core/dist/lib/main/widget.js","../node_modules/@easyquery/core/dist/lib/utils/version_info.js","../node_modules/@easyquery/core/dist/lib/i18n/text_resources.js","../node_modules/@easydata/ui/dist/lib/grid/easy_grid.js","../node_modules/@easydata/ui/dist/lib/datetimepicker/default_date_time_picker.js","../node_modules/@easydata/ui/dist/lib/i18n/text_resources.js","../node_modules/@easyquery/ui/dist/lib/utils/display_format_parser.js","../node_modules/@easyquery/ui/dist/lib/widgets/renderers/sortingbar/column_renderer.js","../node_modules/@easyquery/ui/dist/lib/widgets/renderers/querypanel/bind_to_parent_column_expression_renderer.js","../node_modules/@easyquery/ui/dist/lib/widgets/manage_drilldown_widget.js","../node_modules/@easyquery/ui/dist/lib/widgets/facet_container.js","../node_modules/@easyquery/ui/dist/lib/widgets/locale_widget.js","../node_modules/@easyquery/ui/dist/lib/widgets/queryname_widget.js","../node_modules/@easyquery/ui/dist/lib/views/adv_search_view.js","../node_modules/@easyquery/ui/dist/lib/views/html_data_filter_view.js","../node_modules/@easyquery/ui/dist/lib/views/report_view.js","../node_modules/@easyquery/ui/dist/lib/i18n/text_resources.js","../node_modules/@easyquery/ui/dist/lib/extensions.js","../node_modules/@easyquery/enterprise/dist/lib/public_api.js","../node_modules/@easyquery/enterprise/dist/lib/extensions.js","components/AdhocUI.js","registerServiceWorker.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","getScrollbarWidth","scrollDiv","document","createElement","style","position","top","width","height","overflow","body","appendChild","scrollbarWidth","offsetWidth","clientWidth","removeChild","setScrollbarWidth","padding","paddingRight","isBodyOverflowing","window","innerWidth","getOriginalBodyPadding","getComputedStyle","parseInt","getPropertyValue","conditionallyUpdateScrollbar","fixedContent","querySelectorAll","bodyPadding","mapToCssModules","className","cssModule","globalCssModule","split","map","join","omit","obj","omitKeys","result","keys","forEach","key","indexOf","pick","pickKeys","Array","isArray","length","warnOnce","message","warned","console","error","DOMElement","props","propName","componentName","Element","Error","isReactRefObj","target","getTag","value","undefined","toString","toNumber","type","isObject","other","valueOf","replace","isBinary","test","slice","isFunction","tag","findDOMElements","current","canUseDOM","selection","isArrayOrNodeList","els","getTarget","allElements","addMultipleEventListeners","_els","handler","_events","useCapture","events","event","el","addEventListener","removeEventListener","targetPropType","oneOfType","string","func","shape","any","tagPropType","$$typeof","symbol","render","arrayOf","TransitionTimeouts","Fade","Collapse","Modal","Carousel","TransitionPropTypeKeys","TransitionStatuses","ENTERING","ENTERED","EXITING","EXITED","keyCodes","esc","space","enter","tab","up","down","home","end","PopperPlacements","defaultToggleEvents","focusableElements","values","Math","trunc","x","isNaN","NaN","floor","ceil","_extends","assign","arguments","source","apply","this","classNames","classes","arg","argType","push","inner","hasOwn","default","_objectWithoutPropertiesLoose","excluded","sourceKeys","browserUtils","IsIE","eval","IsFirefox","_isFirefox","ua","navigator","userAgent","toLowerCase","isMobileMode","_isMobileMode","_detectedIsMobileMode","setIsMobileMode","oldValue","newValue","mobileModeChangeHandler","onMobileModeChanged","callback","getMobileCssClass","_isIE","detectIsMobileMode","matchMedia","matches","_inheritsLoose","subClass","superClass","create","constructor","_assertThisInitialized","self","ReferenceError","findHighestZIndex","elem","highest","zindex","defaultView","numZIndex","parentElement","safeFocus","element","setTimeout","_","focus","eqCssPrefix","eqCssMobile","val","isUndefined","isBuffer","isArrayBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isNumber","isPlainObject","getPrototypeOf","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","trim","str","isStandardBrowserEnv","product","fn","merge","assignValue","extend","a","b","thisArg","bind","stripBOM","content","charCodeAt","_defineProperty","writable","MenuLevel","options","isFilteringMode","showSelected","parentMenu","menu","parentLevel","parent","container","levelIndex","levelDiv","domWriteItemsId","menuId","itemRenderedCallback","_applyItem","id","text","itemDiv","items","activeItem","selectedItem","initialized","updated","renderContent","getItems","setItems","_this","itemBgColor","colors","bgON","itemFgColor","fgON","itemFontFamily","bgOVER","itemStyle","fontFamily","itemFontSize","fontSize","multiselect","isSubQuery","baseDivBuilder","addClass","useDefaultStyles","setStyle","border","zIndex","baseDiv","toDOM","applyItem","hideButtons","applyDiv","classList","add","cssPrefix","applyBtn","borderBottom","marginBottom","cursor","applyTextNode","createTextNode","buttons","submit","cancelBtn","marginLeft","cancelText","cancel","hideMenu","searchBoxAlwaysShown","showSearchBoxAfter","searchDivBuilder","searchEditBoxBuilder","size","on","ev","deactivateItem","renderItems","searchBox","keyCode","click","moveActiveItemUp","moveActiveItemDown","openSubLevel","searchDiv","tabIndex","overflowX","overflowY","scrollDivKeyDownHandler","which","getRootLevel","preventDefault","closeDiv","addText","getText","filteredItems","idx","activateItem","menuItem","showSubLevel","subLevel","focusScrollDiv","turnCheckboxes","item","itemCheckbox","checked","isItemSelected","selected","setItemSelected","submitItems","selectedItems","j","allSubitemsAreFiltered","filterCallback","isItemDiv","isLevelDiv","getMenuItem","renderItemsWithoutFilter","activateOnMouseOver","itemFilterCallback","getItemFilterCallback","innerHTML","data","color","paddingLeft","cb","defaultChecked","margin","verticalAlign","itemText","arrowSpan","arrowText","itemClickHandler","itemSelected","refreshCheckboxes","isCursorInside","renderItemsWithFilter","filter","filterSections","pureFilterTexts","section","filterItems","renderItemWithFilter","matchesFilter","regexp","resultItems","restFilterSections","filterRegexp","RegExp","groupItem","groupItemMatches","createArrayFrom","filterTexts","level","levelFilterText","highlightText","lowerText","lowerContent","pos","indexInMas","index","substring","rowElement","itemOverBgColor","itemOverFgColor","fgOVER","itemClass","itemClassOver","backgroundColor","remove","hide","levelId","scroll","winSize","leftSpace","left","rightSpace","offsetParent","y","showAt","right","visibility","adjustTopPos","levelBottom","offsetHeight","res","hidden","initLevelDiv","levelStyle","display","minItemWidth","maxItemWidth","maxHeight","newHeight","searchBoxAutoFocus","submitMenu","parentNode","update","newItems","refreshItems","findItem","searchedText","txt","PopupMenu","mouseIsOverBlock","mouseIsOverLink","toId","active","ancorFocused","adjustHeight","assignDeep","submitOnBlur","lastMenuID","updateProps","rootLevel","menuKeyUpHandler","e","stopImmediatePropagation","globalMouseDownHandler","srcElement","isOutside","tagName","menuLevel","shadow","commandTemplate","args","clearItemsMenuProps","clearItemMenuProps","setSelectedItems","selectedIds","itemsLength","showMenu","anchor","activeElement","itemSelectedCallback","menuClosedCallback","onMenuItemSelected","bottom","documentElement","srcPos","anchorHeight","anchorWidth","scroll_1","max","knockMenuStyle","removeAttribute","ul","setAttribute","warning","QPEditablePart","domel","HTMLDivElement","DomElementBuilder","HTMLSpanElement","HTMLAnchorElement","HTMLButtonElement","HTMLImageElement","HTMLInputElement","DomInputElementBuilder","HTMLSelectElement","DomSelectElementBuilder","__extends","extendStatics","setPrototypeOf","__proto__","__","addChild","childBuilder","builder","addChildElement","attr","attrId","attrValue","title","dataId","dataValue","show","removeStyle","toHide","visible","isVisible","getClientRects","_i","fullList","concat","removeClass","toggleClass","force","toggle","eventType","listener","eventTypes","off","styleId","styleValue","setProperty","removeProperty","innerText","html","clear","oldElem","replaceWith","textEl","addHtml","appendTo","_super","Date","valueAsDate","valueAsNumber","mask","maskPattern","addOption","option","invariant","condition","format","f","argIndex","framesToPop","DataType","ExprTag","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","err","addLeadingSlash","path","charAt","stripLeadingSlash","substr","hasBasename","prefix","stripBasename","stripTrailingSlash","parsePath","pathname","search","hash","hashIndex","searchIndex","createPath","location","createLocation","state","currentLocation","decodeURI","URIError","locationsAreEqual","createTransitionManager","setPrompt","nextPrompt","prompt","confirmTransitionTo","action","getUserConfirmation","appendListener","isActive","listeners","notifyListeners","_len","_key","getConfirmation","confirm","supportsHistory","history","supportsPopStateOnHashChange","supportsGoWithoutReloadUsingHash","isExtraneousPopstateEvent","getHistoryState","createBrowserHistory","getDOMLocation","historyState","_ref","_window$location","basename","createKey","random","keyLength","setState","nextState","globalHistory","transitionManager","handlePopState","handlePop","handleHashChange","forceNextPop","ok","revertPop","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","createHref","href","canUseHistory","pushState","forceRefresh","prevIndex","nextKeys","replaceState","goBack","goForward","checkDOMListeners","listenerCount","PopStateEvent","needsHashChangeListener","HashChangeEvent","block","unblock","isBlocked","listen","unlisten","_props","_props$forceRefresh","_props$getUserConfirm","_props$keyLength","initialLocation","stripHash","url","getHashPath","pushHashPath","replaceHashPath","createHashHistory","decodePath","locationsAreEqual$$1","encodedPath","encodePath","prevLocation","ignorePath","allPaths","lastIndexOf","baseTag","querySelector","getAttribute","nextPaths","HashChangeEvent$1","_props$hashType","hashType","_HashPathCoders$hashT","HashPathCoders","clamp","lowerBound","upperBound","min","createMemoryHistory","entries","nextIndex","nextEntries","splice","canGo","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entry","hashbang","noslash","slash","utils","getAllDataTypes","getDateDataTypes","Time","DateTime","getStringDataTypes","String","Memo","sources","assignDeepCore","WeakMap","hashSet","sources_1","sourceVal","has","set","getIfDefined","defaultValue","IsDefinedAndNotNull","copyArrayTo","collection1","collection2","len1","len2","collection","collection_1","findItemById","array","arrLength","findItemIndexById","indexOfArrayItem","arr","len","moveArrayItem","index1","index2","removeArrayItem","insertArrayItem","fillArray","start","relativeStart","k","relativeEnd","final","shiftToFitWindow","absLeft","getElementsByTagName","winWidth","absRight","shift","isNumericType","dtype","_numericTypes","isIntType","_intTypes","isNumeric","parseFloat","isFinite","areCompatibleDataTypes","type1","type2","Unknown","isPropSet","toUpperCase","generateId","prfx","prefixIdLen","squeezeMoniker","randValue","maxSymbolIndex","symbols","replaceAtString","getRandomInt","intToNum36","getNowTicks","magicTicks","rest","maxlen","parts","pml","ptt","squeeze","step","ch","getTime","safeParseInt","getDaysInMonth","month","year","getDate","strToDateTime","normalized","normalizedFormat","formatItems","dateItems","monthIndex","dayIndex","yearIndex","hourIndex","minutesIndex","secondsIndex","today","getFullYear","getMonth","day","hour","minute","second","_a","dateTimeToStr","date","getHours","getMinutes","getSeconds","hour12","isPm","yyyy","MMMM","getLongMonthName","MMM","getShortMonthName","MM","M","dd","HH","H","hh","h","tt","mm","ss","DT_FORMAT_RGEX","match","$1","numberToStr","number","decimalSeparator","getLocaleSettings","Byte","Word","Int32","Int64","Float","Currency","DataKind","FacetType","DropdownContext","createContext","ownKeys","enumerableOnly","getOwnPropertySymbols","sym","getOwnPropertyDescriptor","_objectSpread","getOwnPropertyDescriptors","defineProperties","Tag","baseClass","baseClassActive","children","innerRef","otherProps","transitionProps","childProps","status","ref","propTypes","node","defaultProps","timeout","appear","exit","in","InvalidQueryError","captureStackTrace","Query","model","extraData","innerData","isNewbie","_isModified","parentQuery","drillDowns","eventEmitter","root","Group","extraConditions","columns","justsorted","regenerateId","setDefaultName","description","modelId","modelName","loadFromData","attributeExprTag","attrTag","EntityAttribute","clientListRequestHandler","serverListRequestHandler","timezoneOffset","getTimezoneOffset","isModified","resetModified","isEx","reset","clearQuery","hasEnabledAggrColumns","col","enabled","expr","AggregateFunction","setName","getName","validate","column","ParentEntityAttribute","getAttributeById","CustomSql","getConditions","validateConditionGroup","getAggregatedColumns","getColumns","tryValidate","curCond","isGroup","expressions","checkExpressions","Constant","dataType","kind","List","_b","values_1","parsedVal","loadFromDataOrJson","changeStatus","loadFromJson","json","JSON","parse","noErrors","clearDrillDowns","conds","condData","cond","createCondition","addCondition","desc","justsortcols","newCol","createColumn","cols","dds","query","addDrillDown","createQuery","getDrillDowns","getParentQuery","findColumnById","colId","getModel","setModel","loadModelData","setData","toJSON","stringify","toJSONData","getId","saveToData","rootCondToData","condGroup","conditions","extraConds","locale","getCurrentLocale","isEmptyConditions","isEmpty","isEmptyColumns","clearColumns","clearConditions","clearExtraConditions","linkType","All","setId","getDescription","setDescription","getUsedInTotalsColumns","pop","getJustSortedColumns","getSortedColumns","sortedCols","sortIndex","sort","col1","col2","getColumnSortIndex","sorting","None","getColumnById","addColumn","descriptor","author","newColumn","attribute","attributeId","aggrFuncId","cusomtSql","warn","caption","baseAttrId","sql","getAggrFunctionCaption","distinct","setValue","setReadOnly","readonly","addColumnObj","changeColumnType","isJustSorted","funcId","exprValue","sqlText","customSqlExpr","exprId","moveColumn","removeColumn","addConditionGroup","addChildCondition","addExtraConditionGroup","Simple","addSimpleCondition","getRootCondition","operator","operatorId","getOperatorById","getDefaultOperatorForAttr","createSimpleConditionObject","addSimpleExtraCondition","inputValues","useInConditions","setOperatorId","attrExpr","Attribute","valCount","paramCount","valLength","operand","getOperand","addExpressionByOperand","removeColumns","columnsToRemove","removeFromArray","arrToRemove","ctrLen","justSortedColumns","fireProcessEvent","fire","fireChangedEvent","params","postpone","wasModified","part","eventData","fireColumnsChangedEvent","SortingColumns","Columns","changee","fireConditionsChangedEvent","Conditions","runThroughConditions","processCondition","processGroup","predicate","getOneValueForAttr","opid","getOperatorId","addProcessCallback","subscribe","removeProcessCallback","callbackId","unsubscribe","addChangedCallback","removeChangedCallback","getConditionsText","getConditionGroupText","group","condText","conjKey","linkTypeToStr","conjText","opId","parseOperatorFormat","plen","pi","getAttributeText","NotAll","getConditionsTextAsHtml","QueryChangePart","QueryChangeAction","addElement","opts","cssClass","addCssClass","hideElement","showElement","toggleVisibility","first","duration","complete","createBrowserEvent","eventName","Event","createEvent","initEvent","getViewportSize","clientHeight","innerHeight","getScrollPos","docElem","pageYOffset","scrollTop","pageXOffset","scrollLeft","getElementAbsolutePos","offset","box","defaultBoundingClientRect","getBoundingClientRect","scollPos","clientTop","clientLeft","round","getWinSize","slideDown","paddingTop","paddingBottom","marginTop","boxSizing","transitionProperty","transitionDuration","slideUp","QueryPanel","slot","customQuery","editableParts","activeCondition","entitiesPopupHandler","entitiesListFilter","menuContainer","showRootRow","showAddRow","showCheckboxes","allowParameterization","allowInJoinConditions","showPoweredBy","alwaysShowButtonsInGroups","alwaysShowButtonsInConditions","showConjunctions","accentActiveCondition","activateRootOnStart","yearRange","oneClickDateSelection","showDateTimeInput","attrElementFormat","menuOptions","allowDragDrop","attrPlacement","sortEntities","subQueryDialogWidth","subQueryDialogHeight","dialogZIndex","numberListSeparators","autoEditNewCondition","onConditionRendered","onGetConditionRenderer","onGetExpressionRenderer","onGetOperatorRenderer","onOperatorRendered","onGetAddRowRenderer","defaultQuery","landingSlot","contains","getWidgetType","init","context","setOptions","detachQueryObserver","attachQueryObserver","removeDropContainer","model_1","getContext","registerDropContainer","scopes","onDragEnter","dragImage","showLandingSlot","checkAttrProperty","dropEffect","Forbid","onDragOver","onDragLeave","hideLangindSlot","onDrop","getQuery","descr","Add","destroyCore","getEntitiesMenu","entitiesMenu","getConditionMenu","conditionMenu","getLinkTypeMenu","linkTypeMenu","getConditionGroupMenu","isRoot","rootGroupMenu","groupMenu","queryEventCallbackId","edata","focusedBefore","isFocusInside","Modify","modifyCondition_1","autoEdit","condPart","Operator","_isDefaultValue","renderer","getConditionRenderer","newEl","toggleConditionPicked","focusElem","autoEdit_1","addCondition_1","parent_1","getParent","parentEl","newCondContainer","lastChild","scrollIntoView","Delete","deleteCondition_1","parent_2","next","nextSibling","prev","previousSibling","focusCond","refresh","refreshCore","dateFormatValue","updateLocaleSettings","editDateFormat","dateFormatDisplay","createEntitiesMenu","createConditionMenus","createLinkTypeMenu","rootContainer","addRowElement","addrowRenderer","getAddRowRenderer","throwError","sourceError","getExpressionRenderer","expression","editor","getIndex","defaultEditor","exprType","attributeMenu","ent","SubQuery","Scalar","ParentColumn","BindToParentColumn","SqlList","CustomList","getOperatorRenderer","filterFunc","entitiesList","getEntitiesTree","addUIC","addUIR","addUIS","adjustEntitiesMenuHeight","showEntitiesMenu","typeList","predicateLinkTypeList","itemList","rows","row","hasAttribute","behavior","ExpressionRenderer","panel","valueEditor","isEditMode","onExpressionRendered","isReadOnly","isEditable","getClassesToAdd","getLabelText","getEmptyText","emptyTextValue","silent","Value","getValue","validateInput","success","showValidationError","isEmptyValue","v","adjustWidth","encChar","fromCharCode","_bs","binary_string","urlatob","bytes","Uint8Array","atob","f36","setCharAt","chr","lcv","__kt","ck","part1","infoBytes","part2","ed","majVer","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","_inherits","Router","_React$Component","_temp","_ret","computeMatch","getChildContext","router","route","isExact","componentWillMount","_this2","Children","count","componentWillReceiveProps","nextProps","componentWillUnmount","only","Component","isRequired","contextTypes","childContextTypes","patternCache","cacheCount","compilePath","pattern","cacheKey","strict","sensitive","cache","re","compiledPattern","matchPath","_options","_options$exact","exact","_options$strict","_options$sensitive","_compilePath","exec","reduce","memo","a11y","bool","disabled","direction","oneOf","isOpen","nav","addonType","inNavbar","setActiveFromChild","preventDefaultKeys","Dropdown","addEvents","handleDocumentClick","handleKeyDown","removeEvents","handleMenuRef","containerRef","createRef","menuRef","_proto","getContextValue","dropup","onMenuRef","componentDidMount","handleProps","componentDidUpdate","prevProps","getContainer","getMenu","getMenuCtrl","_$menuCtrl","getMenuItems","_this3","clickIsInContainer","clickIsInMenu","_this4","isTargetMenuItem","isTargetMenuCtrl","isTab","ctrlKey","$menuitems","_$menuitems","_$menuitems2","_$menuitems3","charPressed","firstLetter","textContent","_classNames","_omit","attrs","subItemIsActive","dropdownItem","dropdown","Provider","onKeyDown","i18n","mapInfo","info","mappers_1","mappers","mapper","addMapper","getLocales","allLocales","englishName","displayName","currentLocale","localeId","setLocale","setCurrentLocale","newLocale","texts","defaultLocale","textsObj","resText","argLength","settings","getOneLocaleSetting","monthNum","shortMonthNames","longMonthNames","getShortWeekDayName","dayNum","shortWeekDayNames","getLongWeekDayName","longWeekDayNames","settingsToUpdate","englishUSLocaleSettings","updateLocaleTexts","updateDefaultTexts","updateLocaleInfo","localeData","localeInfoToUpdate","addLocale","localeInfo","determineSettingsByLocale","now","dateOptions","timeOptions","dateStr","toLocaleDateString","timeStr","toLocaleTimeString","dateFormat","timeFormat","shortDateFormat","shortTimeFormat","loadBrowserLocaleSettings","language","resetLocales","dateTime","buildShortDateTimeFormat","buildLongDateTimeFormat","localeSettings","longDateFormat","longTimeFormat","formatWithSequence","toLocaleString","getNumberFromatOptions","convertWithMask","booleanToStr","cachedSequenceFormats","values_2","Number","reverse","digits","useGrouping","minimumIntegerDigits","currency","minimumFractionDigits","editTimeFormat","ButtonOK","ButtonCancel","Yes","No","True","False","equtils","combinePath","path1","path2","strToLinkType","Any","displayFormat","convertValue","fromDataType","toDataType","Autoinc","resInt","resFloat","LinkType","Expression","_value","subQuery","getExpressionIndex","setContent","expressionChanged","hasText","tryCopyValueFrom","SimpleColumnRendererCP","renderExpressionBlock","renderBaseExpression","attrCaption","getAttributeCaption","baseAttr","stopPropagation","baseExpressionItemSelectedCallback","attrid","fireColumnChanged","getUIS","changeTypeHandler","keepShowingButtons","functionMenu","processExtraButtonMenuItems","isMouseOverBlock","dispatchEvent","changeTypeToCustomSql","newElement","changeTypeToAggr","evt","getExtraButtonMenuItems","funcCaption","funcs","getAggrFunctions","toInclude","funcAllowed","funcs_1","getAppliedTypesOrDefault","areCustomExpressionsAllowed","ListExpressionRenderer","menuItemsList","showWhenReady","adjustNewValue","getValueText","_c","emptyTextList","getListName","renderEditor","fillMenuItemsList","renderMenuBlock","showLoader","hideLoader","showEditor","labelElement","getValuesAsArray","selLength","closeEditor","multiSelect","queryPanel","onComplete","takeDefaultValue","itemLen","isDefault","CustomListExpressionRenderer","isLoading","onClickTemp","loaderElement","listName","listRequestHandler","getListRequestHandler","constLists","editorId","editorParams","extraParams","list","SqlListExpressionRenderer","ResultFacet","dialogTitle","canDisplayFlag","downloadAllClickHandler","chunksToLoad","getChunksForLoading","resultTable","recordsToLoad","getTotal","getCachedCount","ds","getDialogService","dlg","openProgress","onSubmit","determinated","loadedRecords","chunksToLoad_1","chunk","getRows","limit","chunkSize","then","progress","updateContent","updateProgress","catch","contentDiv","displayMessageDiv","showSettingsDialog","Promise","resolve","renderDialogContent","open","cancelable","closable","submited","submitSettingsDialog","onCancel","fieldsContainer","renderFormFields","form","cont","tabNameInput","getServices","canDisplay","showUnableDisplayMessage","link","hideUnableDisplayMessage","getType","cachedChunks","getCachedChunks","diffOffset","numbOfChunks","lastChunk","diff","onResize","ChartType","View","domRoots","defaultViewOptions","enableExport","disableConfirmationOnQueryChange","queryFileExtensions","clearResultOnQueryChange","showChart","showProcessIndicator","widgets","resultGrid","addColumns","resultOptions","resetContext","renderSpinner","defaultErrorHandler","registerDialogServiceResolver","shadowRoots","initOptions","initWidgets","initDone","columnsPanel","entitiesPanel","resultPanel","columnsBar","filterBar","processBar","statementPanel","changeLocale","queryNameLabel","facetsPanel","resultCount","exportButton","slots","resultCountSpan","exportButtons","epElement","resolveElement","entitiesPanelWidget","createEntitiesPanelWidget","addWidget","cpElement","columnsPanelWidget","createColumnsPanelWidget","cbElement","columnsBarWidget","createColumnsBarWidget","qpElement","queryPanelWidget","createQueryPanelWidget","resultPanelSlot","resultGridWidget","gridPanel","createResultGridWidget","chartWidget","chartPanel","createChartWidget","qnElement","queryNameWidget","createQueryNameWidget","fbElement","filterBarWidget","createFilterBarWidget","sbElement","sortingBarWidget","createSortingBarWidget","pbElement","processWidget","createProcessWidget","stElement","statementPanelWidget","createStatementPanelWidget","clElement","widget","createLocaleWidget","fpElement","resultFacetPanelWidget","createResultFacetsPanel","ewElement","exportWidget","createExportWidget","resultCountSlot","elementOrId","domRoot","getElementById","resolveElementsByClassName","elemList","displayRecordsCount","handlers","onError","easyGrid","columnTitleFormat","titleElementFormat","paging","setDialogService","dialogService","executeQuery","fetchData","showResultSpinner","page","pageSize","hideResultSpinner","toggleExportButtons","refreshWidgets","Result","enableExportButtons","disableExportButtons","_spinnerDiv","slotElement","chartWidgetResolver","resultGridResolver","detach","destroy","localeWidget","statementWidget","g","Function","toObject","propIsEnumerable","propertyIsEnumerable","test1","getOwnPropertyNames","test2","test3","letter","from","to","isEmptyChildren","Route","computedMatch","component","nextContext","_context$router","staticContext","compileGenerator","compiledGenerator","compile","generatePath","pretty","outline","onClick","close","Button","_this$props","ariaLabel","attributes","btnOutlineColor","defaultAriaLabel","hasSymbols","Symbol","toStr","origDefineProperty","supportsDescriptors","predicates","ManagerReferenceNodeContext","ManagerReferenceNodeSetterContext","Manager","newReferenceNode","referenceNode","forceUpdate","setReferenceNode","_interopRequireDefault","_CSSTransition","_ReplaceTransition","_TransitionGroup","_Transition","Transition","TransitionGroup","ReplaceTransition","CSSTransition","CarouselItem","startAnimation","onEnter","onEntering","onExit","onExiting","onExited","isAppearing","CustomEvent","isIn","slide","directionClassName","orderClassName","itemClasses","EditorTag","Edit","DataModel","mainEntity","operators","rootEntity","aggrFunctions","dateMacros","timeMacros","links","getMainEntity","loadFromJSON","stringJson","newOperator","entroot","aggrfuncs","newAggrFunc","getObject","createEntity","createEntityAttr","getRootEntity","getEditorById","getEntityAttrById","lookupAttr","entity","_listByEntityWithFilter","subEntities","subEntityCount","entIdx","newEnt","isEntity","attrCount","attrIdx","_listByEntity","resultEntities","resultAttributes","useInResult","useInSorting","newOpts","includeRootData","sortCheck","addOrUpdateOperator","op","defaultOperand","appliedTypes","runThroughEntities","removeOperator","soft","getOperatorIdsByDataType","Guid","BCD","Bool","buildQueryPath","tree","createTreeNodeFromEntity","setParents","subEnentity","getEntitiesInQuery","entities","columns_1","addEntityByExpression","rootCond","fillEntitiesByCondtionGroup","findAggrFunctionById","_d","_e","findLink","entityFrom","entityTo","getLinksByEntity","getEntitiesTreeWithFilter","getFullEntityPathByAttr","sep","getEntityPathByAttr","getFirstUICAttr","getFirstUICAttrInEntity","processAttribute","processEntity","scan","getFirstAttributeByFilter","stop","findOperatorById","opCount","getDefaultOperatorIdForAttr","defaultOperator","funcTexts","getAggrFunctionFormat","funcFormat","defOperand","copyFrom","defValue","defText","operands","getDateMacroValue","macro","isDateMacro","setDate","setMonth","getDay","setFullYear","getDateOrMacroValue","macroValue","getTimeMacroValue","isTimeMacro","setMinutes","setHours","getTimeOrMacroValue","time","t","getAllDateMacros","getAllTimeMacros","__assign","EqEditorTag","SortDirection","QueryColumn","_isHidden","_id","blockId","isHidden","setHidden","colData","cptn","srt","srtidx","CondTag","MapAlignment","alignment","Left","GridColumnAlign","LEFT","Center","CENTER","Right","RIGHT","NONE","DEFAULT_WIDTH_NUMBER","DEFAULT_WIDTH_DATE","DEFAULT_WIDTH_BOOL","DEFAULT_WIDTH_STRING","ROW_NUM_WIDTH","GridColumn","grid","isRowNum","_label","align","dataColumn","coltype","cellRendererStore","getCellType","NUMBER","DATETIME","BOOL","cellRenderer","getDefaultRenderer","getDefaultRendererByType","onGetCellRenderer","label","GridColumnList","columnList","sync","hasRowNumCol","rowNumCol","onSyncGridColumn","put","move","newIndex","oldIndex","removeAt","CellRendererType","DFMT_REGEX","StringCellRendererDefault","cellElement","NumberCellRendererDefault","strValue","DateTimeCellRendererDefault","BoolCellRendererDefault","GridCellRendererStore","renderers","defaultRenderers","registerRenderer","setDefaultRenderer","STRING","columnType","cellType","rendererType","getRenderer","ColumnsBar","activeColumn","showHeader","showColumnTitles","allowAggrColumns","allowDuplicates","allowCustomExpressions","allowSorting","alwaysShowButtons","accentActiveColumn","menuSearchBoxAfter","columnRenderedCallback","customExpressionText","landingIndex","sortMenuList","moveMenuList","pageX","pageY","hideLandingSlot","moveColumnCore","modifyColumn_1","colEl","columnsBlock","renderColumn","addColumn_1","addColumnElement","deleteColumn_1","addRowButton","elements","columnSlots","landingPos","newLandingIndex","colSlot","absPos","colWidth","colHeight","paddingWidth","insertBefore","onProcessStartCore","onProcessEndCore","renderAddRowButton","addNewColumn","createSortMenu","createMoveMenu","renderColumnButtonsBlockMobile","columnButtonsBlockMobileArrow","columnButtonsBlockMobile","buttonsBlockSortingButton","currentColumnRenderer","buttonSortingClickHandler","toggleColumnPicked","hideColumnButtonsMobile","buttonsBlockTypeButton","buttonTypeClickHandler","buttonsBlockDeleteButton","buttonDeleteClickHandler","showColumnButtonsMobile","columnRenderer","columnElement","currentActiveColumn","rect","offsetTop","offsetLeft","getColumnRenderer","columnSlot_1","onShowButtonsMobile","onHideButtonsMobile","getColumnByAttrId","getDefaultColumnCaption","colToAdd","checkColumnsArray","checkColumn","newColBlock","i_1","colJson","qcolJson","getColumnsBlock","sortMenu","moveMenu","colToMove","globalCounter","SimpleColumnRendererCB","bar","ConditionAction","ConditionRenderer","autoAppear","coreRender","SimpleConditionRenderer","isInJoin","isParameterized","getLevel","arrFormat","replaceChild","renderCheckbox","renderConjunction","mayAppear","this_1","toAppear","exprRenderer_1","adjustButtonsVisibility","renderButtonsBlock","enterButtonBlock","buttonsBlock","leaveButtonBlock","setConditionParameterized","setParameterized","setConditionInJoin","setInJoin","isFirstConditionInGroup","linkTypeStr","conjuctionText","includes","isConditionActive","showButtons","conditionMenuHandler","AddCondition","entMenu","AddGroup","Enable","Menu","condMenu","getConditionMenuSelectedItems","Parameterized","InJoin","Removal","Addition","arrSelected","onButtonMouseEnter","onButtonMouseLeave","buttonsToShow","getButtonsToShow","BaseElementRenderer","renderLabelElement","displayedText","DropDownRenderer","EasyGridWidget","hasCustomTotalsSettings","autoRefresh","gridOptions","dataTable","onAddColumnClick","addColumnClickHandler","onColumnMoved","columnMovedHandler","calcTotals","totals","getTotalsSettings","calculator","getTotalCalculator","updateTotalsSettings","calcGrandTotals","sourceEvent","columnId","ExportDialog","promise","defFormat","formats","getExportFormats","reject","exportResult","finally","ChartJsWidget","chartLabels","chartColumns","hasChartTypes","Column","Bar","Line","Pie","legend","hasChartJs","Chart","canDraw","initChart","labelColumn","dataColumns","updateChartColumns","drawCore","config","generateConfig","chartCanvas","getChartCanvas","chartDiv","chartContext","getCachedRows","canvases","borderColor","dataColors","datasetName","fillValue","chartType","getChartType","datasets","fill","labels","ChartWidget","supportedChartTypes","potentialLabelColumns","potentialDataColumns","showOnPaging","hideSettings","hasData","hasColumnsForChart","prepareChartData","getSupportedChartTypes","getOptions","getChartTypeName","ct","Area","Candlestick","Combo","Donut","Gauge","Histogram","updateSettings","showLegend","colNum","colType","colLabel","ids_1","getCurrentChartType","headerDiv","mainDiv","chartTypeSelector","sopt","ctkey","settingsDiv","initSettingsDiv","chartSettingsBtn","toggleSettings","drawChart","addContentDiv","delay","settingsHeader","labelDiv","labelColumnSelectorCaption","labelColumnSelector","dataDiv","dataColumnSelectorCaption","dataColumnSelector","getPotentialLabelColumns","getPotentialDataColumns","getLabelColumnIndex","getDataColumnIndex","QueryEx","lType","linking","noop","getThen","ex","LAST_ERROR","IS_ERROR","tryCallOne","tryCallTwo","_75","_83","_18","_38","doResolve","safeThen","onFulfilled","onRejected","handle","Handler","deferred","_47","handleResolved","asap","ret","finale","_71","done","reason","_44","_objectWithoutProperties","isModifiedEvent","metaKey","altKey","shiftKey","Link","handleClick","defaultPrevented","button","MemoryRouter","tokens","defaultDelimiter","delimiter","PATH_REGEXP","escaped","capture","modifier","asterisk","partial","repeat","optional","escapeGroup","escapeString","tokensToFunction","encodeURIComponentPretty","encodeURI","encodeAsterisk","encode","encodeURIComponent","token","segment","isarray","attachKeys","flags","regexpToRegexp","groups","arrayToRegexp","pathToRegexp","stringToRegexp","tokensToRegExp","endsWithDelimiter","Prompt","enable","disable","when","Redirect","isStatic","perform","prevTo","nextTo","computeTo","addBasename","base","createURL","staticHandler","methodName","StaticRouter","handlePush","handleReplace","_this$props2","handleListen","handleBlock","Switch","child","isValidElement","_element$props","pathProp","cloneElement","withRouter","C","wrappedComponentRef","remainingProps","routeComponentProps","WrappedComponent","paramsSerializer","serializedParams","toISOString","hashmarkIndex","__CANCEL__","setContentTypeIfUnset","headers","normalizeHeaderName","DEFAULT_CONTENT_TYPE","defaults","adapter","XMLHttpRequest","process","transformRequest","transformResponse","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","method","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","request","auth","username","password","unescape","Authorization","btoa","fullPath","baseURL","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","responseData","responseType","response","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","read","setRequestHeader","onDownloadProgress","onUploadProgress","upload","cancelToken","abort","send","enhanceError","code","config1","config2","getMergedValue","mergeDeepProperties","prop","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","axiosKeys","otherKeys","Cancel","ButtonDropdown","isArgs","origKeys","keysShim","originalKeys","shim","callee","TypeErr","global","ignoreCase","multiline","dotAll","unicode","sticky","implementation","gOPD","unwrapArray","safeInvoke","setRef","UNMOUNTED","PropTypes","newObj","_react","_reactDom","_reactLifecyclesCompat","initialStatus","parentGroup","transitionGroup","isMounting","appearStatus","unmountOnExit","mountOnEnter","nextCallback","getDerivedStateFromProps","prevState","updateStatus","nextStatus","cancelNextCallback","getTimeouts","mounting","findDOMNode","performEnter","performExit","appearing","timeouts","enterTimeout","safeSetState","onEntered","onTransitionEnd","setNextCallback","doesNotHaveTimeoutOrListener","addEndListener","_default","polyfill","updater","componentWillUpdate","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","isReactComponent","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","newApiName","maybeSnapshot","snapshot","__suppressDeprecationWarning","classNamesShape","timeoutsShape","_propTypes","_ChildMapping","childFactory","handleExited","firstRender","appeared","mounted","prevChildMapping","getInitialChildMapping","getNextChildMapping","currentChildMapping","getChildMapping","handleKeyPress","hoverStart","hoverEnd","handleTouchStart","handleTouchEnd","touchStartX","touchStartY","activeIndex","indicatorClicked","ride","setInterval","newState","clearInterval","_setInterval","interval","cycleInterval","_clearInterval","pause","mouseEnter","mouseLeave","keyboard","previous","enableTouch","changedTouches","screenX","screenY","currentX","currentY","diffX","abs","carouselItems","_this$props3","outerClasses","innerClasses","every","onMouseEnter","onMouseLeave","_carouselItems","_controlLeft","_controlRight","indicators","wrappedOnClick","onClickHandler","wrappedIndicators","controlLeft","controlRight","onTouchStart","onTouchEnd","CarouselControl","directionText","anchorClasses","iconClasses","screenReaderClasses","role","CarouselIndicators","listClasses","indicatorClasses","CarouselCaption","captionHeader","captionText","valid","invalid","bsSize","htmlFor","onChange","CustomFileInput","files","input","getSelectedFiles","multiple","file","dataBrowse","customClass","validationClassNames","labelHtmlFor","popperClassName","placement","placementPrefix","arrowClassName","hideArrow","fallbackPlacement","flip","modifiers","positionFixed","boundariesElement","onClosed","fade","transition","PopperContent","setTargetNode","getTargetNode","getRef","_element","childNodes","targetNode","getContainerNode","renderChildren","_arrowClassName","_popperClassName","extendedModifiers","preventOverflow","popperTransition","referenceElement","outOfBoundaries","arrowProps","scheduleUpdate","createPortal","trigger","Popover","popperClasses","innerClassName","isInDOMSubtree","subtreeRoot","isInDOMSubtrees","subtreeRoots","subTreeRoot","autohide","DEFAULT_DELAYS","TooltipPopoverWrapper","_targets","currentTargetElement","addTargetEvents","removeTargetEvents","showWithDelay","hideWithDelay","onMouseOverTooltipContent","onMouseLeaveTooltipContent","onEscKeyDown","_isMounted","updateTarget","clearShowTimeout","clearHideTimeout","_hideTimeout","_showTimeout","persist","getDelay","_popover","getCurrentTarget","currentTarget","composedPath","clearTimeout","triggers","addEventOnTargets","isBubble","removeEventOnTargets","newTarget","onMouseOver","Tooltip","InputGroupText","TabContext","Alert","closeClassName","closeAriaLabel","closeClasses","alertTransition","getTransitionClass","transitionStatusToClassHash","getHeight","scrollHeight","_transitionStatusToCl","navbar","_Component","collapseClass","EntitiesPanel","queryChangedCallbackId","Model","renderProgressBlock","syncWithColumns","refreshCheckedStateByColumns","showIndicatorOnLoad","progressBlock","showToolbar","showSelectAllButton","showClearSelectionButton","showAddColumnButton","showAddConditionButton","showTooltips","draggableAttributes","showAttributes","showFilterBox","filterBoxMode","autoClearSelection","entityRenderedCallback","attributeRenderedCallback","rootEntityBlock","entTree","entityTreeBlock","renderEntity","createFilterBox","createToolPanel","entityBlock","entityNode","entityChildren","nodeLabel","nodeInput","nodeToggleButton","attrNode","attrLabel","attrInput","currentOffset","isAttributeInTree","firstChild","divElem","checkbox","registerDraggableItem","scope","checkboxes","attrList_2","attrElems","attrElems_1","attrList_1","filterBoxBlock","filterBoxInput","checkFilterAttribute","attrs_1","displayAttrCount","collapseAll","expandAll","defClass","toolPanelBlock","toolSelectAll","toolDeselectAll","toolAddColumns","toolAddCond","toolLeftBlock","toolRightBlock","selectAll","deselectAll","attrElements","attrList","attrElement","attrList_3","attrId_1","attrList_4","attrId_2","labelElem","checkFilterText","entityCaption","filterText","exprColumns","exprColumns_1","entChildren","entElem","firstElementChild","childs","nodeButtons","inputs","EntityAttrKind","HttpMethod","HttpRequest","xhr","queryParams","setHeader","setQueryParam","getXMLHttpRequest","getResponseHeaders","HEADERS_RECEIVED","headerMap","arr_1","line","header","UNSENT","param","repeatString","times","reverseString","MetaEntity","dto","captionPlural","namePlur","ents","newEntity","newAttr","internalProcessEntity","MetaEntityAttr","isPrimaryKey","isForeignKey","isNullable","showOnView","showOnCreate","showOnEdit","showInLookup","Data","ipk","ifk","lattr","lookupEntity","lent","dataAttr","dattr","lookupDataAttr","ldattr","nul","ied","ivis","sov","soc","soe","sil","dfmt","udata","userData","edtr","createValueEditor","ValueEditor","resType","defval","rtype","subType","ColumnAlignment","DataColumn","originAttrId","isAggr","DataColumnList","_dateColumnIdx","colOrDesc","updateDateColumnIdx","getDateColumnIndexes","removeDate","DataRow","toArray","colIdOrIndex","RangeError","EasyGuid","newGuid","r","FormatParser","formatStr","exprNum","tokenText","skipSpaces","npos","npos1","npos2","getToken","EqServiceProvider","modelLoader","queryStorage","querySynchronizer","dataFetcher","valueListResolver","queryFileLoader","totalCalculator","httpClient","defaultHeaders","modelResolver","queryResolver","modelLoaderResolver","queryStorageResolver","querySynchronizerResolver","vlrResolver","dataFetcherResolver","queryFileLoaderResolver","totalCalculatoResolver","getHttpClient","createDataModel","getModelLoader","getQueryStorage","getQuerySynchronizer","getDataFetcher","getValueListResolver","getQueryFileLoader","registerDataModelResolver","resolver","registerQueryResolver","registerModelLoaderResolver","registerQueryStorageResolver","registerDataFetcherResolver","registerQuerySyncronizerResolver","registerValueListResolver","registerQueryFileLoaderResolver","registerTotalCalculator","AggrFunction","sqlExpr","aggrFunction","fmt","dtypes","constValueFormat","isRange","caseIns","Operand","pcnt","newOperand","src","EqValueEditor","statement","Entity","uic","uir","uis","EntityAttr","defOperator","ops","Tree","findNode","Condition","justAdded","_enabled","setParent","removeConditionAt","exprs","newExpr","tuneOperatorForAttr","newOperatorId","oldOperatorId","tuneValueExpressions","oldAttrId","exprCount","oldOperator","oldOperand","valExpr","createValueExpr","oldExpr","areCompitableEditors","oldEditor","newEditor","valueNotDefined","defAttr","ConditionPart","BrowserQueryStorage","keyPrefix","queryListKey","queryKeyPrefix","getQueryList","itemsString","localStorage","getItem","newQuery","queryId","_saveQuery","loadQuery","queryItem","saveQuery","queryList","setItem","removeQuery","queryId_1","removeItem","EqServerModelLoader","sendLoadModelRequest","http","resolveEndpoint","modelLoadingRejectFunc","modelLoadingResolveFunc","EqModelLoader","modelPromise","createModelLoadingPromise","getModelPromise","startModelLoading","EqServerDataFetcher","post","EqServerQuerySynchronizer","syncQuery","EqServerValueListResolver","loadValueList","listId","EqQueryFileLoader","getQueryFile","actionResult","getRequest","blob","Blob","fileName","getResponseHeader","msSaveOrOpenBlob","URL","createObjectURL","download","revokeObjectURL","uploadQueryFile","EqTotalsContainer","levels","setTotals","getLevelDesc","recivedCallbacks","fillTotals","curQuery","keyColumns","keyColumns_1","keyCol","processFunc","field","DefaultTotalsCalculator","getTotals","calculate","maxLevel","Map","resultsObtained","colIdx","EasyQueryDataLoader","loadChunk","dataLoadPromise","fetchDataChunk","loader","dataLoader","resultSet","setTotal","meta","totalRecords","addRow","table","total","hasNext","needTotal","WidgetGroup","EqAction","EqActionResult","EqServerExporter","setFormat","export","filename","DropEffect","touchEventIsDefined","TouchEvent","EqDragEvent","Allow","MouseEvent","touches","Position","DragManager","draggableItem","finishedSuccessfully","mouseDownPosition","containerDescriptors","containerDescriptorIndex","classPrefix","DRAG_DISABLED_ATTR","ondragstart","detectDragging","cursorPosition","startDragging","mouseMoveEventListener","mouseMoveDragListener","beforeDragStart","cloneNode","updateCusror","updateImageClass","updateDragItemPosition","onDragStart","mouseDownListener","mouseUpListener","endDraggind","dropContDesc","event_1","event_2","onDragEnd","descriptorOrSlot","descs","descs_1","detectDragEnterEvent","dragEnterEvent","detectDragLeaveEvent","dragLeaveEvent","event_3","setCursorStyle","event_4","event_5","containerPos","eqDragManager","IsEdge","9","keyDownHandler","mskd","startSelection","selectionStart","onlyLodash","selectionEnd","keyPressHandler","char","charCode","mskd_1","selectionStart_1","selection_1","inputHandler","Calendar","currentDate","dateChanged","onDateChanged","DateTimePicker","calendar","timePicker","setDateTime","currentDateTime","setTime","getDateTime","showCalendar","createCalendar","timePickerIsUsed","showTimePicker","dateTimeChanged","createTimePicker","onTimeChanged","beforeShow","onApply","onDateTimeChanged","DefaultCalendar","daysOfWeek","months","calendarBody","isManualInputChanging","selectedMonth","selectedYear","rerenderMonth","renderManualDateInput","headerTextElem","renderCalendarButtons","getInputDateFormat","newDate","manualInputElem","jump","updateDisplayedDateValue","selectMonthElem","selectYearElem","rerenderSelectYear","minusYear","plusYear","firstDay","daysInMonth","dayOfWeek","cellsDrawnInLastRow","cellsToDraw","DefaultTimePicker","updateDisplayedTime","hoursInput","minutesInput","timeText","slidersBuilder","currentTime","timeChanged","timeToDraw","TimePicker","DefaultDialogService","openConfirm","template","submitable","openPrompt","defVal","submitOnEnter","arrangeParents","beforeOpen","processInput","onDestroy","untrack","DefaultDialog","track","openDialogs","DefaultProgressDialog","getAllDialogs","closeAllDialogs","submitHandler","cancelHandler","keydownHandler","isActiveDialog","windowElement","headerElement","bodyElement","alertElement","footerElement","getRootElement","windowDiv","disableButtons","enableButtons","showAlert","alert","clearAlert","windowDivs","turnOn","contentElement","progressElement","in01","num","ColumnsPanel","allowHiddenColumns","renderBaseElements","minusHeight","headerBuilder","agjustHeaderVisibility","rowElems","rowElem","firstRow","rowHeight","createColumnMenus","scrollToBottom","getSortMenuList","getMoveMenuList","AggrFuncColumnRendererCP","displayFormatParser","getDefaultTitleText","exprBlockBuilder","parseDisplayFormat","functionLink_1","renderColumnTypeButton","changeTypeToSimple","parser","getTokenText","ColumnAction","ColumnRendererCP","buttonMenu","sortingButton","renderSoringButton","createFunctionMenu","createButtonMenu","renderCaptionBlock","renderEnabledButton","renderDeleteButton","renderMenuButton","onMouseClick","inputEl","minWidth","isEndEvent","save","KeyboardEvent","FocusEvent","aEl","sortButtonDirectionCssClass","sortButtonCssClass","Ascending","Descending","Hidden","MoveTop","MoveDown","MoveUp","MoveBottom","SortingNone","SortingAsc","SortingDesc","buttonMenuHandler","isColumnActive","colMenu","getButtonMenuSelectedItems","sortItems","extra","CustomSqlColumnRendererCP","exprBlock","getDefaultValue","AggrFuncColumnRendererCB","getDefaultCaption","ColumnRendererCB","tapedTwice","renderSortingImage","renderSortingButton","renderButtonsBlockMobile","renderCaptionEditorMobile","tapHandler","isFocused","clickEvent","SortingBar","TextRenderer","ConditionGroupRenderer","renderGroupRow","renderConditions","ConditionGroupRowRenderer","buildGroupElements","getGroupTitle","groupTitle","curType_1","onGetMenu","onItemSelected","DomDropDownElementBuilder","_onGetMenu","_onItemSelected","InputExpressionRenderer","inputBuilder","dontProcessBlur","validationResult","inputElement","maxWidth","MIN_WIDTH","inputValue","validateListInput","validateScalarInput","inputValues_1","AttributeExpressionRenderer","attrObj","attrFormat","emptyTextAttribute","AddRowRenderer","OperatorRenderer","isRelatedToSubQuery","operId","related","emptyTextOperator","DateTimeExpressionRenderer","dtp","internalDateFormat","internalTimeFormat","pickerOptions","convertToInternalFormat","dateTimePickerResolver","convertFromInternalFormat","macroText","SubQueryExpressionRenderer","dialogBlockBody","renderColumnBlock","renderQueryPanelBlock","colEntitiesList","colEntitiesMenu","columnBlock","setResultAttributeId","queryPanelBlock","qpId","getSubQuery","attrText","entityPath","parentPanel","subOptions","listItems","listOptions","subQueryPanelListOptions","rootCondEl","minHeight","FilterBar","applyOnClose","showApplyButton","showClearButton","headerClickListener","headerClickHandler","applyBtnClick","applyFilter","clearBtnClick","clearFilter","showQueryPanel","qpBlock","updateHeader","hideQueryPanel","headerTextElement","headerLinkElement","headerArrowBlock","headerArrowElement","textResize","headerIconElement","headerTextBlock","applyFilterCallback","HtmlContentWidget","resultContent","EqHtmlGrid","maxButtonCount","useBootstrap","renderPageNavigator","pageNavigatorPlaceholder","pageCount","pageIndex","buttonClick","pageNum","zeroBasedIndex","firstPageIndex","lastPageIndex","pageItemCssClass","li","newA","Grid","useCustomLocaleSettings","beforeTableRendering","applyDisplayFormats","StatementPanel","Statement","resultStatement","statementText","ProcessWidget","ResultFacetsPanel","activeFacetIndex","showExportButton","showRefreshButton","showMaximizeButton","menuItems","DataGrid","PivotTable","menuItemsFilter","facets","facet","renderProcessBlock","loadFacets","reloadFacets","createAddMenu","validateAddFacetButton","renderActiveFacet","updateTotalRecords","addMenu","recordsDiv","exportDiv","_processBlock","bodyDiv","tabsDiv","tabsUl","renderFacet","addFacetButton","addClickHandler","manageDiv","bdb","exportHandler","refreshHandler","maximizeButton","maximizeHandler","curTotalSettings","gridFacet","getSettings","setTotalsSettings","facetTab","renderFacetTab","renderFacetBody","settingsClickHandler","closeClickHandler","selectClickHandler","refreshFacetTabs","removeFacet","createFacetTab","facetSlot","saveFacets","setActiveFacet","confirmed","createDefaultFacetIfNotExist","isActivate","Facets","Activate","items_1","fd","ChartFacet","hasGoogleCharts","chart","isIE","horizClass","getCurrent","showLegendInput","labelCol","dataCol","showLeg","GoogleChartWidget","google","charts","googleDataView","visualization","DataView","convertToGoogleFormat","convertToGoogleType","convertToGoogleValue","googleTable","DataTable","addRows","setCell","chartOptions","chartArea","getChartAreaWidth","createChart","draw","setColumns","ColumnChart","BarChart","ComboChart","AreaChart","LineChart","PieChart","CandlestickChart","AggrFunc","PivotTableFacet","pivotTable","useRowNumeration","defaultRenderer","cell","rowEl","fontWeight","totalsRow","createAggrFuncSelectBuilder","aggrFunc","csb","aggrfuncs_1","aggrfunc","createColumnsSelectBuilder","allowedTypes","colName","getContextDataTable","totalsCol","colTypes","fieldTypes","colSelect","rowSelect","tmp","rowName","fieldName","Average","updatePivotData","rowIdx","fieldIdx","columnField","columnCol","columnRow","rowLabel","rowType","colValues","rowValues","colValue","rowValue","null_columns","colFieldFormatter","formatNumber","formatDate","Count","new_rows","calcAggrFunc","totalByRow","Min","Max","new_rows_1","total_row","rows_1","totalByCol","Sum","sum","average","MAX_SAFE_INTEGER","fieldValue","MIN_SAFE_INTEGER","DataTableFacet","getDefaultTotalsSettings","reinitGrid","gridResolver","hasTotals","renderFields","dropSettings","getSelectedSettings","wereTotalsColumnsChanged","TotalsDialog","inputs_1","calcSubTotals","fieldsClass","cols_1","sCol","ExportWidget","clickHandler","DataFilterView","clearResult","syncQueryOnChange","widgetType","applyQueryFilter","DataFilterViewJQuery","ConditionEx","readOnly","parameterized","inJoin","newCond","QueryColumnEx","EqServerQueryStorage","queries","queryName","delete","getPromise","DataModelEx","findPath","addPathToTree","pathAdded","newNode","curPath","curStep","nextStep","passedEntities","pathFound","curStep_1","checkPath","nextStep_1","endPoint","entityLinks","entityLinks_1","entity2","newPath","EqTotalsCalculator","levelPromises","processLevel","all","levelData","buildLevelData","valueColumns","valueColumns_1","valueCol","onUnhandled","allRejections","matchWhitelist","rejections","whitelist","DEFAULT_WHITELIST","displayId","logged","logError","onHandled","_56","stack","some","cls","rawAsap","task","queue","requestFlush","flushing","flush","currentIndex","capacity","newLength","makeRequestCallFromTimer","handleTimer","timeoutHandle","intervalHandle","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","observer","observe","characterData","valuePromise","TRUE","FALSE","NULL","UNDEFINED","ZERO","EMPTYSTRING","remaining","race","normalizeName","normalizeValue","iteratorFor","iterator","support","iterable","Headers","append","consumed","bodyUsed","fileReaderReady","reader","onload","readBlobAsArrayBuffer","FileReader","readAsArrayBuffer","readBlobAsText","readAsText","readArrayBufferAsText","buf","view","chars","bufferClone","byteLength","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","formData","_bodyFormData","searchParams","arrayBuffer","isDataView","_bodyArrayBuffer","rejected","decode","normalizeMethod","upcased","methods","Request","credentials","mode","referrer","decodeURIComponent","rawHeaders","Response","bodyInit","fetch","viewClasses","clone","redirectStatuses","redirect","baseUrl","rootElement","ReactDOM","registerServiceWorker","A","D","refs","B","E","F","K","L","_owner","J","da","N","escape","Q","P","R","S","q","T","z","U","ea","fa","V","O","W","for","u","w","aa","ba","ca","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","G","isPureReactComponent","I","suspense","__self","__source","X","PureComponent","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Consumer","_context","forwardRef","lazy","_ctor","_status","_result","compare","useCallback","useContext","useEffect","useImperativeHandle","useDebugValue","useLayoutEffect","useMemo","useReducer","useRef","useState","Fragment","Profiler","StrictMode","Suspense","unstable_SuspenseList","createFactory","version","unstable_withSuspenseConfig","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","IsSomeRendererActing","Y","Z","extractEvents","phasedRegistrationNames","ha","registrationName","ia","ja","dependencies","ka","qa","la","ma","pa","ra","na","oa","va","wa","xa","za","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","Aa","ya","Ca","stateNode","sa","Ta","Sa","Ua","Va","Ha","Ga","Ja","Ia","Oa","Pa","La","Ka","Na","Qa","Ra","Wa","_debugOwner","_debugSource","Ea","lineNumber","return","ab","ta","Ya","bb","Za","$a","db","eb","fb","jb","ob","lb","nb","mb","kb","pb","acceptsBooleans","qb","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","sb","tb","ub","setAttributeNS","vb","nodeName","xb","stopTracking","_valueTracker","yb","zb","Ab","_wrapperState","initialChecked","Bb","initialValue","controlled","Cb","Db","Eb","Gb","ownerDocument","Hb","Ib","Jb","defaultSelected","Kb","dangerouslySetInnerHTML","Lb","Mb","Nb","Pb","Qb","Tb","nodeType","nodeValue","Ub","Yb","Wb","Vb","Xb","nc","oc","lc","pc","mc","qc","blockedOn","topLevelType","eventSystemFlags","nativeEvent","rc","gc","hc","ic","jc","pointerId","kc","sc","tc","uc","vc","wc","xc","ec","fc","yc","unstable_scheduleCallback","unstable_NormalPriority","zc","Bc","alternate","effectTag","Ac","Cc","Dc","sibling","Ec","Fc","correspondingUseElement","Gc","Hc","dispatchConfig","Ic","_targetInst","Jc","Kc","Lc","Mc","Nc","Interface","isDefaultPrevented","returnValue","Pc","eventPool","Qc","destructor","Oc","getPooled","Vc","Zc","getModifierState","Yc","$c","Bd","targetInst","ancestors","containerInfo","Cd","Ed","xd","Fd","Gd","Hd","hb","Id","Ad","ib","gb","zd","Dd","memoizedState","dehydrated","hydrate","Jd","Xa","Kd","Set","dc","Nd","Ld","Od","Qd","Pd","Rd","is","Sd","Td","Ud","Vd","Wd","Xd","compareDocumentPosition","Yd","HTMLIFrameElement","contentWindow","Zd","contentEditable","fe","autoFocus","ge","__html","je","ke","$d","ce","be","ae","me","oe","pe","qe","ne","ve","ue","te","se","Ge","ye","He","detail","Je","Fe","De","Ke","Ie","ze","Ce","Ne","Me","Pe","Oe","change","Se","Te","Ue","We","Qe","detachEvent","Xe","Re","Ye","attachEvent","Ze","$e","af","ef","hf","ff","gf","pf","of","lf","getSelection","anchorNode","anchorOffset","focusNode","focusOffset","nf","kf","select","mf","sf","rf","vf","tf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","wf","xf","zf","Af","Bf","__reactInternalMemoizedMergedChildContext","uf","Cf","Wf","Jf","Kf","Lf","Mf","Nf","Of","Xf","Yf","Df","Zf","Ef","$f","Rf","Sf","ag","Pf","bg","Ff","Tf","cg","hg","gg","fg","eg","ig","dg","jg","kg","childExpirationTime","lg","firstContext","expirationTime","mg","ng","observedBits","responders","pg","baseState","firstUpdate","lastUpdate","firstCapturedUpdate","lastCapturedUpdate","firstEffect","lastEffect","firstCapturedEffect","lastCapturedEffect","qg","rg","suspenseConfig","payload","nextEffect","sg","tg","updateQueue","ug","vg","wg","og","xg","yg","zg","Ag","Bg","Eg","Jg","shouldComponentUpdate","Kg","contextType","Ig","_reactInternalFiber","Lg","Mg","Dg","Og","_stringRef","Pg","Qg","Rg","Sg","elementType","Tg","Ug","Vg","Fa","Ng","wb","bh","Yg","ah","$g","Zg","namespaceURI","dh","eh","fh","gh","memoizedProps","revealOrder","responder","uh","vh","wh","jh","kh","lh","ih","xh","yh","rh","th","nh","mh","ph","sh","zh","oh","qh","Ah","Eh","baseUpdate","Fh","Gh","Hh","lastRenderedReducer","dispatch","last","lastRenderedState","eagerReducer","eagerState","Ih","deps","Jh","Kh","Lh","Mh","Nh","Fg","Cg","Gg","Hg","Rh","Sh","Th","pendingProps","Uh","Qh","Ph","Oh","Vh","Wh","Xh","Xg","Wg","Zh","$h","ai","bi","ci","di","ei","fi","gi","Yh","getDerivedStateFromError","hi","pendingContext","ji","fallback","unstable_avoidThisFallback","ii","ki","isBackwards","rendering","tail","tailExpiration","tailMode","mi","ri","si","ti","vi","wi","xi","yi","Di","Ei","__reactInternalSnapshotBeforeUpdate","Fi","Gi","Hi","Ii","Ji","Ki","_reactRootContainer","onclick","Li","Sb","wasMultiple","Mi","Vf","Ni","ui","Oi","Qi","Ri","Si","Ti","componentDidCatch","Ui","componentStack","Zi","$i","uj","timeoutMs","sj","tj","wj","Yi","xj","rj","ej","yj","zj","Aj","lastExpiredTime","firstPendingTime","Bj","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Wi","bj","hj","finishedWork","finishedExpirationTime","Jj","aj","cj","Kj","dj","lastSuspendedTime","Lj","ij","nj","mj","he","jj","Vi","fj","kj","busyMinDurationMs","busyDelayMs","gj","Mj","Nj","Oj","firstBatch","_defer","_expirationTime","_onComplete","Pj","Qj","Rj","ie","lj","pingCache","Pi","Sj","Tj","Uj","Gf","Vj","Xi","oi","Ob","createElementNS","ni","qi","Wj","firstSuspendedTime","de","rangeCount","Fb","ee","focusedElem","selectionRange","Xj","createRange","setStart","removeAllRanges","addRange","setEnd","Bh","cc","Zj","Ch","Dh","pk","zi","Ai","Bi","yd","Ci","yf","Qf","oj","pj","qj","Yj","ak","bk","dk","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","ek","Ma","pendingChildren","fk","gk","hk","ik","jk","kk","vj","_root","_callbacks","_next","_hasChildren","_didComplete","_children","lk","_didCommit","_onCommit","mk","nk","_internalRoot","qk","rk","sk","tk","uk","vk","Ba","injectEventPluginOrder","injectEventPluginsByName","Da","rb","xlinkHref","Rb","mathml","svg","MSApp","execUnsafeLocalFunction","animationend","animationiteration","animationstart","transitionend","animation","Zb","$b","ac","bc","cancelBubble","eventPhase","bubbles","timeStamp","isTrusted","Rc","animationName","elapsedTime","pseudoElement","Sc","clipboardData","Tc","Uc","relatedTarget","Wc","Esc","Spacebar","Up","Down","Del","Win","Apps","Scroll","MozPrintableKey","Xc","8","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","Alt","Control","Meta","Shift","ad","bd","cd","gd","clientX","clientY","fromElement","toElement","movementX","movementY","hd","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","dataTransfer","jd","targetTouches","kd","ld","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","md","nd","od","pd","qd","rd","sd","td","ud","vd","bubbled","captured","eventPriority","wd","getEventPriority","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","Md","menuitem","area","br","embed","hr","img","keygen","wbr","le","we","xe","Ae","documentMode","Be","Ee","beforeInput","compositionEnd","compositionStart","compositionUpdate","Le","datetime","email","range","tel","week","Ve","bf","_isInputEventSupported","cf","pointerEnter","pointerLeave","df","parentWindow","jf","qf","onSelect","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","unstable_runWithPriority","unstable_cancelCallback","unstable_shouldYield","Hf","unstable_requestPaint","If","unstable_now","unstable_getCurrentPriorityLevel","unstable_ImmediatePriority","unstable_UserBlockingPriority","unstable_LowPriority","unstable_IdlePriority","Uf","readContext","useResponder","retryTime","WeakSet","unstable_observedBits","commit","unmount","createBatch","wk","unstable_renderSubtreeIntoContainer","unmountComponentAtNode","unstable_createPortal","unstable_batchedUpdates","unstable_interactiveUpdates","unstable_discreteUpdates","unstable_flushDiscreteUpdates","flushSync","unstable_createRoot","unstable_createSyncRoot","unstable_flushControlled","Events","findFiberByHostInstance","overrideHookState","overrideProps","setSuspenseHandler","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","xk","yk","startTime","priorityLevel","MessageChannel","unstable_forceFrameRate","performance","requestAnimationFrame","cancelAnimationFrame","port2","port1","onmessage","postMessage","unstable_next","unstable_wrapCallback","unstable_continueExecution","unstable_pauseExecution","unstable_getFirstCallbackNode","unstable_Profiling","BrowserRouter","emptyFunction","emptyFunctionWithReset","ReactPropTypesSecret","resetWarningCache","propFullName","secret","getShim","ReactPropTypes","instanceOf","objectOf","checkPropTypes","isAbsolute","spliceOne","resolvePathname","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","hasTrailingSlash","unshift","valueEqual","aValue","bValue","isProduction","HashRouter","_typeof","NavLink","activeClassName","activeStyle","getIsActive","ariaCurrent","escapedPath","_ref2","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","objectPrototype","inheritedComponent","REACT_STATICS","KNOWN_STATICS","getDefaultProps","mixins","caller","arity","_asyncToGenerator","gen","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default","__WEBPACK_IMPORTED_MODULE_1_react__","__WEBPACK_IMPORTED_MODULE_1_react___default","__WEBPACK_IMPORTED_MODULE_2_react_router__","__WEBPACK_IMPORTED_MODULE_3_axios__","__WEBPACK_IMPORTED_MODULE_3_axios___default","__WEBPACK_IMPORTED_MODULE_4__config_config_json__","__WEBPACK_IMPORTED_MODULE_5__components_Gate__","__WEBPACK_IMPORTED_MODULE_6_reactstrap__","__WEBPACK_IMPORTED_MODULE_7__components_Layout__","__WEBPACK_IMPORTED_MODULE_8__components_KIQAdhoc__","_slicedToArray","sliceIterator","_arr","_n","_s","App","setIsLoading","isAuthed","setIsAuthed","checkAccess","sessionStorage","axios","API_URL","isValid","justifyContent","alignItems","flexDirection","KIQAdhoc","hadRuntime","regeneratorRuntime","oldRuntime","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","makeInvokeMethod","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","defineIteratorMethods","AsyncIterator","invoke","record","__await","unwrapped","enqueue","callInvokeWithMethodAndArg","previousPromise","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","GenStateSuspendedYield","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","iteratorSymbol","Op","$Symbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","inModule","runtime","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","isGeneratorFunction","genFun","ctor","mark","awrap","async","iter","skipTempReset","rootEntry","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","createInstance","defaultConfig","Axios","mergeConfig","instanceConfig","CancelToken","isCancel","promises","spread","isAxiosError","interceptors","InterceptorManager","dispatchRequest","chain","interceptor","fulfilled","getUri","use","eject","throwIfCancellationRequested","throwIfRequested","transformData","fns","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","runClearTimeout","marker","cachedClearTimeout","cleanUpNextTick","draining","currentQueue","queueIndex","drainQueue","run","Item","nextTick","browser","env","argv","versions","addListener","once","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","dir","umask","normalizedName","columnNumber","write","expires","domain","secure","cookie","toGMTString","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","parsed","resolveURL","msie","urlParsingNode","protocol","host","hostname","port","originURL","requestURL","executor","resolvePromise","Gate","textAlign","fluid","Container","containerClass","rowColWidths","rowColsPropType","noGutters","xs","sm","xl","widths","Row","colClasses","colSize","isXs","colWidths","stringOrNumberProp","columnProps","getColumnSizeClass","Col","columnProp","colSizeInterfix","colClass","_colClass","light","dark","full","fixed","expand","getExpandClass","Navbar","NavbarBrand","NavbarText","NavbarToggler","tabs","pills","vertical","horizontal","justified","card","getVerticalClass","Nav","NavItem","_setPrototypeOf","listTag","listClassName","Breadcrumb","ListTag","BreadcrumbItem","onBlur","onFocus","ButtonToggle","toggled","Popper","InnerPopper","initialStyle","pointerEvents","initialArrowStyle","popperNode","updatePopperInstance","arrowNode","eventsEnabled","arrow","applyStyle","updateStateModifier","offsets","popper","styles","arrowStyles","popperInstance","destroyPopperInstance","_assertThisInitialize","enableEventListeners","disableEventListeners","setPopperNode","getPopperStyle","getPopperPlacement","getOutOfBoundariesState","setArrowNode","getArrowStyle","placements","deepEqual","actual","expected","objEquiv","isUndefinedOrNull","copy","isArguments","aIsRegex","isRegex","bIsRegex","aIsBuffer","bIsBuffer","objectKeys","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","$window","hasAutomationEqualityBug","equalsConstructorPrototypeIfNotBuggy","theKeys","skipProto","skipConstructor","hasToStringTag","isStandardArguments","isLegacyArguments","supportsStandardArguments","NumberIsNaN","regexExec","tryRegexExecCall","lastIndex","that","bound","binder","boundLength","boundArgs","Empty","define","getPolyfill","flagsBound","regex","proto","tryDateObject","microtaskDebounce","called","taskDebounce","scheduled","timeoutDuration","functionToCheck","getStyleComputedProperty","css","getParentNode","getScrollParent","_getStyleComputedProp","getReferenceNode","reference","isIE11","isIE10","getOffsetParent","noOffsetParent","nextElementSibling","isOffsetContainer","getRoot","findCommonOffsetParent","element1","element2","Node","DOCUMENT_POSITION_FOLLOWING","commonAncestorContainer","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","subtract","getBordersSize","axis","sideA","sideB","getSize","computedStyle","getWindowSizes","getClientRect","sizes","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","isFixed","getFixedPositionOffsetParent","getBoundaries","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","refRect","rects","sortedAreas","filteredAreas","computedPlacement","variation","getReferenceOffsets","getOuterSizes","marginRight","getOppositePlacement","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","check","findIndex","cur","runModifiers","ends","isDestroyed","flipped","originalPlacement","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","toCheck","willChange","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","isBody","passive","setupEventListeners","updateBound","scrollElement","removeEventListeners","setStyles","unit","setAttributes","arrowElement","applyStyleOnLoad","modifierOptions","getRoundedOffsets","shouldRound","_data$offsets","noRound","referenceWidth","popperWidth","isVertical","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","devicePixelRatio","isFirefox","prefixedProperty","invertTop","invertLeft","isModifierRequired","requestingName","requestedName","requesting","_requesting","requested","_data$offsets$arrow","sideCapitalized","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","getOppositeVariation","clockwise","counter","validPlacements","placementOpposite","flipOrder","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","keepTogether","toValue","parseOffset","basePlacement","useHeight","fragments","frag","divider","splitRegex","mergeWithPrevious","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","shiftvariation","shiftOffsets","subtractLength","isBrowser","longerTimeoutBrowsers","supportsMicroTasks","debounce","MSInputMethodContext","classCallCheck","createClass","protoProps","staticProps","onLoad","Defaults","jquery","Utils","PopperUtils","_react2","_implementation","_implementation2","objectIs","createEventEmitter","changedBits","onlyChild","createReactContext","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","_gud2","emitter","MAX_SIGNED_31_BIT_INT","_propTypes2","_Component2","_temp2","_ret2","_len2","_key2","_gud","_warning","Reference","InnerReference","Boolean","refHandler","ButtonGroup","ButtonToolbar","DropdownItem","getTabIndex","noFlipModifier","directionPositionMap","DropdownMenu","position1","position2","poperPlacement","poperModifiers","popperPositionFixed","combinedStyle","handleRef","tagRef","caret","DropdownToggle","_addClass","_removeClass","_this$getClassNames","getClassNames","removeClasses","_this$getClassNames2","reflowAndAddClass","appearClassName","doneClassName","enterClassName","_this$getClassNames3","_this$getClassNames4","_this$getClassNames5","isStringClassNames","_this$getClassNames6","_hasClass","baseVal","hasClass","replaceClassName","origClass","classToRemove","_args","handleEnter","handleLifecycle","handleEntering","_len3","_key3","handleEntered","_len4","_key4","handleExit","_len5","_key5","handleExiting","_len6","_key6","_len7","_key7","originalArgs","_child$props","inProp","_React$Children$toArr","mapFn","mergeChildMappings","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","getProp","nextChildMapping","hasPrev","prevChild","isLeaving","pill","Badge","inverse","Card","CardGroup","CardDeck","CardColumns","CardBody","CardLink","CardFooter","CardHeader","CardImg","cardImgClassName","CardImgOverlay","controls","autoPlay","defaultActiveIndex","goToIndex","UncontrolledCarousel","animating","slides","alt","altText","CardSubtitle","CardText","CardTitle","CustomInput","inline","_rest","wrapperClasses","PopperTargetHelper","popperManager","UncontrolledPopover","defaultOpen","PopoverHeader","PopoverBody","multi","animated","striped","barClassName","barStyle","barAriaValueText","barAriaLabelledBy","Progress","percent","progressClasses","progressBarClasses","progressBarProps","FadePropTypes","centered","scrollable","labelledBy","backdrop","onOpened","wrapClassName","modalClassName","backdropClassName","contentClassName","external","backdropTransition","modalTransition","unmountOnClose","returnFocusAfterClose","trapFocus","propsToOmit","_originalBodyPadding","getFocusableChildren","handleBackdropClick","handleBackdropMouseDown","handleEscape","handleStaticBackdropAnimation","handleTab","manageFocusAfterClose","clearBackdropAnimationTimeout","showStaticBackdropAnimation","setFocus","_dialog","modalIndex","openCount","getFocusedChild","currentFocus","focusableChildren","_mouseDownElement","totalFocusable","focusedIndex","_backdropAnimationTimeout","_triggeringElement","_mountContainer","modalOpenClassName","modalOpenClassNameRegex","renderModalDialog","dialogBaseClass","isModalHidden","modalAttributes","onMouseDown","onKeyUp","hasTransition","Backdrop","Portal","defaultNode","wrapTag","ModalHeader","closeButton","WrapTag","closeIcon","ModalBody","ModalFooter","bordered","borderless","hover","responsive","responsiveTag","Table","ResponsiveTag","responsiveClassName","getHorizontalClass","ListGroup","Form","tooltip","FormFeedback","validMode","FormGroup","FormText","plaintext","addon","Input","checkInput","isNotaNumber","fileInput","textareaInput","selectInput","rangeInput","formControlClass","InputGroup","InputGroupAddon","InputGroupButtonDropdown","Label","heading","middle","Media","defaultTag","media","Pagination","PaginationItem","PaginationLink","defaultCaret","activeTab","TabContent","activeTabId","TabPane","tabId","getClasses","Jumbotron","Toast","toastTransition","ToastBody","icon","tagClassName","ToastHeader","iconProp","xmlns","preserveAspectRatio","focusable","handleDisabledOnClick","ListGroupItem","ListGroupItemHeading","ListGroupItemText","ListInlineItem","UncontrolledButtonDropdown","toggler","toggleEvents","UncontrolledCollapse","togglers","UncontrolledDropdown","onToggle","UncontrolledTooltip","Spinner","initCustomEvent","Layout","__WEBPACK_IMPORTED_MODULE_0_react__","__WEBPACK_IMPORTED_MODULE_0_react___default","__WEBPACK_IMPORTED_MODULE_1_reactstrap__","_createClass","__WEBPACK_IMPORTED_MODULE_1__easyquery_ui__","__WEBPACK_IMPORTED_MODULE_3__AdhocUI__","QUERY_KEY","AdvancedSearchView","viewOptions","serverExporters","loadModelOnStart","loadQueryOnStart","defaultModelId","showColumnCaptions","alwaysShowButtonsInPredicates","useEndpoint","useEnterprise","modified","loadQueryFromLocalStorage","dataJson","msMatchesSelector","webkitMatchesSelector","HttpResponseError","HttpClient","customPayload","Get","Post","Put","contentType","XHR","beforeEachRequest","onRequest","dataToSend","responseContentType","decodeArrayBuffer","responseObj","uintArray","onloadend","DONE","HttpActionResult","onfulfilled","onrejected","onfinally","MetaData","vers","editors","listByEntityWithFilter","listByEntity","addDefaultValueEditors","addOrUpdateValueEditor","entityText","EasyDataTable","_chunkSize","chunkMap","_columns","colDesc","rowData","createRow","endIndex","lbChunk","ubChunk","allChunksCached","resultArr","firstChunkOffset","chunks","chunks_1","getRow","dataOrRow","dateIdx","rowOrValue","newRow","dateIdx_1","getLastChunk","createChunk","cachedTotal","getLastChunkIndex","acc","EventEmitter","silentMode","getEventRecByType","eventCallback","eventCallbacks","eventRec","eqevent_1","emitAllFunc","enterSilentMode","exitSilentMode","isSilent","eqconsts","ConstLists","SpecDateValues","SpecTimeValues","BooleanValues","GoogleDataConverter","tableObj","getNumberOfColumns","getNumberOfRows","getColumnObject","colIndex","getColumnId","getColumnLabel","getColumnType","getColumnProperties","googleDataTypeToDataType","rowIndex","convertTo","colCount","rowCount","googleDataType","EqContext","internalListCache","endpointVarsRegex","_predefinedListRequestHandlers","onResult","macroName","_listRequestHandler","newParams","procParams","attrPattern","dynamicParam","paramValue","requestPrams","getListFromCache","processed","predefinedHandler","addListToCache","baseEndpoint","eqServices","exporters","endpoints","registerExporter","registerServerExporter","exporter","getExporter","addDefaultExporters","endpointKey","matches_1","opt","optVal","setEndpoint","setEnpointIfNotExist","setDefaultEndpoints","endpointBase","defaultQueryId","listCache","setExternalListCache","endpoint","onInit","afterLoadModel","afterLoadQuery","afterSyncQuery","afterFetchData","afterExportResult","onProcessStart","onProcessEnd","msg","msgTitle","msgText","onListRequest","beforeLoadModel","beforeLoadQuery","beforeSyncQuery","beforeFetchData","beforeExportResult","initialQuery","useDefaultExporters","widgetOptions","loadDefaultModel","fireEvent","getAllWidgetsByType","getWidgetByType","belongsToGroup","addQueryChangedCallback","removeQueryChangedCallback","dataModel","loadModelFromData","modelPlainData","setDefaultModelId","startProcess","endProcess","loadModel","externalListCache","getListCacheKey","resetListCache","handlerId","getBaseEndpoint","GetValueList","Success","errorMessage","LoadModel","callWhenModelLoaded","callFunc","LoadQuery","Properties","loadQueryList","startQueryListLoading","LoadQueryList","useStorage","onNewQuery","NewQuery","queryData","SaveQuery","RemoveQuery","SyncQuery","querySaved","QueryStatus","processQueryForTotals","GetQueryFile","UploadQueryFile","FetchData","fetchDrillDownData","ExportResult","prevEntity","totalsSettings","sCols","Widget","EqVersionInfo","major","minor","NewQueryName","Today","Yesterday","Tomorrow","FirstDayOfMonth","LastDayOfMonth","FirstDayOfWeek","FirstDayOfYear","FirstDayOfNextWeek","FirstDayOfNextMonth","FirstDayOfNextYear","Now","HourStart","Midnight","Noon","Entities","Attributes","Operators","AggreateFunctions","EasyGrid","pagination","paginationOptions","defaultDataGridOptions","fixHeightOnFirstRender","syncGridColumns","viewportRowsCount","showActiveRow","rowsOnPagePromise","containerInitialHeight","prevRowTotals","_activeRowIndex","setSlot","getElementsByClassName","onRowClick","onRowDbClick","onColumnChanged","onColumnDeleted","onPageChanged","onActiveRowChanged","activeRowIndex","getData","clearDOM","rootDiv","renderHeader","renderBody","renderFooter","footerDiv","gridContainer","updateHeight","bodyCellContainerDiv","bodyHeight_1","sbHeight","bodyViewportDiv","headerViewportDiv","headerCellContainerDiv","headerRowDiv","renderColumnHeader","renderAddColumnButton","containerWidth","colBuilder","colDiv","showProgress","getRowsToRender","hideProgress","calcTotals_1","keyCols_1","getTotalsKeyCols","updateTotalsState","tr","renderRow","showGrandTotalsOnEachPage","isLastPage","onVieportKeydown","calcSubTotalsCols","keyCols","isLast","changeLevel","totalsOpts","totalColOpts","renderTotalsRow","rowBuilder","getTotalsTitle","renderCell","ensureRowVisibility","rowOrIndex","getDataRow","rowRect","viewportRect","rowTop","rowBottom","viewportHeight","windowHeight","footerPaginateDiv","pageInfoBlock","renderPageInfoBlock","pageInfoDiv","fistPageRecordNum","lastPageRecordNum","getLocalIndexByGlobal","getGlobalIndexByLocal","indexGlobal","colindex","paginateDiv","buttonClickHandler","addColumnsTitle","colElems","colPos","updateActiveRow","activeRow","getActiveRow","DefaultDateTimePicker","renderButtons","nowButton","submitButton","calendarSlot","timePickerSlot","anchorPos","parentPos","GridPageInfo","ButtonApply","ButtonNow","DisplayFormatParser","ColumnRendererSB","BindToParentColumnExpressionRenderer","attrDataType","ManageDrillDownWidget","openDialog","ddQuery","dialogBody","renderColumnsBarBlock","opIdx","columnsBarSlot","queryPanelSlot","submitDialog","destroyDialog","FacetContainer","LocaleWidget","selectEl","locales","locales_1","optionEl","displayLocaleName","QueryNameWidget","mobClass","nameSlot","asteriskSlot","tooltipSlot","disabledClass","dropdownContainerClass","dropdownButtonClass","dropdownContentClass","dropdownShowClass","_querySaveTemplate","queryListMenu","fetchDataButtonClickHandler","fetchDataButtonClick","clearQueryButtonClickHandler","clearQueryButtonClick","newQueryButtonClickHandler","newQueryButtonClick","loadQueryButtonClickHandler","loadQueryButtonClick","saveQueryButtonClickHandler","saveQueryButtonClick","copyQueryButtonClickHandler","copyQueryButtonClick","removeQueryButtonClickHandler","removeQueryButtonClick","storageButtonClickHandler","storageDropButtonClick","saveQueryToFileButtonClickHandler","saveQueryToFileButtonClick","loadQueryFromFileButtonClickHandler","loadQueryFromFileButtonClick","exportButtonClickHandler","queryChangedHandler","fetchDataOnChange","ExtraData","outsideClickHandler","currentContent","dropdowns","openDropdown","refreshQueryList","queryListPanel","checkIfQueryModified","exportClass","queryContentInputId","clearQueryButtonId","newQueryButtonId","loadQueryButtonId","saveQueryButtonId","copyQueryButtonId","removeQueryButtonId","storageButtonId","fetchDataButtonId","loadQueryFromFileButtonId","saveQueryToFileButtonId","queryListPanelId","queryContentInput","fetchDataButton","clearQueryButton","newQueryButton","loadQueryButton","saveQueryButton","copyQueryButton","removeQueryButton","storageButton","loadQueryFromFileButton","saveQueryToFileButton","elems","hideExportButtons","storageDropButton","loadQueryFromFileInput","accept","loadQueryFromFileInputSelect","createNewQuery","saveCurrentQuery","copyQuery","showSaveQueryDialog","showQueryChangedDialog","removeCurrentQuery","showNewQueryDialog","header_1","processEl_1","newQueryName","header_2","processEl_2","showRemoveQueryDialog","showSaveQueryToFileDialog","renderSaveToFileDialogBody","fileNameInput","formatSelector","header_3","processEl_3","showLoadQueryFromFileDialog","fillLoadQueryButtonMenu","AdvancedSearchViewJQuery","HtmlDataFilterView","ReportView","reports","reportCache","useReportCache","_reportSaveTemplate","clearReportButtonClickHandler","clearReportButtonClick","newReportButtonClickHandler","newReportButtonClick","loadReportButtonClickHandler","loadReportButtonClick","saveReportButtonClickHandler","saveReportButtonClick","removeReportButtonClickHandler","removeReportButtonClick","updateReportButtonClickHandler","updateReportButtonClick","reload","syncReportOnChange","defaultReportId","changeType","noSync","syncReport","renderReportList","reportId","clearReportButton","newReportButton","loadReportButton","saveReportButton","removeReportButton","updateReportButton","exportButtonsContainer","reportListSlot","newReport","insertIntoReportList","loadReport","reportToLoad","findReportById","reportLoaded","renderReportProps","reportContent","getReportContentFromCache","saveReportContentInCache","setActiveReport","saveCurrentReportAs","savedQuery","removeCurrentReport","report","reportId_1","removeFromReportList","reportIndex","currentReport","lastUpdated","rlItems","renderReportPanels","renderReportItemInList","showExportButtons","reportName","rid","reportsContainer","noReportPanel","indexOfReportById","clearErrors","errorHandler","findReportCacheItem","ReportViewJQuery","AltMenuAttribute","AltMenuConstantExpression","ButtonClose","ButtonNext","ButtonPrev","MenuEnable","MenuParameterization","MenuJoinCond","CmdClear","CmdDelete","CmdToggleEnable","CmdAddCondition","CmdAddCondGroup","ButtonSelectAll","ButtonDeselectAll","ButtonAddColumns","ButtonAddConditions","CmdClickToAddCondition","CmdDeleteRow","ErrIncorrectGroupTitleFormat","ErrNotNumber","ErrIncorrectInteger","ErrIncorrectNumberList","LinkTypeAll","LinkTypeAny","LinkTypeNone","LinkTypeNotAll","ConjAll","ConjAny","ConjNotAll","ConjNone","MsgApplySelection","MsgAs","MsgEmptyList","MsgEmptyListValue","MsgEmptyScalarValue","MsgSubQueryValue","MsgEmptyAttrValue","MsgEmptyOperator","MsgEmptyCustomSql","MsgCustomSql","MsgNoResult","MsgResultCount","MsgOf","ConditionGroupTitle","RootConditionGroupTitle","StrAddConditions","SubQueryDialogTitle","SubQueryColumnTitle","SubQueryEmptyColumn","SubQueryQueryPanelCaption","ButtonSorting","ButtonToAggr","ButtonToSimple","CmdAscending","CmdClickToAddColumn","CmdDeleteColumn","CmdDeleteSorting","CmdDescending","CmdGroupSort","CmdNotSorted","ColTypeAggrFunc","ColTypeCompound","ColTypeGroup","ColTypeSimple","HeaderExpression","HeaderSorting","HeaderTitle","SortHeaderColumn","SortHeaderSorting","StrAddColumns","CustomExpression","CmdMoveToStart","CmdMoveRight","CmdMoveLeft","CmdMoveToEnd","CmdMoveUp","CmdMoveDown","ButtonMenu","CmdToSimple","CmdMoveToFirst","CmdMoveToPrev","CmdMoveToNext","CmdMoveToLast","CmdHiddenColumn","RowButtonTitle","EntityToggle","StrNoFilterDefined","StrNoFilterClickToAdd","HintHours","HintMinutes","RemoveQueryTitle","RemoveQueryContent","NewQueryTitle","NewQueryContent","NewQueryDefName","SaveQueryTitle","SaveQueryContent","SaveQueryDefName","QueryChangedTitle","QueryChangedContent","UpdateQuerySelector","FileNameLabel","SaveQueryToFileDlgTitle","NewReportDefName","NewReportDlgTitle","SaveReportDlgTitle","SaveReportDlgLabel","RemoveReportDlgTitle","RemoveReportContent","TotalRecordsLabel","AddMenuItems","Pivot","LoadDataDlgTitle","LoadDataDlgContent","RefreshBtnTitle","ExportBtnTitle","MaximizeBtnTitle","RestoreBtnTitle","RemoveFacetDlgTitle","RemoveFacetDlgContent","DefaultDlgTitle","DefaultFacetTitle","NewFacetTitle","TabNameLabel","ErrQueryChanged","ErrNotEnoughData","FacetTitle","DlgTitle","DataColumnSelectorLabel","LabelColumnSelectorLabel","ChartTypeSelectorLabel","ShowLegendLabel","SwipeBtnTitle","ColumnFieldSelectorLabel","RowFieldSelectorLabel","CellDataSelectorLabel","TotalsRowLabel","TotalsColLabel","TotalGridLabel","TotalsDlgLabel","GrandTotalsLabel","TotalsDlgTitle","ExportDlgTitle","ExportDlgFmtLabel","createTrialWM","trialDiv","font","eq","korzh","trialOnly","showTrialWM","hideTrialWM","setLicenseKeyEndpoint","keyOrInitCallback","services","AdhocUI","class","float","data-format","register","origin","swUrl","isLocalhost","checkValidServiceWorker","registerValidSW","serviceWorker","registration","onupdatefound","installingWorker","installing","onstatechange","controller","log","ready","unregister"],"mappings":"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","file":"static/js/main.d657becd.js","sourcesContent":["/******/ (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, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\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/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 197);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nif (true) {\n module.exports = __webpack_require__(208);\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (false) {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = __webpack_require__(214)();\n}\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export getScrollbarWidth */\n/* harmony export (immutable) */ __webpack_exports__[\"s\"] = setScrollbarWidth;\n/* unused harmony export isBodyOverflowing */\n/* harmony export (immutable) */ __webpack_exports__[\"l\"] = getOriginalBodyPadding;\n/* harmony export (immutable) */ __webpack_exports__[\"h\"] = conditionallyUpdateScrollbar;\n/* unused harmony export setGlobalCssModule */\n/* harmony export (immutable) */ __webpack_exports__[\"p\"] = mapToCssModules;\n/* harmony export (immutable) */ __webpack_exports__[\"q\"] = omit;\n/* harmony export (immutable) */ __webpack_exports__[\"r\"] = pick;\n/* harmony export (immutable) */ __webpack_exports__[\"w\"] = warnOnce;\n/* unused harmony export deprecated */\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = DOMElement;\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"u\", function() { return targetPropType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"t\", function() { return tagPropType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return TransitionTimeouts; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return TransitionPropTypeKeys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return TransitionStatuses; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"o\", function() { return keyCodes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return PopperPlacements; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return canUseDOM; });\n/* unused harmony export isReactRefObj */\n/* harmony export (immutable) */ __webpack_exports__[\"v\"] = toNumber;\n/* harmony export (immutable) */ __webpack_exports__[\"n\"] = isObject;\n/* unused harmony export isFunction */\n/* harmony export (immutable) */ __webpack_exports__[\"j\"] = findDOMElements;\n/* unused harmony export isArrayOrNodeList */\n/* harmony export (immutable) */ __webpack_exports__[\"m\"] = getTarget;\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return defaultToggleEvents; });\n/* harmony export (immutable) */ __webpack_exports__[\"f\"] = addMultipleEventListeners;\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"k\", function() { return focusableElements; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_prop_types__);\n // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/js/src/modal.js#L436-L443\n\nfunction getScrollbarWidth() {\n var scrollDiv = document.createElement('div'); // .modal-scrollbar-measure styles // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/scss/_modal.scss#L106-L113\n\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n}\nfunction setScrollbarWidth(padding) {\n document.body.style.paddingRight = padding > 0 ? padding + \"px\" : null;\n}\nfunction isBodyOverflowing() {\n return document.body.clientWidth < window.innerWidth;\n}\nfunction getOriginalBodyPadding() {\n var style = window.getComputedStyle(document.body, null);\n return parseInt(style && style.getPropertyValue('padding-right') || 0, 10);\n}\nfunction conditionallyUpdateScrollbar() {\n var scrollbarWidth = getScrollbarWidth(); // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.6/js/src/modal.js#L433\n\n var fixedContent = document.querySelectorAll('.fixed-top, .fixed-bottom, .is-fixed, .sticky-top')[0];\n var bodyPadding = fixedContent ? parseInt(fixedContent.style.paddingRight || 0, 10) : 0;\n\n if (isBodyOverflowing()) {\n setScrollbarWidth(bodyPadding + scrollbarWidth);\n }\n}\nvar globalCssModule;\nfunction setGlobalCssModule(cssModule) {\n globalCssModule = cssModule;\n}\nfunction mapToCssModules(className, cssModule) {\n if (className === void 0) {\n className = '';\n }\n\n if (cssModule === void 0) {\n cssModule = globalCssModule;\n }\n\n if (!cssModule) return className;\n return className.split(' ').map(function (c) {\n return cssModule[c] || c;\n }).join(' ');\n}\n/**\n * Returns a new object with the key/value pairs from `obj` that are not in the array `omitKeys`.\n */\n\nfunction omit(obj, omitKeys) {\n var result = {};\n Object.keys(obj).forEach(function (key) {\n if (omitKeys.indexOf(key) === -1) {\n result[key] = obj[key];\n }\n });\n return result;\n}\n/**\n * Returns a filtered copy of an object with only the specified keys.\n */\n\nfunction pick(obj, keys) {\n var pickKeys = Array.isArray(keys) ? keys : [keys];\n var length = pickKeys.length;\n var key;\n var result = {};\n\n while (length > 0) {\n length -= 1;\n key = pickKeys[length];\n result[key] = obj[key];\n }\n\n return result;\n}\nvar warned = {};\nfunction warnOnce(message) {\n if (!warned[message]) {\n /* istanbul ignore else */\n if (typeof console !== 'undefined') {\n console.error(message); // eslint-disable-line no-console\n }\n\n warned[message] = true;\n }\n}\nfunction deprecated(propType, explanation) {\n return function validate(props, propName, componentName) {\n if (props[propName] !== null && typeof props[propName] !== 'undefined') {\n warnOnce(\"\\\"\" + propName + \"\\\" property of \\\"\" + componentName + \"\\\" has been deprecated.\\n\" + explanation);\n }\n\n for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n rest[_key - 3] = arguments[_key];\n }\n\n return propType.apply(void 0, [props, propName, componentName].concat(rest));\n };\n} // Shim Element if needed (e.g. in Node environment)\n\nvar Element = typeof window === 'object' && window.Element || function () {};\n\nfunction DOMElement(props, propName, componentName) {\n if (!(props[propName] instanceof Element)) {\n return new Error('Invalid prop `' + propName + '` supplied to `' + componentName + '`. Expected prop to be an instance of Element. Validation failed.');\n }\n}\nvar targetPropType = __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.func, DOMElement, __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.shape({\n current: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.any\n})]);\nvar tagPropType = __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.shape({\n $$typeof: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.symbol,\n render: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.func\n}), __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.shape({\n $$typeof: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.symbol,\n render: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.func\n})]))]);\n/* eslint key-spacing: [\"error\", { afterColon: true, align: \"value\" }] */\n// These are all setup to match what is in the bootstrap _variables.scss\n// https://github.com/twbs/bootstrap/blob/v4-dev/scss/_variables.scss\n\nvar TransitionTimeouts = {\n Fade: 150,\n // $transition-fade\n Collapse: 350,\n // $transition-collapse\n Modal: 300,\n // $modal-transition\n Carousel: 600 // $carousel-transition\n\n}; // Duplicated Transition.propType keys to ensure that Reactstrap builds\n// for distribution properly exclude these keys for nested child HTML attributes\n// since `react-transition-group` removes propTypes in production builds.\n\nvar TransitionPropTypeKeys = ['in', 'mountOnEnter', 'unmountOnExit', 'appear', 'enter', 'exit', 'timeout', 'onEnter', 'onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited'];\nvar TransitionStatuses = {\n ENTERING: 'entering',\n ENTERED: 'entered',\n EXITING: 'exiting',\n EXITED: 'exited'\n};\nvar keyCodes = {\n esc: 27,\n space: 32,\n enter: 13,\n tab: 9,\n up: 38,\n down: 40,\n home: 36,\n end: 35,\n n: 78,\n p: 80\n};\nvar PopperPlacements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction isReactRefObj(target) {\n if (target && typeof target === 'object') {\n return 'current' in target;\n }\n\n return false;\n}\n\nfunction getTag(value) {\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n\n return Object.prototype.toString.call(value);\n}\n\nfunction toNumber(value) {\n var type = typeof value;\n var NAN = 0 / 0;\n\n if (type === 'number') {\n return value;\n }\n\n if (type === 'symbol' || type === 'object' && getTag(value) === '[object Symbol]') {\n return NAN;\n }\n\n if (isObject(value)) {\n var other = typeof value.valueOf === 'function' ? value.valueOf() : value;\n value = isObject(other) ? \"\" + other : other;\n }\n\n if (type !== 'string') {\n return value === 0 ? value : +value;\n }\n\n value = value.replace(/^\\s+|\\s+$/g, '');\n var isBinary = /^0b[01]+$/i.test(value);\n return isBinary || /^0o[0-7]+$/i.test(value) ? parseInt(value.slice(2), isBinary ? 2 : 8) : /^[-+]0x[0-9a-f]+$/i.test(value) ? NAN : +value;\n}\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type === 'object' || type === 'function');\n}\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n\n var tag = getTag(value);\n return tag === '[object Function]' || tag === '[object AsyncFunction]' || tag === '[object GeneratorFunction]' || tag === '[object Proxy]';\n}\nfunction findDOMElements(target) {\n if (isReactRefObj(target)) {\n return target.current;\n }\n\n if (isFunction(target)) {\n return target();\n }\n\n if (typeof target === 'string' && canUseDOM) {\n var selection = document.querySelectorAll(target);\n\n if (!selection.length) {\n selection = document.querySelectorAll(\"#\" + target);\n }\n\n if (!selection.length) {\n throw new Error(\"The target '\" + target + \"' could not be identified in the dom, tip: check spelling\");\n }\n\n return selection;\n }\n\n return target;\n}\nfunction isArrayOrNodeList(els) {\n if (els === null) {\n return false;\n }\n\n return Array.isArray(els) || canUseDOM && typeof els.length === 'number';\n}\nfunction getTarget(target, allElements) {\n var els = findDOMElements(target);\n\n if (allElements) {\n if (isArrayOrNodeList(els)) {\n return els;\n }\n\n if (els === null) {\n return [];\n }\n\n return [els];\n } else {\n if (isArrayOrNodeList(els)) {\n return els[0];\n }\n\n return els;\n }\n}\nvar defaultToggleEvents = ['touchstart', 'click'];\nfunction addMultipleEventListeners(_els, handler, _events, useCapture) {\n var els = _els;\n\n if (!isArrayOrNodeList(els)) {\n els = [els];\n }\n\n var events = _events;\n\n if (typeof events === 'string') {\n events = events.split(/\\s+/);\n }\n\n if (!isArrayOrNodeList(els) || typeof handler !== 'function' || !Array.isArray(events)) {\n throw new Error(\"\\n The first argument of this function must be DOM node or an array on DOM nodes or NodeList.\\n The second must be a function.\\n The third is a string or an array of strings that represents DOM events\\n \");\n }\n\n Array.prototype.forEach.call(events, function (event) {\n Array.prototype.forEach.call(els, function (el) {\n el.addEventListener(event, handler, useCapture);\n });\n });\n return function removeEvents() {\n Array.prototype.forEach.call(events, function (event) {\n Array.prototype.forEach.call(els, function (el) {\n el.removeEventListener(event, handler, useCapture);\n });\n });\n };\n}\nvar focusableElements = ['a[href]', 'area[href]', 'input:not([disabled]):not([type=hidden])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', 'object', 'embed', '[tabindex]:not(.modal)', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])'];\n\n/***/ }),\n/* 3 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__types_data_type__ = __webpack_require__(20);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return __WEBPACK_IMPORTED_MODULE_0__types_data_type__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__types_entity_attr_kind__ = __webpack_require__(122);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__types_editor_tag__ = __webpack_require__(61);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return __WEBPACK_IMPORTED_MODULE_2__types_editor_tag__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__http_http_method__ = __webpack_require__(123);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__http_http_request__ = __webpack_require__(124);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__http_http_client__ = __webpack_require__(365);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return __WEBPACK_IMPORTED_MODULE_5__http_http_client__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__meta_meta_data__ = __webpack_require__(367);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return __WEBPACK_IMPORTED_MODULE_6__meta_meta_data__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__meta_meta_entity__ = __webpack_require__(126);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return __WEBPACK_IMPORTED_MODULE_7__meta_meta_entity__[\"a\"]; });\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"j\", function() { return __WEBPACK_IMPORTED_MODULE_7__meta_meta_entity__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__meta_value_editor__ = __webpack_require__(127);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"k\", function() { return __WEBPACK_IMPORTED_MODULE_8__meta_value_editor__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__data_data_column__ = __webpack_require__(128);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_9__data_data_column__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__data_data_row__ = __webpack_require__(129);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return __WEBPACK_IMPORTED_MODULE_10__data_data_row__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__data_easy_data_table__ = __webpack_require__(368);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return __WEBPACK_IMPORTED_MODULE_11__data_easy_data_table__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__event_event_emitter__ = __webpack_require__(369);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return __WEBPACK_IMPORTED_MODULE_12__event_event_emitter__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__i18n_i18n__ = __webpack_require__(39);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"l\", function() { return __WEBPACK_IMPORTED_MODULE_13__i18n_i18n__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__utils_easy_guid__ = __webpack_require__(130);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__utils_string_utils__ = __webpack_require__(125);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__utils_utils__ = __webpack_require__(24);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"m\", function() { return __WEBPACK_IMPORTED_MODULE_16__utils_utils__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__i18n_load_default_locale_settings__ = __webpack_require__(370);\n//types\r\n\r\n\r\n\r\n//http\r\n\r\n\r\n\r\n//meta data\r\n\r\n\r\n\r\n\r\n\r\n\r\n//event\r\n\r\n//i18n\r\n\r\n//utils\r\n\r\n\r\n\r\n\r\nif (typeof Object.values !== 'function') {\r\n Object.values = function (obj) {\r\n return Object.keys(obj).map(function (key) { return obj[key]; });\r\n };\r\n}\r\nif (typeof Math.trunc !== 'function') {\r\n Math.trunc = function (x) {\r\n if (isNaN(x)) {\r\n return NaN;\r\n }\r\n if (x > 0) {\r\n return Math.floor(x);\r\n }\r\n return Math.ceil(x);\r\n };\r\n}\r\n//# sourceMappingURL=public_api.js.map\n\n/***/ }),\n/* 4 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = _extends;\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (true) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t\t\treturn classNames;\n\t\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = _objectWithoutPropertiesLoose;\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\n/***/ }),\n/* 7 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_utils__ = __webpack_require__(40);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"w\", function() { return __WEBPACK_IMPORTED_MODULE_0__utils_utils__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_constants__ = __webpack_require__(371);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"v\", function() { return __WEBPACK_IMPORTED_MODULE_1__utils_constants__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_eq_services__ = __webpack_require__(132);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return __WEBPACK_IMPORTED_MODULE_2__common_eq_services__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__common_tree__ = __webpack_require__(137);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"s\", function() { return __WEBPACK_IMPORTED_MODULE_3__common_tree__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__data_eq_data_loader__ = __webpack_require__(148);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__data_google_data_converter__ = __webpack_require__(372);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__data_eq_totals_container__ = __webpack_require__(147);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return __WEBPACK_IMPORTED_MODULE_6__data_eq_totals_container__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__types_data_kind__ = __webpack_require__(25);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return __WEBPACK_IMPORTED_MODULE_7__types_data_kind__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__types_link_type__ = __webpack_require__(41);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"m\", function() { return __WEBPACK_IMPORTED_MODULE_8__types_link_type__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__types_cond_tag__ = __webpack_require__(65);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_9__types_cond_tag__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__types_cond_part__ = __webpack_require__(139);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return __WEBPACK_IMPORTED_MODULE_10__types_cond_part__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__types_expr_tag__ = __webpack_require__(21);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"k\", function() { return __WEBPACK_IMPORTED_MODULE_11__types_expr_tag__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__types_eq_editor_tag__ = __webpack_require__(63);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return __WEBPACK_IMPORTED_MODULE_12__types_eq_editor_tag__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__types_widget_group__ = __webpack_require__(149);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"u\", function() { return __WEBPACK_IMPORTED_MODULE_13__types_widget_group__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__dm_aggr_function__ = __webpack_require__(133);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__dm_data_model__ = __webpack_require__(62);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return __WEBPACK_IMPORTED_MODULE_15__dm_data_model__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__dm_entity__ = __webpack_require__(136);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__dm_operator__ = __webpack_require__(134);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__dm_value_editor__ = __webpack_require__(135);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"j\", function() { return __WEBPACK_IMPORTED_MODULE_18__dm_value_editor__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__main_eq_actions__ = __webpack_require__(150);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__main_model_loader__ = __webpack_require__(142);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__main_query_storage__ = __webpack_require__(140);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__main_context__ = __webpack_require__(373);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return __WEBPACK_IMPORTED_MODULE_22__main_context__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__main_widget__ = __webpack_require__(374);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"t\", function() { return __WEBPACK_IMPORTED_MODULE_23__main_widget__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__main_action__ = __webpack_require__(151);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__query_query_column__ = __webpack_require__(64);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"q\", function() { return __WEBPACK_IMPORTED_MODULE_25__query_query_column__[\"a\"]; });\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"r\", function() { return __WEBPACK_IMPORTED_MODULE_25__query_query_column__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__query_condition__ = __webpack_require__(138);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return __WEBPACK_IMPORTED_MODULE_26__query_condition__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__query_expression__ = __webpack_require__(42);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"l\", function() { return __WEBPACK_IMPORTED_MODULE_27__query_expression__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__query_query__ = __webpack_require__(29);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"n\", function() { return __WEBPACK_IMPORTED_MODULE_28__query_query__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_29__query_query_events__ = __webpack_require__(30);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"o\", function() { return __WEBPACK_IMPORTED_MODULE_29__query_query_events__[\"a\"]; });\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"p\", function() { return __WEBPACK_IMPORTED_MODULE_29__query_query_events__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_30__eqs_eqs_exporter__ = __webpack_require__(152);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_31__eqs_eqs_model_loader__ = __webpack_require__(141);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_32__eqs_eqs_data_fetcher__ = __webpack_require__(143);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_33__eqs_eqs_query_synchronizer__ = __webpack_require__(144);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_34__eqs_eqs_value_list_resolver__ = __webpack_require__(145);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_35__eqs_eqs_query_file_loader__ = __webpack_require__(146);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_36__utils_format_parser__ = __webpack_require__(131);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_37__utils_version_info__ = __webpack_require__(375);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_38__easydata_core__ = __webpack_require__(3);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"x\", function() { return __WEBPACK_IMPORTED_MODULE_38__easydata_core__[\"l\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_39__i18n_text_resources__ = __webpack_require__(376);\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n//for backward compatibility\r\n\r\n\r\n//# sourceMappingURL=public_api.js.map\n\n/***/ }),\n/* 8 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export dialogs */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__grid_easy_grid__ = __webpack_require__(377);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return __WEBPACK_IMPORTED_MODULE_0__grid_easy_grid__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__grid_easy_grid_columns__ = __webpack_require__(66);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__grid_easy_grid_cell_renderer__ = __webpack_require__(67);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__datetimepicker_calendar__ = __webpack_require__(156);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__datetimepicker_date_time_picker__ = __webpack_require__(157);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__datetimepicker_default_calendar__ = __webpack_require__(158);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__datetimepicker_default_date_time_picker__ = __webpack_require__(378);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_6__datetimepicker_default_date_time_picker__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__datetimepicker_default_time_picker__ = __webpack_require__(159);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__datetimepicker_time_picker__ = __webpack_require__(160);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__utils_browser_utils__ = __webpack_require__(154);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__utils_dom_elem_builder__ = __webpack_require__(18);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return __WEBPACK_IMPORTED_MODULE_10__utils_dom_elem_builder__[\"a\"]; });\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return __WEBPACK_IMPORTED_MODULE_10__utils_dom_elem_builder__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__utils_drag_manager__ = __webpack_require__(153);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return __WEBPACK_IMPORTED_MODULE_11__utils_drag_manager__[\"a\"]; });\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"j\", function() { return __WEBPACK_IMPORTED_MODULE_11__utils_drag_manager__[\"b\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__utils_mask__ = __webpack_require__(155);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__utils_ui_utils__ = __webpack_require__(31);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return __WEBPACK_IMPORTED_MODULE_13__utils_ui_utils__[\"a\"]; });\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return __WEBPACK_IMPORTED_MODULE_13__utils_ui_utils__[\"b\"]; });\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return __WEBPACK_IMPORTED_MODULE_13__utils_ui_utils__[\"c\"]; });\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"k\", function() { return __WEBPACK_IMPORTED_MODULE_13__utils_ui_utils__[\"e\"]; });\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"l\", function() { return __WEBPACK_IMPORTED_MODULE_13__utils_ui_utils__[\"f\"]; });\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"m\", function() { return __WEBPACK_IMPORTED_MODULE_13__utils_ui_utils__[\"g\"]; });\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"n\", function() { return __WEBPACK_IMPORTED_MODULE_13__utils_ui_utils__[\"h\"]; });\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"o\", function() { return __WEBPACK_IMPORTED_MODULE_13__utils_ui_utils__[\"i\"]; });\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"p\", function() { return __WEBPACK_IMPORTED_MODULE_13__utils_ui_utils__[\"j\"]; });\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"q\", function() { return __WEBPACK_IMPORTED_MODULE_13__utils_ui_utils__[\"k\"]; });\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"r\", function() { return __WEBPACK_IMPORTED_MODULE_13__utils_ui_utils__[\"l\"]; });\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"s\", function() { return __WEBPACK_IMPORTED_MODULE_13__utils_ui_utils__[\"m\"]; });\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"t\", function() { return __WEBPACK_IMPORTED_MODULE_13__utils_ui_utils__[\"n\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__dialogs_default_dialog_service__ = __webpack_require__(161);\n/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return __WEBPACK_IMPORTED_MODULE_14__dialogs_default_dialog_service__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__i18n_text_resources__ = __webpack_require__(379);\n// grid\r\n\r\n\r\n\r\n//datetimepicker\r\n\r\n\r\n\r\n\r\n\r\n\r\n// utils\r\n\r\n\r\n\r\n\r\n\r\n//dialogs\r\n\r\n\r\n\r\n// export dialogs to use outside of context as global\r\nvar dialogs = new __WEBPACK_IMPORTED_MODULE_14__dialogs_default_dialog_service__[\"a\" /* DefaultDialogService */]();\r\n\r\n//# sourceMappingURL=public_api.js.map\n\n/***/ }),\n/* 9 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return browserUtils; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils__ = __webpack_require__(12);\n\r\nvar browserUtils;\r\n(function (browserUtils) {\r\n var _isFirefox = null;\r\n var _isIE = null;\r\n function IsIE() {\r\n return eval('/*@cc_on!@*/false || !!document.documentMode');\r\n // if (_isIE === null) {\r\n // const ua = navigator.userAgent;\r\n // /* MSIE used to detect old browsers and Trident used to newer ones*/\r\n // _isIE = ua.indexOf(\"MSIE \") > -1 || ua.indexOf(\"Trident/\") > -1;\r\n // }\r\n // return _isIE;\r\n }\r\n browserUtils.IsIE = IsIE;\r\n function IsFirefox() {\r\n if (_isFirefox === null) {\r\n var ua = navigator.userAgent;\r\n _isFirefox = ua.toLowerCase().indexOf('firefox') > -1;\r\n }\r\n return _isFirefox;\r\n }\r\n browserUtils.IsFirefox = IsFirefox;\r\n var _detectedIsMobileMode = false;\r\n var _isMobileMode = undefined;\r\n var detectIsMobileMode = function () {\r\n var oldValue = isMobileMode();\r\n _detectedIsMobileMode = window.matchMedia('only screen and (max-width: 840px)').matches\r\n || window.matchMedia('only screen and (max-height: 420px)').matches;\r\n var newValue = isMobileMode();\r\n if (newValue !== oldValue && mobileModeChangeHandler) {\r\n mobileModeChangeHandler(newValue);\r\n }\r\n };\r\n detectIsMobileMode();\r\n window.addEventListener('resize', function () { return detectIsMobileMode(); });\r\n function isMobileMode() {\r\n if (_isMobileMode !== undefined) {\r\n return _isMobileMode;\r\n }\r\n else {\r\n return _detectedIsMobileMode;\r\n }\r\n }\r\n browserUtils.isMobileMode = isMobileMode;\r\n function setIsMobileMode(value) {\r\n var oldValue = isMobileMode();\r\n _isMobileMode = value;\r\n var newValue = isMobileMode();\r\n if (newValue !== oldValue && mobileModeChangeHandler) {\r\n mobileModeChangeHandler(newValue);\r\n }\r\n }\r\n browserUtils.setIsMobileMode = setIsMobileMode;\r\n var mobileModeChangeHandler;\r\n function onMobileModeChanged(callback) {\r\n mobileModeChangeHandler = callback;\r\n }\r\n browserUtils.onMobileModeChanged = onMobileModeChanged;\r\n function getMobileCssClass() {\r\n return isMobileMode() ? __WEBPACK_IMPORTED_MODULE_0__utils__[\"a\" /* eqCssMobile */] : null;\r\n }\r\n browserUtils.getMobileCssClass = getMobileCssClass;\r\n})(browserUtils || (browserUtils = {}));\r\n//# sourceMappingURL=browser_utils.js.map\n\n/***/ }),\n/* 10 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = _inheritsLoose;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__setPrototypeOf_js__ = __webpack_require__(269);\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n Object(__WEBPACK_IMPORTED_MODULE_0__setPrototypeOf_js__[\"a\" /* default */])(subClass, superClass);\n}\n\n/***/ }),\n/* 11 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = _assertThisInitialized;\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n/***/ }),\n/* 12 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export getViewportSize */\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = findHighestZIndex;\n/* harmony export (immutable) */ __webpack_exports__[\"d\"] = safeFocus;\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return eqCssPrefix; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return eqCssMobile; });\n/* unused harmony export makeElementMaximizable */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_ui__ = __webpack_require__(8);\n\r\nfunction getViewportSize() {\r\n var width = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);\r\n var height = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);\r\n return {\r\n width: width,\r\n height: height\r\n };\r\n}\r\nfunction findHighestZIndex(elem) {\r\n var highest = 0;\r\n while (elem !== null) {\r\n var zindex = document.defaultView.getComputedStyle(elem, null)\r\n .getPropertyValue(\"z-index\");\r\n if (zindex != 'auto') {\r\n var numZIndex = parseInt(zindex);\r\n if (numZIndex > highest) {\r\n highest = numZIndex;\r\n }\r\n }\r\n elem = elem.parentElement;\r\n }\r\n return highest;\r\n}\r\n// simetimes setting focus in the main thread doesn't work correctly (in Firefox). So we need to 'hack' it.\r\nfunction safeFocus(element) {\r\n setTimeout(function (_) {\r\n if (element) {\r\n element.focus();\r\n }\r\n }, 100);\r\n}\r\nvar eqCssPrefix = 'eqjs';\r\nvar eqCssMobile = 'eqjs-mobile';\r\nfunction makeElementMaximizable(element) {\r\n Object(__WEBPACK_IMPORTED_MODULE_0__easydata_ui__[\"i\" /* domel */])(element)\r\n .addClass(eqCssPrefix + \"-maximizable\")\r\n .addChild('div', function (b) {\r\n b.addClass(eqCssPrefix + \"-max-button\")\r\n .on('click', function (e) {\r\n e.preventDefault();\r\n Object(__WEBPACK_IMPORTED_MODULE_0__easydata_ui__[\"i\" /* domel */])(element)\r\n .toggleClass(eqCssPrefix + \"-maximized\");\r\n });\r\n });\r\n}\r\n//# sourceMappingURL=utils.js.map\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar bind = __webpack_require__(88);\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = _defineProperty;\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\n/***/ }),\n/* 15 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return PopupMenu; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__easydata_ui__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__browser_utils__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils__ = __webpack_require__(12);\n\r\n\r\n\r\n\r\n\r\n\r\nvar MenuLevel = /** @class */ (function () {\r\n function MenuLevel(options) {\r\n this.isFilteringMode = false;\r\n this.showSelected = false;\r\n //menu, items, levelIndex\r\n this.parentMenu = options.menu || null;\r\n this.parentLevel = options.parent || null;\r\n this.parentElement = options.container || document.body;\r\n this.levelIndex = options.levelIndex || 0;\r\n this.levelDiv = null;\r\n this.domWriteItemsId = options.domWriteItemsId || false;\r\n this.menuId = options.menuId || '';\r\n this.itemRenderedCallback = options.itemRenderedCallback || null;\r\n //we need to define special \"apply\" item for this level\r\n this._applyItem = { id: null, text: null, itemDiv: null };\r\n this.items = options.items || [];\r\n this.activeItem = null;\r\n this.selectedItem = null;\r\n this.initialized = false;\r\n this.showSelected = options.showSelected;\r\n this.updated = 0;\r\n this.renderContent();\r\n }\r\n Object.defineProperty(MenuLevel.prototype, \"applyItem\", {\r\n get: function () {\r\n return this._applyItem;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(MenuLevel.prototype, \"cssPrefix\", {\r\n get: function () {\r\n return 'eqjs-menu';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n MenuLevel.prototype.getItems = function () {\r\n return this.items;\r\n };\r\n MenuLevel.prototype.setItems = function (items) {\r\n this.items = items;\r\n };\r\n MenuLevel.prototype.renderContent = function () {\r\n var _this = this;\r\n if (!this.items) {\r\n return;\r\n }\r\n var self = this;\r\n //define internal variables used in this function\r\n var itemBgColor = this.parentMenu.style.colors.bgON || \"white\";\r\n var itemFgColor = this.parentMenu.style.colors.fgON || \"black\";\r\n var itemOverBgColor = this.parentMenu.style.colors.bgOVER || \"LightSteelBlue\";\r\n var itemFontFamily = this.parentMenu.style.itemStyle.fontFamily || \"\";\r\n var itemFontSize = this.parentMenu.style.itemStyle.fontSize || \"14px\";\r\n var multiselect = this.parentMenu.options.multiselect;\r\n var isSubQuery = this.parentMenu.options.isSubQuery;\r\n //add base DIV element which is also used to show the shadow\r\n var baseDivBuilder = Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"i\" /* domel */])('div')\r\n .addClass(__WEBPACK_IMPORTED_MODULE_2__browser_utils__[\"a\" /* browserUtils */].getMobileCssClass());\r\n if (this.parentMenu.options.useDefaultStyles) {\r\n baseDivBuilder\r\n .setStyle('backgroundColor', itemBgColor)\r\n .setStyle('border', '1px solid')\r\n .setStyle('borderColor', itemBgColor)\r\n .setStyle('backgroundColor', this.parentMenu.style.colors.border)\r\n .setStyle('margin', '-2px 2px 2px -2px')\r\n .setStyle('width', 'auto')\r\n .setStyle('height', 'auto');\r\n }\r\n baseDivBuilder\r\n .setStyle('z-index', this.parentMenu.zIndex)\r\n .setStyle('position', 'absolute')\r\n .setStyle('display', 'none');\r\n var baseDiv = baseDivBuilder.toDOM();\r\n baseDiv['menuLevel'] = this;\r\n var applyItem = this._applyItem;\r\n //if multiselect option is on - then we should add special \"apply\" item\r\n if (multiselect && this.levelIndex === 0 && this.parentMenu.options.hideButtons !== true) {\r\n var applyDiv = document.createElement(\"div\");\r\n applyDiv.classList.add(this.cssPrefix + \"-applyDiv\");\r\n applyDiv['menuItem'] = applyItem;\r\n this.applyBtn = document.createElement('button');\r\n if (this.parentMenu.options.useDefaultStyles) {\r\n applyDiv.style.borderBottom = '1px solid';\r\n applyDiv.style.padding = '5px';\r\n applyDiv.style.marginBottom = '5px';\r\n this.applyBtn.style.padding = '0 5px';\r\n this.applyBtn.style.cursor = \"pointer\";\r\n }\r\n var applyTextNode = document.createTextNode(this.parentMenu.options.buttons.submit);\r\n this.applyBtn.appendChild(applyTextNode);\r\n applyDiv.appendChild(this.applyBtn);\r\n //cancel btn\r\n var cancelBtn = document.createElement('button');\r\n cancelBtn.classList.add(this.cssPrefix + \"-cancel\");\r\n if (this.parentMenu.options.useDefaultStyles) {\r\n cancelBtn.style.padding = '0 5px';\r\n cancelBtn.style.cursor = 'pointer';\r\n cancelBtn.style.marginLeft = '15px';\r\n }\r\n var cancelText = document.createTextNode(this.parentMenu.options.buttons.cancel);\r\n cancelBtn.appendChild(cancelText);\r\n applyDiv.appendChild(cancelBtn);\r\n baseDiv.appendChild(applyDiv);\r\n applyItem.itemDiv = applyDiv;\r\n this.applyBtn.addEventListener('click', function () {\r\n _this.submit(_this._applyItem);\r\n });\r\n cancelBtn.addEventListener('click', function () {\r\n _this.parentMenu.hideMenu();\r\n });\r\n }\r\n // if too many items - then we add a special \"search\" item\r\n // or there is an options to show always\r\n if (this.parentLevel == null\r\n && (this.parentMenu.options.searchBoxAlwaysShown || this.items.length >= this.parentMenu.options.showSearchBoxAfter)) {\r\n var searchDivBuilder = Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"i\" /* domel */])('div')\r\n .addClass(this.cssPrefix + \"-searchDiv\");\r\n if (this.parentMenu.options.useDefaultStyles) {\r\n searchDivBuilder\r\n .setStyle('border-bottom', '1px solid #666')\r\n .setStyle('background-color', itemBgColor)\r\n .setStyle('border-color', this.parentMenu.style.colors.border);\r\n if (itemFontFamily != \"\") {\r\n searchDivBuilder.setStyle('font-family', itemFontFamily);\r\n }\r\n searchDivBuilder\r\n .setStyle('font-size', itemFontSize)\r\n .setStyle('color', itemFgColor)\r\n .setStyle('cursor', 'pointer')\r\n .setStyle('text-align', 'left')\r\n .setStyle('padding', '5px');\r\n }\r\n var searchEditBoxBuilder = Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"i\" /* domel */])('input')\r\n .id('searchBox')\r\n .name('searchBox')\r\n .type('text')\r\n .size(16)\r\n .addClass(this.cssPrefix + \"-searchBox\")\r\n .on('input', function (ev) {\r\n _this.deactivateItem(_this.activeItem);\r\n _this.renderItems(_this.searchBox.value);\r\n })\r\n .on('keydown', function (ev) {\r\n var keyCode = ev.keyCode;\r\n switch (keyCode) {\r\n case 13: //enter\r\n if (_this.activeItem) {\r\n _this.activeItem.itemDiv.click();\r\n }\r\n break;\r\n case 38: // up\r\n _this.moveActiveItemUp();\r\n break;\r\n case 40: // down\r\n _this.moveActiveItemDown();\r\n break;\r\n case 39: // right\r\n if (!_this.searchBox.value) {\r\n _this.openSubLevel(_this.activeItem);\r\n }\r\n break;\r\n }\r\n });\r\n if (this.parentMenu.options.useDefaultStyles) {\r\n searchEditBoxBuilder\r\n .setStyle('font-family', 'monospace')\r\n .setStyle('font-size', '8pt')\r\n .setStyle('width', '100%');\r\n }\r\n if (isSubQuery) {\r\n searchEditBoxBuilder.addClass('eqjs-dialog');\r\n }\r\n this.searchBox = searchEditBoxBuilder.toDOM();\r\n this.searchDiv = searchDivBuilder.toDOM();\r\n this.searchDiv.appendChild(this.searchBox);\r\n baseDiv.appendChild(this.searchDiv);\r\n }\r\n var scrollDiv = document.createElement(\"div\");\r\n scrollDiv.tabIndex = 1;\r\n Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"i\" /* domel */])(scrollDiv)\r\n .addClass(this.cssPrefix + \"-scrollDiv\")\r\n .addClass(__WEBPACK_IMPORTED_MODULE_2__browser_utils__[\"a\" /* browserUtils */].getMobileCssClass());\r\n scrollDiv.style.overflowX = \"hidden\";\r\n scrollDiv.style.overflowY = \"auto\";\r\n scrollDiv.style.position = \"relative\";\r\n baseDiv.appendChild(scrollDiv);\r\n this.levelDiv = baseDiv;\r\n this.scrollDiv = scrollDiv;\r\n if (this.menuId) {\r\n this.levelDiv.id = this.menuId;\r\n }\r\n if (this.parentLevel) {\r\n this.levelDiv.style.zIndex\r\n = this.parentLevel.levelDiv.style.zIndex;\r\n }\r\n this.renderItems();\r\n var scrollDivKeyDownHandler = function (event) {\r\n switch (event.which) {\r\n case 13: // enter\r\n if (_this.parentMenu.options.multiselect) {\r\n _this.parentMenu.getRootLevel().applyBtn.click();\r\n }\r\n else {\r\n if (_this.activeItem) {\r\n _this.activeItem.itemDiv.click();\r\n }\r\n }\r\n break;\r\n case 32: // space\r\n if (_this.activeItem) {\r\n _this.activeItem.itemDiv.click();\r\n }\r\n break;\r\n case 37: // left\r\n if (_this.parentLevel && !_this.isFilteringMode) {\r\n _this.deactivateItem(_this.activeItem);\r\n _this.parentLevel.focus();\r\n }\r\n break;\r\n case 39: // right\r\n _this.openSubLevel(_this.activeItem);\r\n break;\r\n case 38: // up\r\n _this.moveActiveItemUp();\r\n break;\r\n case 40: // down\r\n _this.moveActiveItemDown();\r\n break;\r\n default: return; // exit this handler for other keys\r\n }\r\n event.preventDefault(); // prevent the default action (scroll / move caret) \r\n };\r\n scrollDiv.addEventListener(\"keydown\", scrollDivKeyDownHandler);\r\n if (__WEBPACK_IMPORTED_MODULE_2__browser_utils__[\"a\" /* browserUtils */].isMobileMode()) {\r\n this.closeDiv =\r\n Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"i\" /* domel */])('div', baseDiv)\r\n .addClass('eqjs-menu-close-btn')\r\n .addText(__WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('ButtonClose'))\r\n .on('click', function () {\r\n _this.parentMenu.hideMenu();\r\n })\r\n .toDOM();\r\n }\r\n };\r\n MenuLevel.prototype.moveActiveItemDown = function () {\r\n var items = this.isFilteringMode ? this.filteredItems : this.items;\r\n if (this.activeItem) {\r\n var idx = items.indexOf(this.activeItem);\r\n if (idx < items.length - 1) {\r\n this.activateItem(items[idx + 1], false);\r\n }\r\n }\r\n else {\r\n this.activateItem(items[0], false);\r\n }\r\n };\r\n MenuLevel.prototype.moveActiveItemUp = function () {\r\n var items = this.isFilteringMode ? this.filteredItems : this.items;\r\n if (this.activeItem) {\r\n var idx = items.indexOf(this.activeItem);\r\n if (idx > 0) {\r\n this.activateItem(items[idx - 1], false);\r\n }\r\n }\r\n else {\r\n this.activateItem(items[items.length - 1], false);\r\n }\r\n };\r\n MenuLevel.prototype.openSubLevel = function (menuItem) {\r\n if (menuItem && menuItem.items && !this.isFilteringMode) {\r\n this.showSubLevel(menuItem);\r\n menuItem.subLevel.activateItem(menuItem.subLevel.items[0]);\r\n }\r\n };\r\n MenuLevel.prototype.focusScrollDiv = function () {\r\n this.scrollDiv.focus();\r\n };\r\n MenuLevel.prototype.turnCheckboxes = function (items) {\r\n //turn checkboxes on for selected items\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (item.itemCheckbox)\r\n item.itemCheckbox.checked = this.isItemSelected(item);\r\n if (item.items) {\r\n this.turnCheckboxes(item.items);\r\n }\r\n }\r\n };\r\n MenuLevel.prototype.isItemSelected = function (item) {\r\n if (item.items) {\r\n for (var i = 0; i < item.items.length; i++) {\r\n if (this.isItemSelected(item.items[i])) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n else {\r\n return item.selected;\r\n }\r\n };\r\n MenuLevel.prototype.setItemSelected = function (item, value) {\r\n if (item.items) {\r\n for (var i = 0; i < item.items.length; i++) {\r\n this.setItemSelected(item.items[i], value);\r\n }\r\n }\r\n else {\r\n item.selected = value;\r\n }\r\n };\r\n MenuLevel.prototype.submitItems = function (items, selectedItems) {\r\n for (var j = 0; j < items.length; j++) {\r\n if (items[j].items) {\r\n this.submitItems(items[j].items, selectedItems);\r\n }\r\n else {\r\n if (items[j].selected) {\r\n selectedItems.push(items[j]);\r\n }\r\n }\r\n }\r\n };\r\n MenuLevel.prototype.allSubitemsAreFiltered = function (items, filterCallback) {\r\n for (var i = 0; i < items.length; i++) {\r\n if (filterCallback(items[i]))\r\n return false;\r\n }\r\n return true;\r\n };\r\n MenuLevel.prototype.isItemDiv = function (element) {\r\n return element['menuItem'] ? true : false;\r\n };\r\n MenuLevel.prototype.isLevelDiv = function (element) {\r\n return element['menuLevel'] ? true : false;\r\n };\r\n MenuLevel.prototype.getMenuItem = function (element) {\r\n var el = element;\r\n while (!this.isItemDiv(el)) {\r\n if (this.isLevelDiv(el)) {\r\n throw \"Can't get menu item\";\r\n }\r\n el = el.parentElement;\r\n }\r\n return el['menuItem'];\r\n };\r\n MenuLevel.prototype.renderItemsWithoutFilter = function () {\r\n var _this = this;\r\n this.isFilteringMode = false;\r\n var scrollDiv = this.scrollDiv;\r\n var multiselect = this.parentMenu.options.multiselect;\r\n var activateOnMouseOver = this.parentMenu.options.activateOnMouseOver;\r\n var itemFgColor = this.parentMenu.style.colors.fgON || 'black';\r\n var itemOverBgColor = this.parentMenu.style.colors.bgOVER || 'LightSteelBlue';\r\n var itemFontSize = this.parentMenu.style.itemStyle.fontSize || '14px';\r\n var itemFilterCallback = this.parentMenu.getItemFilterCallback();\r\n scrollDiv.innerHTML = \"\";\r\n for (var i = 0; i < this.items.length; i++) {\r\n var item = this.items[i];\r\n if (!item || !item.text)\r\n continue;\r\n if (itemFilterCallback) {\r\n if (!itemFilterCallback(item))\r\n continue;\r\n if (item.items && this.allSubitemsAreFiltered(item.items, itemFilterCallback))\r\n continue;\r\n }\r\n item.data = function (propName) {\r\n return _this[propName];\r\n };\r\n if (typeof (item.selected) == \"undefined\") {\r\n item.selected = false;\r\n }\r\n if (item.selected && this.selectedItem == null) {\r\n this.selectedItem = item;\r\n }\r\n var itemDiv = document.createElement(\"div\");\r\n Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"i\" /* domel */])(itemDiv)\r\n .addClass(this.cssPrefix + \"-itemDiv\")\r\n .addClass(__WEBPACK_IMPORTED_MODULE_2__browser_utils__[\"a\" /* browserUtils */].getMobileCssClass());\r\n if (item.selected && this.showSelected && !multiselect) {\r\n itemDiv.classList.add(this.cssPrefix + \"-selected\");\r\n }\r\n ;\r\n if (this.domWriteItemsId && this.menuId) {\r\n itemDiv.id = 'item-' + this.menuId + '-' + item.id;\r\n }\r\n scrollDiv.appendChild(itemDiv);\r\n itemDiv['menuItem'] = item;\r\n itemDiv['menuLevel'] = this;\r\n item.itemDiv = itemDiv;\r\n if (this.parentMenu.options.useDefaultStyles) {\r\n itemDiv.style.fontSize = itemFontSize;\r\n itemDiv.style.color = itemFgColor;\r\n itemDiv.style.paddingLeft = \"15px\";\r\n itemDiv.style.paddingRight = \"6px\";\r\n itemDiv.style.cursor = \"pointer\";\r\n }\r\n if (item.text == '---') {\r\n itemDiv.appendChild(document.createElement('hr'));\r\n }\r\n else {\r\n if (multiselect) {\r\n var cb = document.createElement(\"input\");\r\n cb.type = \"checkbox\";\r\n cb.id = \"cb\" + item.id;\r\n cb.checked = this.isItemSelected(item);\r\n cb.defaultChecked = this.isItemSelected(item);\r\n itemDiv.appendChild(cb);\r\n item.itemCheckbox = cb;\r\n if (this.parentMenu.options.useDefaultStyles) {\r\n cb.style.margin = \"4px 10px 0 0\";\r\n cb.style.verticalAlign = \"top\";\r\n }\r\n }\r\n var itemText = document.createTextNode(item.text);\r\n itemDiv.appendChild(itemText);\r\n if (item.items && item.items.length > 0) {\r\n itemDiv.classList.add(this.cssPrefix + \"-itemDiv-hasChildren\");\r\n var arrowSpan = document.createElement('span');\r\n arrowSpan.classList.add(this.cssPrefix + \"-itemDiv-arrow\");\r\n itemDiv.appendChild(arrowSpan);\r\n var arrowText = document.createTextNode('>');\r\n arrowSpan.appendChild(arrowText);\r\n }\r\n var itemClickHandler = function (ev) {\r\n var menuItem = _this.getMenuItem(ev.target);\r\n if (multiselect) {\r\n if (!menuItem.items || ev.target == menuItem.itemCheckbox) {\r\n var itemSelected = _this.isItemSelected(menuItem);\r\n _this.setItemSelected(menuItem, !itemSelected);\r\n menuItem.itemCheckbox.checked = !itemSelected;\r\n _this.parentMenu.refreshCheckboxes();\r\n }\r\n else {\r\n _this.activateItem(menuItem);\r\n }\r\n }\r\n else {\r\n _this.activateItem(menuItem);\r\n _this.submit(menuItem);\r\n }\r\n return false;\r\n };\r\n itemDiv.removeEventListener(\"click\", itemClickHandler);\r\n itemDiv.addEventListener('click', itemClickHandler);\r\n itemDiv.addEventListener('mouseenter', function (ev) {\r\n var item = _this.getMenuItem(ev.target);\r\n _this.parentMenu.isCursorInside = true;\r\n if (activateOnMouseOver) {\r\n _this.activateItem(item);\r\n }\r\n });\r\n itemDiv.addEventListener('mouseleave', function (ev) {\r\n var item = _this.getMenuItem(ev.target);\r\n _this.parentMenu.isCursorInside = false;\r\n setTimeout(function () {\r\n if (!_this.parentMenu.isCursorInside) {\r\n if (activateOnMouseOver && item == _this.activeItem && !item.subLevel) {\r\n _this.deactivateItem(item);\r\n }\r\n }\r\n }, 200);\r\n });\r\n }\r\n if (this.itemRenderedCallback) {\r\n this.itemRenderedCallback(this.menuId, itemDiv);\r\n }\r\n }\r\n };\r\n MenuLevel.prototype.renderItemsWithFilter = function (filter) {\r\n this.isFilteringMode = true;\r\n var scrollDiv = this.scrollDiv;\r\n scrollDiv.innerHTML = \"\";\r\n var filterSections = filter.split('>');\r\n var pureFilterTexts = filterSections.map(function (section) { return section.replace(/\\*/g, ''); });\r\n var items = this.filterItems(this.items, filterSections);\r\n this.filteredItems = [];\r\n for (var i = 0; i < items.length; i++) {\r\n this.renderItemWithFilter(items[i], pureFilterTexts, 0);\r\n }\r\n };\r\n MenuLevel.prototype.matchesFilter = function (text, regexp) {\r\n if (text && regexp) {\r\n return regexp.test(text);\r\n }\r\n else {\r\n return true;\r\n }\r\n };\r\n MenuLevel.prototype.filterItems = function (items, filterSections) {\r\n var resultItems = [];\r\n var filter = filterSections.length > 0 ? filterSections[0] : '';\r\n var restFilterSections = filterSections.length > 1 ? filterSections.slice(1) : filterSections;\r\n var filterRegexp = filter ? new RegExp(filter.replace(/\\*/g, '.+?'), 'i') : null;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (item.items) {\r\n var groupItem = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].assign({}, item);\r\n var groupItemMatches = this.matchesFilter(item.text, filterRegexp);\r\n //if we have only one filter section (or an empty filter)\r\n if (filterSections.length < 2) {\r\n //if current group item matches the filter -> show all sub-items\r\n if (groupItemMatches && filterSections.length < 2) {\r\n groupItem.items = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].createArrayFrom(item.items);\r\n }\r\n else {\r\n groupItem.items = this.filterItems(item.items, restFilterSections);\r\n }\r\n }\r\n //if we have more than 1 filter section and there is a match -> filter sub-items as well\r\n else if (groupItemMatches) {\r\n groupItem.items = this.filterItems(item.items, restFilterSections);\r\n }\r\n //otherwise we skip this group at all\r\n else {\r\n groupItem.items = [];\r\n }\r\n if (groupItem.items.length > 0) {\r\n resultItems.push(groupItem);\r\n }\r\n }\r\n else {\r\n if (this.matchesFilter(item.text, filterRegexp)) {\r\n resultItems.push(item);\r\n }\r\n }\r\n }\r\n return resultItems;\r\n };\r\n MenuLevel.prototype.renderItemWithFilter = function (item, filterTexts, level) {\r\n var _this = this;\r\n var scrollDiv = this.scrollDiv;\r\n var levelFilterText = level < filterTexts.length ? filterTexts[level] : filterTexts[filterTexts.length - 1];\r\n var multiselect = this.parentMenu.options.multiselect;\r\n var activateOnMouseOver = this.parentMenu.options.activateOnMouseOver;\r\n var itemFgColor = this.parentMenu.style.colors.fgON || 'black';\r\n var itemOverBgColor = this.parentMenu.style.colors.bgOVER || 'LightSteelBlue';\r\n var itemFontSize = this.parentMenu.style.itemStyle.fontSize || '14px';\r\n var itemFilterCallback = this.parentMenu.getItemFilterCallback();\r\n if (!item || !item.text)\r\n return;\r\n if (itemFilterCallback) {\r\n if (!itemFilterCallback(item))\r\n return;\r\n if (item.items && this.allSubitemsAreFiltered(item.items, itemFilterCallback))\r\n return;\r\n }\r\n item.data = function (propName) {\r\n return this[propName];\r\n };\r\n if (typeof (item.selected) == \"undefined\") {\r\n item.selected = false;\r\n }\r\n if (item.selected && this.selectedItem == null) {\r\n this.selectedItem = item;\r\n }\r\n var itemDiv = document.createElement(\"div\");\r\n Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"i\" /* domel */])(itemDiv)\r\n .addClass(this.cssPrefix + \"-itemDiv\")\r\n .addClass(__WEBPACK_IMPORTED_MODULE_2__browser_utils__[\"a\" /* browserUtils */].getMobileCssClass());\r\n itemDiv.style.marginLeft = level * 10 + \"px\";\r\n if (item.selected && !multiselect) {\r\n itemDiv.classList.add(this.cssPrefix + \"-selected\");\r\n }\r\n ;\r\n if (this.domWriteItemsId && this.menuId) {\r\n itemDiv.id = 'item-' + this.menuId + '-' + item.id;\r\n }\r\n scrollDiv.appendChild(itemDiv);\r\n itemDiv['menuItem'] = item;\r\n itemDiv['menuLevel'] = this;\r\n item.itemDiv = itemDiv;\r\n if (this.parentMenu.options.useDefaultStyles) {\r\n itemDiv.style.fontSize = itemFontSize;\r\n itemDiv.style.color = itemFgColor;\r\n itemDiv.style.paddingLeft = \"15px\";\r\n itemDiv.style.paddingRight = \"6px\";\r\n itemDiv.style.cursor = \"pointer\";\r\n }\r\n if (item.text == '---') {\r\n itemDiv.appendChild(document.createElement('hr'));\r\n }\r\n else {\r\n if (multiselect) {\r\n var cb = document.createElement(\"input\");\r\n cb.type = \"checkbox\";\r\n cb.id = \"cb\" + item.id;\r\n cb.checked = this.isItemSelected(item);\r\n cb.defaultChecked = this.isItemSelected(item);\r\n itemDiv.appendChild(cb);\r\n item.itemCheckbox = cb;\r\n if (this.parentMenu.options.useDefaultStyles) {\r\n cb.style.margin = \"4px 10px 0 0\";\r\n cb.style.verticalAlign = \"top\";\r\n }\r\n }\r\n var itemText = document.createElement('span');\r\n itemText.innerHTML = this.highlightText(item.text, levelFilterText);\r\n itemDiv.appendChild(itemText);\r\n if (item.items && item.items.length > 0) {\r\n itemDiv.classList.add(this.cssPrefix + \"-itemDiv-filter-hasChildren\");\r\n }\r\n else {\r\n this.filteredItems.push(item);\r\n var itemClickHandler = function (event) {\r\n if (multiselect) {\r\n if (!item.items || event.target == item.itemCheckbox) {\r\n var itemSelected = _this.isItemSelected(item);\r\n _this.setItemSelected(item, !itemSelected);\r\n item.itemCheckbox.checked = !itemSelected;\r\n _this.parentMenu.refreshCheckboxes();\r\n }\r\n else {\r\n _this.activateItem(item);\r\n }\r\n }\r\n else {\r\n _this.activateItem(item);\r\n _this.submit(item);\r\n }\r\n return false;\r\n };\r\n itemDiv.removeEventListener(\"click\", itemClickHandler);\r\n itemDiv.addEventListener('click', itemClickHandler);\r\n itemDiv.addEventListener('mouseenter', function (ev) {\r\n ;\r\n _this.parentMenu.isCursorInside = true;\r\n if (activateOnMouseOver) {\r\n _this.activateItem(item);\r\n }\r\n });\r\n itemDiv.addEventListener('mouseleave', function (ev) {\r\n _this.parentMenu.isCursorInside = false;\r\n setTimeout(function () {\r\n if (!_this.parentMenu.isCursorInside) {\r\n if (activateOnMouseOver && item == _this.activeItem && !item.subLevel) {\r\n _this.deactivateItem(item);\r\n }\r\n }\r\n }, 200);\r\n });\r\n }\r\n }\r\n if (item.items) {\r\n for (var i = 0; i < item.items.length; i++) {\r\n this.renderItemWithFilter(item.items[i], filterTexts, level + 1);\r\n }\r\n }\r\n if (this.itemRenderedCallback) {\r\n this.itemRenderedCallback(this.menuId, itemDiv);\r\n }\r\n };\r\n MenuLevel.prototype.highlightText = function (content, text) {\r\n if (text && text.length > 0) {\r\n var lowerText = text.toLowerCase();\r\n var lowerContent = content.toLowerCase();\r\n var insertValue1 = \"\";\r\n var insertValue2 = \"\";\r\n var startIndex = lowerContent.indexOf(lowerText);\r\n if (startIndex >= 0) {\r\n var pos = 0;\r\n var value = content;\r\n var indexInMas = [];\r\n while (true) {\r\n var index = lowerContent.indexOf(lowerText, pos);\r\n if (index >= 0) {\r\n indexInMas.push(index);\r\n pos = index + text.length;\r\n }\r\n else {\r\n pos++;\r\n }\r\n if (pos >= value.length - 1) {\r\n break;\r\n }\r\n }\r\n if (indexInMas.length > 0) {\r\n content = '';\r\n for (var i = 0; i < indexInMas.length; i++) {\r\n if (i === 0) {\r\n content += value.substring(0, indexInMas[i]);\r\n }\r\n content += insertValue1 + value.substring(indexInMas[i], indexInMas[i] + text.length) + insertValue2;\r\n if (i < indexInMas.length - 1) {\r\n content += value.substring(indexInMas[i] + text.length, indexInMas[i + 1]);\r\n }\r\n else {\r\n content += value.substring(indexInMas[i] + text.length);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return content;\r\n };\r\n MenuLevel.prototype.renderItems = function (filter) {\r\n if (!filter && !__WEBPACK_IMPORTED_MODULE_2__browser_utils__[\"a\" /* browserUtils */].isMobileMode()) {\r\n this.renderItemsWithoutFilter();\r\n }\r\n else {\r\n filter = filter || '';\r\n this.renderItemsWithFilter(filter.toLowerCase());\r\n }\r\n };\r\n MenuLevel.prototype.activateItem = function (menuItem, openSubLevel) {\r\n if (openSubLevel === void 0) { openSubLevel = true; }\r\n if (this.activeItem != null) {\r\n this.deactivateItem(this.activeItem);\r\n }\r\n this.activeItem = menuItem;\r\n var rowElement = menuItem.itemDiv;\r\n rowElement.classList.add('active');\r\n if (this.parentMenu.options.useDefaultStyles) {\r\n var itemBgColor = this.parentMenu.style.colors.bgON;\r\n var itemFgColor = this.parentMenu.style.colors.fgON;\r\n var itemOverBgColor = this.parentMenu.style.colors.bgOVER;\r\n var itemOverFgColor = this.parentMenu.style.colors.fgOVER || \"\";\r\n var itemClass = this.parentMenu.style.itemClass || \"\";\r\n var itemClassOver = this.parentMenu.style.itemClassOver || \"\";\r\n if (itemClassOver != \"\") {\r\n rowElement.style.backgroundColor = \"\";\r\n rowElement.style.color = \"\";\r\n }\r\n else {\r\n rowElement.style.backgroundColor = itemOverBgColor;\r\n rowElement.style.color = itemOverFgColor;\r\n }\r\n }\r\n if (menuItem.items && !this.isFilteringMode && openSubLevel) {\r\n this.showSubLevel(menuItem);\r\n }\r\n };\r\n MenuLevel.prototype.deactivateItem = function (menuItem) {\r\n if (!menuItem)\r\n return;\r\n var rowElement = menuItem.itemDiv;\r\n rowElement.classList.remove('active');\r\n if (this.parentMenu.options.useDefaultStyles) {\r\n var itemBgColor = this.parentMenu.style.colors.bgON;\r\n var itemFgColor = this.parentMenu.style.colors.fgON;\r\n var itemClass = this.parentMenu.style.itemClass || \"\";\r\n if (itemClass != \"\") {\r\n rowElement.style.backgroundColor = \"\";\r\n rowElement.style.color = \"\";\r\n }\r\n else {\r\n rowElement.style.backgroundColor = itemBgColor;\r\n rowElement.style.color = itemFgColor;\r\n }\r\n }\r\n if (menuItem.subLevel) {\r\n menuItem.subLevel.hide();\r\n }\r\n this.activeItem = null;\r\n };\r\n MenuLevel.prototype.showSubLevel = function (menuItem) {\r\n if (!menuItem.subLevel) {\r\n var levelId = '';\r\n if (this.menuId) {\r\n levelId = this.menuId + \"-\" + menuItem.id;\r\n }\r\n menuItem.subLevel = new MenuLevel({\r\n showSelected: this.showSelected,\r\n menu: this.parentMenu,\r\n parent: this,\r\n container: this.parentElement,\r\n items: menuItem.items,\r\n levelIndex: this.levelIndex + 1,\r\n domWriteItemsId: this.domWriteItemsId,\r\n menuId: levelId,\r\n itemRenderedCallback: this.itemRenderedCallback\r\n });\r\n }\r\n var pos = Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"k\" /* getElementAbsolutePos */])(menuItem.itemDiv);\r\n var scroll = Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"l\" /* getScrollPos */])();\r\n var winSize = Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"n\" /* getWinSize */])();\r\n //show menu to the side that have more space available\r\n var leftSpace = pos.x - scroll.left;\r\n var rightSpace = winSize.width - leftSpace - menuItem.itemDiv.offsetWidth;\r\n pos.x += menuItem.itemDiv.offsetParent.offsetWidth;\r\n pos.y += 1;\r\n menuItem.subLevel.showAt(pos.x, pos.y, true, true);\r\n menuItem.subLevel.levelDiv.style.width = '';\r\n menuItem.subLevel.levelDiv.style.right = '';\r\n if ((rightSpace >= menuItem.subLevel.levelDiv.offsetWidth) || (rightSpace >= leftSpace)) { //show level to the right\r\n if (rightSpace < menuItem.subLevel.levelDiv.offsetWidth) {\r\n menuItem.subLevel.levelDiv.style.right = -scroll.left + 'px';\r\n }\r\n }\r\n else { //show level to the left\r\n if (leftSpace < menuItem.subLevel.levelDiv.offsetWidth) {\r\n menuItem.subLevel.levelDiv.style.left = scroll.left + 4 + 'px';\r\n }\r\n else {\r\n menuItem.subLevel.levelDiv.style.left = '';\r\n }\r\n menuItem.subLevel.levelDiv.style.right = Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"m\" /* getViewportSize */])().width - pos.x + menuItem.itemDiv.offsetWidth - 6 + 'px';\r\n }\r\n menuItem.subLevel.levelDiv.style.visibility = 'visible';\r\n menuItem.subLevel.focus();\r\n };\r\n MenuLevel.prototype.adjustTopPos = function (top) {\r\n var winSize = Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"n\" /* getWinSize */])();\r\n var levelBottom = top - Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"l\" /* getScrollPos */])().top + this.levelDiv.offsetHeight;\r\n var res = top;\r\n if (levelBottom > winSize.height - 5) {\r\n res -= levelBottom - winSize.height + 5;\r\n if (res < Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"l\" /* getScrollPos */])().top) {\r\n res = Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"l\" /* getScrollPos */])().top + 10;\r\n }\r\n }\r\n return res;\r\n };\r\n MenuLevel.prototype.showAt = function (x, y, adjustTopPos, hidden) {\r\n if (!this.items) {\r\n return;\r\n }\r\n this.initLevelDiv();\r\n //crocodile\r\n this.turnCheckboxes(this.items);\r\n this.renderItems();\r\n var levelStyle = this.levelDiv.style;\r\n if (hidden) {\r\n this.levelDiv.style.visibility = 'hidden';\r\n }\r\n levelStyle.display = 'block';\r\n levelStyle.left = x + 'px';\r\n levelStyle.top = y + 'px';\r\n this.scrollDiv.style.width = \"auto\";\r\n this.scrollDiv.style.height = \"auto\";\r\n //adjusting level top position\r\n if (adjustTopPos) {\r\n y = this.adjustTopPos(y);\r\n levelStyle.top = y + 'px';\r\n }\r\n //setting minimal level width if it is defined\r\n var minItemWidth = this.parentMenu.minItemWidth;\r\n if (minItemWidth > 0 && this.scrollDiv.offsetWidth < minItemWidth) {\r\n for (var i = 0; i < this.items.length; i++) {\r\n this.items[i].itemDiv.style.width = minItemWidth + \"px\";\r\n }\r\n }\r\n var maxItemWidth = this.parentMenu.maxItemWidth;\r\n if (maxItemWidth > 0 && this.scrollDiv.offsetWidth > maxItemWidth) {\r\n for (var i = 0; i < this.items.length; i++) {\r\n this.items[i].itemDiv.style.width = maxItemWidth + \"px\";\r\n this.items[i].itemDiv.style.overflowX = \"hidden\";\r\n }\r\n }\r\n var winSize = Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"n\" /* getWinSize */])();\r\n //adjustinng maximum height of the menu level if it does not fit to browser window\r\n var maxHeight = winSize.height - (y - Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"l\" /* getScrollPos */])().top) - 15; //document.documentElement.scrollTop\r\n if (this.parentMenu.maxHeight > 0 && maxHeight > this.parentMenu.maxHeight) {\r\n maxHeight = this.parentMenu.maxHeight;\r\n }\r\n if (this._applyItem != null && this._applyItem.itemDiv != null) {\r\n maxHeight -= this._applyItem.itemDiv.offsetHeight + 5;\r\n }\r\n if (this.searchDiv != null) {\r\n maxHeight -= this.searchDiv.offsetHeight;\r\n }\r\n if (this.closeDiv != null) {\r\n maxHeight -= this.closeDiv.offsetHeight;\r\n }\r\n if (this.levelDiv.offsetHeight > maxHeight) {\r\n var newHeight = maxHeight;\r\n if (newHeight < 50) {\r\n newHeight = 50;\r\n }\r\n this.scrollDiv.style.height = newHeight + \"px\";\r\n }\r\n else {\r\n this.scrollDiv.style.height = \"auto\";\r\n }\r\n this.activeItem = null;\r\n };\r\n MenuLevel.prototype.focus = function () {\r\n var _this = this;\r\n window.setTimeout(function () {\r\n _this.scrollDiv.focus();\r\n if (_this.searchBox != null) {\r\n if (_this.parentMenu.options.searchBoxAutoFocus) {\r\n _this.searchBox.focus();\r\n }\r\n _this.searchBox.value = \"\";\r\n }\r\n }, 100);\r\n };\r\n MenuLevel.prototype.hide = function () {\r\n if (this.activeItem !== null) {\r\n if (this.activeItem.subLevel) {\r\n this.activeItem.subLevel.hide();\r\n }\r\n }\r\n if (this.levelDiv) {\r\n var levelStyle = this.levelDiv.style;\r\n levelStyle.display = 'none';\r\n if (this.initialized) {\r\n this.parentElement.removeChild(this.levelDiv);\r\n this.initialized = false;\r\n }\r\n }\r\n };\r\n MenuLevel.prototype.initLevelDiv = function () {\r\n if (!this.initialized) {\r\n this.parentElement.appendChild(this.levelDiv);\r\n Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"i\" /* domel */])(this.levelDiv)\r\n .addClass(this.cssPrefix + \"-levelDiv\")\r\n .addClass(__WEBPACK_IMPORTED_MODULE_2__browser_utils__[\"a\" /* browserUtils */].getMobileCssClass());\r\n this.initialized = true;\r\n }\r\n };\r\n MenuLevel.prototype.submit = function (menuItem) {\r\n if (menuItem != null) {\r\n if (!menuItem.items) {\r\n this.parentMenu.hideMenu();\r\n var selectedItems = [];\r\n if (menuItem == this._applyItem) {\r\n this.submitItems(this.items, selectedItems);\r\n }\r\n this.parentMenu.submitMenu(menuItem, selectedItems);\r\n }\r\n }\r\n };\r\n MenuLevel.prototype.remove = function () {\r\n //remove old level elements\r\n for (var i = 0; i < this.items.length; i++) {\r\n var item = this.items[i];\r\n if (item.subLevel) {\r\n item.subLevel.remove();\r\n }\r\n }\r\n if (this.levelDiv) {\r\n this.levelDiv.innerHTML = \"\";\r\n var parentNode = this.levelDiv.parentNode;\r\n if (parentNode != null) {\r\n parentNode.removeChild(this.levelDiv);\r\n }\r\n }\r\n this.levelDiv = null;\r\n };\r\n MenuLevel.prototype.update = function (newItems) {\r\n this.remove();\r\n //create new level\r\n this.items = newItems;\r\n this.activeItem = null;\r\n this.selectedItem = null;\r\n this._applyItem.itemDiv = null;\r\n this.initialized = false;\r\n this.updated++;\r\n this.renderContent();\r\n };\r\n MenuLevel.prototype.refreshCheckboxes = function () {\r\n for (var i = 0; i < this.items.length; i++) {\r\n var item = this.items[i];\r\n if (item.itemCheckbox) {\r\n item.itemCheckbox.checked = this.isItemSelected(item);\r\n }\r\n if (item.subLevel) {\r\n item.subLevel.refreshCheckboxes();\r\n }\r\n }\r\n };\r\n MenuLevel.prototype.refreshItems = function () {\r\n for (var i = 0; i < this.items.length; i++) {\r\n var item = this.items[i];\r\n if (item.itemDiv) {\r\n if (item.hidden) {\r\n item.itemDiv.style.display = \"none\";\r\n }\r\n else {\r\n item.itemDiv.style.display = \"block\";\r\n }\r\n }\r\n if (item.subLevel) {\r\n item.subLevel.refreshItems();\r\n }\r\n }\r\n };\r\n MenuLevel.prototype.findItem = function (searchedText) {\r\n var txt = searchedText.toLowerCase();\r\n for (var i = 0; i < this.items.length; i++) {\r\n var item = this.items[i];\r\n if (item.text.toLowerCase().indexOf(txt) == 0) {\r\n return item;\r\n }\r\n }\r\n return null;\r\n };\r\n return MenuLevel;\r\n}());\r\nvar PopupMenu = /** @class */ (function () {\r\n function PopupMenu(options) {\r\n var _this = this;\r\n this.isCursorInside = false;\r\n this.mouseIsOverBlock = false;\r\n this.mouseIsOverLink = false;\r\n this.toId = null;\r\n this.active = false;\r\n this.ancorFocused = null;\r\n this.options = {\r\n items: [],\r\n buttons: {\r\n submit: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('ButtonApply'),\r\n cancel: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('ButtonCancel')\r\n },\r\n itemFilterCallback: null,\r\n useDefaultStyles: false,\r\n multiselect: false,\r\n adjustHeight: true,\r\n showSearchBoxAfter: 30,\r\n activateOnMouseOver: true,\r\n container: document.body,\r\n domWriteItemsId: false,\r\n itemRenderedCallback: null\r\n };\r\n if (options) {\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].assignDeep(this.options, options);\r\n }\r\n if (this.options.hideButtons) {\r\n this.options.submitOnBlur = true;\r\n }\r\n this.menuId = PopupMenu.lastMenuID++;\r\n this.updateProps();\r\n this.rootLevel = new MenuLevel({\r\n menu: this,\r\n items: this.options.items,\r\n levelIndex: 0,\r\n container: this.options.container,\r\n domWriteItemsId: this.options.domWriteItemsId,\r\n menuId: this.options.id,\r\n itemRenderedCallback: this.options.itemRenderedCallback,\r\n showSelected: this.options.showSelected,\r\n });\r\n this.rootLevel.levelDiv.classList.add(this.cssPrefix + \"-rootLevel\");\r\n if (this.options.zIndex)\r\n this.rootLevel.levelDiv.style.zIndex = \"\" + this.options.zIndex;\r\n this.menuKeyUpHandler = function (e) {\r\n if (e.which == 27) {\r\n _this.hideMenu();\r\n e.stopImmediatePropagation();\r\n }\r\n };\r\n this.globalMouseDownHandler = function (e) {\r\n if (!_this.active)\r\n return true;\r\n var event = window.event || e;\r\n var o = event.srcElement || event.target;\r\n var isOutside = true;\r\n while (o) {\r\n if (o.tagName && o.tagName.toLowerCase() == 'div') {\r\n // it is added in renderContent of MenuLevel class\r\n if (o.menuLevel) {\r\n if (o.menuLevel.parentMenu == _this) {\r\n isOutside = false;\r\n break;\r\n }\r\n }\r\n }\r\n o = o.parentNode || o.parentElement;\r\n }\r\n if (isOutside) {\r\n if (_this.options.submitOnBlur) {\r\n _this.rootLevel.submit(_this.rootLevel.applyItem);\r\n }\r\n _this.hideMenu();\r\n }\r\n return true;\r\n };\r\n this.render();\r\n }\r\n Object.defineProperty(PopupMenu.prototype, \"cssPrefix\", {\r\n get: function () {\r\n return 'eqjs-menu';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n PopupMenu.prototype.getItems = function () {\r\n return this.rootLevel.getItems();\r\n };\r\n PopupMenu.prototype.updateProps = function () {\r\n this.style = {};\r\n this.style.colors = { border: \"#666666\", shadow: \"#888888\", bgON: \"white\", fgON: \"black\", bgOVER: \"#B6BDD2\", fgOVER: \"black\" };\r\n this.style.itemStyle = { fontSize: \"14px\" };\r\n this.minItemWidth = 0;\r\n this.maxItemWidth = 0;\r\n this.maxHeight = 0;\r\n this.zIndex = \"\" + this.options.zIndex;\r\n this.commandTemplate = \"\";\r\n this.args = [];\r\n this.active = false;\r\n };\r\n PopupMenu.prototype.render = function () {\r\n };\r\n PopupMenu.prototype.clearItemsMenuProps = function (items) {\r\n if (!items)\r\n return;\r\n for (var i = 0; i < items.length; i++) {\r\n this.clearItemMenuProps(items[i]);\r\n }\r\n };\r\n PopupMenu.prototype.clearItemMenuProps = function (item) {\r\n //don't clear properties they belong this menu\r\n if (item.subLevel && item.subLevel.parentMenu == this)\r\n return;\r\n if (item.subLevel) {\r\n item.subLevel.remove();\r\n item.subLevel = null;\r\n }\r\n if (item.itemDiv) {\r\n item.itemDiv = null;\r\n }\r\n if (item.items) {\r\n this.clearItemsMenuProps(item.items);\r\n }\r\n };\r\n PopupMenu.prototype.setSelectedItems = function (items, selectedIds) {\r\n var itemsLength = items ? items.length : 0;\r\n for (var i = 0; i < itemsLength; i++) {\r\n var item = items[i];\r\n if (item.items) {\r\n this.setSelectedItems(item.items, selectedIds);\r\n }\r\n else {\r\n item.selected = selectedIds.indexOf(item.id) >= 0;\r\n }\r\n }\r\n };\r\n PopupMenu.prototype.getRootLevel = function () {\r\n return this.rootLevel;\r\n };\r\n PopupMenu.prototype.getItemFilterCallback = function () {\r\n return this.itemFilterCallback;\r\n };\r\n PopupMenu.prototype.showMenu = function (options) {\r\n this.ancorFocused = options.anchor == document.activeElement ? options.anchor : null;\r\n this.clearItemsMenuProps(this.options.items);\r\n this.itemSelectedCallback = options.itemSelectedCallback || null;\r\n this.menuClosedCallback = options.menuClosedCallback || null;\r\n this.itemFilterCallback = options.itemFilterCallback || null;\r\n if (options.items) {\r\n this.options.items = options.items;\r\n this.rootLevel.setItems(options.items);\r\n }\r\n if (options.onMenuItemSelected) {\r\n this.options.onMenuItemSelected = options.onMenuItemSelected;\r\n }\r\n var selectedIds = options.selectedIds || null;\r\n if (selectedIds) {\r\n if (typeof selectedIds === \"string\") {\r\n selectedIds = selectedIds.split(\",\");\r\n }\r\n }\r\n else {\r\n selectedIds = [];\r\n }\r\n this.active = true;\r\n this.setSelectedItems(this.options.items, selectedIds);\r\n if (__WEBPACK_IMPORTED_MODULE_2__browser_utils__[\"a\" /* browserUtils */].isMobileMode()) {\r\n this.rootLevel.showAt(0, 0, true, true);\r\n this.rootLevel.levelDiv.style.top = '0px';\r\n this.rootLevel.levelDiv.style.bottom = '0px';\r\n this.rootLevel.levelDiv.style.right = '0px';\r\n this.rootLevel.levelDiv.style.position = 'fixed';\r\n this.rootLevel.levelDiv.style.fontSize = '20px';\r\n }\r\n else {\r\n var anchor = options.anchor || document.documentElement;\r\n var srcPos = Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"k\" /* getElementAbsolutePos */])(anchor);\r\n var anchorHeight = anchor.offsetHeight;\r\n var anchorWidth = anchor.offsetHeight;\r\n var pos = {\r\n x: srcPos.x,\r\n y: srcPos.y + anchorHeight + 2\r\n };\r\n var scroll_1 = Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"l\" /* getScrollPos */])();\r\n var winSize = Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"n\" /* getWinSize */])();\r\n //show menu to the side that have more space available\r\n var leftSpace = pos.x + anchorWidth - scroll_1.left;\r\n var rightSpace = winSize.width - leftSpace + anchorWidth;\r\n pos.x += 2;\r\n this.rootLevel.showAt(pos.x, pos.y, true, true);\r\n this.rootLevel.levelDiv.style.width = '';\r\n this.rootLevel.levelDiv.style.right = '';\r\n if (!this.rootLevel.levelDiv.style.zIndex) {\r\n // z-index is at least 10000 and more if anchor has bigger\r\n this.rootLevel.levelDiv.style.zIndex = \"\" + Math.max(10000, Object(__WEBPACK_IMPORTED_MODULE_3__utils__[\"c\" /* findHighestZIndex */])(anchor) + 1);\r\n }\r\n if ((rightSpace >= this.rootLevel.levelDiv.offsetWidth) || (rightSpace >= leftSpace)) {\r\n //show level to the right\r\n if (rightSpace < this.rootLevel.levelDiv.offsetWidth) {\r\n this.rootLevel.levelDiv.style.right = -scroll_1.left + 'px';\r\n }\r\n }\r\n else {\r\n //show level to the left\r\n if (leftSpace < this.rootLevel.levelDiv.offsetWidth) {\r\n this.rootLevel.levelDiv.style.left = scroll_1.left + 4 + 'px';\r\n }\r\n else {\r\n this.rootLevel.levelDiv.style.left = '';\r\n }\r\n this.rootLevel.levelDiv.style.right = Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"m\" /* getViewportSize */])().width - pos.x - anchorWidth + 'px';\r\n }\r\n this.rootLevel.levelDiv.style.fontSize = '14px';\r\n }\r\n this.rootLevel.levelDiv.style.visibility = 'visible';\r\n this.rootLevel.focus();\r\n document.addEventListener('keyup', this.menuKeyUpHandler);\r\n document.addEventListener('mousedown', this.globalMouseDownHandler, true);\r\n };\r\n PopupMenu.prototype.hideMenu = function () {\r\n document.removeEventListener('mousedown', this.globalMouseDownHandler, true);\r\n document.removeEventListener('keyup', this.menuKeyUpHandler);\r\n this.rootLevel.hide();\r\n if (this.ancorFocused) {\r\n this.ancorFocused.focus();\r\n }\r\n if (this.menuClosedCallback) {\r\n this.menuClosedCallback();\r\n }\r\n };\r\n PopupMenu.prototype.submitMenu = function (menuItem, selectedItems) {\r\n if (this.itemSelectedCallback) {\r\n this.itemSelectedCallback(menuItem, selectedItems);\r\n }\r\n };\r\n PopupMenu.prototype.knockMenuStyle = function (menu) {\r\n menu.removeAttribute('style');\r\n var ul = menu.querySelectorAll('ul').item(0);\r\n var hasUlStyle = ul && ul.style ? true : false;\r\n if (hasUlStyle !== false) {\r\n ul.setAttribute('style', '');\r\n }\r\n };\r\n PopupMenu.prototype.refreshItems = function () {\r\n this.rootLevel.refreshItems();\r\n };\r\n PopupMenu.prototype.refreshCheckboxes = function () {\r\n this.rootLevel.refreshCheckboxes();\r\n };\r\n PopupMenu.lastMenuID = 0;\r\n return PopupMenu;\r\n}());\r\n\r\n//# sourceMappingURL=popup_menu.js.map\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = \"production\" !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QPEditablePart; });\n/**\r\n * Represents parts of Query Panel which can be editable\r\n */\r\nvar QPEditablePart;\r\n(function (QPEditablePart) {\r\n QPEditablePart[QPEditablePart[\"None\"] = 0] = \"None\";\r\n QPEditablePart[QPEditablePart[\"Value\"] = 1] = \"Value\";\r\n QPEditablePart[QPEditablePart[\"Attribute\"] = 2] = \"Attribute\";\r\n QPEditablePart[QPEditablePart[\"Operator\"] = 4] = \"Operator\";\r\n QPEditablePart[QPEditablePart[\"Addition\"] = 8] = \"Addition\";\r\n QPEditablePart[QPEditablePart[\"Removal\"] = 16] = \"Removal\";\r\n QPEditablePart[QPEditablePart[\"All\"] = 255] = \"All\";\r\n QPEditablePart[QPEditablePart[\"NoAddition\"] = -9] = \"NoAddition\";\r\n QPEditablePart[QPEditablePart[\"NoRemoval\"] = -17] = \"NoRemoval\";\r\n QPEditablePart[QPEditablePart[\"FixedConditionList\"] = 5] = \"FixedConditionList\";\r\n})(QPEditablePart || (QPEditablePart = {}));\r\n//# sourceMappingURL=qp_editable_part.js.map\n\n/***/ }),\n/* 18 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return DomElementBuilder; });\n/* unused harmony export DomInputElementBuilder */\n/* unused harmony export DomSelectElementBuilder */\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = domel;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mask__ = __webpack_require__(155);\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\nvar DomElementBuilder = /** @class */ (function () {\r\n function DomElementBuilder(tag, parent) {\r\n if (typeof tag === \"string\") {\r\n this.element = document.createElement(tag);\r\n }\r\n else {\r\n this.element = tag;\r\n }\r\n if (parent && this.element.parentElement !== parent) {\r\n parent.appendChild(this.element);\r\n }\r\n }\r\n DomElementBuilder.prototype.addChild = function (tag, childBuilder) {\r\n var builder = domel(tag, this.element);\r\n if (childBuilder) {\r\n childBuilder(builder);\r\n }\r\n return this;\r\n };\r\n DomElementBuilder.prototype.addChildElement = function (element) {\r\n if (element) {\r\n this.element.appendChild(element);\r\n }\r\n return this;\r\n };\r\n DomElementBuilder.prototype.attr = function (attrId, attrValue) {\r\n this.element.setAttribute(attrId, attrValue);\r\n return this;\r\n };\r\n DomElementBuilder.prototype.id = function (value) {\r\n return this.attr(\"id\", value);\r\n };\r\n DomElementBuilder.prototype.title = function (value) {\r\n return this.attr('title', value);\r\n };\r\n DomElementBuilder.prototype.data = function (dataId, dataValue) {\r\n if (dataValue === void 0) { dataValue = null; }\r\n if (dataValue === null) {\r\n this.element.removeAttribute('data-' + dataId);\r\n return this;\r\n }\r\n else {\r\n return this.attr('data-' + dataId, dataValue);\r\n }\r\n };\r\n DomElementBuilder.prototype.show = function () {\r\n return this.removeStyle('display');\r\n };\r\n DomElementBuilder.prototype.hide = function (toHide) {\r\n if (toHide === void 0) { toHide = true; }\r\n return (toHide) ? this.setStyle('display', 'none') : this;\r\n };\r\n DomElementBuilder.prototype.visible = function (isVisible) {\r\n if (isVisible === void 0) { isVisible = true; }\r\n return isVisible ? this.setStyle('visibility', 'visible') : this.setStyle('visibility', 'hidden');\r\n };\r\n DomElementBuilder.prototype.isVisible = function () {\r\n return !!(this.element.offsetWidth || this.element.offsetHeight || this.element.getClientRects().length);\r\n };\r\n DomElementBuilder.prototype.addClass = function (className) {\r\n var classNames = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n classNames[_i - 1] = arguments[_i];\r\n }\r\n if (className) {\r\n var fullList = className.trim().split(\" \").concat(classNames);\r\n for (var i = 0; i < fullList.length; i++)\r\n this.element.classList.add(fullList[i]);\r\n }\r\n return this;\r\n };\r\n DomElementBuilder.prototype.removeClass = function (className) {\r\n var classNames = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n classNames[_i - 1] = arguments[_i];\r\n }\r\n if (className) {\r\n var fullList = className.trim().split(\" \").concat(classNames);\r\n for (var i = 0; i < fullList.length; i++)\r\n this.element.classList.remove(fullList[i]);\r\n }\r\n return this;\r\n };\r\n DomElementBuilder.prototype.toggleClass = function (className, force) {\r\n if (force === void 0) { force = undefined; }\r\n if (className) {\r\n this.element.classList.toggle(className, force);\r\n }\r\n return this;\r\n };\r\n DomElementBuilder.prototype.on = function (eventType, listener) {\r\n var eventTypes = eventType.split(' ');\r\n for (var i = 0; i < eventTypes.length; i++) {\r\n this.element.addEventListener(eventTypes[i], listener);\r\n }\r\n return this;\r\n };\r\n DomElementBuilder.prototype.off = function (eventType, listener) {\r\n var eventTypes = eventType.split(' ');\r\n for (var i = 0; i < eventTypes.length; i++) {\r\n this.element.removeEventListener(eventTypes[i], listener);\r\n }\r\n return this;\r\n };\r\n DomElementBuilder.prototype.setStyle = function (styleId, styleValue) {\r\n this.element.style.setProperty(styleId, styleValue);\r\n return this;\r\n };\r\n DomElementBuilder.prototype.removeStyle = function (styleId) {\r\n this.element.style.removeProperty(styleId);\r\n return this;\r\n };\r\n DomElementBuilder.prototype.text = function (text) {\r\n this.element.innerText = text;\r\n return this;\r\n };\r\n DomElementBuilder.prototype.html = function (html) {\r\n this.element.innerHTML = html;\r\n return this;\r\n };\r\n DomElementBuilder.prototype.clear = function () {\r\n var oldElem = this.element;\r\n this.element = document.createElement(this.element.tagName);\r\n oldElem.replaceWith(this.element);\r\n };\r\n DomElementBuilder.prototype.addText = function (text) {\r\n var textEl = document.createTextNode(text);\r\n this.element.appendChild(textEl);\r\n return this;\r\n };\r\n DomElementBuilder.prototype.addHtml = function (html) {\r\n this.element.innerHTML += html;\r\n return this;\r\n };\r\n DomElementBuilder.prototype.toDOM = function () {\r\n return this.element;\r\n };\r\n DomElementBuilder.prototype.appendTo = function (parent) {\r\n if (parent) {\r\n parent.appendChild(this.element);\r\n }\r\n return this;\r\n };\r\n return DomElementBuilder;\r\n}());\r\n\r\nvar DomInputElementBuilder = /** @class */ (function (_super) {\r\n __extends(DomInputElementBuilder, _super);\r\n function DomInputElementBuilder(element, parent) {\r\n var _this = this;\r\n if (element) {\r\n _this = _super.call(this, element, parent) || this;\r\n }\r\n else {\r\n _this = _super.call(this, \"input\", parent) || this;\r\n }\r\n return _this;\r\n }\r\n DomInputElementBuilder.prototype.name = function (value) {\r\n this.element.name = value;\r\n return this;\r\n };\r\n DomInputElementBuilder.prototype.type = function (value) {\r\n this.element.type = value;\r\n return this;\r\n };\r\n DomInputElementBuilder.prototype.size = function (value) {\r\n this.element.size = value;\r\n return this;\r\n };\r\n DomInputElementBuilder.prototype.value = function (value) {\r\n if (value instanceof Date) {\r\n this.element.valueAsDate = value;\r\n }\r\n else if (typeof value === \"number\") {\r\n this.element.valueAsNumber = value;\r\n }\r\n else {\r\n this.element.value = value;\r\n }\r\n return this;\r\n };\r\n DomInputElementBuilder.prototype.mask = function (maskPattern) {\r\n Object(__WEBPACK_IMPORTED_MODULE_0__mask__[\"a\" /* mask */])(this.element, maskPattern);\r\n return this;\r\n };\r\n return DomInputElementBuilder;\r\n}(DomElementBuilder));\r\n\r\nvar DomSelectElementBuilder = /** @class */ (function (_super) {\r\n __extends(DomSelectElementBuilder, _super);\r\n function DomSelectElementBuilder(element, parent) {\r\n var _this = this;\r\n if (element) {\r\n _this = _super.call(this, element, parent) || this;\r\n }\r\n else {\r\n _this = _super.call(this, \"select\", parent) || this;\r\n }\r\n return _this;\r\n }\r\n DomSelectElementBuilder.prototype.addOption = function (value) {\r\n var option = document.createElement('option');\r\n if (typeof value === \"string\") {\r\n option.value = value;\r\n option.innerHTML = value;\r\n }\r\n else {\r\n option.value = value.value;\r\n option.innerHTML = value.title || value.value;\r\n option.selected = value.selected || false;\r\n }\r\n this.element.appendChild(option);\r\n return this;\r\n };\r\n return DomSelectElementBuilder;\r\n}(DomElementBuilder));\r\n\r\nfunction domel(tag, parent) {\r\n if (tag === \"div\" || tag instanceof HTMLDivElement) {\r\n return new DomElementBuilder(tag, parent);\r\n }\r\n if (tag === \"span\" || tag instanceof HTMLSpanElement) {\r\n return new DomElementBuilder(tag, parent);\r\n }\r\n else if (tag === \"a\" || tag instanceof HTMLAnchorElement) {\r\n return new DomElementBuilder(tag, parent);\r\n }\r\n else if (tag === \"button\" || tag instanceof HTMLButtonElement) {\r\n return new DomElementBuilder(tag, parent);\r\n }\r\n else if (tag === \"img\" || tag instanceof HTMLImageElement) {\r\n return new DomElementBuilder(tag, parent);\r\n }\r\n else if (tag === \"input\" || tag instanceof HTMLInputElement) {\r\n return new DomInputElementBuilder(tag instanceof HTMLInputElement ? tag : null, parent);\r\n }\r\n else if (tag === \"select\" || tag instanceof HTMLSelectElement) {\r\n return new DomSelectElementBuilder(tag instanceof HTMLSelectElement ? tag : null, parent);\r\n }\r\n return new DomElementBuilder(tag, parent);\r\n}\r\n//# sourceMappingURL=dom_elem_builder.js.map\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (false) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return DataType; });\n/** Represents the common types of the data. */\r\nvar DataType;\r\n(function (DataType) {\r\n /** Unknown type value*/\r\n DataType[DataType[\"Unknown\"] = 0] = \"Unknown\";\r\n /** String value*/\r\n DataType[DataType[\"String\"] = 1] = \"String\";\r\n /** 8-bit integer value */\r\n DataType[DataType[\"Byte\"] = 2] = \"Byte\";\r\n /** 16-bit integer value */\r\n DataType[DataType[\"Word\"] = 3] = \"Word\";\r\n /** 32-bit integer value */\r\n DataType[DataType[\"Int32\"] = 4] = \"Int32\";\r\n /** 64-bit integer value */\r\n DataType[DataType[\"Int64\"] = 5] = \"Int64\";\r\n /** Boolean value */\r\n DataType[DataType[\"Bool\"] = 6] = \"Bool\";\r\n /** Floating-point numeric value */\r\n DataType[DataType[\"Float\"] = 7] = \"Float\";\r\n /** Money value */\r\n DataType[DataType[\"Currency\"] = 8] = \"Currency\";\r\n /** Binary-coded decimal value */\r\n DataType[DataType[\"BCD\"] = 9] = \"BCD\";\r\n /** Date value */\r\n DataType[DataType[\"Date\"] = 10] = \"Date\";\r\n /** Time value */\r\n DataType[DataType[\"Time\"] = 11] = \"Time\";\r\n /** Date and time value */\r\n DataType[DataType[\"DateTime\"] = 12] = \"DateTime\";\r\n /** Autoincrement 32-bit integer value */\r\n DataType[DataType[\"Autoinc\"] = 13] = \"Autoinc\";\r\n /** MEMO value (text with unlimited length) */\r\n DataType[DataType[\"Memo\"] = 14] = \"Memo\";\r\n /** BLOB value (any data with unlimited length) */\r\n DataType[DataType[\"Blob\"] = 15] = \"Blob\";\r\n /** Fixed character value */\r\n DataType[DataType[\"FixedChar\"] = 16] = \"FixedChar\";\r\n /** The unique identifier */\r\n DataType[DataType[\"Guid\"] = 17] = \"Guid\";\r\n /*-------- Spatial data types ----------*/\r\n /** Any geometry data */\r\n DataType[DataType[\"Geometry\"] = 18] = \"Geometry\";\r\n /** Any data that represents some geography objects */\r\n DataType[DataType[\"Geography\"] = 19] = \"Geography\";\r\n})(DataType || (DataType = {}));\r\n//# sourceMappingURL=data_type.js.map\n\n/***/ }),\n/* 21 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ExprTag; });\n/** Contains several constant definitions for expressions tag */\r\nvar ExprTag;\r\n(function (ExprTag) {\r\n /** Unknown expression */\r\n ExprTag[ExprTag[\"Unknown\"] = 0] = \"Unknown\";\r\n /** Constant expression */\r\n ExprTag[ExprTag[\"Constant\"] = 1] = \"Constant\";\r\n /** Entity attributre expression */\r\n ExprTag[ExprTag[\"EntityAttribute\"] = 2] = \"EntityAttribute\";\r\n /** Parent entity attribute expression */\r\n ExprTag[ExprTag[\"ParentEntityAttribute\"] = 3] = \"ParentEntityAttribute\";\r\n /** Agrregate function expression */\r\n ExprTag[ExprTag[\"AggregateFunction\"] = 4] = \"AggregateFunction\";\r\n /** Parent column expression */\r\n ExprTag[ExprTag[\"ParentColumn\"] = 5] = \"ParentColumn\";\r\n /** Query expression */\r\n ExprTag[ExprTag[\"Query\"] = 11] = \"Query\";\r\n /** Custom sql expression */\r\n ExprTag[ExprTag[\"CustomSql\"] = 21] = \"CustomSql\";\r\n})(ExprTag || (ExprTag = {}));\r\n//# sourceMappingURL=expr_tag.js.map\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (false) {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (true) {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = __webpack_require__(209);\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return createBrowserHistory; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return createHashHistory; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return createMemoryHistory; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return createLocation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return locationsAreEqual; });\n/* unused harmony export parsePath */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return createPath; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(216);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_resolve_pathname__ = __webpack_require__(217);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_value_equal__ = __webpack_require__(218);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_tiny_warning__ = __webpack_require__(219);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_tiny_invariant__ = __webpack_require__(220);\n\n\n\n\n\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = Object(__WEBPACK_IMPORTED_MODULE_1_resolve_pathname__[\"a\" /* default */])(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && Object(__WEBPACK_IMPORTED_MODULE_2_value_equal__[\"a\" /* default */])(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n false ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n false ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? false ? invariant(false, 'Browser history needs a DOM') : Object(__WEBPACK_IMPORTED_MODULE_4_tiny_invariant__[\"a\" /* default */])(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n false ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n false ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n false ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n false ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n false ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? false ? invariant(false, 'Hash history needs a DOM') : Object(__WEBPACK_IMPORTED_MODULE_4_tiny_invariant__[\"a\" /* default */])(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n false ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n false ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n false ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n false ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n false ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n false ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n false ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\n\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return utils; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__string_utils__ = __webpack_require__(125);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__types_data_type__ = __webpack_require__(20);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__i18n_i18n__ = __webpack_require__(39);\n\r\n\r\n\r\nvar utils;\r\n(function (utils) {\r\n function getAllDataTypes() {\r\n return Object.values(__WEBPACK_IMPORTED_MODULE_1__types_data_type__[\"a\" /* DataType */]);\r\n }\r\n utils.getAllDataTypes = getAllDataTypes;\r\n function getDateDataTypes() {\r\n return [__WEBPACK_IMPORTED_MODULE_1__types_data_type__[\"a\" /* DataType */].Time, __WEBPACK_IMPORTED_MODULE_1__types_data_type__[\"a\" /* DataType */].Date, __WEBPACK_IMPORTED_MODULE_1__types_data_type__[\"a\" /* DataType */].DateTime];\r\n }\r\n utils.getDateDataTypes = getDateDataTypes;\r\n function getStringDataTypes() {\r\n return [__WEBPACK_IMPORTED_MODULE_1__types_data_type__[\"a\" /* DataType */].String, __WEBPACK_IMPORTED_MODULE_1__types_data_type__[\"a\" /* DataType */].Memo];\r\n }\r\n utils.getStringDataTypes = getStringDataTypes;\r\n var _numericTypes = [__WEBPACK_IMPORTED_MODULE_1__types_data_type__[\"a\" /* DataType */].Byte, __WEBPACK_IMPORTED_MODULE_1__types_data_type__[\"a\" /* DataType */].Word, __WEBPACK_IMPORTED_MODULE_1__types_data_type__[\"a\" /* DataType */].Int32,\r\n __WEBPACK_IMPORTED_MODULE_1__types_data_type__[\"a\" /* DataType */].Int64, __WEBPACK_IMPORTED_MODULE_1__types_data_type__[\"a\" /* DataType */].Float, __WEBPACK_IMPORTED_MODULE_1__types_data_type__[\"a\" /* DataType */].Currency];\r\n var _intTypes = [__WEBPACK_IMPORTED_MODULE_1__types_data_type__[\"a\" /* DataType */].Byte, __WEBPACK_IMPORTED_MODULE_1__types_data_type__[\"a\" /* DataType */].Word, __WEBPACK_IMPORTED_MODULE_1__types_data_type__[\"a\" /* DataType */].Int32, __WEBPACK_IMPORTED_MODULE_1__types_data_type__[\"a\" /* DataType */].Int64];\r\n //-------------- object functions -------------------\r\n /**\r\n * Copy the content of all objests passed in `args` parameters into `target`\r\n * and returns the result\r\n * NB: This function copies only the first level properties.\r\n * For a deep copy please use `assignDeep`\r\n * @param target - the target object\r\n * @param args - an array of the source objects\r\n */\r\n function assign(target) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n for (var i = 0; i < args.length; i++) {\r\n var source = args[i];\r\n if (source) {\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n }\r\n return target;\r\n }\r\n utils.assign = assign;\r\n /**\r\n * Copy the content of all objests passed in `args` parameters into `target`\r\n * and returns the result\r\n * NB: This function make a deep copy -\r\n * so `assignDeep` will be called recursively for all object properties\r\n * on the first level.\r\n * @param target - the target object\r\n * @param sources - an array of the source objects\r\n */\r\n function assignDeep(target) {\r\n var sources = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n sources[_i - 1] = arguments[_i];\r\n }\r\n return assignDeepCore(new WeakMap(), target, sources);\r\n }\r\n utils.assignDeep = assignDeep;\r\n function assignDeepCore(hashSet, target, sources) {\r\n if (!target) {\r\n target = {};\r\n }\r\n for (var _i = 0, sources_1 = sources; _i < sources_1.length; _i++) {\r\n var source = sources_1[_i];\r\n if (source) {\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n var sourceVal = source[key];\r\n if (sourceVal !== null && typeof sourceVal === 'object') {\r\n if (hashSet.has(sourceVal)) {\r\n target[key] = hashSet.get(sourceVal);\r\n }\r\n else {\r\n if (Array.isArray(sourceVal)) {\r\n target[key] = createArrayFrom(sourceVal);\r\n hashSet.set(sourceVal, target[key]);\r\n }\r\n else {\r\n if (typeof target[key] == 'undefined') {\r\n target[key] = Object.create(Object.getPrototypeOf(sourceVal));\r\n }\r\n hashSet.set(sourceVal, target[key]);\r\n assignDeepCore(hashSet, target[key], [sourceVal]);\r\n }\r\n }\r\n }\r\n else {\r\n target[key] = sourceVal;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return target;\r\n }\r\n function getIfDefined(value, defaultValue) {\r\n return (typeof value !== 'undefined') ? value : defaultValue;\r\n }\r\n utils.getIfDefined = getIfDefined;\r\n function IsDefinedAndNotNull(value) {\r\n return typeof value !== 'undefined' && value !== null;\r\n }\r\n utils.IsDefinedAndNotNull = IsDefinedAndNotNull;\r\n function copyArrayTo(collection1, collection2) {\r\n var len1 = collection1.length;\r\n var len2 = collection2.length;\r\n for (var i = 0; i < len1 && i < len2; i++) {\r\n collection2[i] = collection1[i];\r\n }\r\n }\r\n utils.copyArrayTo = copyArrayTo;\r\n function createArrayFrom(collection) {\r\n var result = [];\r\n for (var _i = 0, collection_1 = collection; _i < collection_1.length; _i++) {\r\n var item = collection_1[_i];\r\n result.push(item);\r\n }\r\n return result;\r\n }\r\n utils.createArrayFrom = createArrayFrom;\r\n /**\r\n * Searches an array of the objects which implement ItemWithId by ID\r\n * Returs the found object or null.\r\n * @param array\r\n * @param id\r\n */\r\n function findItemById(array, id) {\r\n var arrLength = array.length;\r\n for (var idx = 0; idx < arrLength; idx++) {\r\n if (array[idx].id === id)\r\n return array[idx];\r\n }\r\n return null;\r\n }\r\n utils.findItemById = findItemById;\r\n function findItemIndexById(array, id) {\r\n var arrLength = array.length;\r\n for (var idx = 0; idx < arrLength; idx++) {\r\n if (array[idx].id === id)\r\n return idx;\r\n }\r\n return -1;\r\n }\r\n utils.findItemIndexById = findItemIndexById;\r\n /**\r\n * Searches an array of the objects which implement ItemWithId by ID\r\n * Returs the index of the found element, or -1 if nothing was found.\r\n * @param array\r\n * @param id\r\n */\r\n function indexOfArrayItem(arr, item) {\r\n if (arr.indexOf) {\r\n return arr.indexOf(item);\r\n }\r\n else {\r\n var len = arr.length;\r\n for (var i = 0; i < len; i++) {\r\n if (item == arr[i]) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n }\r\n }\r\n utils.indexOfArrayItem = indexOfArrayItem;\r\n /**\r\n * Moves an item in some array to a new position\r\n * @param array\r\n * @param index1\r\n * @param index2\r\n */\r\n function moveArrayItem(array, index1, index2) {\r\n if (index1 >= array.length) {\r\n throw 'Index out of bounds: ' + index1;\r\n }\r\n if (index2 >= array.length) {\r\n index2 = array.length - 1;\r\n }\r\n var item = array.splice(index1, 1)[0];\r\n array.splice(index2, 0, item);\r\n }\r\n utils.moveArrayItem = moveArrayItem;\r\n /**\r\n * Searches for a particular item in the array are removes that item if found.\r\n * @param arr\r\n * @param value\r\n */\r\n function removeArrayItem(arr, value) {\r\n var index = arr.indexOf(value);\r\n if (index != -1) {\r\n return arr.splice(index, 1)[0];\r\n }\r\n }\r\n utils.removeArrayItem = removeArrayItem;\r\n function insertArrayItem(arr, index, value) {\r\n arr.splice(index, 0, value);\r\n }\r\n utils.insertArrayItem = insertArrayItem;\r\n function fillArray(arr, value, start, end) {\r\n if (start === void 0) { start = 0; }\r\n var len = arr.length >>> 0;\r\n var relativeStart = start >> 0;\r\n var k = relativeStart < 0 ?\r\n Math.max(len + relativeStart, 0) :\r\n Math.min(relativeStart, len);\r\n var relativeEnd = end === undefined ?\r\n len : end >> 0;\r\n var final = relativeEnd < 0 ?\r\n Math.max(len + relativeEnd, 0) :\r\n Math.min(relativeEnd, len);\r\n while (k < final) {\r\n arr[k] = value;\r\n k++;\r\n }\r\n return arr;\r\n }\r\n utils.fillArray = fillArray;\r\n //------------ DOM utils ------------\r\n /**\r\n * Calculates the shift on which we need to move our element horizontally\r\n * to find current window\r\n * @param absLeft\r\n * @param width\r\n */\r\n function shiftToFitWindow(absLeft, width) {\r\n var body = document.getElementsByTagName('body')[0];\r\n var winWidth = window.innerWidth || document.documentElement.clientWidth || body.clientWidth;\r\n var absRight = absLeft + width;\r\n var shift = 0;\r\n if (absRight > winWidth) {\r\n shift = winWidth - absRight - 10;\r\n if (absLeft + shift < 0) {\r\n shift = 10 - absLeft;\r\n }\r\n }\r\n return shift;\r\n }\r\n utils.shiftToFitWindow = shiftToFitWindow;\r\n /**\r\n * Returns `true` if the value passed in the parameter is an object\r\n * @param val\r\n */\r\n function isObject(val) {\r\n if (val === null) {\r\n return false;\r\n }\r\n return ((typeof val === 'function') || (typeof val === 'object'));\r\n }\r\n utils.isObject = isObject;\r\n /**\r\n * Returns `true` if the `DataType` value passed in the parameter\r\n * represents some numeric type\r\n * @param dtype\r\n */\r\n function isNumericType(dtype) {\r\n var index = _numericTypes.indexOf(dtype);\r\n return (index >= 0);\r\n }\r\n utils.isNumericType = isNumericType;\r\n /**\r\n * Returns `true` if the `DataType` value passed in the parameter\r\n * represents some numeric type\r\n * @param dtype\r\n */\r\n function isIntType(dtype) {\r\n var index = _intTypes.indexOf(dtype);\r\n return (index >= 0);\r\n }\r\n utils.isIntType = isIntType;\r\n /**\r\n * Returns `true` if the value passed in the parameter is an a numeric value\r\n * @param val\r\n */\r\n function isNumeric(val) {\r\n return !isNaN(parseFloat(val)) && isFinite(val);\r\n }\r\n utils.isNumeric = isNumeric;\r\n /**\r\n * Returns `true` if two data types passed in parameters\r\n * are compatible - so it's safe to copy the values between\r\n * two expressions with these two types\r\n * @param type1\r\n * @param type2\r\n */\r\n function areCompatibleDataTypes(type1, type2) {\r\n return typeof type1 == \"undefined\" || typeof type2 == \"undefined\" || type1 == __WEBPACK_IMPORTED_MODULE_1__types_data_type__[\"a\" /* DataType */].Unknown || type2 == __WEBPACK_IMPORTED_MODULE_1__types_data_type__[\"a\" /* DataType */].Unknown\r\n || (type1 == type2) || (type1 == __WEBPACK_IMPORTED_MODULE_1__types_data_type__[\"a\" /* DataType */].Date && type2 == __WEBPACK_IMPORTED_MODULE_1__types_data_type__[\"a\" /* DataType */].DateTime)\r\n || (type1 == __WEBPACK_IMPORTED_MODULE_1__types_data_type__[\"a\" /* DataType */].DateTime && type2 == __WEBPACK_IMPORTED_MODULE_1__types_data_type__[\"a\" /* DataType */].Date);\r\n }\r\n utils.areCompatibleDataTypes = areCompatibleDataTypes;\r\n /**\r\n * Returns `true` if the property with named `propName`\r\n * in the object `obj` has some value\r\n * @param obj\r\n * @param propName\r\n */\r\n function isPropSet(obj, propName) {\r\n return obj[propName] || obj[propName.toLowerCase()] || obj[propName.toUpperCase()];\r\n }\r\n utils.isPropSet = isPropSet;\r\n //-------------- ID generator -----------\r\n var prefixIdLen = 4;\r\n var symbols = \"0123456789abcdefghijklmnopqrstuvwxyz\";\r\n var magicTicks = 636712160627685350;\r\n /**\r\n * Generates an unique ID\r\n */\r\n function generateId(prefix) {\r\n if (!prefix) {\r\n prefix = 'easy';\r\n }\r\n var prfx = (prefix.length > prefixIdLen) ? squeezeMoniker(prefix, prefixIdLen) : prefix;\r\n if (prfx && prfx.length > 0) {\r\n prfx += \"-\";\r\n }\r\n //adding 2 random symbols\r\n var randValue = __WEBPACK_IMPORTED_MODULE_0__string_utils__[\"a\" /* repeatString */](\"\", 2);\r\n ;\r\n var maxSymbolIndex = symbols.length - 1;\r\n randValue = replaceAtString(randValue, 0, symbols[getRandomInt(0, maxSymbolIndex)]);\r\n randValue = replaceAtString(randValue, 1, symbols[getRandomInt(0, maxSymbolIndex)]);\r\n //generating main ID part (64-base representation of the current value of the time ticks)\r\n var ticksNum64 = intToNum36(getNowTicks() - magicTicks);\r\n return prfx + randValue + ticksNum64;\r\n }\r\n utils.generateId = generateId;\r\n function intToNum36(value) {\r\n var targetBase = 36;\r\n var i = 14;\r\n var buffer = __WEBPACK_IMPORTED_MODULE_0__string_utils__[\"a\" /* repeatString */](\"\", i);\r\n var rest = value;\r\n do {\r\n buffer = replaceAtString(buffer, i--, symbols[rest % targetBase]);\r\n rest = Math.floor(rest /= targetBase);\r\n } while (rest > 0);\r\n return __WEBPACK_IMPORTED_MODULE_0__string_utils__[\"b\" /* reverseString */](buffer.trim());\r\n }\r\n function squeezeMoniker(str, maxlen) {\r\n var parts = str.split('-');\r\n var pml = 1;\r\n var ptt = maxlen;\r\n if (parts.length < maxlen) {\r\n pml = maxlen / parts.length;\r\n ptt = parts.length;\r\n }\r\n var result = \"\";\r\n for (var i = 0; i < ptt; i++) {\r\n result += squeeze(parts[i], pml);\r\n }\r\n return result;\r\n }\r\n function squeeze(str, maxlen) {\r\n var len = str.length;\r\n if (len > maxlen) {\r\n var step = len / maxlen;\r\n var result = \"\";\r\n result += str[0];\r\n var nextIndex = step;\r\n var ch = void 0;\r\n for (var i = 1; i < len; i++) {\r\n ch = str[i];\r\n if (i + 1 > nextIndex) {\r\n result += ch;\r\n nextIndex += step;\r\n }\r\n }\r\n return result;\r\n }\r\n else {\r\n return str;\r\n }\r\n }\r\n function replaceAtString(str, index, value) {\r\n return str.substr(0, index) + value + str.substr(index + value.length);\r\n }\r\n function getRandomInt(min, max) {\r\n return Math.floor(Math.random() * (max - min)) + min;\r\n }\r\n function getNowTicks() {\r\n return (621355968e9 + (new Date()).getTime() * 1e4);\r\n }\r\n function safeParseInt(str) {\r\n var isnum = /^\\d+$/.test(str);\r\n if (!isnum)\r\n throw \"Is not a valid number\";\r\n return parseInt(str);\r\n }\r\n function getDaysInMonth(month, year) {\r\n return new Date(year, month + 1, 0).getDate();\r\n }\r\n // ------------- date/time functions -------------------\r\n // TO DO: improve to process all datetime cases\r\n function strToDateTime(value, format) {\r\n if (!value || value.length == 0)\r\n return new Date();\r\n var normalized = value.replace(/[^a-zA-Z0-9_]/g, '-');\r\n var normalizedFormat = format.replace(/[^a-zA-Z0-9_]/g, '-');\r\n var formatItems = normalizedFormat.split('-');\r\n var dateItems = normalized.split('-');\r\n var monthIndex = formatItems.indexOf(\"MM\");\r\n var dayIndex = formatItems.indexOf(\"dd\");\r\n var yearIndex = formatItems.indexOf(\"yyyy\");\r\n var hourIndex = formatItems.indexOf(\"HH\");\r\n var minutesIndex = formatItems.indexOf(\"mm\");\r\n var secondsIndex = formatItems.indexOf(\"ss\");\r\n var today = new Date();\r\n try {\r\n var year = yearIndex > -1 && yearIndex < dateItems.length ? safeParseInt(dateItems[yearIndex]) : today.getFullYear();\r\n var month = monthIndex > -1 && monthIndex < dateItems.length ? safeParseInt(dateItems[monthIndex]) - 1 : today.getMonth() - 1;\r\n if (month > 11)\r\n throw '';\r\n var day = dayIndex > -1 && dayIndex < dateItems.length ? safeParseInt(dateItems[dayIndex]) : today.getDate();\r\n if (day > getDaysInMonth(month, year))\r\n throw '';\r\n var hour = hourIndex > -1 && hourIndex < dateItems.length ? safeParseInt(dateItems[hourIndex]) : 0;\r\n if (hour > 23)\r\n throw '';\r\n var minute = minutesIndex > -1 && minutesIndex < dateItems.length ? safeParseInt(dateItems[minutesIndex]) : 0;\r\n if (minute > 59)\r\n throw '';\r\n var second = secondsIndex > -1 && secondsIndex < dateItems.length ? safeParseInt(dateItems[secondsIndex]) : 0;\r\n if (second > 59)\r\n throw '';\r\n return new Date(year, month, day, hour, minute, second);\r\n }\r\n catch (_a) {\r\n throw \"Is not a valid date time.\";\r\n }\r\n }\r\n utils.strToDateTime = strToDateTime;\r\n var DT_FORMAT_RGEX = /\\[([^\\]]+)]|y{4}|M{1,4}|d{1,2}|H{1,2}|h{1,2}|m{2}|s{2}|t{2}/g;\r\n /**\r\n * Returns string representation of the date/time value according to the custom format (second parameter)\r\n * The format is compatible with the one used in .NET: https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings\r\n * @param date\r\n * @param format\r\n */\r\n function dateTimeToStr(date, format) {\r\n var year = date.getFullYear();\r\n var month = date.getMonth() + 1;\r\n var day = date.getDate();\r\n var hour = date.getHours();\r\n var minute = date.getMinutes();\r\n var second = date.getSeconds();\r\n var hour12 = hour % 12 || 12; //the remainder of the division by 12. Or 12 if it's 0\r\n var isPm = hour > 11;\r\n var matches = {\r\n yyyy: year.toString(),\r\n MMMM: __WEBPACK_IMPORTED_MODULE_2__i18n_i18n__[\"a\" /* i18n */].getLongMonthName(month),\r\n MMM: __WEBPACK_IMPORTED_MODULE_2__i18n_i18n__[\"a\" /* i18n */].getShortMonthName(month),\r\n MM: (month < 10) ? '0' + month : month.toString(),\r\n M: month.toString(),\r\n dd: (day < 10) ? '0' + day : day.toString(),\r\n d: day.toString(),\r\n HH: (hour < 10) ? '0' + hour : hour.toString(),\r\n H: hour.toString(),\r\n hh: (hour12 < 10) ? '0' + hour12 : hour12.toString(),\r\n h: hour12.toString(),\r\n tt: isPm ? 'PM' : 'AM',\r\n mm: (minute < 10) ? '0' + minute : minute.toString(),\r\n ss: (second < 10) ? '0' + second : second.toString()\r\n };\r\n return format.replace(DT_FORMAT_RGEX, function (match, $1) {\r\n return $1 || matches[match];\r\n });\r\n }\r\n utils.dateTimeToStr = dateTimeToStr;\r\n /**\r\n * Converts a numeric value to the string taking into the account the decimal separator\r\n * @param value - the number to convert\r\n * @param decimalSeparator - the symbol that represents decimal separator. If not specified the function gets the one from the current locale settings.\r\n */\r\n function numberToStr(number, decimalSeparator) {\r\n decimalSeparator = decimalSeparator || __WEBPACK_IMPORTED_MODULE_2__i18n_i18n__[\"a\" /* i18n */].getLocaleSettings().decimalSeparator;\r\n return number.toString().replace('.', decimalSeparator);\r\n }\r\n utils.numberToStr = numberToStr;\r\n})(utils || (utils = {}));\r\n//# sourceMappingURL=utils.js.map\n\n/***/ }),\n/* 25 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return DataKind; });\n/** Represents expression kinds.*/\r\nvar DataKind;\r\n(function (DataKind) {\r\n /** Represents one value of some type: one constant or one attribute (field).*/\r\n DataKind[DataKind[\"Scalar\"] = 0] = \"Scalar\";\r\n /** The same as Scalar but represents only one constant value of some type.*/\r\n DataKind[DataKind[\"Const\"] = 1] = \"Const\";\r\n /** The same as Scalar but represents only one attribute.*/\r\n DataKind[DataKind[\"Attribute\"] = 2] = \"Attribute\";\r\n /** Represents a list of scalar values. */\r\n DataKind[DataKind[\"List\"] = 4] = \"List\";\r\n /** Special expression kind which represents a sub query.*/\r\n DataKind[DataKind[\"Query\"] = 5] = \"Query\";\r\n /** Special expression kind which represents a binding to parent column.*/\r\n DataKind[DataKind[\"ParentColumn\"] = 6] = \"ParentColumn\";\r\n})(DataKind || (DataKind = {}));\r\n//# sourceMappingURL=data_kind.js.map\n\n/***/ }),\n/* 26 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return FacetType; });\nvar FacetType;\r\n(function (FacetType) {\r\n FacetType[\"DataGrid\"] = \"DATA_GRID\";\r\n FacetType[\"Chart\"] = \"CHART\";\r\n FacetType[\"PivotTable\"] = \"PIVOT_TABLE\";\r\n})(FacetType || (FacetType = {}));\r\n//# sourceMappingURL=facet_type.js.map\n\n/***/ }),\n/* 27 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return DropdownContext; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n\n/**\n * DropdownContext\n * {\n * toggle: PropTypes.func.isRequired,\n * isOpen: PropTypes.bool.isRequired,\n * direction: PropTypes.oneOf(['up', 'down', 'left', 'right']).isRequired,\n * inNavbar: PropTypes.bool.isRequired,\n * disabled: PropTypes.bool\n * }\n */\n\nvar DropdownContext = /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_0_react___default.a.createContext({});\n\n/***/ }),\n/* 28 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_defineProperty__ = __webpack_require__(14);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react_transition_group__ = __webpack_require__(59);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react_transition_group___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_react_transition_group__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utils__ = __webpack_require__(2);\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(Object(source), true).forEach(function (key) { Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_defineProperty__[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n\n\n\n\n\n\nvar propTypes = _objectSpread(_objectSpread({}, __WEBPACK_IMPORTED_MODULE_6_react_transition_group__[\"Transition\"].propTypes), {}, {\n children: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.node), __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.node]),\n tag: __WEBPACK_IMPORTED_MODULE_7__utils__[\"t\" /* tagPropType */],\n baseClass: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string,\n baseClassActive: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string,\n className: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.object,\n innerRef: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func])\n});\n\nvar defaultProps = _objectSpread(_objectSpread({}, __WEBPACK_IMPORTED_MODULE_6_react_transition_group__[\"Transition\"].defaultProps), {}, {\n tag: 'div',\n baseClass: 'fade',\n baseClassActive: 'show',\n timeout: __WEBPACK_IMPORTED_MODULE_7__utils__[\"e\" /* TransitionTimeouts */].Fade,\n appear: true,\n enter: true,\n exit: true,\n in: true\n});\n\nfunction Fade(props) {\n var Tag = props.tag,\n baseClass = props.baseClass,\n baseClassActive = props.baseClassActive,\n className = props.className,\n cssModule = props.cssModule,\n children = props.children,\n innerRef = props.innerRef,\n otherProps = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"tag\", \"baseClass\", \"baseClassActive\", \"className\", \"cssModule\", \"children\", \"innerRef\"]);\n\n var transitionProps = Object(__WEBPACK_IMPORTED_MODULE_7__utils__[\"r\" /* pick */])(otherProps, __WEBPACK_IMPORTED_MODULE_7__utils__[\"c\" /* TransitionPropTypeKeys */]);\n var childProps = Object(__WEBPACK_IMPORTED_MODULE_7__utils__[\"q\" /* omit */])(otherProps, __WEBPACK_IMPORTED_MODULE_7__utils__[\"c\" /* TransitionPropTypeKeys */]);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6_react_transition_group__[\"Transition\"], transitionProps, function (status) {\n var isActive = status === 'entered';\n var classes = Object(__WEBPACK_IMPORTED_MODULE_7__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_5_classnames___default()(className, baseClass, isActive && baseClassActive), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({\n className: classes\n }, childProps, {\n ref: innerRef\n }), children);\n });\n}\n\nFade.propTypes = propTypes;\nFade.defaultProps = defaultProps;\n/* harmony default export */ __webpack_exports__[\"a\"] = (Fade);\n\n/***/ }),\n/* 29 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export InvalidQueryError */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Query; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_utils__ = __webpack_require__(40);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__dm_data_model__ = __webpack_require__(62);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__expression__ = __webpack_require__(42);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__query_column__ = __webpack_require__(64);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__condition__ = __webpack_require__(138);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__types_data_kind__ = __webpack_require__(25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__types_link_type__ = __webpack_require__(41);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__ = __webpack_require__(21);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__types_cond_tag__ = __webpack_require__(65);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__query_events__ = __webpack_require__(30);\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * The error that appears when the query is not valid\r\n */\r\nvar InvalidQueryError = /** @class */ (function (_super) {\r\n __extends(InvalidQueryError, _super);\r\n /**\r\n * Creates an instance of error type.\r\n * @param message The error message\r\n */\r\n function InvalidQueryError(message) {\r\n var _this = _super.call(this, message) || this;\r\n if (Error.captureStackTrace) {\r\n Error.captureStackTrace(_this, InvalidQueryError);\r\n }\r\n _this.name = 'InvalidQueryError';\r\n return _this;\r\n }\r\n return InvalidQueryError;\r\n}(Error));\r\n\r\n/**\r\n * Represents Query.\r\n */\r\nvar Query = /** @class */ (function () {\r\n /**\r\n * The default constructor.\r\n * @param model The data model.\r\n * @param data JSON representation object.\r\n * @param options The options.\r\n * @throws {InvalidQueryError} The error throws when query is not valid.\r\n */\r\n function Query(model, data, options) {\r\n /**\r\n * Contains user-defined extra data for current query.\r\n */\r\n this.extraData = {};\r\n this.innerData = {};\r\n this.isNewbie = true;\r\n this._isModified = false;\r\n this.parentQuery = null;\r\n this.drillDowns = [];\r\n this.eventEmitter = new __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"f\" /* EventEmitter */](this);\r\n this.root = new __WEBPACK_IMPORTED_MODULE_5__condition__[\"a\" /* Condition */](this, __WEBPACK_IMPORTED_MODULE_9__types_cond_tag__[\"a\" /* CondTag */].Group);\r\n this.extraConditions = new __WEBPACK_IMPORTED_MODULE_5__condition__[\"a\" /* Condition */](this, __WEBPACK_IMPORTED_MODULE_9__types_cond_tag__[\"a\" /* CondTag */].Group);\r\n this.columns = new Array();\r\n this.justsorted = new Array();\r\n if (!this.id) {\r\n this.regenerateId();\r\n }\r\n this.setDefaultName();\r\n this.description = \"\";\r\n this.modelId = \"\";\r\n this.modelName = \"\";\r\n this.model = (model) ? model : new __WEBPACK_IMPORTED_MODULE_2__dm_data_model__[\"a\" /* DataModel */]();\r\n if (data) {\r\n this.loadFromData(data);\r\n }\r\n this.attributeExprTag = (options) ? options.attrTag || __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].EntityAttribute : __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].EntityAttribute;\r\n this.clientListRequestHandler = (options) ? options.clientListRequestHandler : new Array();\r\n this.serverListRequestHandler = (options) ? options.serverListRequestHandler : new Array();\r\n this.timezoneOffset = (new Date()).getTimezoneOffset();\r\n if (options) {\r\n this.parentQuery = options.parent;\r\n }\r\n }\r\n Query.prototype.isModified = function () {\r\n return this._isModified;\r\n };\r\n Query.prototype.resetModified = function () {\r\n this._isModified = false;\r\n };\r\n Query.prototype.isEx = function () {\r\n return false;\r\n };\r\n /**\r\n * Resets the query: clears all its conditions and columns, regenerate the ID and sets the default name.\r\n * @param silent Indicates whether we need to avoid firing the QueryChanged event.\r\n */\r\n Query.prototype.reset = function (clearQuery) {\r\n if (clearQuery === void 0) { clearQuery = true; }\r\n if (clearQuery) {\r\n this.clear();\r\n }\r\n this.regenerateId();\r\n this.setDefaultName();\r\n this._isModified = false;\r\n this.isNewbie = true;\r\n };\r\n Query.prototype.hasEnabledAggrColumns = function () {\r\n return this.columns.filter(function (col) { return col.enabled\r\n && col.expr.tag === __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].AggregateFunction; }).length > 0;\r\n };\r\n Query.prototype.setDefaultName = function () {\r\n this.setName(__WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('NewQueryName'));\r\n return this.getName();\r\n };\r\n /**\r\n * Validates wether the query corresponds to the model.\r\n * @param options Validate options.\r\n * @throws {InvalidQueryError} If query is not valid.\r\n */\r\n Query.prototype.validate = function (options) {\r\n options = options || {};\r\n var entityAttrNotExistError = \"EntityAttribute isn't declared in the model: \";\r\n var wrongExprTag = \"The expression has wrond tag: \";\r\n if (!this.model) {\r\n throw new InvalidQueryError(\"Model is not declared\");\r\n }\r\n if (this.columns) {\r\n for (var _i = 0, _a = this.columns; _i < _a.length; _i++) {\r\n var column = _a[_i];\r\n if (column.expr.tag == __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].EntityAttribute\r\n || column.expr.tag === __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].ParentEntityAttribute) {\r\n var attr = this.model.getAttributeById(column.expr.value);\r\n if (!attr) {\r\n throw new InvalidQueryError(entityAttrNotExistError + column.expr.value);\r\n }\r\n }\r\n else if (column.expr.tag === __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].AggregateFunction) {\r\n var attr = this.model.getAttributeById(column.expr.args[0].value);\r\n if (!attr) {\r\n throw new InvalidQueryError(entityAttrNotExistError + column.expr.args[0].value);\r\n }\r\n }\r\n else if (column.expr.tag !== __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].CustomSql) {\r\n throw new InvalidQueryError(wrongExprTag + column.expr.tag);\r\n }\r\n }\r\n }\r\n if (this.root && this.root.getConditions()) {\r\n this.validateConditionGroup(this.root, options);\r\n }\r\n };\r\n Query.prototype.getAggregatedColumns = function () {\r\n return this.getColumns().filter(function (col) { return col.enabled\r\n && col.expr.tag === __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].AggregateFunction; });\r\n };\r\n /**\r\n * Validates wether the query corresponds to the model.\r\n * @param options Validate options.\r\n * @returns `true` if it is valid, otherwise `false`\r\n */\r\n Query.prototype.tryValidate = function (options) {\r\n try {\r\n this.validate(options);\r\n return true;\r\n }\r\n catch (e) {\r\n if (e.name == 'InvalidQueryError') {\r\n return false;\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n };\r\n Query.prototype.validateConditionGroup = function (curCond, options) {\r\n if (curCond.isGroup()) {\r\n for (var _i = 0, _a = curCond.getConditions(); _i < _a.length; _i++) {\r\n var condition = _a[_i];\r\n if (!condition.enabled)\r\n continue;\r\n this.validateConditionGroup(condition, options);\r\n }\r\n }\r\n else if (curCond.expressions[0].tag === __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].EntityAttribute) {\r\n var attrId = curCond.expressions[0].value;\r\n var attr = this.model.getAttributeById(attrId);\r\n if (!attr) {\r\n throw new InvalidQueryError(\"EntityAttribute isn't declared in the model: \" + attrId);\r\n }\r\n if (!options.checkExpressions)\r\n return;\r\n for (var i = 1; i < curCond.expressions.length; i++) {\r\n var expr = curCond.expressions[i];\r\n if (expr.tag !== __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].Constant)\r\n continue;\r\n //validate number exprs\r\n if (__WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].isNumericType(expr.dataType)) {\r\n if (!expr.value.length) {\r\n throw new InvalidQueryError(\"Expression constant is empty in condition: \" + curCond.id);\r\n }\r\n var values = [];\r\n if (expr.kind === __WEBPACK_IMPORTED_MODULE_6__types_data_kind__[\"a\" /* DataKind */].List) {\r\n values = expr.value.split(/\\s*,\\s*/);\r\n }\r\n else {\r\n values = [expr.value];\r\n }\r\n for (var _b = 0, values_1 = values; _b < values_1.length; _b++) {\r\n var value = values_1[_b];\r\n var parsedVal = +value;\r\n if (isNaN(parsedVal)) {\r\n throw new InvalidQueryError(\"Expression constant is NaN in condition:\" + curCond.id);\r\n }\r\n if (__WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].isIntType(expr.dataType) && parsedVal != parseInt(value, 10)) {\r\n throw new InvalidQueryError(\"Expression constant is wrong interger in condition: \" + curCond.id);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Sets data to the query.\r\n * @param data JSON representation object or JSON string\r\n * @param changeStatus Indicate whether we should change the \"isModified\" status (by default == `true`)\r\n */\r\n Query.prototype.loadFromDataOrJson = function (data, changeStatus) {\r\n if (changeStatus === void 0) { changeStatus = true; }\r\n if (data) {\r\n if (typeof data === \"string\") {\r\n this.loadFromJson(data, changeStatus);\r\n }\r\n else {\r\n this.loadFromData(data, changeStatus);\r\n }\r\n }\r\n };\r\n /**\r\n * Loads query from JSON.\r\n * @param json The JSON string.\r\n * @throws {InvalidQueryError} The error throws when query is not valid.\r\n */\r\n Query.prototype.loadFromJson = function (json, changeStatus) {\r\n if (changeStatus === void 0) { changeStatus = true; }\r\n var data = JSON.parse(json);\r\n this.loadFromData(data, changeStatus);\r\n };\r\n /**\r\n * Loads query from data representation.\r\n * @param data\r\n * @param changeStatus\r\n * @throws {InvalidQueryError} The error throws when query is not valid.\r\n */\r\n Query.prototype.loadFromData = function (data, changeStatus) {\r\n if (changeStatus === void 0) { changeStatus = true; }\r\n var noErrors = false;\r\n this.clear();\r\n this.clearDrillDowns();\r\n if (data) {\r\n this.id = data.id;\r\n this.root.loadFromData(this.model, data.root);\r\n if (data.root && data.root.conds) {\r\n for (var i = 0; i < data.root.conds.length; i++) {\r\n var condData = data.root.conds[i];\r\n if (condData.conds && !this.isEx()) {\r\n console.error(\"Community version doesn't support working with groups.\");\r\n continue;\r\n }\r\n var cond = this.createCondition();\r\n cond.loadFromData(this.model, condData);\r\n this.root.addCondition(cond);\r\n }\r\n }\r\n this.name = data.name;\r\n this.description = data.desc;\r\n this.justsorted = [];\r\n if (data.justsortcols) {\r\n for (var i = 0; i < data.justsortcols.length; i++) {\r\n var newCol = this.createColumn(true);\r\n newCol.loadFromData(this.model, data.justsortcols[i]);\r\n this.justsorted.push(newCol);\r\n }\r\n }\r\n if (data.cols) {\r\n for (var i = 0; i < data.cols.length; i++) {\r\n var newCol = this.createColumn();\r\n newCol.loadFromData(this.model, data.cols[i]);\r\n this.columns.push(newCol);\r\n }\r\n }\r\n if (data.extraData) {\r\n this.extraData = data.extraData;\r\n }\r\n this.innerData = data.innerData || this.innerData;\r\n if (data.dds && data.dds.length) {\r\n for (var _i = 0, _a = data.dds; _i < _a.length; _i++) {\r\n var dd = _a[_i];\r\n var query = this.addDrillDown();\r\n query.loadFromData(dd);\r\n }\r\n }\r\n }\r\n noErrors = true;\r\n if (noErrors) {\r\n if (changeStatus) {\r\n this.isNewbie = false;\r\n this._isModified = false;\r\n }\r\n }\r\n this.validate();\r\n };\r\n /**\r\n *\r\n */\r\n Query.prototype.addDrillDown = function () {\r\n var query = this.model.createQuery();\r\n query.parentQuery = this;\r\n this.drillDowns.push(query);\r\n return query;\r\n };\r\n Query.prototype.getDrillDowns = function () {\r\n return this.drillDowns;\r\n };\r\n Query.prototype.getParentQuery = function () {\r\n return this.parentQuery;\r\n };\r\n /**\r\n *\r\n */\r\n Query.prototype.findColumnById = function (colId) {\r\n for (var _i = 0, _a = this.columns; _i < _a.length; _i++) {\r\n var col = _a[_i];\r\n if (col.id === colId)\r\n return col;\r\n }\r\n return null;\r\n };\r\n /**\r\n * Gets DataModel object associated with this query.\r\n * @retruns The data model.\r\n */\r\n Query.prototype.getModel = function () {\r\n return this.model;\r\n };\r\n /**\r\n * Sets DataModel object associated with this query.\r\n * @param model The data model.\r\n */\r\n Query.prototype.setModel = function (model) {\r\n this.model = model;\r\n };\r\n /**\r\n * Loads data model.\r\n * @param model JSON representation object or JSON string.\r\n */\r\n Query.prototype.loadModelData = function (model) {\r\n this.model.setData(model);\r\n };\r\n /**\r\n * Returns JSON representation of this query.\r\n * @retruns JSON string.\r\n */\r\n Query.prototype.toJSON = function () {\r\n return JSON.stringify(this.toJSONData());\r\n };\r\n /**\r\n * Returns JSON representation of this query.\r\n * @retruns JSON representation object.\r\n */\r\n Query.prototype.toJSONData = function () {\r\n var _this = this;\r\n var obj = {\r\n modelId: this.model ? this.model.getId() : null,\r\n modelName: this.model ? this.model.getName() : null\r\n };\r\n obj.id = this.id;\r\n obj.name = this.name;\r\n if (this.description) {\r\n obj.desc = this.description;\r\n }\r\n obj.cols = [];\r\n for (var i = 0; i < this.columns.length; i++) {\r\n obj.cols.push(this.columns[i].saveToData());\r\n }\r\n obj.justsortcols = [];\r\n for (var i = 0; i < this.justsorted.length; i++) {\r\n obj.justsortcols.push(this.justsorted[i].saveToData());\r\n }\r\n if (this.extraData) {\r\n obj.extraData = this.extraData;\r\n }\r\n if (this.innerData) {\r\n obj.innerData = this.innerData;\r\n }\r\n var rootCondToData = function (condGroup) {\r\n var result = condGroup.saveToData();\r\n result.conds = [];\r\n var conditions = condGroup.getConditions();\r\n for (var i = 0; i < conditions.length; i++) {\r\n if (conditions[i].isGroup() && !_this.isEx()) {\r\n console.error(\"Community version doesn't support working with groups.\");\r\n continue;\r\n }\r\n result.conds.push(conditions[i].saveToData());\r\n }\r\n return result;\r\n };\r\n obj.root = rootCondToData(this.root);\r\n obj.extraConds = rootCondToData(this.extraConditions);\r\n if (this.drillDowns.length > 0) {\r\n obj.dds = [];\r\n for (var _i = 0, _a = this.drillDowns; _i < _a.length; _i++) {\r\n var dd = _a[_i];\r\n obj.dds.push(dd.toJSONData());\r\n }\r\n }\r\n obj.timezoneOffset = this.timezoneOffset;\r\n obj.locale = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getCurrentLocale();\r\n return obj;\r\n };\r\n /**\r\n * Checks wether query does not contains any condtion.\r\n * @retruns `true` if query does not contain any condition, otherwise `false`.\r\n */\r\n Query.prototype.isEmptyConditions = function () {\r\n return this.root.isEmpty();\r\n };\r\n /**\r\n * Checks wether query does not contains any column.\r\n * @retruns `true` if query does not contain any column, otherwise `false`.\r\n */\r\n Query.prototype.isEmptyColumns = function () {\r\n return !this.columns || this.columns.length === 0;\r\n };\r\n /**\r\n * Checks wether query does not contains any column and any condition.\r\n * @retruns `true` if query does not contain any column and any condition, otherwise `false`.\r\n */\r\n Query.prototype.isEmpty = function () {\r\n return this.isEmptyColumns() && this.isEmptyConditions();\r\n };\r\n /**\r\n * Clears the query (all conditions, columns, extraData, etc).\r\n */\r\n Query.prototype.clear = function () {\r\n this.clearColumns();\r\n this.clearConditions();\r\n this.clearExtraConditions();\r\n this.innerData = {};\r\n this.extraData = {};\r\n };\r\n /**\r\n * Clears all columns in query\r\n */\r\n Query.prototype.clearColumns = function () {\r\n this.columns = [];\r\n this.justsorted = [];\r\n };\r\n /**\r\n * Clears all conditions in query.\r\n */\r\n Query.prototype.clearConditions = function () {\r\n this.root.clearConditions();\r\n this.root.linkType = __WEBPACK_IMPORTED_MODULE_7__types_link_type__[\"a\" /* LinkType */].All;\r\n this.root.enabled = true;\r\n };\r\n /**\r\n * Clears all extra conditions in query\r\n */\r\n Query.prototype.clearExtraConditions = function () {\r\n this.extraConditions.clearConditions();\r\n };\r\n /**\r\n * Clears all drill downs\r\n */\r\n Query.prototype.clearDrillDowns = function () {\r\n this.drillDowns = [];\r\n };\r\n /**\r\n * Gets query ID.\r\n * @returns The ID>\r\n */\r\n Query.prototype.getId = function () {\r\n return this.id;\r\n };\r\n /**\r\n * Sets query ID.\r\n * @param id New Query ID.\r\n */\r\n Query.prototype.setId = function (id) {\r\n this.id = id;\r\n };\r\n /**\r\n * Regenerates current query ID.\r\n * @param id New Query ID.\r\n */\r\n Query.prototype.regenerateId = function () {\r\n this.id = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].generateId(\"quer\");\r\n };\r\n /**\r\n * Gets name of the query.\r\n * @retruns The name.\r\n */\r\n Query.prototype.getName = function () {\r\n return this.name;\r\n };\r\n /**\r\n * Sets name of the query\r\n * @param name New name.\r\n */\r\n Query.prototype.setName = function (name) {\r\n this.name = name;\r\n };\r\n /**\r\n * Gets description of the query.\r\n * @retruns The description.\r\n */\r\n Query.prototype.getDescription = function () {\r\n return this.description;\r\n };\r\n /**\r\n * Sets description of the query\r\n * @param description New description.\r\n */\r\n Query.prototype.setDescription = function (description) {\r\n this.description = description;\r\n };\r\n /**\r\n * Get array of columns.\r\n * @retruns Columns.\r\n */\r\n Query.prototype.getColumns = function () {\r\n return this.columns;\r\n };\r\n /**\r\n * Gets array of columns that are used as keys\r\n * for totals.\r\n */\r\n Query.prototype.getUsedInTotalsColumns = function () {\r\n var aggrs = this.getAggregatedColumns();\r\n if (aggrs.length === 0)\r\n return [];\r\n var cols = this.getColumns()\r\n .filter(function (col) { return col.enabled && col.expr.tag === __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].EntityAttribute; });\r\n if (cols.length)\r\n cols.pop();\r\n return cols;\r\n };\r\n /**\r\n * Get array of columns used only in sorting.\r\n * @retruns Columns.\r\n */\r\n Query.prototype.getJustSortedColumns = function () {\r\n return this.justsorted;\r\n };\r\n /**\r\n * Gets array of columns used in sorting\r\n * @retruns Columns\r\n */\r\n Query.prototype.getSortedColumns = function () {\r\n var sortedCols = new Array();\r\n var cols = this.getColumns()\r\n .concat(this.getJustSortedColumns());\r\n for (var i = 0; i < cols.length; i++) {\r\n var col = cols[i];\r\n if (col.sortIndex >= 0) {\r\n sortedCols.push(col);\r\n }\r\n }\r\n sortedCols.sort(function (col1, col2) {\r\n return col1.sortIndex - col2.sortIndex;\r\n });\r\n return sortedCols;\r\n };\r\n /**\r\n * Gets Colummn sorting index.\r\n * @param col The column.\r\n * @retruns The index.\r\n */\r\n Query.prototype.getColumnSortIndex = function (col) {\r\n if (col.sorting != __WEBPACK_IMPORTED_MODULE_4__query_column__[\"b\" /* SortDirection */].None) {\r\n if (col.sortIndex < 0) {\r\n var cols = this.getColumns()\r\n .concat(this.getJustSortedColumns());\r\n return __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].indexOfArrayItem(cols, col);\r\n }\r\n else {\r\n return col.sortIndex;\r\n }\r\n }\r\n return -1;\r\n };\r\n Query.prototype.createColumn = function (justsorted) {\r\n if (justsorted === void 0) { justsorted = false; }\r\n return new __WEBPACK_IMPORTED_MODULE_4__query_column__[\"a\" /* QueryColumn */](this, justsorted);\r\n };\r\n Query.prototype.getColumnById = function (id) {\r\n return __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].findItemById(this.columns, id);\r\n };\r\n /**\r\n * Adds a new column with specified parameters\r\n * @param desriptor The descriptor of the new column. Can contain different parameters like:\r\n * `attribute` - a reference to a EntityAttr object,\r\n * `attributeId` - an ID of the entity attribute we need (if we don't indicate `attribute`),\r\n * `index`, sorting`, 'sortIndex` and other\r\n *\r\n * @param author The author of this operation. This parameter is used in EasyQuery widgets only to indicate which of the initiates the change.\r\n * @retruns The column.\r\n * @example\r\n * query.addColumn({\r\n * attributeId: 'Customers.CompanyName',\r\n * sortIndex: SortDirection.Ascending\r\n * }});\r\n */\r\n Query.prototype.addColumn = function (descriptor, author) {\r\n var columns = (descriptor.justsorted)\r\n ? this.justsorted\r\n : this.columns;\r\n var newColumn;\r\n if (descriptor.column) {\r\n newColumn = descriptor.column;\r\n }\r\n else {\r\n newColumn = this.createColumn(descriptor.justsorted);\r\n var attr = void 0;\r\n if (descriptor.attribute) {\r\n attr = descriptor.attribute;\r\n }\r\n else if (descriptor.attributeId) {\r\n attr = this.model.getAttributeById(descriptor.attributeId);\r\n if (!attr) {\r\n throw new Error(\"Incorrect attribute id (\" + descriptor.attributeId + \"): addColumn\");\r\n }\r\n }\r\n else {\r\n throw new Error(\"Not enought data: addColumn\");\r\n }\r\n if (descriptor.aggrFuncId && descriptor.cusomtSql) {\r\n console.warn(\"Column cannot be created using aggrFuncId and customSql at the same time. \" +\r\n \"cusomSql will be used.\");\r\n }\r\n if (descriptor.cusomtSql) {\r\n newColumn.caption = 'Custom SQL Column';\r\n newColumn.expr.tag = __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].CustomSql;\r\n newColumn.expr.baseAttrId = attr.id;\r\n newColumn.expr.sql = descriptor.cusomtSql;\r\n }\r\n else if (descriptor.aggrFuncId) {\r\n newColumn.caption = attr.caption + ' '\r\n + this.model.getAggrFunctionCaption(descriptor.aggrFuncId);\r\n newColumn.expr.tag = __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].AggregateFunction;\r\n newColumn.expr.func = descriptor.aggrFuncId;\r\n newColumn.expr.distinct = false;\r\n var arg = new __WEBPACK_IMPORTED_MODULE_3__expression__[\"a\" /* Expression */](newColumn);\r\n arg.setValue(attr.id, true);\r\n arg.tag = __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].EntityAttribute;\r\n newColumn.expr.args.push(arg);\r\n ;\r\n }\r\n else {\r\n newColumn.caption = attr.caption;\r\n newColumn.expr.setValue(attr.id, true);\r\n newColumn.expr.tag = __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].EntityAttribute;\r\n }\r\n newColumn.caption = descriptor.caption || newColumn.caption;\r\n newColumn.sorting = descriptor.sorting || __WEBPACK_IMPORTED_MODULE_4__query_column__[\"b\" /* SortDirection */].None;\r\n newColumn.sortIndex = descriptor.sortIndex || -1;\r\n newColumn.enabled = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].getIfDefined(descriptor.enabled, true);\r\n newColumn.setReadOnly(__WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].getIfDefined(descriptor.readonly, false));\r\n }\r\n if (descriptor.index && descriptor.index >= 0 && descriptor.index < columns.length) {\r\n columns.splice(descriptor.index, 0, newColumn);\r\n }\r\n else {\r\n columns.push(newColumn);\r\n }\r\n return newColumn;\r\n };\r\n /**\r\n * Adds a new column with specified index.\r\n * @param column The column or array of columns\r\n * @param index The index of new column\r\n * @param author The author.\r\n * @example\r\n * const column = new Column();\r\n * column.caption = \"Company name\";\r\n *\r\n * query.addColumn(column, 1)\r\n */\r\n Query.prototype.addColumnObj = function (column, index, author) {\r\n var columns = this.columns;\r\n if (typeof column.length == \"undefined\") {\r\n if (typeof index == \"number\") {\r\n columns.splice(index, 0, column);\r\n }\r\n else {\r\n columns.push(column);\r\n }\r\n }\r\n else {\r\n if (typeof index == \"number\") {\r\n columns.push.apply(columns, [index, 0].concat(column));\r\n }\r\n else {\r\n columns.push.apply(columns, [].concat(column));\r\n }\r\n }\r\n };\r\n /**\r\n * Changes column to Aggregate function, custom expression or simple column.\r\n * @param column The column to change.\r\n * @param tag New column expression tag.\r\n * @param args The arguments (Contains aggregate function id)\r\n */\r\n Query.prototype.changeColumnType = function (column, tag, args) {\r\n if (column.isJustSorted())\r\n return;\r\n args = args || {};\r\n if (tag === __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].AggregateFunction) {\r\n if (!args.funcId)\r\n throw Error(\"'funcId' argument is not defined\");\r\n if (column.expr.tag == __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].AggregateFunction) {\r\n column.expr.func = args.funcId;\r\n return;\r\n }\r\n var exprValue = column.expr.value;\r\n column.caption = '';\r\n var expr = new __WEBPACK_IMPORTED_MODULE_3__expression__[\"a\" /* Expression */](column);\r\n expr.tag = __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].AggregateFunction;\r\n expr.func = args.funcId;\r\n expr.distinct = false;\r\n var arg = new __WEBPACK_IMPORTED_MODULE_3__expression__[\"a\" /* Expression */](column);\r\n //arg.id = exprValue;\r\n arg.setValue(exprValue, true);\r\n arg.tag = __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].EntityAttribute;\r\n expr.args.push(arg);\r\n column.expr = expr;\r\n }\r\n else if (tag === __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].CustomSql) {\r\n var attrId = (column.expr.tag == __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].AggregateFunction)\r\n ? column.expr.args[0].value\r\n : column.expr.value;\r\n column.caption = '';\r\n var sqlText = '';\r\n if (this.model) {\r\n sqlText = this.model.getAttributeById(attrId).expr;\r\n }\r\n var customSqlExpr = new __WEBPACK_IMPORTED_MODULE_3__expression__[\"a\" /* Expression */](column);\r\n customSqlExpr.tag = __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].CustomSql;\r\n customSqlExpr.sql = sqlText;\r\n customSqlExpr.baseAttrId = attrId;\r\n column.expr = customSqlExpr;\r\n }\r\n else if (tag === __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].EntityAttribute) {\r\n if (column.expr.tag === __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].EntityAttribute\r\n || column.expr.tag === __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].ParentEntityAttribute) {\r\n return;\r\n }\r\n var exprId = (column.expr.tag === __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].CustomSql)\r\n ? column.expr.baseAttrId\r\n : column.expr.args[0].value;\r\n column.caption = '';\r\n var expr = new __WEBPACK_IMPORTED_MODULE_3__expression__[\"a\" /* Expression */](column);\r\n expr.tag = __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].EntityAttribute;\r\n //expr.id = exprId;\r\n expr.setValue(exprId, true);\r\n column.expr = expr;\r\n }\r\n };\r\n /**\r\n * Moves the column with specified index to another position.\r\n * @param index1 The index of the column that should be moved.\r\n * @param index2 The index of the position the column should be moved to\r\n * @param author The author\r\n */\r\n Query.prototype.moveColumn = function (index1, index2) {\r\n var columns = this.getColumns();\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].moveArrayItem(columns, index1, index2);\r\n };\r\n /**\r\n * Removes the column.\r\n * @param column The column to be removed.\r\n * @param author The author\r\n */\r\n Query.prototype.removeColumn = function (column, author) {\r\n var columns = (column.isJustSorted())\r\n ? this.getJustSortedColumns()\r\n : this.getColumns();\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].removeArrayItem(columns, column);\r\n };\r\n /**\r\n * Adds a condition group - a group of simple conditions (predicates) linked by AND or OR\r\n * @param descriptor The descriptor of the new condition group.\r\n * @returns The new search condition.\r\n */\r\n Query.prototype.addConditionGroup = function (descriptor, addChildCondition) {\r\n if (addChildCondition === void 0) { addChildCondition = true; }\r\n console.error(\"Community version doesn't support working with groups.\");\r\n return null;\r\n };\r\n Query.prototype.addExtraConditionGroup = function (descriptor, addChildCondition) {\r\n if (addChildCondition === void 0) { addChildCondition = true; }\r\n console.error(\"Community version doesn't support working with groups.\");\r\n return null;\r\n };\r\n Query.prototype.createCondition = function (tag) {\r\n if (tag === void 0) { tag = __WEBPACK_IMPORTED_MODULE_9__types_cond_tag__[\"a\" /* CondTag */].Simple; }\r\n return new __WEBPACK_IMPORTED_MODULE_5__condition__[\"a\" /* Condition */](this, tag);\r\n };\r\n /**\r\n * Adds a new simple condition (a predicate)\r\n * @param descriptor The descriptor which defines different parameters of the new condition\r\n * @returns The new condition.\r\n */\r\n Query.prototype.addSimpleCondition = function (descriptor) {\r\n var parent = descriptor.parent || this.getRootCondition();\r\n var model = this.getModel();\r\n if (!model)\r\n return null;\r\n if (!descriptor.attribute && !descriptor.attributeId) {\r\n throw new Error(\"Either `attribute` or `attributeId` parameter must have a value\");\r\n }\r\n if (!descriptor.attribute) {\r\n descriptor.attribute = model.getAttributeById(descriptor.attributeId);\r\n if (!descriptor.attribute) {\r\n throw new Error(\"Could not find this attribute: \" + descriptor.attributeId);\r\n }\r\n }\r\n if (!descriptor.operator && descriptor.operatorId) {\r\n descriptor.operator = model.getOperatorById(descriptor.operatorId);\r\n }\r\n if (!descriptor.operator) {\r\n descriptor.operator = model.getDefaultOperatorForAttr(descriptor.attribute);\r\n }\r\n var cond = this.createSimpleConditionObject(descriptor.attribute, descriptor.operator, descriptor.value);\r\n parent.addCondition(cond);\r\n cond.enabled = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].getIfDefined(descriptor.enabled, true);\r\n cond.setReadOnly(__WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].getIfDefined(descriptor.readonly, false));\r\n return cond;\r\n };\r\n Query.prototype.addSimpleExtraCondition = function (descriptor) {\r\n descriptor.parent = descriptor.parent || this.extraConditions;\r\n return this.addSimpleCondition(descriptor);\r\n };\r\n Query.prototype.createSimpleConditionObject = function (attr, operator, inputValues) {\r\n if (!attr || !attr.useInConditions) {\r\n var attrCaption = attr ? attr.caption : 'NULL';\r\n throw \"Can't add a condition with such attribute: \" + attrCaption;\r\n }\r\n var cond = this.createCondition(__WEBPACK_IMPORTED_MODULE_9__types_cond_tag__[\"a\" /* CondTag */].Simple);\r\n cond.setOperatorId(operator.id, true);\r\n var attrExpr = new __WEBPACK_IMPORTED_MODULE_3__expression__[\"a\" /* Expression */](cond);\r\n attrExpr.setValue(attr.id, true);\r\n attrExpr.tag = this.attributeExprTag;\r\n attrExpr.kind = __WEBPACK_IMPORTED_MODULE_6__types_data_kind__[\"a\" /* DataKind */].Attribute;\r\n attrExpr.dataType = attr.dataType;\r\n cond.expressions.push(attrExpr);\r\n var model = this.getModel();\r\n var valCount = operator.paramCount;\r\n var values = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].fillArray(new Array(valCount - 1), null);\r\n if (inputValues !== null && typeof inputValues !== \"undefined\") {\r\n if (Array.isArray(inputValues)) {\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].copyArrayTo(inputValues, values);\r\n }\r\n else if (valCount > 0) {\r\n values[0] = inputValues;\r\n }\r\n }\r\n var valLength = values.length;\r\n for (var i = 0; i < valLength; i++) {\r\n var operand = model.getOperand(attr, operator, i + 1);\r\n cond.addExpressionByOperand(operand, values[i]);\r\n }\r\n return cond;\r\n };\r\n /**\r\n * Removes several columns passed as array.\r\n * @param columnsToRemove The list of columns to be removed.\r\n * @param author The author.\r\n */\r\n Query.prototype.removeColumns = function (columnsToRemove, author) {\r\n var justSortedColumns = columnsToRemove.filter(function (c) { return c.isJustSorted(); });\r\n var columns = columnsToRemove.filter(function (c) { return !c.isJustSorted(); });\r\n function removeFromArray(arr, arrToRemove) {\r\n var ctrLen = arrToRemove.length;\r\n for (var i = 0; i < ctrLen; i++) {\r\n var index = arr.indexOf(arrToRemove[i]);\r\n if (index >= 0) {\r\n arr.splice(index, 1);\r\n }\r\n }\r\n }\r\n if (columns.length > 0) {\r\n removeFromArray(this.getColumns(), columns);\r\n }\r\n if (justSortedColumns.length > 0) {\r\n removeFromArray(this.getJustSortedColumns(), justSortedColumns);\r\n }\r\n };\r\n /**\r\n * Fires process event.\r\n * @param data The data.\r\n */\r\n Query.prototype.fireProcessEvent = function (data) {\r\n this.eventEmitter.fire('query.process', data);\r\n };\r\n Query.prototype.fireChangedEvent = function (params, postpone, wasModified) {\r\n params = params || { part: __WEBPACK_IMPORTED_MODULE_10__query_events__[\"b\" /* QueryChangePart */].All };\r\n if (typeof (postpone) != 'undefined' || typeof (wasModified) != 'undefined') {\r\n params.postpone = postpone || 0;\r\n params.wasModified = wasModified;\r\n console.warn('Method with \\'postpone\\' and \\'wasModified\\' args is deprecated. Pass params in data object');\r\n }\r\n this._isModified = typeof (params.wasModified) != 'undefined'\r\n ? params.wasModified\r\n : true;\r\n var eventData = params || {\r\n part: __WEBPACK_IMPORTED_MODULE_10__query_events__[\"b\" /* QueryChangePart */].All\r\n };\r\n this.eventEmitter.fire('query.change', eventData, params.postpone || 0);\r\n };\r\n Query.prototype.fireColumnsChangedEvent = function (action, column, justsorted) {\r\n if (justsorted === void 0) { justsorted = false; }\r\n this.fireChangedEvent({\r\n part: (justsorted)\r\n ? __WEBPACK_IMPORTED_MODULE_10__query_events__[\"b\" /* QueryChangePart */].SortingColumns\r\n : __WEBPACK_IMPORTED_MODULE_10__query_events__[\"b\" /* QueryChangePart */].Columns,\r\n action: action,\r\n changee: column\r\n });\r\n };\r\n Query.prototype.fireConditionsChangedEvent = function (action, condition) {\r\n this.fireChangedEvent({\r\n part: __WEBPACK_IMPORTED_MODULE_10__query_events__[\"b\" /* QueryChangePart */].Conditions,\r\n action: action,\r\n changee: condition\r\n });\r\n };\r\n /**\r\n * Runs through condition with this callback.\r\n * @param processCondition The function to process condition.\r\n */\r\n Query.prototype.runThroughConditions = function (processCondition) {\r\n var processGroup = function (predicate) {\r\n for (var i = 0; i < predicate.getConditions().length; i++) {\r\n var cond = predicate.getConditions()[i];\r\n if (cond.isGroup()) {\r\n processGroup(cond);\r\n }\r\n else {\r\n if (processCondition)\r\n processCondition(cond);\r\n }\r\n }\r\n };\r\n processGroup(this.getRootCondition());\r\n };\r\n /**\r\n * Gets one value for the attribute\r\n * @param attrId The attribute ID.\r\n * @retruns The value.\r\n */\r\n Query.prototype.getOneValueForAttr = function (attrId) {\r\n var res = null;\r\n this.runThroughConditions(function (cond) {\r\n if (cond.enabled) {\r\n var expr = cond.expressions[0];\r\n var opid = cond.getOperatorId();\r\n if (expr.value == attrId && cond.expressions[1] &&\r\n (opid == \"Equal\" || opid == \"InList\" || opid == \"StartsWith\")) {\r\n res = cond.expressions[1].value;\r\n }\r\n }\r\n });\r\n return res;\r\n };\r\n /**\r\n * Gets root predicate\r\n * @retruns The condition.\r\n */\r\n Query.prototype.getRootCondition = function () {\r\n return this.root;\r\n };\r\n /**\r\n * Add process callback\r\n * @param callback The callback.\r\n * @retruns The callback ID.\r\n */\r\n Query.prototype.addProcessCallback = function (callback) {\r\n return this.eventEmitter.subscribe('query.process', callback);\r\n };\r\n /**\r\n * Remove process callback\r\n * @param callbackId The callback ID.\r\n */\r\n Query.prototype.removeProcessCallback = function (callbackId) {\r\n this.eventEmitter.unsubscribe('query.process', callbackId);\r\n };\r\n /**\r\n * Add changed callback\r\n * @param callback The callback ID.\r\n */\r\n Query.prototype.addChangedCallback = function (callback) {\r\n return this.eventEmitter.subscribe('query.change', callback);\r\n };\r\n /**\r\n * Remove changed callback\r\n * @param callbackId The callback ID.\r\n */\r\n Query.prototype.removeChangedCallback = function (callbackId) {\r\n this.eventEmitter.unsubscribe('query.change', callbackId);\r\n };\r\n /**\r\n * Retruns conditions text\r\n */\r\n Query.prototype.getConditionsText = function () {\r\n var model = this.getModel();\r\n if (!model)\r\n return '';\r\n var getConditionGroupText = function (group) {\r\n var result = '', conjKey = \"Conj\" + __WEBPACK_IMPORTED_MODULE_1__utils_utils__[\"a\" /* equtils */].linkTypeToStr(group.linkType), conjText = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText(conjKey), condText, i;\r\n for (i = 0; i < group.getConditions().length; i++) {\r\n condText = \"\";\r\n var cond = group.getConditions()[i];\r\n if (cond.enabled || typeof (cond.enabled) === \"undefined\") {\r\n if (cond.isGroup()) {\r\n condText = getConditionGroupText(cond);\r\n if (condText) {\r\n condText = \"(\" + condText + \")\";\r\n }\r\n }\r\n else {\r\n var opId = cond.getOperatorId();\r\n var operator = model.getOperatorById(opId);\r\n var parts = __WEBPACK_IMPORTED_MODULE_1__utils_utils__[\"a\" /* equtils */].parseOperatorFormat(operator);\r\n var plen = parts.length;\r\n for (var pi = 0; pi < plen; pi++) {\r\n var part = parts[pi];\r\n var txt = part.text;\r\n if (part.type == \"expression\") {\r\n var expr = cond.expressions[part.index];\r\n if (expr.kind == __WEBPACK_IMPORTED_MODULE_6__types_data_kind__[\"a\" /* DataKind */].Attribute || expr.tag == __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].EntityAttribute) {\r\n var attr = model.getAttributeById(expr.value);\r\n txt = model.getAttributeText(attr, \"{entity} {attr}\");\r\n }\r\n else {\r\n txt = expr.getText();\r\n }\r\n }\r\n if (pi > 0)\r\n condText += \" \";\r\n condText += txt;\r\n }\r\n }\r\n }\r\n if (condText) {\r\n if (i > 0 && result) {\r\n result += \" \" + conjText + \" \";\r\n }\r\n result += condText;\r\n }\r\n }\r\n if (group.linkType == __WEBPACK_IMPORTED_MODULE_7__types_link_type__[\"a\" /* LinkType */].None || group.linkType == __WEBPACK_IMPORTED_MODULE_7__types_link_type__[\"a\" /* LinkType */].NotAll) {\r\n result = \"not ( \" + result + \" )\";\r\n }\r\n return result;\r\n };\r\n return getConditionGroupText(this.getRootCondition());\r\n };\r\n /**\r\n * Retruns conditions text\r\n */\r\n Query.prototype.getConditionsTextAsHtml = function () {\r\n var model = this.getModel();\r\n if (!model)\r\n return '

';\r\n var getConditionGroupText = function (group) {\r\n var result = '', conjKey = \"Conj\" + __WEBPACK_IMPORTED_MODULE_1__utils_utils__[\"a\" /* equtils */].linkTypeToStr(group.linkType), conjText = \"\" + __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText(conjKey) + \"\", condText, i;\r\n for (i = 0; i < group.getConditions().length; i++) {\r\n condText = \"\";\r\n var cond = group.getConditions()[i];\r\n if (cond.enabled || typeof (cond.enabled) === \"undefined\") {\r\n if (cond.isGroup()) {\r\n condText = getConditionGroupText(cond);\r\n if (condText) {\r\n condText = \"(\" + condText + \")\";\r\n }\r\n }\r\n else {\r\n var opId = cond.getOperatorId();\r\n var operator = model.getOperatorById(opId);\r\n var parts = __WEBPACK_IMPORTED_MODULE_1__utils_utils__[\"a\" /* equtils */].parseOperatorFormat(operator);\r\n var plen = parts.length;\r\n for (var pi = 0; pi < plen; pi++) {\r\n var part = parts[pi];\r\n var txt = part.text;\r\n if (part.type == \"expression\") {\r\n var expr = cond.expressions[part.index];\r\n if (expr.kind == __WEBPACK_IMPORTED_MODULE_6__types_data_kind__[\"a\" /* DataKind */].Attribute || expr.tag == __WEBPACK_IMPORTED_MODULE_8__types_expr_tag__[\"a\" /* ExprTag */].EntityAttribute) {\r\n var attr = model.getAttributeById(expr.value);\r\n txt = \"\" + model.getAttributeText(attr, \"{entity} {attr}\") + \"\";\r\n }\r\n else {\r\n txt = \"\" + expr.getText() + \"\";\r\n }\r\n }\r\n else if (part.type == \"operator\") {\r\n txt = \"\" + txt + \"\";\r\n }\r\n if (pi > 0)\r\n condText += \" \";\r\n condText += txt;\r\n }\r\n }\r\n }\r\n if (condText) {\r\n if (i > 0 && result) {\r\n result += \" \" + conjText + \" \";\r\n }\r\n result += condText;\r\n }\r\n }\r\n if (group.linkType == __WEBPACK_IMPORTED_MODULE_7__types_link_type__[\"a\" /* LinkType */].None || group.linkType == __WEBPACK_IMPORTED_MODULE_7__types_link_type__[\"a\" /* LinkType */].NotAll) {\r\n result = \"not ( \" + result + \" )\";\r\n }\r\n return result;\r\n };\r\n return \"

\" + getConditionGroupText(this.getRootCondition()) + \"

\";\r\n };\r\n return Query;\r\n}());\r\n\r\n//# sourceMappingURL=query.js.map\n\n/***/ }),\n/* 30 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return QueryChangePart; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QueryChangeAction; });\nvar QueryChangePart;\r\n(function (QueryChangePart) {\r\n QueryChangePart[QueryChangePart[\"Conditions\"] = 1] = \"Conditions\";\r\n QueryChangePart[QueryChangePart[\"Columns\"] = 2] = \"Columns\";\r\n QueryChangePart[QueryChangePart[\"SortingColumns\"] = 4] = \"SortingColumns\";\r\n QueryChangePart[QueryChangePart[\"Properties\"] = 32] = \"Properties\";\r\n QueryChangePart[QueryChangePart[\"ExtraData\"] = 64] = \"ExtraData\";\r\n QueryChangePart[QueryChangePart[\"Facets\"] = 128] = \"Facets\";\r\n QueryChangePart[QueryChangePart[\"All\"] = 255] = \"All\";\r\n})(QueryChangePart || (QueryChangePart = {}));\r\nvar QueryChangeAction;\r\n(function (QueryChangeAction) {\r\n QueryChangeAction[QueryChangeAction[\"Add\"] = 1] = \"Add\";\r\n QueryChangeAction[QueryChangeAction[\"Modify\"] = 2] = \"Modify\";\r\n QueryChangeAction[QueryChangeAction[\"Delete\"] = 4] = \"Delete\";\r\n QueryChangeAction[QueryChangeAction[\"Activate\"] = 8] = \"Activate\";\r\n QueryChangeAction[QueryChangeAction[\"All\"] = 127] = \"All\";\r\n})(QueryChangeAction || (QueryChangeAction = {}));\r\n//# sourceMappingURL=query_events.js.map\n\n/***/ }),\n/* 31 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export wrapInner */\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = addElement;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = addCssClass;\n/* harmony export (immutable) */ __webpack_exports__[\"i\"] = hideElement;\n/* harmony export (immutable) */ __webpack_exports__[\"k\"] = showElement;\n/* harmony export (immutable) */ __webpack_exports__[\"n\"] = toggleVisibility;\n/* harmony export (immutable) */ __webpack_exports__[\"j\"] = isVisible;\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = createBrowserEvent;\n/* harmony export (immutable) */ __webpack_exports__[\"g\"] = getViewportSize;\n/* unused harmony export getDocSize */\n/* harmony export (immutable) */ __webpack_exports__[\"f\"] = getScrollPos;\n/* harmony export (immutable) */ __webpack_exports__[\"e\"] = getElementAbsolutePos;\n/* harmony export (immutable) */ __webpack_exports__[\"h\"] = getWinSize;\n/* harmony export (immutable) */ __webpack_exports__[\"l\"] = slideDown;\n/* harmony export (immutable) */ __webpack_exports__[\"m\"] = slideUp;\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return eqCssPrefix; });\n/* unused harmony export eqCssMobile */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__browser_utils__ = __webpack_require__(154);\n\r\n/**\r\n * Wraps all the elements inside \"parent\" by \"wrapper\" element\r\n * @param parent The element to add wrapper to.\r\n * @param wrapper The element that will wrap child elements.\r\n */\r\nfunction wrapInner(parent, wrapper) {\r\n parent.appendChild(wrapper);\r\n while (parent.firstChild !== wrapper) {\r\n wrapper.appendChild(parent.firstChild);\r\n }\r\n}\r\n/**\r\n * Creates ands adds a new [[HTMLElement]] to \"parent\"\r\n * @param parent The element to add new element to.\r\n * @param tag Html tag of the new element.\r\n * @param options The options. In particular, options.cssClass sets the new element class.\r\n * @returns New element.\r\n */\r\nfunction addElement(parent, tag, options) {\r\n var element = document.createElement(tag);\r\n var opts = options || {};\r\n if (opts.cssClass) {\r\n element.className = opts.cssClass;\r\n }\r\n parent.appendChild(element);\r\n return element;\r\n}\r\n/**\r\n * Adds css class to the html element.\r\n * @param element The element to add css class to.\r\n * @param className The name of the css class to be added.\r\n */\r\nfunction addCssClass(element, className) {\r\n element.className = (element.className)\r\n ? element.className + ' ' + className\r\n : className;\r\n}\r\n/**\r\n * Hides the html element.\r\n * @param element The element to be hidden.\r\n */\r\nfunction hideElement(element) {\r\n element.style.display = 'none';\r\n}\r\n/**\r\n * Shows the html element.\r\n * @param element The element to be shown.\r\n * @param display The value of \"display\" style to be set. Default value is \"block\".\r\n */\r\nfunction showElement(element, display) {\r\n if (!display) {\r\n display = '';\r\n }\r\n element.style.display = display;\r\n}\r\n/**\r\n * Hides the \"first\" element and shows the \"second\".\r\n * @param first The element to be hidden.\r\n * @param second The element to be shown.\r\n * @param options The options. The following options are applied:\r\n * - display - the value of \"display\" style to be set. Default value is \"block\"\r\n * - duration - the duration of fading in and out\r\n * - complete - the callback to be called when toggle is complete\r\n */\r\nfunction toggleVisibility(first, second, options) {\r\n if (!options) {\r\n options = {};\r\n }\r\n if (!options.display) {\r\n options.display = '';\r\n }\r\n if (!options.duration) {\r\n options.duration = 200;\r\n }\r\n //TODO: later we need to make it fading in and out\r\n hideElement(first);\r\n showElement(second, options.display);\r\n if (options.complete) {\r\n options.complete();\r\n }\r\n}\r\n/**\r\n * Checks if element is visible\r\n * @param element The element to check.\r\n * @returns `true` if visible, otherwise - `false`.\r\n */\r\nfunction isVisible(element) {\r\n return element.style.display != 'none'\r\n && element.offsetWidth != 0\r\n && element.offsetHeight != 0;\r\n}\r\nfunction createBrowserEvent(eventName) {\r\n var event;\r\n if (typeof (Event) === 'function') {\r\n event = new Event(eventName);\r\n }\r\n else {\r\n event = document.createEvent('Event');\r\n event.initEvent(eventName, true, true);\r\n }\r\n return event;\r\n}\r\nfunction getViewportSize() {\r\n var width = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);\r\n var height = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);\r\n return {\r\n width: width,\r\n height: height\r\n };\r\n}\r\nfunction getDocSize() {\r\n if (__WEBPACK_IMPORTED_MODULE_0__browser_utils__[\"a\" /* browserUtils */].IsIE())\r\n return getWinSize();\r\n var width = Math.max(document.documentElement.clientWidth, document.body.clientWidth || 0);\r\n var height = Math.max(document.documentElement.clientHeight, document.body.clientHeight || 0);\r\n return {\r\n width: width,\r\n height: height\r\n };\r\n}\r\nfunction getScrollPos() {\r\n var body = document.body;\r\n var docElem = document.documentElement;\r\n return {\r\n top: window.pageYOffset || docElem.scrollTop || body.scrollTop,\r\n left: window.pageXOffset || docElem.scrollLeft || body.scrollLeft\r\n };\r\n}\r\nfunction getElementAbsolutePos(element) {\r\n var res = { x: 0, y: 0 };\r\n if (element !== null) {\r\n var position = offset(element);\r\n res = { x: position.left, y: position.top };\r\n }\r\n return res;\r\n}\r\nfunction offset(element) {\r\n var defaultBoundingClientRect = { top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 };\r\n var box;\r\n try {\r\n box = element.getBoundingClientRect();\r\n }\r\n catch (_a) {\r\n box = defaultBoundingClientRect;\r\n }\r\n var body = document.body;\r\n var docElem = document.documentElement;\r\n var scollPos = getScrollPos();\r\n var scrollTop = scollPos.top;\r\n var scrollLeft = scollPos.left;\r\n var clientTop = docElem.clientTop || body.clientTop || 0;\r\n var clientLeft = docElem.clientLeft || body.clientLeft || 0;\r\n var top = box.top + scrollTop - clientTop;\r\n var left = box.left + scrollLeft - clientLeft;\r\n return { top: Math.round(top), left: Math.round(left) };\r\n}\r\nfunction getWinSize() {\r\n return {\r\n width: window.innerWidth,\r\n height: window.innerHeight\r\n };\r\n}\r\nfunction slideDown(target, duration, callback) {\r\n target.style.removeProperty('display');\r\n var display = window.getComputedStyle(target).display;\r\n if (display === 'none')\r\n display = 'block';\r\n target.style.display = display;\r\n var height = target.offsetHeight;\r\n target.style.overflow = 'hidden';\r\n target.style.height = 0 + 'px';\r\n target.style.paddingTop = 0 + 'px';\r\n target.style.paddingBottom = 0 + 'px';\r\n target.style.marginTop = 0 + 'px';\r\n target.style.marginBottom = 0 + 'px';\r\n target.offsetHeight;\r\n target.style.boxSizing = 'border-box';\r\n target.style.transitionProperty = \"height, margin, padding\";\r\n target.style.transitionDuration = duration + 'ms';\r\n target.style.height = height + 'px';\r\n target.style.removeProperty('padding-top');\r\n target.style.removeProperty('padding-bottom');\r\n target.style.removeProperty('margin-top');\r\n target.style.removeProperty('margin-bottom');\r\n window.setTimeout(function () {\r\n target.style.removeProperty('height');\r\n target.style.removeProperty('overflow');\r\n target.style.removeProperty('transition-duration');\r\n target.style.removeProperty('transition-property');\r\n target.style.removeProperty('box-sizing');\r\n if (callback) {\r\n callback();\r\n }\r\n }, duration);\r\n}\r\nfunction slideUp(target, duration, callback) {\r\n target.style.transitionProperty = 'height, margin, padding';\r\n target.style.transitionDuration = duration + 'ms';\r\n target.style.boxSizing = 'border-box';\r\n target.style.height = target.offsetHeight + 'px';\r\n target.offsetHeight;\r\n target.style.overflow = 'hidden';\r\n target.style.height = 0 + 'px';\r\n target.style.paddingTop = 0 + 'px';\r\n target.style.paddingBottom = 0 + 'px';\r\n target.style.marginTop = 0 + 'px';\r\n target.style.marginBottom = 0 + 'px';\r\n window.setTimeout(function () {\r\n target.style.display = 'none';\r\n target.style.removeProperty('height');\r\n target.style.removeProperty('padding-top');\r\n target.style.removeProperty('padding-bottom');\r\n target.style.removeProperty('margin-top');\r\n target.style.removeProperty('margin-bottom');\r\n target.style.removeProperty('overflow');\r\n target.style.removeProperty('transition-duration');\r\n target.style.removeProperty('transition-property');\r\n target.style.removeProperty('box-sizing');\r\n if (callback) {\r\n callback();\r\n }\r\n }, duration);\r\n}\r\nvar eqCssPrefix = 'eqjs';\r\nvar eqCssMobile = 'eqjs-mobile';\r\n//# sourceMappingURL=ui-utils.js.map\n\n/***/ }),\n/* 32 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QueryPanel; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__easyquery_core__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__easydata_ui__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__types_qp_editable_part__ = __webpack_require__(17);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_popup_menu__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__renderers_querypanel_condition_renderer__ = __webpack_require__(70);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__renderers_querypanel_condition_group_renderer__ = __webpack_require__(170);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__renderers_querypanel_input_expression_renderer__ = __webpack_require__(172);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__renderers_querypanel_attribute_expression_renderer__ = __webpack_require__(173);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__renderers_querypanel_addrow_renderer__ = __webpack_require__(174);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__renderers_querypanel_list_expression_renderer__ = __webpack_require__(44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__renderers_querypanel_operator_renderer__ = __webpack_require__(175);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__renderers_querypanel_datetime_expression_render__ = __webpack_require__(176);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__renderers_querypanel_subquery_expression_renderer__ = __webpack_require__(177);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__utils_utils__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__utils_browser_utils__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__renderers_querypanel_bind_to_parent_column_expression_renderer__ = __webpack_require__(382);\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * The query panel wiget, implemented without JQuery.\r\n */\r\nvar QueryPanel = /** @class */ (function (_super) {\r\n __extends(QueryPanel, _super);\r\n /**\r\n * The default constructor.\r\n * @param slot The html element.\r\n */\r\n function QueryPanel(slot, customQuery) {\r\n var _this = _super.call(this, slot) || this;\r\n _this.options = {\r\n editableParts: __WEBPACK_IMPORTED_MODULE_3__types_qp_editable_part__[\"a\" /* QPEditablePart */].All,\r\n isSubQuery: false,\r\n activeCondition: null,\r\n entitiesPopupHandler: null,\r\n entitiesListFilter: null,\r\n menuContainer: document.body,\r\n showRootRow: true,\r\n showAddRow: true,\r\n showCheckboxes: false,\r\n allowParameterization: false,\r\n allowInJoinConditions: false,\r\n showPoweredBy: false,\r\n buttons: {\r\n condition: null,\r\n group: null\r\n },\r\n alwaysShowButtonsInGroups: false,\r\n alwaysShowButtonsInConditions: false,\r\n showConjunctions: true,\r\n accentActiveCondition: true,\r\n activateRootOnStart: true,\r\n yearRange: 'c-10:c+10',\r\n oneClickDateSelection: true,\r\n showDateTimeInput: false,\r\n attrElementFormat: '{entity} {attr}',\r\n menuOptions: {\r\n showSearchBoxAfter: 30,\r\n searchBoxAutoFocus: true,\r\n activateOnMouseOver: true,\r\n itemRenderedCallback: null\r\n },\r\n allowDragDrop: true,\r\n attrPlacement: 0,\r\n sortEntities: false,\r\n subQueryDialogWidth: 600,\r\n subQueryDialogHeight: 300,\r\n dialogZIndex: 100000,\r\n numberListSeparators: [',', ';'],\r\n autoEditNewCondition: false,\r\n onConditionRendered: null,\r\n onGetConditionRenderer: null,\r\n onGetExpressionRenderer: null,\r\n onGetOperatorRenderer: null,\r\n onOperatorRendered: null,\r\n onGetAddRowRenderer: null,\r\n defaultQuery: null\r\n };\r\n _this.customQuery = null;\r\n _this.landingSlot = Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div')\r\n .addClass(_this.cssPrefix + \"-cond-landing-slot\")\r\n .addChildElement(Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div')\r\n .toDOM())\r\n .toDOM();\r\n if (!_this.slot.classList.contains(_this.cssPrefix + \"-panel\")) {\r\n _this.slot.classList.add(_this.cssPrefix + \"-panel\");\r\n }\r\n _this.group = __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"u\" /* WidgetGroup */].Query;\r\n if (customQuery) {\r\n _this.customQuery = customQuery;\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(QueryPanel.prototype, \"cssPrefix\", {\r\n get: function () {\r\n return 'eqjs-qp';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n QueryPanel.prototype.getWidgetType = function () {\r\n return 'queryPanel';\r\n };\r\n /**\r\n * Initialize widget.\r\n * @param context The context.\r\n * @param options The options.\r\n */\r\n QueryPanel.prototype.init = function (context, options) {\r\n var _this = this;\r\n _super.prototype.init.call(this, context, options);\r\n this.setOptions(options);\r\n //detach previously defined query observer (if any)\r\n this.detachQueryObserver();\r\n this.attachQueryObserver();\r\n __WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"j\" /* eqDragManager */].removeDropContainer(this.slot);\r\n if (this.options.allowDragDrop) {\r\n var model_1 = this.getContext().getModel();\r\n __WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"j\" /* eqDragManager */].registerDropContainer({\r\n element: this.slot,\r\n scopes: [\"entityAttr\"],\r\n onDragEnter: function (container, ev) {\r\n _this.slot.classList.add(__WEBPACK_IMPORTED_MODULE_14__utils_utils__[\"b\" /* eqCssPrefix */] + \"-drophover\");\r\n ev.dragImage.classList.add('eqjs-sortable-helper');\r\n _this.showLandingSlot();\r\n var attrId = ev.data.attrId;\r\n if (!model_1.checkAttrProperty(attrId, \"useInConditions\")) {\r\n ev.dropEffect = __WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"d\" /* DropEffect */].Forbid;\r\n }\r\n },\r\n onDragOver: function (container, ev) {\r\n },\r\n onDragLeave: function (container, ev) {\r\n ev.dragImage.classList.remove('eqjs-sortable-helper');\r\n ev.dragImage.style.removeProperty('width');\r\n _this.slot.classList.remove(__WEBPACK_IMPORTED_MODULE_14__utils_utils__[\"b\" /* eqCssPrefix */] + \"-drophover\");\r\n _this.hideLangindSlot();\r\n },\r\n onDrop: function (container, ev) {\r\n var query = _this.getQuery();\r\n var descr = {\r\n parent: query.getRootCondition(),\r\n attributeId: ev.data.attrId\r\n };\r\n var cond = query.addSimpleCondition(descr);\r\n if (cond) {\r\n query.fireConditionsChangedEvent(__WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"o\" /* QueryChangeAction */].Add, cond);\r\n }\r\n }\r\n });\r\n }\r\n };\r\n QueryPanel.prototype.destroyCore = function () {\r\n __WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"j\" /* eqDragManager */].removeDropContainer(this.slot);\r\n this.detachQueryObserver();\r\n this.slot.innerHTML = '';\r\n };\r\n QueryPanel.prototype.getEntitiesMenu = function () {\r\n return this.entitiesMenu;\r\n };\r\n QueryPanel.prototype.getConditionMenu = function () {\r\n return this.conditionMenu;\r\n };\r\n QueryPanel.prototype.getLinkTypeMenu = function () {\r\n return this.linkTypeMenu;\r\n };\r\n QueryPanel.prototype.getConditionGroupMenu = function (isRoot) {\r\n if (isRoot === void 0) { isRoot = false; }\r\n return isRoot ? this.rootGroupMenu : this.groupMenu;\r\n };\r\n QueryPanel.prototype.attachQueryObserver = function () {\r\n var _this = this;\r\n var query = this.getQuery();\r\n this.queryEventCallbackId = query.addChangedCallback(function (event) {\r\n //if something has changed, and that change is related to conditions\r\n var edata = event.data;\r\n if (!edata || (edata.part != __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"p\" /* QueryChangePart */].Conditions && edata.part != __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"p\" /* QueryChangePart */].All)) {\r\n return;\r\n }\r\n var focusedBefore = document.activeElement;\r\n var isFocusInside = _this.slot.contains(focusedBefore) || focusedBefore == document.body;\r\n switch (edata.action) {\r\n case __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"o\" /* QueryChangeAction */].Modify: {\r\n var conds = edata.changee;\r\n var modifyCondition_1 = function (cond, autoEdit) {\r\n var el = _this.slot.querySelector(\"div[data-id=\" + cond.id + \"]\");\r\n if (el) {\r\n autoEdit = autoEdit\r\n && ((edata.condPart & __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"c\" /* ConditionPart */].Operator) === __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"c\" /* ConditionPart */].Operator)\r\n && cond.expressions.length > 1\r\n && (cond.expressions[1]._isDefaultValue || cond.expressions[1].value == '' ||\r\n cond.expressions[1].value == null);\r\n var isActive = el.classList.contains('active');\r\n var renderer = _this.getConditionRenderer(cond, el);\r\n if (renderer) {\r\n var newEl = renderer.render(autoEdit);\r\n if (isActive) {\r\n _this.toggleConditionPicked(cond);\r\n }\r\n if (isFocusInside && !autoEdit) {\r\n var focusElem = newEl.querySelector('a') || newEl.querySelector('.eqjs-qp-condition-button');\r\n if (focusElem) {\r\n Object(__WEBPACK_IMPORTED_MODULE_14__utils_utils__[\"d\" /* safeFocus */])(focusElem);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n var autoEdit_1 = _this.options.autoEditNewCondition;\r\n if (Array.isArray(conds)) {\r\n conds.forEach(function (cond) { return modifyCondition_1(cond, autoEdit_1); });\r\n autoEdit_1 = false;\r\n }\r\n else {\r\n modifyCondition_1(conds, autoEdit_1);\r\n }\r\n break;\r\n }\r\n case __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"o\" /* QueryChangeAction */].Add: {\r\n var conds = edata.changee;\r\n var addCondition_1 = function (cond) {\r\n var renderer = _this.getConditionRenderer(cond);\r\n if (renderer) {\r\n var parent_1 = cond.getParent();\r\n var parentEl = _this.slot.querySelector(\"div[data-id=\" + parent_1.id + \"]\");\r\n if (parentEl) {\r\n var newCondContainer = parentEl.lastChild;\r\n if (newCondContainer) {\r\n var el = renderer.render(_this.options.autoEditNewCondition);\r\n newCondContainer.appendChild(el);\r\n el.scrollIntoView(false);\r\n if (isFocusInside && !_this.options.autoEditNewCondition) {\r\n el.querySelector(\"a\").focus();\r\n }\r\n }\r\n }\r\n }\r\n };\r\n if (Array.isArray(conds)) {\r\n conds.forEach(function (cond) { return addCondition_1(cond); });\r\n }\r\n else {\r\n addCondition_1(conds);\r\n }\r\n break;\r\n }\r\n case __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"o\" /* QueryChangeAction */].Delete: {\r\n var conds = edata.changee;\r\n var deleteCondition_1 = function (cond) {\r\n var el = _this.slot.querySelector(\"div[data-id=\" + cond.id + \"]\");\r\n if (el) {\r\n var parent_2 = _this.slot.querySelector(\"div[data-id=\" + cond.getParent().id + \"] > .eqjs-qp-row-group\");\r\n ;\r\n var next = el.nextSibling;\r\n var prev = el.previousSibling;\r\n el.parentElement.removeChild(el);\r\n if (isFocusInside) {\r\n var focusCond = next || prev || parent_2;\r\n var focusElem = focusCond.querySelector('a') || focusCond.querySelector('.eqjs-qp-condition-button');\r\n if (focusElem) {\r\n focusElem.focus();\r\n }\r\n }\r\n }\r\n };\r\n if (Array.isArray(conds)) {\r\n conds.forEach(function (cond) { return deleteCondition_1(cond); });\r\n }\r\n else {\r\n deleteCondition_1(conds);\r\n }\r\n break;\r\n }\r\n default:\r\n _this.refresh();\r\n break;\r\n }\r\n });\r\n };\r\n QueryPanel.prototype.detachQueryObserver = function () {\r\n if (this.queryEventCallbackId) {\r\n var query = this.getQuery();\r\n query.removeChangedCallback(this.queryEventCallbackId);\r\n }\r\n };\r\n QueryPanel.prototype.getQuery = function () {\r\n if (this.customQuery) {\r\n return this.customQuery;\r\n }\r\n return this.context.getQuery();\r\n };\r\n QueryPanel.prototype.refreshCore = function () {\r\n this.clear();\r\n this.render();\r\n };\r\n QueryPanel.prototype.setOptions = function (options) {\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].assignDeep(this.options, options);\r\n // dateFormatValue & dateFormatDisplay back compatibility\r\n if (this.options.dateFormatValue) {\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].updateLocaleSettings({\r\n editDateFormat: this.options.dateFormatValue\r\n });\r\n }\r\n if (this.options.dateFormatDisplay) {\r\n // TO DO: process option\r\n }\r\n if (typeof this.options.editableParts === \"undefined\") {\r\n this.options.editableParts = __WEBPACK_IMPORTED_MODULE_3__types_qp_editable_part__[\"a\" /* QPEditablePart */].All;\r\n }\r\n if (__WEBPACK_IMPORTED_MODULE_15__utils_browser_utils__[\"a\" /* browserUtils */].isMobileMode()) {\r\n this.options.buttons = this.options.buttons || {};\r\n this.options.buttons.condition = [\"menu\"];\r\n this.options.buttons.group = [\"menu\"];\r\n }\r\n };\r\n QueryPanel.prototype.clear = function () {\r\n this.slot.innerHTML = \"\";\r\n };\r\n QueryPanel.prototype.render = function () {\r\n try {\r\n this.entitiesMenu = this.createEntitiesMenu();\r\n this.createConditionMenus();\r\n this.createLinkTypeMenu();\r\n this.rootContainer = Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div', this.slot)\r\n .toDOM();\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(this.slot)\r\n .removeClass(__WEBPACK_IMPORTED_MODULE_14__utils_utils__[\"a\" /* eqCssMobile */])\r\n .addClass(__WEBPACK_IMPORTED_MODULE_15__utils_browser_utils__[\"a\" /* browserUtils */].getMobileCssClass());\r\n var query = this.getQuery();\r\n var root = query.getRootCondition();\r\n var renderer = this.getConditionRenderer(root, this.rootContainer);\r\n if (renderer) {\r\n renderer.render();\r\n }\r\n if (this.options.showAddRow) {\r\n this.addRowElement = Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div', this.slot)\r\n .toDOM();\r\n var addrowRenderer = this.getAddRowRenderer(this.addRowElement);\r\n if (addrowRenderer)\r\n addrowRenderer.render();\r\n }\r\n }\r\n catch (e) {\r\n this.context.throwError({\r\n action: \"QueryPanel rendering\",\r\n text: e.message,\r\n sourceError: e\r\n });\r\n }\r\n };\r\n QueryPanel.prototype.getConditionRenderer = function (condition, slot) {\r\n var renderer;\r\n if (this.options.onGetConditionRenderer) {\r\n renderer = this.options.onGetConditionRenderer(condition, slot);\r\n if (renderer) {\r\n return renderer;\r\n }\r\n }\r\n switch (condition.tag) {\r\n case __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"a\" /* CondTag */].Simple:\r\n return new __WEBPACK_IMPORTED_MODULE_5__renderers_querypanel_condition_renderer__[\"b\" /* SimpleConditionRenderer */](this, condition, slot);\r\n case __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"a\" /* CondTag */].Group:\r\n return new __WEBPACK_IMPORTED_MODULE_6__renderers_querypanel_condition_group_renderer__[\"a\" /* ConditionGroupRenderer */](this, condition, slot);\r\n }\r\n return null;\r\n };\r\n QueryPanel.prototype.getExpressionRenderer = function (expression, slot) {\r\n if (!expression) {\r\n throw 'Expression is not defined in the condition';\r\n }\r\n var model = this.getContext().getModel();\r\n var condition = expression.getParent();\r\n var operator = model.getOperatorById(condition.getOperatorId());\r\n var attribute = model.getAttributeById(condition.expressions[0].value);\r\n var operand = model.getOperand(attribute, operator, expression.getIndex());\r\n var editor;\r\n var tag;\r\n if (operand && operand.editor && operand.editor.tag !== __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"g\" /* EqEditorTag */].Unknown) {\r\n editor = operand.editor;\r\n }\r\n else if (attribute && attribute.defaultEditor) {\r\n editor = attribute.defaultEditor;\r\n }\r\n else {\r\n editor = new __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"j\" /* EqValueEditor */]();\r\n }\r\n tag = editor.tag;\r\n var exprType = expression.dataType;\r\n if (exprType == __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Unknown) {\r\n exprType = attribute.dataType;\r\n }\r\n if (expression.kind === __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"d\" /* DataKind */].Attribute) {\r\n if (expression.getIndex() === 0) { // Base attribute expression\r\n return new __WEBPACK_IMPORTED_MODULE_8__renderers_querypanel_attribute_expression_renderer__[\"a\" /* AttributeExpressionRenderer */](this, expression, this.entitiesMenu, slot);\r\n }\r\n else {\r\n var attributeMenu = this.createEntitiesMenu(function (ent, attr) {\r\n if (attr) {\r\n return attr.useInConditions && attr.dataType === exprType;\r\n }\r\n return true;\r\n });\r\n return new __WEBPACK_IMPORTED_MODULE_8__renderers_querypanel_attribute_expression_renderer__[\"a\" /* AttributeExpressionRenderer */](this, expression, attributeMenu, slot);\r\n }\r\n }\r\n else if (expression.kind === __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"d\" /* DataKind */].Query) {\r\n tag = __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"g\" /* EqEditorTag */].SubQuery;\r\n }\r\n else if (expression.kind === __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"d\" /* DataKind */].Scalar) {\r\n if (tag == __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"g\" /* EqEditorTag */].Unknown && (expression.dataType === __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Date\r\n || expression.dataType === __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].DateTime || expression.dataType === __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Time)) {\r\n tag = __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"g\" /* EqEditorTag */].DateTime;\r\n }\r\n }\r\n else if (expression.kind == __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"d\" /* DataKind */].ParentColumn) {\r\n tag = __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"g\" /* EqEditorTag */].BindToParentColumn;\r\n }\r\n if (this.options.onGetExpressionRenderer) {\r\n var renderer = this.options.onGetExpressionRenderer(this, expression, editor, slot);\r\n if (renderer) {\r\n return renderer;\r\n }\r\n }\r\n switch (tag) {\r\n case __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"g\" /* EqEditorTag */].List:\r\n return new __WEBPACK_IMPORTED_MODULE_10__renderers_querypanel_list_expression_renderer__[\"b\" /* ListExpressionRenderer */](this, expression, editor, slot);\r\n case __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"g\" /* EqEditorTag */].SqlList:\r\n return new __WEBPACK_IMPORTED_MODULE_10__renderers_querypanel_list_expression_renderer__[\"c\" /* SqlListExpressionRenderer */](this, expression, editor, slot);\r\n case __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"g\" /* EqEditorTag */].CustomList:\r\n return new __WEBPACK_IMPORTED_MODULE_10__renderers_querypanel_list_expression_renderer__[\"a\" /* CustomListExpressionRenderer */](this, expression, editor, slot);\r\n case __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"g\" /* EqEditorTag */].DateTime:\r\n return new __WEBPACK_IMPORTED_MODULE_12__renderers_querypanel_datetime_expression_render__[\"a\" /* DateTimeExpressionRenderer */](this, expression, editor, slot);\r\n case __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"g\" /* EqEditorTag */].SubQuery:\r\n return new __WEBPACK_IMPORTED_MODULE_13__renderers_querypanel_subquery_expression_renderer__[\"a\" /* SubQueryExpressionRenderer */](this, expression, editor, slot);\r\n //move to ERS later\r\n case __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"g\" /* EqEditorTag */].BindToParentColumn:\r\n return new __WEBPACK_IMPORTED_MODULE_16__renderers_querypanel_bind_to_parent_column_expression_renderer__[\"a\" /* BindToParentColumnExpressionRenderer */](this, expression, editor, slot);\r\n default:\r\n return new __WEBPACK_IMPORTED_MODULE_7__renderers_querypanel_input_expression_renderer__[\"a\" /* InputExpressionRenderer */](this, expression, editor, slot);\r\n }\r\n };\r\n QueryPanel.prototype.getOperatorRenderer = function (condition, text, slot) {\r\n var renderer;\r\n if (this.options.onGetOperatorRenderer)\r\n renderer = this.options.onGetOperatorRenderer(condition, text, slot);\r\n if (renderer)\r\n return renderer;\r\n return new __WEBPACK_IMPORTED_MODULE_11__renderers_querypanel_operator_renderer__[\"a\" /* OperatorRenderer */](this, condition, text, slot);\r\n };\r\n QueryPanel.prototype.getAddRowRenderer = function (slot) {\r\n var renderer;\r\n if (this.options.onGetAddRowRenderer)\r\n renderer = this.options.onGetAddRowRenderer(slot);\r\n if (renderer)\r\n return renderer;\r\n return new __WEBPACK_IMPORTED_MODULE_9__renderers_querypanel_addrow_renderer__[\"a\" /* AddRowRenderer */](this, this.entitiesMenu, slot);\r\n };\r\n QueryPanel.prototype.createEntitiesMenu = function (filterFunc) {\r\n var model = this.getContext().getModel();\r\n if (!model || model.isEmpty())\r\n return null;\r\n var menuId = this.slot.id || \"eq-querypanel\";\r\n menuId += '-EntitiesMenu';\r\n var entitiesList = model.getEntitiesTree({\r\n addUIC: true,\r\n addUIR: false,\r\n addUIS: false,\r\n attrPlacement: this.options.attrPlacement,\r\n sortEntities: this.options.sortEntities\r\n }, filterFunc);\r\n var options = {\r\n items: entitiesList,\r\n adjustHeight: this.options.adjustEntitiesMenuHeight,\r\n id: menuId,\r\n domWriteItemsId: this.options.domWriteItemsId\r\n };\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].assign(options, this.options.menuOptions);\r\n return new __WEBPACK_IMPORTED_MODULE_4__utils_popup_menu__[\"a\" /* PopupMenu */](options);\r\n };\r\n QueryPanel.prototype.showEntitiesMenu = function (options) {\r\n this.entitiesMenu.showMenu(options);\r\n };\r\n QueryPanel.prototype.createConditionMenus = function () {\r\n //ConditionMenu\r\n {\r\n var query = this.getQuery();\r\n var menuId = this.slot.id || \"eq-querypanel\";\r\n menuId += '-ConditionMenu';\r\n var items = [\r\n {\r\n id: \"enable\",\r\n text: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('MenuEnable')\r\n },\r\n {\r\n id: \"delete\",\r\n text: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('CmdDelete')\r\n }\r\n ];\r\n if (query.isEx()) {\r\n if (this.options.allowParameterization || this.options.allowInJoinConditions) {\r\n items.push({ id: \"delimiter\", text: \"---\" });\r\n }\r\n ;\r\n if (this.options.allowParameterization) {\r\n items.push({\r\n id: \"param\",\r\n text: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('MenuParameterization')\r\n });\r\n }\r\n ;\r\n if (this.options.allowInJoinConditions) {\r\n items.push({\r\n id: \"inJoin\",\r\n text: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('MenuJoinCond')\r\n });\r\n }\r\n ;\r\n }\r\n var options = { items: items, adjustHeight: this.options.adjustEntitiesMenuHeight, id: menuId, domWriteItemsId: this.options.domWriteItemsId, showSearchBoxAfter: 100, showSelected: true };\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].assign(options, this.options.menuOptions);\r\n this.conditionMenu = new __WEBPACK_IMPORTED_MODULE_4__utils_popup_menu__[\"a\" /* PopupMenu */](options);\r\n }\r\n //groupMenu\r\n {\r\n var menuId = this.slot.id || \"eq-querypanel\";\r\n menuId += '-GroupMenu';\r\n var items = [\r\n {\r\n id: \"enable\",\r\n text: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('MenuEnable')\r\n },\r\n {\r\n id: \"delete\",\r\n text: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('CmdDelete')\r\n },\r\n {\r\n id: \"delimiter\",\r\n text: \"---\"\r\n },\r\n {\r\n id: \"addCondition\",\r\n text: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('CmdAddCondition')\r\n },\r\n {\r\n id: \"addGroup\",\r\n text: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('CmdAddCondGroup')\r\n }\r\n ];\r\n var options = { items: items, adjustHeight: this.options.adjustEntitiesMenuHeight, id: menuId, domWriteItemsId: this.options.domWriteItemsId, showSearchBoxAfter: 100, showSelected: true };\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].assign(options, this.options.menuOptions);\r\n this.groupMenu = new __WEBPACK_IMPORTED_MODULE_4__utils_popup_menu__[\"a\" /* PopupMenu */](options);\r\n }\r\n //rootGroupMenu\r\n {\r\n var menuId = this.slot.id || \"eq-querypanel\";\r\n menuId += '-RootGroupMenu';\r\n var items = [\r\n {\r\n id: \"addCondition\",\r\n text: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('CmdAddCondition')\r\n },\r\n {\r\n id: \"addGroup\",\r\n text: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('CmdAddCondGroup')\r\n }\r\n ];\r\n var options = { items: items, adjustHeight: this.options.adjustEntitiesMenuHeight, id: menuId, domWriteItemsId: this.options.domWriteItemsId, showSearchBoxAfter: 100, showSelected: true };\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].assign(options, this.options.menuOptions);\r\n this.rootGroupMenu = new __WEBPACK_IMPORTED_MODULE_4__utils_popup_menu__[\"a\" /* PopupMenu */](options);\r\n }\r\n };\r\n QueryPanel.prototype.createLinkTypeMenu = function () {\r\n var menuId = this.slot.id;\r\n if (menuId) {\r\n menuId += '-LinkTypeMenu';\r\n }\r\n var typeList = __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"v\" /* eqconsts */].predicateLinkTypeList;\r\n var itemList = typeList.map(function (item) {\r\n return {\r\n id: item.id,\r\n text: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText(item.key)\r\n };\r\n });\r\n var options = { items: itemList, adjustHeight: this.options.adjustEntitiesMenuHeight, id: menuId, domWriteItemsId: this.options.domWriteItemsId };\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].assign(options, this.options.menuOptions);\r\n this.linkTypeMenu = new __WEBPACK_IMPORTED_MODULE_4__utils_popup_menu__[\"a\" /* PopupMenu */](options);\r\n };\r\n QueryPanel.prototype.toggleConditionPicked = function (condition, force) {\r\n if (force === void 0) { force = undefined; }\r\n var el;\r\n var isActive;\r\n if (condition) {\r\n el = this.slot.querySelector(\"div[data-id=\" + condition.id + \"][data-condrow], div[data-id=\" + condition.id + \"] > div[data-grouprow]\");\r\n if (el) {\r\n isActive = el.classList.contains('active');\r\n }\r\n }\r\n //clear 'active' in all rows\r\n var rows = this.slot.querySelectorAll(\".\" + this.cssPrefix + \"-row\");\r\n for (var i = 0; i < rows.length; i++) {\r\n var row = rows[i];\r\n if (row.hasAttribute('data-group-row')) {\r\n if (!this.options.alwaysShowButtonsInGroups) {\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(row)\r\n .data(\"show-buttons\", null);\r\n }\r\n }\r\n else {\r\n if (!this.options.alwaysShowButtonsInConditions) {\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(row)\r\n .data(\"show-buttons\", null);\r\n }\r\n }\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(row)\r\n .removeClass('active');\r\n }\r\n if (el && !isActive) {\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(el)\r\n .addClass('active')\r\n .data(\"show-buttons\", \"\");\r\n }\r\n };\r\n QueryPanel.prototype.showLandingSlot = function () {\r\n var container = this.slot.querySelector('.eqjs-qp-conditions-root');\r\n if (container) {\r\n container.appendChild(this.landingSlot);\r\n this.landingSlot.scrollIntoView({ block: \"center\", behavior: \"smooth\" });\r\n }\r\n };\r\n QueryPanel.prototype.hideLangindSlot = function () {\r\n if (this.landingSlot.parentElement) {\r\n this.landingSlot.parentElement.removeChild(this.landingSlot);\r\n }\r\n };\r\n return QueryPanel;\r\n}(__WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"t\" /* Widget */]));\r\n\r\n//# sourceMappingURL=query_panel.js.map\n\n/***/ }),\n/* 33 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ExpressionRenderer; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__easyquery_core__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__base_element_renderer__ = __webpack_require__(71);\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\n\r\n\r\nvar ExpressionRenderer = /** @class */ (function (_super) {\r\n __extends(ExpressionRenderer, _super);\r\n function ExpressionRenderer(panel, expression, valueEditor, slot) {\r\n var _this = _super.call(this, slot) || this;\r\n _this.panel = panel;\r\n _this.expression = expression;\r\n _this.valueEditor = valueEditor;\r\n return _this;\r\n }\r\n Object.defineProperty(ExpressionRenderer.prototype, \"cssPrefix\", {\r\n get: function () {\r\n return 'eqjs-qp';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ExpressionRenderer.prototype.render = function (isEditMode) {\r\n if (isEditMode === void 0) { isEditMode = false; }\r\n _super.prototype.render.call(this, isEditMode);\r\n if (this.panel.options.onExpressionRendered) {\r\n this.panel.options.onExpressionRendered(this.expression, this.element);\r\n }\r\n return this.element;\r\n };\r\n ExpressionRenderer.prototype.getContext = function () {\r\n return this.panel.getContext();\r\n };\r\n ExpressionRenderer.prototype.isReadOnly = function () {\r\n var parent = this.expression.getParent();\r\n return !parent.enabled || parent.isReadOnly();\r\n };\r\n ExpressionRenderer.prototype.isEditable = function () {\r\n return !this.isReadOnly();\r\n };\r\n ExpressionRenderer.prototype.getClassesToAdd = function () {\r\n return this.cssPrefix + \"-condelement \" + this.cssPrefix + \"-valueelement\";\r\n };\r\n ExpressionRenderer.prototype.getLabelText = function () {\r\n var result = !this.expression.isEmpty()\r\n ? this.expression.value\r\n : this.getEmptyText();\r\n return result;\r\n };\r\n ExpressionRenderer.prototype.getEmptyText = function () {\r\n return this.panel.options.emptyTextValue || __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('MsgEmptyScalarValue'); //'[enter value]';\r\n };\r\n ExpressionRenderer.prototype.setValue = function (value, silent) {\r\n this.expression.setValue(value);\r\n if (!silent) {\r\n this.expression.getParent().fireChangedEvent(__WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"c\" /* ConditionPart */].Value);\r\n }\r\n };\r\n ExpressionRenderer.prototype.getValue = function () {\r\n return this.expression.value;\r\n };\r\n ExpressionRenderer.prototype.validateInput = function (value) {\r\n return { success: true, value: value };\r\n };\r\n ExpressionRenderer.prototype.showValidationError = function (message, target) {\r\n this.getContext().throwError({\r\n action: \"ui.validation\",\r\n \"text\": message\r\n });\r\n };\r\n ExpressionRenderer.prototype.isEmptyValue = function () {\r\n var v = this.getValue();\r\n return (typeof (v) === \"undefined\" || v === null || !v);\r\n };\r\n ExpressionRenderer.prototype.adjustWidth = function () {\r\n };\r\n return ExpressionRenderer;\r\n}(__WEBPACK_IMPORTED_MODULE_2__base_element_renderer__[\"a\" /* BaseElementRenderer */]));\r\n\r\n//# sourceMappingURL=expression_renderer.js.map\n\n/***/ }),\n/* 34 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return lcv; });\nvar majVer = 7;\r\nvar minVer = 0;\r\nvar magic = 45;\r\nMath.trunc = Math.trunc || function (x) {\r\n if (isNaN(x)) {\r\n return NaN;\r\n }\r\n if (x > 0) {\r\n return Math.floor(x);\r\n }\r\n return Math.ceil(x);\r\n};\r\nvar lcv = {\r\n __kt: 0,\r\n ck: function (key) {\r\n if (!key)\r\n return;\r\n try {\r\n var part1 = key.slice(0, key.length - 8);\r\n var infoBytes = _bs(part1);\r\n var part2 = key.slice(key.length - 8);\r\n var ed = f36(magic);\r\n if (part2[0] !== ed[0] || part2[2] !== ed[1])\r\n return;\r\n var idx = minVer % 4;\r\n var shift = majVer + minVer;\r\n if (part2[4 + idx] != encChar(shift, 19)) {\r\n return;\r\n }\r\n if (part2[1] != encChar(infoBytes[3])) {\r\n return;\r\n }\r\n lcv.__kt = part2[3] != encChar(infoBytes[5]) ? 1 : 2;\r\n }\r\n catch (error) {\r\n }\r\n }\r\n};\r\nfunction encChar(x, b) {\r\n if (b === void 0) { b = 20; }\r\n return String.fromCharCode(65 + x % b);\r\n}\r\nfunction _bs(str) {\r\n var binary_string = urlatob(str);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes;\r\n}\r\nfunction urlatob(str) {\r\n var s = str;\r\n s = s.replace(/-/g, '+');\r\n s = s.replace(/_/g, '/');\r\n switch (s.length % 4) {\r\n case 0:\r\n break;\r\n case 2:\r\n s += \"==\";\r\n break;\r\n case 3:\r\n s += \"=\";\r\n break;\r\n }\r\n return window.atob(s);\r\n}\r\nfunction f36(val) {\r\n var str = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\";\r\n var tb = 36;\r\n var i = 1;\r\n var result = \"AA\";\r\n var rest = val;\r\n do {\r\n result = setCharAt(result, i--, str[rest % tb]);\r\n rest = Math.trunc(rest / tb);\r\n } while (rest > 0);\r\n return result;\r\n}\r\nfunction setCharAt(str, index, chr) {\r\n if (index > str.length - 1)\r\n return str;\r\n return str.substr(0, index) + chr + str.substr(index + 1);\r\n}\r\n//# sourceMappingURL=lcv.js.map\n\n/***/ }),\n/* 35 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_invariant__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n/**\n * The public API for putting history on context.\n */\n\nvar Router = function (_React$Component) {\n _inherits(Router, _React$Component);\n\n function Router() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Router);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n match: _this.computeMatch(_this.props.history.location.pathname)\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Router.prototype.getChildContext = function getChildContext() {\n return {\n router: _extends({}, this.context.router, {\n history: this.props.history,\n route: {\n location: this.props.history.location,\n match: this.state.match\n }\n })\n };\n };\n\n Router.prototype.computeMatch = function computeMatch(pathname) {\n return {\n path: \"/\",\n url: \"/\",\n params: {},\n isExact: pathname === \"/\"\n };\n };\n\n Router.prototype.componentWillMount = function componentWillMount() {\n var _this2 = this;\n\n var _props = this.props,\n children = _props.children,\n history = _props.history;\n\n\n __WEBPACK_IMPORTED_MODULE_1_invariant___default()(children == null || __WEBPACK_IMPORTED_MODULE_2_react___default.a.Children.count(children) === 1, \"A may have only one child element\");\n\n // Do this here so we can setState when a changes the\n // location in componentWillMount. This happens e.g. when doing\n // server rendering using a .\n this.unlisten = history.listen(function () {\n _this2.setState({\n match: _this2.computeMatch(history.location.pathname)\n });\n });\n };\n\n Router.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n __WEBPACK_IMPORTED_MODULE_0_warning___default()(this.props.history === nextProps.history, \"You cannot change \");\n };\n\n Router.prototype.componentWillUnmount = function componentWillUnmount() {\n this.unlisten();\n };\n\n Router.prototype.render = function render() {\n var children = this.props.children;\n\n return children ? __WEBPACK_IMPORTED_MODULE_2_react___default.a.Children.only(children) : null;\n };\n\n return Router;\n}(__WEBPACK_IMPORTED_MODULE_2_react___default.a.Component);\n\nRouter.propTypes = {\n history: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired,\n children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node\n};\nRouter.contextTypes = {\n router: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nRouter.childContextTypes = {\n router: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Router);\n\n/***/ }),\n/* 36 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path_to_regexp__ = __webpack_require__(82);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path_to_regexp___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_path_to_regexp__);\n\n\nvar patternCache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nvar compilePath = function compilePath(pattern, options) {\n var cacheKey = \"\" + options.end + options.strict + options.sensitive;\n var cache = patternCache[cacheKey] || (patternCache[cacheKey] = {});\n\n if (cache[pattern]) return cache[pattern];\n\n var keys = [];\n var re = __WEBPACK_IMPORTED_MODULE_0_path_to_regexp___default()(pattern, keys, options);\n var compiledPattern = { re: re, keys: keys };\n\n if (cacheCount < cacheLimit) {\n cache[pattern] = compiledPattern;\n cacheCount++;\n }\n\n return compiledPattern;\n};\n\n/**\n * Public API for matching a URL pathname to a path pattern.\n */\nvar matchPath = function matchPath(pathname) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var parent = arguments[2];\n\n if (typeof options === \"string\") options = { path: options };\n\n var _options = options,\n path = _options.path,\n _options$exact = _options.exact,\n exact = _options$exact === undefined ? false : _options$exact,\n _options$strict = _options.strict,\n strict = _options$strict === undefined ? false : _options$strict,\n _options$sensitive = _options.sensitive,\n sensitive = _options$sensitive === undefined ? false : _options$sensitive;\n\n\n if (path == null) return parent;\n\n var _compilePath = compilePath(path, { end: exact, strict: strict, sensitive: sensitive }),\n re = _compilePath.re,\n keys = _compilePath.keys;\n\n var match = re.exec(pathname);\n\n if (!match) return null;\n\n var url = match[0],\n values = match.slice(1);\n\n var isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path: path, // the path pattern used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact: isExact, // whether or not we matched exactly\n params: keys.reduce(function (memo, key, index) {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (matchPath);\n\n/***/ }),\n/* 37 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_inheritsLoose__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react_popper__ = __webpack_require__(38);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__DropdownContext__ = __webpack_require__(27);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__utils__ = __webpack_require__(2);\n\n\n\n\n\n/* eslint react/no-find-dom-node: 0 */\n// https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-find-dom-node.md\n\n\n\n\n\n\nvar propTypes = {\n a11y: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n disabled: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n direction: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOf(['up', 'down', 'left', 'right']),\n group: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n isOpen: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n nav: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n active: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n addonType: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOf(['prepend', 'append'])]),\n size: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string,\n tag: __WEBPACK_IMPORTED_MODULE_9__utils__[\"t\" /* tagPropType */],\n toggle: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func,\n children: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.node,\n className: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.object,\n inNavbar: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n setActiveFromChild: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool\n};\nvar defaultProps = {\n a11y: true,\n isOpen: false,\n direction: 'down',\n nav: false,\n active: false,\n addonType: false,\n inNavbar: false,\n setActiveFromChild: false\n};\nvar preventDefaultKeys = [__WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].space, __WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].enter, __WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].up, __WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].down, __WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].end, __WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].home];\n\nvar Dropdown = /*#__PURE__*/function (_React$Component) {\n Object(__WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_inheritsLoose__[\"a\" /* default */])(Dropdown, _React$Component);\n\n function Dropdown(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.addEvents = _this.addEvents.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.handleDocumentClick = _this.handleDocumentClick.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.handleKeyDown = _this.handleKeyDown.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.removeEvents = _this.removeEvents.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.toggle = _this.toggle.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.handleMenuRef = _this.handleMenuRef.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.containerRef = /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_4_react___default.a.createRef();\n _this.menuRef = /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_4_react___default.a.createRef();\n return _this;\n }\n\n var _proto = Dropdown.prototype;\n\n _proto.handleMenuRef = function handleMenuRef(menuRef) {\n this.menuRef.current = menuRef;\n };\n\n _proto.getContextValue = function getContextValue() {\n return {\n toggle: this.toggle,\n isOpen: this.props.isOpen,\n direction: this.props.direction === 'down' && this.props.dropup ? 'up' : this.props.direction,\n inNavbar: this.props.inNavbar,\n disabled: this.props.disabled,\n // Callback that should be called by DropdownMenu to provide a ref to\n // a HTML tag that's used for the DropdownMenu\n onMenuRef: this.handleMenuRef\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.handleProps();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.isOpen !== prevProps.isOpen) {\n this.handleProps();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.removeEvents();\n };\n\n _proto.getContainer = function getContainer() {\n return this.containerRef.current;\n };\n\n _proto.getMenu = function getMenu() {\n return this.menuRef.current;\n };\n\n _proto.getMenuCtrl = function getMenuCtrl() {\n if (this._$menuCtrl) return this._$menuCtrl;\n this._$menuCtrl = this.getContainer().querySelector('[aria-expanded]');\n return this._$menuCtrl;\n };\n\n _proto.getMenuItems = function getMenuItems() {\n // In a real menu with a child DropdownMenu, `this.getMenu()` should never\n // be null, but it is sometimes null in tests. To mitigate that, we just\n // use `this.getContainer()` as the fallback `menuContainer`.\n var menuContainer = this.getMenu() || this.getContainer();\n return [].slice.call(menuContainer.querySelectorAll('[role=\"menuitem\"]'));\n };\n\n _proto.addEvents = function addEvents() {\n var _this2 = this;\n\n ['click', 'touchstart', 'keyup'].forEach(function (event) {\n return document.addEventListener(event, _this2.handleDocumentClick, true);\n });\n };\n\n _proto.removeEvents = function removeEvents() {\n var _this3 = this;\n\n ['click', 'touchstart', 'keyup'].forEach(function (event) {\n return document.removeEventListener(event, _this3.handleDocumentClick, true);\n });\n };\n\n _proto.handleDocumentClick = function handleDocumentClick(e) {\n if (e && (e.which === 3 || e.type === 'keyup' && e.which !== __WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].tab)) return;\n var container = this.getContainer();\n var menu = this.getMenu();\n var clickIsInContainer = container.contains(e.target) && container !== e.target;\n var clickIsInMenu = menu && menu.contains(e.target) && menu !== e.target;\n\n if ((clickIsInContainer || clickIsInMenu) && (e.type !== 'keyup' || e.which === __WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].tab)) {\n return;\n }\n\n this.toggle(e);\n };\n\n _proto.handleKeyDown = function handleKeyDown(e) {\n var _this4 = this;\n\n var isTargetMenuItem = e.target.getAttribute('role') === 'menuitem';\n var isTargetMenuCtrl = this.getMenuCtrl() === e.target;\n var isTab = __WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].tab === e.which;\n\n if (/input|textarea/i.test(e.target.tagName) || isTab && !this.props.a11y || isTab && !(isTargetMenuItem || isTargetMenuCtrl)) {\n return;\n }\n\n if (preventDefaultKeys.indexOf(e.which) !== -1 || e.which >= 48 && e.which <= 90) {\n e.preventDefault();\n }\n\n if (this.props.disabled) return;\n\n if (isTargetMenuCtrl) {\n if ([__WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].space, __WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].enter, __WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].up, __WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].down].indexOf(e.which) > -1) {\n // Open the menu (if not open) and focus the first menu item\n if (!this.props.isOpen) {\n this.toggle(e);\n }\n\n setTimeout(function () {\n return _this4.getMenuItems()[0].focus();\n });\n } else if (this.props.isOpen && isTab) {\n // Focus the first menu item if tabbing from an open menu. We need this\n // for cases where the DropdownMenu sets a custom container, which may\n // not be the natural next item to tab to from the DropdownToggle.\n e.preventDefault();\n this.getMenuItems()[0].focus();\n } else if (this.props.isOpen && e.which === __WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].esc) {\n this.toggle(e);\n }\n }\n\n if (this.props.isOpen && e.target.getAttribute('role') === 'menuitem') {\n if ([__WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].tab, __WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].esc].indexOf(e.which) > -1) {\n this.toggle(e);\n this.getMenuCtrl().focus();\n } else if ([__WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].space, __WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].enter].indexOf(e.which) > -1) {\n e.target.click();\n this.getMenuCtrl().focus();\n } else if ([__WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].down, __WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].up].indexOf(e.which) > -1 || [__WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].n, __WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].p].indexOf(e.which) > -1 && e.ctrlKey) {\n var $menuitems = this.getMenuItems();\n var index = $menuitems.indexOf(e.target);\n\n if (__WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].up === e.which || __WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].p === e.which && e.ctrlKey) {\n index = index !== 0 ? index - 1 : $menuitems.length - 1;\n } else if (__WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].down === e.which || __WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].n === e.which && e.ctrlKey) {\n index = index === $menuitems.length - 1 ? 0 : index + 1;\n }\n\n $menuitems[index].focus();\n } else if (__WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].end === e.which) {\n var _$menuitems = this.getMenuItems();\n\n _$menuitems[_$menuitems.length - 1].focus();\n } else if (__WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].home === e.which) {\n var _$menuitems2 = this.getMenuItems();\n\n _$menuitems2[0].focus();\n } else if (e.which >= 48 && e.which <= 90) {\n var _$menuitems3 = this.getMenuItems();\n\n var charPressed = String.fromCharCode(e.which).toLowerCase();\n\n for (var i = 0; i < _$menuitems3.length; i += 1) {\n var firstLetter = _$menuitems3[i].textContent && _$menuitems3[i].textContent[0].toLowerCase();\n\n if (firstLetter === charPressed) {\n _$menuitems3[i].focus();\n\n break;\n }\n }\n }\n }\n };\n\n _proto.handleProps = function handleProps() {\n if (this.props.isOpen) {\n this.addEvents();\n } else {\n this.removeEvents();\n }\n };\n\n _proto.toggle = function toggle(e) {\n if (this.props.disabled) {\n return e && e.preventDefault();\n }\n\n return this.props.toggle(e);\n };\n\n _proto.render = function render() {\n var _classNames, _ref;\n\n var _omit = Object(__WEBPACK_IMPORTED_MODULE_9__utils__[\"q\" /* omit */])(this.props, ['toggle', 'disabled', 'inNavbar', 'a11y']),\n className = _omit.className,\n cssModule = _omit.cssModule,\n direction = _omit.direction,\n isOpen = _omit.isOpen,\n group = _omit.group,\n size = _omit.size,\n nav = _omit.nav,\n setActiveFromChild = _omit.setActiveFromChild,\n active = _omit.active,\n addonType = _omit.addonType,\n tag = _omit.tag,\n attrs = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(_omit, [\"className\", \"cssModule\", \"direction\", \"isOpen\", \"group\", \"size\", \"nav\", \"setActiveFromChild\", \"active\", \"addonType\", \"tag\"]);\n\n var Tag = tag || (nav ? 'li' : 'div');\n var subItemIsActive = false;\n\n if (setActiveFromChild) {\n __WEBPACK_IMPORTED_MODULE_4_react___default.a.Children.map(this.props.children[1].props.children, function (dropdownItem) {\n if (dropdownItem && dropdownItem.props.active) subItemIsActive = true;\n });\n }\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_9__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_7_classnames___default()(className, direction !== 'down' && \"drop\" + direction, nav && active ? 'active' : false, setActiveFromChild && subItemIsActive ? 'active' : false, (_classNames = {}, _classNames[\"input-group-\" + addonType] = addonType, _classNames['btn-group'] = group, _classNames[\"btn-group-\" + size] = !!size, _classNames.dropdown = !group && !addonType, _classNames.show = isOpen, _classNames['nav-item'] = nav, _classNames)), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__DropdownContext__[\"a\" /* DropdownContext */].Provider, {\n value: this.getContextValue()\n }, /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6_react_popper__[\"a\" /* Manager */], null, /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attrs, (_ref = {}, _ref[typeof Tag === 'string' ? 'ref' : 'innerRef'] = this.containerRef, _ref), {\n onKeyDown: this.handleKeyDown,\n className: classes\n }))));\n };\n\n return Dropdown;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.Component);\n\nDropdown.propTypes = propTypes;\nDropdown.defaultProps = defaultProps;\n/* harmony default export */ __webpack_exports__[\"a\"] = (Dropdown);\n\n/***/ }),\n/* 38 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Popper__ = __webpack_require__(273);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Manager__ = __webpack_require__(58);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Reference__ = __webpack_require__(290);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return __WEBPACK_IMPORTED_MODULE_0__Popper__[\"a\"]; });\n/* unused harmony reexport placements */\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_1__Manager__[\"c\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return __WEBPACK_IMPORTED_MODULE_2__Reference__[\"a\"]; });\n// Public components\n\n\n\n // Public types\n\n/***/ }),\n/* 39 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return i18n; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__types_data_type__ = __webpack_require__(20);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_utils__ = __webpack_require__(24);\n\r\n\r\n/**\r\n * Contains internatialization functionality.\r\n */\r\nvar i18n;\r\n(function (i18n) {\r\n var englishUSLocaleSettings = {\r\n shortDateFormat: 'MM/dd/yyyy',\r\n longDateFormat: 'dd MMM, yyyy',\r\n editDateFormat: 'MM/dd/yyyy',\r\n shortTimeFormat: 'HH:mm',\r\n editTimeFormat: 'HH:mm',\r\n longTimeFormat: 'HH:mm:ss',\r\n shortMonthNames: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\r\n longMonthNames: ['January', 'February', 'March', 'April', 'May', 'June',\r\n 'July', 'August', 'September', 'October', 'November', 'December'],\r\n shortWeekDayNames: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\r\n longWeekDayNames: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\r\n decimalSeparator: '.',\r\n currency: 'USD'\r\n };\r\n var defaultLocale = {\r\n localeId: 'en-US',\r\n englishName: 'English',\r\n displayName: 'English',\r\n texts: {\r\n ButtonOK: 'OK',\r\n ButtonCancel: 'Cancel',\r\n Yes: 'Yes',\r\n No: 'No',\r\n True: 'True',\r\n False: 'False'\r\n },\r\n settings: englishUSLocaleSettings\r\n };\r\n var allLocales = {\r\n 'en-US': defaultLocale\r\n };\r\n var currentLocale;\r\n var mappers = [];\r\n function mapInfo(info) {\r\n for (var _i = 0, mappers_1 = mappers; _i < mappers_1.length; _i++) {\r\n var mapper = mappers_1[_i];\r\n mapper(info);\r\n }\r\n }\r\n function addMapper(mapper) {\r\n mappers.push(mapper);\r\n }\r\n i18n.addMapper = addMapper;\r\n /**\r\n * Gets added locales with their names.\r\n * @returns The locales.\r\n */\r\n function getLocales() {\r\n var result = [];\r\n for (var locale in allLocales) {\r\n result.push({\r\n locale: locale,\r\n englishName: allLocales[locale].englishName,\r\n displayName: allLocales[locale].displayName\r\n });\r\n }\r\n return result.sort(function (a, b) {\r\n if (a.englishName > b.englishName) {\r\n return 1;\r\n }\r\n else if (a.englishName === b.englishName) {\r\n return 0;\r\n }\r\n return -1;\r\n });\r\n }\r\n i18n.getLocales = getLocales;\r\n /**\r\n * Gets the current locale ID.\r\n * @returns The locale.\r\n */\r\n function getCurrentLocale() {\r\n return currentLocale.localeId;\r\n }\r\n i18n.getCurrentLocale = getCurrentLocale;\r\n /**\r\n * Sets the curent locale.\r\n * @deprecated Use setCurrentLocale instead\r\n * @param l The locale.\r\n */\r\n function setLocale(l) {\r\n console.warn(\"This method is deprecated. Use setCurrentLocale instead\");\r\n setCurrentLocale(l);\r\n }\r\n i18n.setLocale = setLocale;\r\n /**\r\n * Sets the curent locale.\r\n * @param localeId The locale.\r\n */\r\n function setCurrentLocale(localeId) {\r\n var newLocale = allLocales[localeId];\r\n if (newLocale) {\r\n __WEBPACK_IMPORTED_MODULE_1__utils_utils__[\"a\" /* utils */].assignDeep(currentLocale, newLocale);\r\n }\r\n else {\r\n currentLocale.englishName = localeId;\r\n currentLocale.displayName = localeId;\r\n currentLocale.texts = __WEBPACK_IMPORTED_MODULE_1__utils_utils__[\"a\" /* utils */].assignDeep({}, defaultLocale.texts);\r\n }\r\n currentLocale.localeId = localeId;\r\n }\r\n i18n.setCurrentLocale = setCurrentLocale;\r\n /**\r\n * Returns localized text by the key defined in parameter.\r\n * Here we get the text of the resource string assigned to CmdClickToAddCondition key:\r\n *\r\n ```\r\n const text = i18n.getText('CmdClickToAddCondition')\r\n ```\r\n * @param args The keys of the resource string.\r\n * @returns Text of the resource defined by key or null if the key is not found\r\n *\r\n */\r\n function getText() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var textsObj = currentLocale.texts;\r\n var resText = '';\r\n if (args && args.length) {\r\n var argLength = args.length;\r\n for (var i = 0; i < argLength; i++) {\r\n resText = textsObj[args[i]];\r\n if (typeof resText === 'object') {\r\n textsObj = resText;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n return resText;\r\n }\r\n i18n.getText = getText;\r\n function getLocaleSettings() {\r\n return currentLocale.settings;\r\n }\r\n i18n.getLocaleSettings = getLocaleSettings;\r\n function getOneLocaleSetting(key) {\r\n return currentLocale.settings[key];\r\n }\r\n i18n.getOneLocaleSetting = getOneLocaleSetting;\r\n function getShortMonthName(monthNum) {\r\n var settings = getLocaleSettings();\r\n if (monthNum > 0 && monthNum < 13) {\r\n return settings.shortMonthNames[monthNum - 1];\r\n }\r\n else {\r\n throw 'Wrong month number: ' + monthNum;\r\n }\r\n }\r\n i18n.getShortMonthName = getShortMonthName;\r\n function getLongMonthName(monthNum) {\r\n var settings = getLocaleSettings();\r\n if (monthNum > 0 && monthNum < 13) {\r\n return settings.longMonthNames[monthNum - 1];\r\n }\r\n else {\r\n throw 'Wrong month number: ' + monthNum;\r\n }\r\n }\r\n i18n.getLongMonthName = getLongMonthName;\r\n function getShortWeekDayName(dayNum) {\r\n var settings = getLocaleSettings();\r\n if (dayNum > 0 && dayNum < 8) {\r\n return settings.shortWeekDayNames.length >= dayNum\r\n ? settings.shortWeekDayNames[dayNum - 1]\r\n : dayNum.toString();\r\n }\r\n else {\r\n throw 'Wrong month number: ' + dayNum;\r\n }\r\n }\r\n i18n.getShortWeekDayName = getShortWeekDayName;\r\n function getLongWeekDayName(dayNum) {\r\n var settings = getLocaleSettings();\r\n if (dayNum > 0 && dayNum < 8) {\r\n return settings.longWeekDayNames.length >= dayNum\r\n ? settings.longWeekDayNames[dayNum - 1]\r\n : dayNum.toString();\r\n }\r\n else {\r\n throw 'Wrong month number: ' + dayNum;\r\n }\r\n }\r\n i18n.getLongWeekDayName = getLongWeekDayName;\r\n /**\r\n * Updates the locale settings (date/time formats, separators, etc) for the specified locale.\r\n * @param settingsToUpdate a LocaleSettings object\r\n * @param locale The locale ID (like 'en', 'de', 'uk', etc).\r\n * If not specified - the function will update the settings for the current locale\r\n */\r\n function updateLocaleSettings(settingsToUpdate) {\r\n if (!currentLocale.settings) {\r\n currentLocale.settings = __WEBPACK_IMPORTED_MODULE_1__utils_utils__[\"a\" /* utils */].assignDeep({}, englishUSLocaleSettings);\r\n }\r\n currentLocale.settings = __WEBPACK_IMPORTED_MODULE_1__utils_utils__[\"a\" /* utils */].assignDeep(currentLocale.settings, settingsToUpdate);\r\n }\r\n i18n.updateLocaleSettings = updateLocaleSettings;\r\n /**\r\n * Updates the texts for the current locale\r\n * @param texts A plain JS object that contains textual resources\r\n */\r\n function updateLocaleTexts(texts) {\r\n if (typeof texts !== 'object') {\r\n console.error('Wrong parameter type in updateLocaleTexts function call.' +\r\n 'The first parameter (localeId) is not necessary. Use updateLocaleTexts(texts) instead');\r\n return;\r\n }\r\n mapInfo({ localeId: currentLocale.localeId, texts: texts });\r\n __WEBPACK_IMPORTED_MODULE_1__utils_utils__[\"a\" /* utils */].assignDeep(currentLocale.texts, texts);\r\n }\r\n i18n.updateLocaleTexts = updateLocaleTexts;\r\n function updateDefaultTexts(texts) {\r\n for (var localeId in allLocales) {\r\n var locale = allLocales[localeId];\r\n locale.texts = __WEBPACK_IMPORTED_MODULE_1__utils_utils__[\"a\" /* utils */].assignDeep({}, texts, locale.texts);\r\n }\r\n currentLocale.texts = __WEBPACK_IMPORTED_MODULE_1__utils_utils__[\"a\" /* utils */].assignDeep({}, texts, currentLocale.texts);\r\n }\r\n i18n.updateDefaultTexts = updateDefaultTexts;\r\n /**\r\n * Updates the information for the specified locale.\r\n * @param localeId The locale ID (like 'en', 'de', 'uk', etc).\r\n * If the locale does exist yet - it will be added\r\n * @param localeInfo a LocaleInfo object that contains the locale settings and textual resources\r\n */\r\n function updateLocaleInfo(localeId, localeData) {\r\n mapInfo(localeData);\r\n var localeInfoToUpdate = currentLocale;\r\n if (localeId) {\r\n if (!localeData.localeId) {\r\n localeData.localeId = localeId;\r\n }\r\n localeInfoToUpdate = allLocales[localeId];\r\n if (!localeInfoToUpdate) {\r\n localeInfoToUpdate = __WEBPACK_IMPORTED_MODULE_1__utils_utils__[\"a\" /* utils */].assignDeep({}, defaultLocale);\r\n allLocales[localeId] = localeInfoToUpdate;\r\n }\r\n }\r\n __WEBPACK_IMPORTED_MODULE_1__utils_utils__[\"a\" /* utils */].assignDeep(localeInfoToUpdate, localeData);\r\n }\r\n i18n.updateLocaleInfo = updateLocaleInfo;\r\n /**\r\n * Adds the locale.\r\n * @param localeId The locale ID (like 'en', 'de', 'uk', etc).\r\n * If the locale does exist yet - it will be created\r\n * @param localeInfo - a LocaleInfo object that contains the locale settings and textual resources\r\n */\r\n function addLocale(localeId, localeInfo) {\r\n updateLocaleInfo(localeId, localeInfo);\r\n }\r\n i18n.addLocale = addLocale;\r\n /**\r\n * Overwrites some locale settings (date/time formats) with the formats used in browser's current language\r\n */\r\n function determineSettingsByLocale(localeId) {\r\n var now = new Date(2020, 5, 7, 19, 34, 56, 88);\r\n var dateOptions = { year: 'numeric', month: 'numeric', day: 'numeric' };\r\n var timeOptions = { hour: 'numeric', minute: 'numeric', second: 'numeric' };\r\n var dateStr = now.toLocaleDateString(localeId, dateOptions);\r\n var timeStr = now.toLocaleTimeString(localeId, timeOptions);\r\n var dateFormat = dateStr\r\n .replace('07', 'dd')\r\n .replace('7', 'd')\r\n .replace('06', 'MM')\r\n .replace('6', 'M')\r\n .replace('2020', 'yyyy')\r\n .replace('20', 'yy');\r\n var timeFormat = timeStr\r\n .replace('19', 'HH')\r\n .replace('07', 'hh')\r\n .replace('7', 'h')\r\n .replace('34', 'mm')\r\n .replace('56', 'ss')\r\n .replace('PM', 'tt');\r\n if (!currentLocale.settings) {\r\n currentLocale.settings = {};\r\n }\r\n var localeSettings = {\r\n shortDateFormat: dateFormat,\r\n editDateFormat: dateFormat,\r\n shortTimeFormat: timeFormat\r\n };\r\n updateLocaleSettings(localeSettings);\r\n }\r\n function loadBrowserLocaleSettings() {\r\n var lang = typeof navigator === 'object' ? navigator.language : undefined;\r\n determineSettingsByLocale(lang);\r\n }\r\n function resetLocales() {\r\n if (!currentLocale) {\r\n currentLocale = __WEBPACK_IMPORTED_MODULE_1__utils_utils__[\"a\" /* utils */].assignDeep({}, defaultLocale);\r\n loadBrowserLocaleSettings();\r\n }\r\n }\r\n i18n.resetLocales = resetLocales;\r\n function dateTimeToStr(dateTime, dataType, format) {\r\n if (format) {\r\n if (format == \"d\") {\r\n format = buildShortDateTimeFormat(__WEBPACK_IMPORTED_MODULE_0__types_data_type__[\"a\" /* DataType */].Date);\r\n }\r\n else if (format == \"D\") {\r\n format = buildLongDateTimeFormat(__WEBPACK_IMPORTED_MODULE_0__types_data_type__[\"a\" /* DataType */].Date);\r\n }\r\n else if (format == \"f\") {\r\n format = buildShortDateTimeFormat(__WEBPACK_IMPORTED_MODULE_0__types_data_type__[\"a\" /* DataType */].DateTime);\r\n }\r\n else if (format == \"F\") {\r\n format = buildLongDateTimeFormat(__WEBPACK_IMPORTED_MODULE_0__types_data_type__[\"a\" /* DataType */].DateTime);\r\n }\r\n }\r\n else {\r\n format = buildShortDateTimeFormat(dataType);\r\n }\r\n return __WEBPACK_IMPORTED_MODULE_1__utils_utils__[\"a\" /* utils */].dateTimeToStr(dateTime, format);\r\n }\r\n i18n.dateTimeToStr = dateTimeToStr;\r\n function buildShortDateTimeFormat(dataType) {\r\n var localeSettings = getLocaleSettings();\r\n var format;\r\n switch (dataType) {\r\n case __WEBPACK_IMPORTED_MODULE_0__types_data_type__[\"a\" /* DataType */].Date:\r\n format = localeSettings.shortDateFormat;\r\n break;\r\n case __WEBPACK_IMPORTED_MODULE_0__types_data_type__[\"a\" /* DataType */].Time:\r\n format = localeSettings.shortTimeFormat;\r\n break;\r\n default:\r\n format = localeSettings.shortDateFormat + ' ' + localeSettings.shortTimeFormat;\r\n break;\r\n }\r\n return format;\r\n }\r\n function buildLongDateTimeFormat(dataType) {\r\n var localeSettings = getLocaleSettings();\r\n var format;\r\n switch (dataType) {\r\n case __WEBPACK_IMPORTED_MODULE_0__types_data_type__[\"a\" /* DataType */].Date:\r\n format = localeSettings.longDateFormat;\r\n break;\r\n case __WEBPACK_IMPORTED_MODULE_0__types_data_type__[\"a\" /* DataType */].Time:\r\n format = localeSettings.longTimeFormat;\r\n break;\r\n default:\r\n format = localeSettings.longDateFormat + ' ' + localeSettings.longTimeFormat;\r\n break;\r\n }\r\n return format;\r\n }\r\n function numberToStr(number, format) {\r\n if (format && format.length > 0) {\r\n var type = format.charAt(0);\r\n if (type === 'S') {\r\n return formatWithSequence(number, format.slice(1));\r\n }\r\n else if (['D', 'F', 'C'].indexOf(type) >= 0) {\r\n var locale = getCurrentLocale();\r\n return number.toLocaleString(locale, getNumberFromatOptions(format));\r\n }\r\n else {\r\n return convertWithMask(Math.trunc(number), format);\r\n }\r\n }\r\n var localeSettings = getLocaleSettings();\r\n return __WEBPACK_IMPORTED_MODULE_1__utils_utils__[\"a\" /* utils */].numberToStr(number, localeSettings.decimalSeparator);\r\n }\r\n i18n.numberToStr = numberToStr;\r\n function booleanToStr(bool, format) {\r\n if (format && format.length > 0) {\r\n var type = format.charAt(0);\r\n if (type === 'S') {\r\n var values = format.slice(1).split('|');\r\n if (values.length > 1) {\r\n var value = values[(bool) ? 1 : 0];\r\n return i18n.getText(value) || value;\r\n }\r\n }\r\n }\r\n return \"\" + bool;\r\n }\r\n i18n.booleanToStr = booleanToStr;\r\n var cachedSequenceFormats = {};\r\n function formatWithSequence(number, format) {\r\n if (!cachedSequenceFormats[format]) {\r\n // parse and save in cache format values \r\n var values_2 = format.split('|')\r\n .filter(function (v) { return v.length > 0; })\r\n .map(function (v) { return v.split('='); });\r\n cachedSequenceFormats[format] = {};\r\n if (values_2.length > 0) {\r\n if (values_2[0].length > 1) {\r\n for (var _i = 0, values_1 = values_2; _i < values_1.length; _i++) {\r\n var value = values_1[_i];\r\n cachedSequenceFormats[format][Number.parseInt(value[1])] = value[0];\r\n }\r\n }\r\n else {\r\n values_2.forEach(function (value, index) {\r\n cachedSequenceFormats[format][index] = value[0];\r\n });\r\n }\r\n }\r\n }\r\n var values = cachedSequenceFormats[format];\r\n if (values[number] !== undefined) {\r\n var value = values[number];\r\n return i18n.getText(value) || value;\r\n }\r\n return number.toString();\r\n }\r\n function convertWithMask(number, mask) {\r\n var value = number.toString();\r\n var result = '';\r\n var index = value.length - 1;\r\n for (var i = mask.length - 1; i >= 0; i--) {\r\n var ch = mask.charAt(i);\r\n if (ch === '#' || ch === '0') {\r\n if (index >= 0) {\r\n result += value.charAt(index);\r\n index--;\r\n }\r\n else {\r\n if (ch === '0') {\r\n result += 0;\r\n }\r\n }\r\n }\r\n else {\r\n result += ch;\r\n }\r\n }\r\n return result.split('').reverse().join('');\r\n }\r\n function getNumberFromatOptions(format) {\r\n var localeSettings = getLocaleSettings();\r\n var type = format[0].toUpperCase();\r\n var digits = (format.length > 1)\r\n ? Number.parseInt(format.slice(1))\r\n : type == 'D' ? 1 : 2;\r\n switch (type) {\r\n case 'D':\r\n return {\r\n style: 'decimal',\r\n useGrouping: false,\r\n minimumIntegerDigits: digits\r\n };\r\n case 'C':\r\n return {\r\n style: 'currency',\r\n currency: localeSettings.currency,\r\n minimumFractionDigits: digits\r\n };\r\n default:\r\n return {\r\n style: 'decimal',\r\n minimumFractionDigits: digits\r\n };\r\n }\r\n }\r\n})(i18n || (i18n = {}));\r\n//# sourceMappingURL=i18n.js.map\n\n/***/ }),\n/* 40 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return equtils; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__format_parser__ = __webpack_require__(131);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__types_link_type__ = __webpack_require__(41);\n\r\n\r\n\r\n\r\nvar equtils;\r\n(function (equtils) {\r\n /**\r\n * Adds two paths and returns the result\r\n * Correctly processes leading and trailing slashes\r\n * @param path1\r\n * @param path2\r\n */\r\n function combinePath(path1, path2) {\r\n var result = path1;\r\n if (result != null && result.length > 0) {\r\n if (result.charAt(result.length - 1) != '/')\r\n result += \"/\";\r\n result += path2;\r\n }\r\n else {\r\n result = path2;\r\n }\r\n return result;\r\n }\r\n equtils.combinePath = combinePath;\r\n /**\r\n * Converts a string to a `LinkType` value\r\n * @param str\r\n */\r\n function strToLinkType(str) {\r\n if (str == \"All\") {\r\n return __WEBPACK_IMPORTED_MODULE_2__types_link_type__[\"a\" /* LinkType */].All;\r\n }\r\n else if (str == \"NotAll\") {\r\n return __WEBPACK_IMPORTED_MODULE_2__types_link_type__[\"a\" /* LinkType */].NotAll;\r\n }\r\n else if (str == \"Any\") {\r\n return __WEBPACK_IMPORTED_MODULE_2__types_link_type__[\"a\" /* LinkType */].Any;\r\n }\r\n else {\r\n return __WEBPACK_IMPORTED_MODULE_2__types_link_type__[\"a\" /* LinkType */].None;\r\n }\r\n }\r\n equtils.strToLinkType = strToLinkType;\r\n /**\r\n * Converts a `LinkType` value to a string\r\n * @param type\r\n */\r\n function linkTypeToStr(type) {\r\n if (type === __WEBPACK_IMPORTED_MODULE_2__types_link_type__[\"a\" /* LinkType */].All) {\r\n return \"All\";\r\n }\r\n else if (type === __WEBPACK_IMPORTED_MODULE_2__types_link_type__[\"a\" /* LinkType */].NotAll) {\r\n return \"NotAll\";\r\n }\r\n else if (type == __WEBPACK_IMPORTED_MODULE_2__types_link_type__[\"a\" /* LinkType */].Any) {\r\n return \"Any\";\r\n }\r\n else {\r\n return \"None\";\r\n }\r\n }\r\n equtils.linkTypeToStr = linkTypeToStr;\r\n /**\r\n * Parses the operator's format string and returns a list of tokens\r\n * @param operator\r\n */\r\n function parseOperatorFormat(operator) {\r\n var format = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('Operators', operator.id, 'format');\r\n if (!format) {\r\n format = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('Operators', operator.id, 'displayFormat');\r\n }\r\n if (!format) {\r\n format = operator.displayFormat;\r\n }\r\n var parser = new __WEBPACK_IMPORTED_MODULE_1__format_parser__[\"a\" /* FormatParser */](format);\r\n return parser.parse();\r\n }\r\n equtils.parseOperatorFormat = parseOperatorFormat;\r\n //----------- value converstion utils --------------\r\n /**\r\n * Converts a value from one DataType to another\r\n * @param value\r\n * @param fromDataType - the original data type\r\n * @param toDataType - the data type we want to get\r\n */\r\n function convertValue(value, fromDataType, toDataType) {\r\n switch (toDataType) {\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].String:\r\n return value;\r\n case (__WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Autoinc, __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Byte, __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Int32, __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Int64, __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Word):\r\n var resInt = parseInt(value);\r\n return isNaN(resInt) ? '' : resInt.toString();\r\n case (__WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Currency, __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Float):\r\n var resFloat = parseFloat(value);\r\n return isNaN(resFloat) ? '' : resFloat.toString();\r\n default:\r\n return '';\r\n }\r\n }\r\n equtils.convertValue = convertValue;\r\n})(equtils || (equtils = {}));\r\n//# sourceMappingURL=utils.js.map\n\n/***/ }),\n/* 41 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return LinkType; });\n/** Represents type of linking of conditions in group (predicate).*/\r\nvar LinkType;\r\n(function (LinkType) {\r\n /**\r\n * None of the conditions must be truth (all must be false).\r\n * In SQL it will look like: `NOT (Condition1 OR Condition2 OR ...)`.\r\n */\r\n LinkType[LinkType[\"None\"] = 0] = \"None\";\r\n /** At least one condition must be truth. In SQL they are connected by `OR` operator.*/\r\n LinkType[LinkType[\"Any\"] = 1] = \"Any\";\r\n /**\r\n * Not all conditions must be truth (at least one must false).\r\n * In SQL it will look like: `NOT(Condition1 AND Condition2 AND ...)`.\r\n */\r\n LinkType[LinkType[\"NotAll\"] = 2] = \"NotAll\";\r\n /** All conditions must be truth, in result SQL they are connected by `AND` operator;*/\r\n LinkType[LinkType[\"All\"] = 3] = \"All\";\r\n})(LinkType || (LinkType = {}));\r\n//# sourceMappingURL=link_type.js.map\n\n/***/ }),\n/* 42 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Expression; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_utils__ = __webpack_require__(40);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__types_data_kind__ = __webpack_require__(25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__types_expr_tag__ = __webpack_require__(21);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__query__ = __webpack_require__(29);\n\r\n\r\n\r\n\r\n\r\n/**\r\n * Represents expression object.\r\n */\r\nvar Expression = /** @class */ (function () {\r\n /** The default constructor. */\r\n function Expression(parent) {\r\n var _this = this;\r\n this.parent = parent;\r\n /** The tag. */\r\n this.tag = __WEBPACK_IMPORTED_MODULE_3__types_expr_tag__[\"a\" /* ExprTag */].Constant;\r\n /** The data kind. */\r\n this.kind = __WEBPACK_IMPORTED_MODULE_2__types_data_kind__[\"a\" /* DataKind */].Scalar;\r\n /** The data type. */\r\n this.dataType = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].String;\r\n /** The value. */\r\n this._value = ''; //DO NOT forget remove any\r\n /**\r\n * The distinct option. (e.g `SELECT DISTINCT`)\r\n */\r\n this.distinct = false;\r\n this._isDefaultValue = false;\r\n this.getText = function () { return _this.text || _this._value; };\r\n this.args = new Array();\r\n }\r\n Expression.prototype.getParent = function () {\r\n return this.parent;\r\n };\r\n Expression.prototype.getModel = function () {\r\n return this.parent.getQuery().getModel();\r\n };\r\n /**\r\n * Loads expression from its JSON representation object.\r\n * @param model The Data Model.\r\n * @param data The JSON representation object.\r\n */\r\n Expression.prototype.loadFromData = function (model, data) {\r\n if (data) {\r\n this.tag = data.tag;\r\n if (data.val) {\r\n this._value = data.val;\r\n this.text = data.txt;\r\n }\r\n else if (data.id) {\r\n this.kind = __WEBPACK_IMPORTED_MODULE_2__types_data_kind__[\"a\" /* DataKind */].Attribute;\r\n this._value = data.id;\r\n this.text = data.txt;\r\n }\r\n if (typeof data.dtype !== 'undefined') {\r\n this.dataType = data.dtype;\r\n }\r\n if (this.tag == __WEBPACK_IMPORTED_MODULE_3__types_expr_tag__[\"a\" /* ExprTag */].EntityAttribute\r\n || this.tag == __WEBPACK_IMPORTED_MODULE_3__types_expr_tag__[\"a\" /* ExprTag */].ParentEntityAttribute) {\r\n this.kind = __WEBPACK_IMPORTED_MODULE_2__types_data_kind__[\"a\" /* DataKind */].Attribute;\r\n //Do not load other info for EntityAttr\r\n return;\r\n }\r\n if (typeof data.kind !== 'undefined') {\r\n this.kind = data.kind;\r\n }\r\n if (data.query) {\r\n this.subQuery = new __WEBPACK_IMPORTED_MODULE_4__query__[\"a\" /* Query */](model);\r\n this.subQuery.loadFromDataOrJson(data.query);\r\n }\r\n if (typeof data.distinct !== 'undefined') {\r\n this.distinct = data.distinct;\r\n }\r\n if (data.func) {\r\n this.func = data.func;\r\n if (data.args) {\r\n for (var i = 0; i < data.args.length; i++) {\r\n var arg = new Expression(this.parent);\r\n arg.loadFromData(model, data.args[i]);\r\n this.args.push(arg);\r\n }\r\n }\r\n }\r\n if (data.sql) {\r\n this.sql = data.sql;\r\n this.baseAttrId = data.baseAttrId;\r\n }\r\n }\r\n };\r\n /**\r\n * Saves expression from JSON representation object.\r\n * @returns The JSON representation object.\r\n */\r\n Expression.prototype.saveToData = function () {\r\n var obj = {\r\n tag: this.tag\r\n };\r\n if (typeof this.dataType !== \"undefined\") {\r\n obj.dtype = this.dataType;\r\n }\r\n //Do not save other info for EntityAttr\r\n if (this.tag == __WEBPACK_IMPORTED_MODULE_3__types_expr_tag__[\"a\" /* ExprTag */].EntityAttribute) {\r\n if (this._value) {\r\n obj.id = this._value;\r\n obj.val = this._value;\r\n }\r\n if (this.text) {\r\n obj.txt = this.text;\r\n }\r\n return obj;\r\n }\r\n if (this.subQuery) {\r\n obj.query = this.subQuery.toJSONData();\r\n }\r\n if (typeof this.kind !== \"undefined\") {\r\n obj.kind = this.kind;\r\n }\r\n if (this._value) {\r\n obj.val = this._value;\r\n }\r\n if (this.text) {\r\n obj.txt = this.text;\r\n }\r\n if (this.distinct) {\r\n obj.distinct = this.distinct;\r\n }\r\n if (this.func) {\r\n obj.func = this.func;\r\n obj.args = [];\r\n for (var i = 0; i < this.args.length; i++) {\r\n obj.args.push(this.args[i].saveToData());\r\n }\r\n }\r\n if (this.sql) {\r\n obj.sql = this.sql;\r\n obj.baseAttrId = this.baseAttrId;\r\n }\r\n return obj;\r\n };\r\n Expression.prototype.getIndex = function () {\r\n return this.parent.getExpressionIndex(this);\r\n };\r\n Object.defineProperty(Expression.prototype, \"value\", {\r\n get: function () {\r\n return this._value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Expression.prototype.setValue = function (val, silent) {\r\n if (silent === void 0) { silent = false; }\r\n this.setContent(val, undefined, silent);\r\n };\r\n Expression.prototype.setContent = function (val, txt, silent) {\r\n if (silent === void 0) { silent = false; }\r\n var oldValue = this.value;\r\n if (this.kind == __WEBPACK_IMPORTED_MODULE_2__types_data_kind__[\"a\" /* DataKind */].Attribute && val) {\r\n var attr = this.getModel().getAttributeById(val);\r\n if (!attr) {\r\n throw \"No such entity attribute:\" + val;\r\n }\r\n this.dataType = attr.dataType;\r\n }\r\n this._value = val;\r\n if (typeof txt !== 'undefined') {\r\n this.text = txt;\r\n }\r\n else if (typeof this.text !== 'undefined') {\r\n this.text = val;\r\n }\r\n this._isDefaultValue = false;\r\n if (!silent) {\r\n this.parent.expressionChanged(this, oldValue);\r\n }\r\n };\r\n Expression.prototype.isEmpty = function () {\r\n return !(this.text || this._value);\r\n };\r\n Expression.prototype.hasText = function () {\r\n return this.text && this.text.length > 0;\r\n };\r\n Expression.prototype.tryCopyValueFrom = function (expr) {\r\n if (this.kind == expr.kind) {\r\n if (this.dataType == expr.dataType) {\r\n this.setContent(expr.value.length ? expr.value : this._value, (expr.text && expr.text.length) ? expr.text : this.text, true);\r\n }\r\n else {\r\n var val = __WEBPACK_IMPORTED_MODULE_1__utils_utils__[\"a\" /* equtils */].convertValue(expr.value, expr.dataType, this.dataType);\r\n this.setContent(val.length ? val : this._value, (expr.text && expr.text.length) ? expr.text : this.text, true);\r\n }\r\n this.subQuery = expr.subQuery;\r\n this.sql = expr.sql;\r\n this.baseAttrId = expr.baseAttrId;\r\n }\r\n else if (!this._isDefaultValue) {\r\n this.setContent('', '', true);\r\n this.subQuery = null;\r\n this.sql = null;\r\n this.baseAttrId = null;\r\n }\r\n };\r\n return Expression;\r\n}());\r\n\r\n//# sourceMappingURL=expression.js.map\n\n/***/ }),\n/* 43 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return SimpleColumnRendererCP; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__easyquery_core__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__easydata_ui__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__column_renderer__ = __webpack_require__(164);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_browser_utils__ = __webpack_require__(9);\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\n\r\n\r\n\r\n\r\nvar SimpleColumnRendererCP = /** @class */ (function (_super) {\r\n __extends(SimpleColumnRendererCP, _super);\r\n function SimpleColumnRendererCP() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SimpleColumnRendererCP.prototype.getClassesToAdd = function () {\r\n return _super.prototype.getClassesToAdd.call(this) + \" \" + this.cssPrefix + \"-row \" + this.cssPrefix + \"-row-column-entattr\";\r\n };\r\n SimpleColumnRendererCP.prototype.renderExpressionBlock = function () {\r\n var _this = this;\r\n return Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(\"div\")\r\n .addClass(this.cssPrefix + \"-expr-block\")\r\n .addClass(__WEBPACK_IMPORTED_MODULE_4__utils_browser_utils__[\"a\" /* browserUtils */].getMobileCssClass())\r\n .addChild('div', function (builder) { return builder\r\n .addClass(_this.cssPrefix + \"-colelement\", _this.cssPrefix + \"-attrelement\")\r\n .addClass(__WEBPACK_IMPORTED_MODULE_4__utils_browser_utils__[\"a\" /* browserUtils */].getMobileCssClass())\r\n .addChildElement(_this.renderBaseExpression()); })\r\n .toDOM();\r\n };\r\n SimpleColumnRendererCP.prototype.renderBaseExpression = function () {\r\n var _this = this;\r\n var attrCaption = this.getAttributeCaption(this.baseAttr);\r\n if (this.isEditable()) {\r\n return Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('a')\r\n .attr('href', 'javascript:void(0)')\r\n .title(attrCaption)\r\n .text(attrCaption) //TO DO:add localization\r\n .on('click', function (ev) {\r\n ev.stopPropagation();\r\n //ev.preventDefault();\r\n _this.panel.showEntitiesMenu({\r\n anchor: ev.target,\r\n selectedIds: null,\r\n itemSelectedCallback: _this.baseExpressionItemSelectedCallback.bind(_this)\r\n });\r\n return false;\r\n })\r\n .toDOM();\r\n }\r\n return Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('span')\r\n .text(attrCaption)\r\n .title(attrCaption)\r\n .toDOM();\r\n };\r\n SimpleColumnRendererCP.prototype.baseExpressionItemSelectedCallback = function (data, item) {\r\n var attrid = data.id;\r\n //this.column.expr.id = attrid;\r\n this.column.expr.setValue(attrid, true);\r\n this.column.caption = '';\r\n this.fireColumnChanged();\r\n return false;\r\n };\r\n SimpleColumnRendererCP.prototype.getUIS = function () {\r\n var arg = this.column.expr.args[0];\r\n if (arg) {\r\n var model = this.panel.getContext().getModel();\r\n return model.checkAttrProperty(arg.value, \"useInSorting\");\r\n }\r\n else {\r\n return true;\r\n }\r\n };\r\n SimpleColumnRendererCP.prototype.changeTypeHandler = function (ev) {\r\n var _this = this;\r\n this.keepShowingButtons = true;\r\n this.functionMenu.showMenu({\r\n anchor: ev.target,\r\n selectedIds: null,\r\n itemSelectedCallback: function (data, items) {\r\n _this.processExtraButtonMenuItems(data.id, null);\r\n return false;\r\n },\r\n menuClosedCallback: function () {\r\n _this.keepShowingButtons = false;\r\n if (!_this.isMouseOverBlock) {\r\n _this.element.dispatchEvent(Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"h\" /* createBrowserEvent */])('mouseleave'));\r\n }\r\n }\r\n });\r\n };\r\n SimpleColumnRendererCP.prototype.changeTypeToCustomSql = function () {\r\n var _this = this;\r\n var query = this.column.getQuery();\r\n query.changeColumnType(this.column, __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"k\" /* ExprTag */].CustomSql);\r\n var parentElement = this.element.parentElement;\r\n setTimeout(function () {\r\n //focus CustomSQL Edit\r\n var newElement = parentElement.querySelector(\"div[data-id='\" + _this.column.id + \"'] div[class*='\" + _this.cssPrefix + \"-expr-block'] div[class*='\" + _this.cssPrefix + \"-colelement'] a\");\r\n if (newElement)\r\n newElement.click();\r\n }, 500);\r\n this.fireColumnChanged();\r\n };\r\n SimpleColumnRendererCP.prototype.changeTypeToAggr = function (funcId) {\r\n var query = this.column.getQuery();\r\n query.changeColumnType(this.column, __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"k\" /* ExprTag */].AggregateFunction, { funcId: funcId });\r\n this.fireColumnChanged();\r\n };\r\n SimpleColumnRendererCP.prototype.processExtraButtonMenuItems = function (action, evt) {\r\n if (action === \"CUSTOMSQL\") {\r\n this.changeTypeToCustomSql();\r\n }\r\n else {\r\n this.changeTypeToAggr(action);\r\n }\r\n return true;\r\n };\r\n SimpleColumnRendererCP.prototype.getExtraButtonMenuItems = function () {\r\n var items = [];\r\n var funcs = this.panel.getContext().getModel().getAggrFunctions();\r\n var toInclude = true;\r\n var funcAllowed = true;\r\n var item = null;\r\n var attribute = this.getAttribute();\r\n var funcCaption;\r\n for (var _i = 0, funcs_1 = funcs; _i < funcs_1.length; _i++) {\r\n var func = funcs_1[_i];\r\n toInclude = func.getAppliedTypesOrDefault().indexOf(attribute.dataType) >= 0;\r\n if (this.column.expr.func === func.id && !toInclude) {\r\n funcAllowed = false;\r\n }\r\n if (toInclude) {\r\n funcCaption = this.panel.getContext().getModel().getAggrFunctionCaption(func.id);\r\n item = {\r\n id: func.id,\r\n text: funcCaption\r\n };\r\n items.push(item);\r\n }\r\n }\r\n for (var idx = 0; idx < funcs.length; idx++) {\r\n if (!funcs[idx])\r\n continue;\r\n }\r\n if (!funcAllowed) {\r\n this.column.expr.func = items[0].id;\r\n }\r\n //Add \"Custom Expression\" menu\r\n var columnsPanel = this.panel;\r\n if (columnsPanel.areCustomExpressionsAllowed()) {\r\n item = {\r\n id: 'CustomSqlDivider',\r\n text: '---'\r\n };\r\n items.push(item);\r\n funcCaption = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('CustomExpression');\r\n item = {\r\n id: 'CUSTOMSQL',\r\n text: funcCaption\r\n };\r\n items.push(item);\r\n }\r\n return [{\r\n id: '__group',\r\n text: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('ColTypeGroup'),\r\n items: items\r\n }];\r\n };\r\n return SimpleColumnRendererCP;\r\n}(__WEBPACK_IMPORTED_MODULE_3__column_renderer__[\"a\" /* ColumnRendererCP */]));\r\n\r\n//# sourceMappingURL=simple_column_renderer.js.map\n\n/***/ }),\n/* 44 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return ListExpressionRenderer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return CustomListExpressionRenderer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return SqlListExpressionRenderer; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__easyquery_core__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__easydata_ui__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__expression_renderer__ = __webpack_require__(33);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_popup_menu__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__types_qp_editable_part__ = __webpack_require__(17);\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar ListExpressionRenderer = /** @class */ (function (_super) {\r\n __extends(ListExpressionRenderer, _super);\r\n function ListExpressionRenderer() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.menuItemsList = [];\r\n _this.showWhenReady = false;\r\n return _this;\r\n }\r\n ListExpressionRenderer.prototype.isEditable = function () {\r\n return !this.isReadOnly()\r\n && ((this.panel.options.editableParts & __WEBPACK_IMPORTED_MODULE_5__types_qp_editable_part__[\"a\" /* QPEditablePart */].Value) === __WEBPACK_IMPORTED_MODULE_5__types_qp_editable_part__[\"a\" /* QPEditablePart */].Value);\r\n };\r\n ListExpressionRenderer.prototype.setValue = function (value, silent) {\r\n if (silent === void 0) { silent = false; }\r\n var newValue = this.adjustNewValue(value);\r\n if (value !== this.expression.value) {\r\n var text = this.getValueText(value);\r\n this.expression.setContent(newValue, text);\r\n if (!silent) {\r\n this.expression.getParent().fireChangedEvent(__WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"c\" /* ConditionPart */].Value);\r\n }\r\n }\r\n return true;\r\n };\r\n ListExpressionRenderer.prototype.getValueText = function (value) {\r\n var result = \"\";\r\n if (Array.isArray(value)) {\r\n for (var _i = 0, _a = this.menuItemsList; _i < _a.length; _i++) {\r\n var item = _a[_i];\r\n if (value.indexOf(item.id) >= 0) {\r\n result += item.text + ',';\r\n }\r\n }\r\n }\r\n else {\r\n for (var _b = 0, _c = this.menuItemsList; _b < _c.length; _b++) {\r\n var item = _c[_b];\r\n if (item.id === value) {\r\n result += item.text + ',';\r\n }\r\n }\r\n }\r\n if (result) {\r\n result = result.substring(0, result.length - 1);\r\n }\r\n return result;\r\n };\r\n ListExpressionRenderer.prototype.getEmptyText = function () {\r\n return this.panel.options.emptyTextList || __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('MsgEmptyListValue');\r\n };\r\n ListExpressionRenderer.prototype.getListName = function () {\r\n return this.valueEditor.name;\r\n };\r\n ListExpressionRenderer.prototype.renderEditor = function () {\r\n var _this = this;\r\n this.fillMenuItemsList(function () {\r\n _this.renderMenuBlock();\r\n });\r\n };\r\n ListExpressionRenderer.prototype.getLabelText = function () {\r\n if (!this.expression.isEmpty()) {\r\n return this.expression.getText();\r\n }\r\n else {\r\n return this.getEmptyText();\r\n }\r\n };\r\n ListExpressionRenderer.prototype.showLoader = function () {\r\n //NOTHING TO DO\r\n };\r\n ListExpressionRenderer.prototype.hideLoader = function () {\r\n //NOTHING TO DO\r\n };\r\n ListExpressionRenderer.prototype.showEditor = function () {\r\n var _this = this;\r\n if (this.menu) {\r\n this.menu.showMenu({\r\n anchor: this.labelElement,\r\n selectedIds: this.getValuesAsArray(),\r\n itemSelectedCallback: function (item, selectedItems) {\r\n if (!_this.menu.options.multiselect) {\r\n _this.setValue(item.id);\r\n }\r\n else if (selectedItems) {\r\n var selectedIds = [];\r\n var selLength = selectedItems.length;\r\n for (var i = 0; i < selLength; i++)\r\n selectedIds.push(selectedItems[i].id);\r\n _this.setValue(selectedIds);\r\n }\r\n return false;\r\n }\r\n });\r\n }\r\n else {\r\n this.showWhenReady = true;\r\n this.showLoader();\r\n }\r\n };\r\n ListExpressionRenderer.prototype.closeEditor = function () {\r\n this.menu.hideMenu();\r\n };\r\n ListExpressionRenderer.prototype.renderMenuBlock = function () {\r\n var multiSelect = false;\r\n if (this.expression) {\r\n multiSelect = this.expression.kind === __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"d\" /* DataKind */].List;\r\n }\r\n var queryPanel = this.panel;\r\n var options = {\r\n items: this.menuItemsList,\r\n multiselect: multiSelect,\r\n container: queryPanel ? queryPanel.options.menuContainer : null,\r\n showSelected: true\r\n };\r\n if (queryPanel) {\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].assignDeep(options, queryPanel.options.menuOptions);\r\n }\r\n ;\r\n var menuId = this.element.id;\r\n if (menuId) {\r\n options.id = menuId + '-EditorMenu';\r\n }\r\n if (queryPanel) {\r\n options.domWriteItemsId = queryPanel.options.domWriteItemsId;\r\n }\r\n ;\r\n options.buttons = {\r\n submit: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('ButtonApply'),\r\n cancel: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('ButtonCancel')\r\n };\r\n this.menu = new __WEBPACK_IMPORTED_MODULE_4__utils_popup_menu__[\"a\" /* PopupMenu */](options);\r\n };\r\n ListExpressionRenderer.prototype.getValuesAsArray = function () {\r\n if (this.expression.kind !== __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"d\" /* DataKind */].List) {\r\n return [this.expression.value];\r\n }\r\n else {\r\n //splits value by ',' \r\n var res = this.expression.value.match(/\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"|[^,]+/g);\r\n return res\r\n ? res.map(function (a) {\r\n if (a.charAt(0) == '\"' && a.charAt(a.length - 1) == '\"') {\r\n a = a.substring(1, a.length - 1);\r\n return a.replace(/\\\"/g, '\"');\r\n }\r\n else {\r\n return a;\r\n }\r\n })\r\n : [];\r\n }\r\n };\r\n ListExpressionRenderer.prototype.adjustNewValue = function (newValue) {\r\n if (Array.isArray(newValue)) {\r\n return newValue.map(function (a) {\r\n if (a.indexOf(',') >= 0) {\r\n a = a.replace(/\"/g, '\\\"');\r\n return '\"' + a + '\"';\r\n }\r\n else {\r\n return a;\r\n }\r\n }).join(',');\r\n }\r\n else {\r\n return newValue;\r\n }\r\n };\r\n ListExpressionRenderer.prototype.fillMenuItemsList = function (onComplete) {\r\n this.menuItemsList = this.valueEditor.values;\r\n if (onComplete) {\r\n onComplete();\r\n }\r\n };\r\n ListExpressionRenderer.prototype.takeDefaultValue = function () {\r\n if (!this.menuItemsList)\r\n return;\r\n var itemLen = this.menuItemsList.length;\r\n for (var i = 0; i < itemLen; i++) {\r\n var item = this.menuItemsList[i];\r\n if (item.isDefault) {\r\n this.setValue(item.id, true);\r\n break;\r\n }\r\n }\r\n };\r\n return ListExpressionRenderer;\r\n}(__WEBPACK_IMPORTED_MODULE_3__expression_renderer__[\"a\" /* ExpressionRenderer */]));\r\n\r\nvar CustomListExpressionRenderer = /** @class */ (function (_super) {\r\n __extends(CustomListExpressionRenderer, _super);\r\n function CustomListExpressionRenderer() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.isLoading = false;\r\n _this.onClickTemp = null;\r\n return _this;\r\n }\r\n CustomListExpressionRenderer.prototype.renderEditor = function () {\r\n var _this = this;\r\n if (this.isLoading)\r\n return;\r\n this.isLoading = true;\r\n this.fillMenuItemsList(function () {\r\n _this.isLoading = false;\r\n if (_this.isEmptyValue()) {\r\n _this.takeDefaultValue();\r\n }\r\n if (!_this.expression.isEmpty() && _this.expression._isDefaultValue) {\r\n var text = _this.getValueText(_this.expression.value);\r\n _this.expression.setContent(_this.expression.value, text);\r\n _this.expression.getParent().fireChangedEvent();\r\n }\r\n _this.renderMenuBlock();\r\n if (_this.showWhenReady) {\r\n _this.showWhenReady = false;\r\n _this.hideLoader();\r\n _this.showEditor();\r\n }\r\n });\r\n };\r\n CustomListExpressionRenderer.prototype.showLoader = function () {\r\n this.labelElement.style.display = 'none';\r\n if (!this.loaderElement) {\r\n this.loaderElement = Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div', this.element)\r\n .addClass(this.cssPrefix + \"-ve-loader\")\r\n .toDOM();\r\n }\r\n this.loaderElement.style.display = 'block';\r\n };\r\n CustomListExpressionRenderer.prototype.hideLoader = function () {\r\n this.loaderElement.style.display = 'none';\r\n this.labelElement.removeAttribute('style');\r\n };\r\n CustomListExpressionRenderer.prototype.fillMenuItemsList = function (onComplete) {\r\n var _this = this;\r\n var listName = this.getListName();\r\n var listRequestHandler = this.panel.getContext().getListRequestHandler();\r\n if (__WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"v\" /* eqconsts */].constLists[listName]) {\r\n this.menuItemsList = __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"v\" /* eqconsts */].constLists[listName];\r\n if (onComplete) {\r\n onComplete();\r\n }\r\n }\r\n else if (listRequestHandler) {\r\n listRequestHandler({\r\n listName: listName,\r\n editorId: this.valueEditor.id,\r\n editorParams: this.valueEditor.extraParams,\r\n value: this.getValue()\r\n }, function (list) {\r\n _this.menuItemsList = list;\r\n if (onComplete) {\r\n onComplete();\r\n }\r\n });\r\n }\r\n };\r\n return CustomListExpressionRenderer;\r\n}(ListExpressionRenderer));\r\n\r\nvar SqlListExpressionRenderer = /** @class */ (function (_super) {\r\n __extends(SqlListExpressionRenderer, _super);\r\n function SqlListExpressionRenderer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SqlListExpressionRenderer.prototype.fillMenuItemsList = function (onComplete) {\r\n var _this = this;\r\n var context = this.panel.getContext();\r\n var editor = this.valueEditor;\r\n var listRequestHandler = context.getListRequestHandler();\r\n if (listRequestHandler) {\r\n var requestData = {\r\n listName: \"SQL\",\r\n editorId: this.valueEditor.id,\r\n editorParams: this.valueEditor.extraParams,\r\n value: this.getValue()\r\n };\r\n //requestData.sql = editor.sql;\r\n listRequestHandler(requestData, function (list) {\r\n _this.menuItemsList = list;\r\n if (onComplete) {\r\n onComplete();\r\n }\r\n });\r\n }\r\n };\r\n return SqlListExpressionRenderer;\r\n}(CustomListExpressionRenderer));\r\n\r\n//# sourceMappingURL=list_expression_renderer.js.map\n\n/***/ }),\n/* 45 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ResultFacet; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__easydata_ui__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_browser_utils__ = __webpack_require__(9);\n\r\n\r\n\r\nvar ResultFacet = /** @class */ (function () {\r\n function ResultFacet(container, options) {\r\n var _this = this;\r\n this.container = container;\r\n this.title = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('Facets', 'DefaultFacetTitle');\r\n this.cssPrefix = 'eqjs-facet';\r\n this.dialogTitle = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('Facets', 'DefaultDlgTitle');\r\n this.options = {};\r\n this.canDisplayFlag = true;\r\n this.downloadAllClickHandler = function () {\r\n var chunksToLoad = _this.getChunksForLoading();\r\n var resultTable = _this.getContext().resultTable;\r\n var recordsToLoad = resultTable.getTotal() - resultTable.getCachedCount();\r\n var ds = _this.getDialogService();\r\n var dlg = ds.openProgress({\r\n title: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('Facets', 'LoadDataDlgTitle'),\r\n content: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('Facets', 'LoadDataDlgContent')\r\n .replace('{loadedRecs}', '0')\r\n .replace('{totalRecs}', \"\" + recordsToLoad),\r\n onSubmit: function () { return _this.refresh(); },\r\n determinated: true\r\n });\r\n var loadedRecords = 0;\r\n var _loop_1 = function (chunk) {\r\n setTimeout(function () {\r\n resultTable.getRows({ offset: chunk.offset, limit: resultTable.chunkSize })\r\n .then(function (_) {\r\n loadedRecords += _.length;\r\n var progress = loadedRecords / recordsToLoad;\r\n dlg.updateContent(__WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('Facets', 'LoadDataDlgContent')\r\n .replace('{loadedRecs}', \"\" + loadedRecords)\r\n .replace('{totalRecs}', \"\" + recordsToLoad));\r\n dlg.updateProgress(progress);\r\n })\r\n .catch(function (error) {\r\n dlg.submit();\r\n _this.getContext().throwError(error);\r\n });\r\n }, 10);\r\n };\r\n for (var _i = 0, chunksToLoad_1 = chunksToLoad; _i < chunksToLoad_1.length; _i++) {\r\n var chunk = chunksToLoad_1[_i];\r\n _loop_1(chunk);\r\n }\r\n };\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].assignDeep(this.options, options);\r\n }\r\n ResultFacet.prototype.init = function (slot) {\r\n this.slot = slot;\r\n this.contentDiv = Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"i\" /* domel */])('div', this.slot)\r\n .addClass(this.cssPrefix + \"-content\")\r\n .toDOM();\r\n this.displayMessageDiv = Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"i\" /* domel */])('div', this.slot).hide().toDOM();\r\n };\r\n ResultFacet.prototype.showSettingsDialog = function () {\r\n var _this = this;\r\n return new Promise(function (resolve) {\r\n var ds = _this.getDialogService();\r\n var content = _this.renderDialogContent();\r\n ds.open({\r\n title: _this.dialogTitle,\r\n body: content,\r\n cancelable: true,\r\n closable: false,\r\n onSubmit: function () {\r\n var submited = _this.submitSettingsDialog();\r\n if (submited) {\r\n resolve(true);\r\n }\r\n return submited;\r\n },\r\n onCancel: function () {\r\n resolve(false);\r\n }\r\n });\r\n });\r\n };\r\n ResultFacet.prototype.renderDialogContent = function () {\r\n var fieldsContainer;\r\n var b = Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"i\" /* domel */])('div')\r\n .addClass('kfrm-form')\r\n .addChild('div', function (b) { return fieldsContainer = b\r\n .addClass(\"\" + (__WEBPACK_IMPORTED_MODULE_2__utils_browser_utils__[\"a\" /* browserUtils */].IsIE()\r\n ? 'kfrm-fields-ie col-ie-1-4 label-align-right'\r\n : 'kfrm-fields col-a-1 label-align-right'))\r\n .toDOM(); });\r\n this.renderFormFields(b.toDOM(), fieldsContainer);\r\n return b.toDOM();\r\n };\r\n ResultFacet.prototype.renderFormFields = function (form, fieldsContainer) {\r\n var _this = this;\r\n var cont = fieldsContainer;\r\n if (__WEBPACK_IMPORTED_MODULE_2__utils_browser_utils__[\"a\" /* browserUtils */].IsIE()) {\r\n cont = Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"i\" /* domel */])('div', fieldsContainer)\r\n .addClass('kfrm-field-ie')\r\n .toDOM();\r\n }\r\n Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"i\" /* domel */])(cont)\r\n .addChild('label', function (b) { return b\r\n .attr('for', 'tab_name')\r\n .addText(__WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('Facets', 'TabNameLabel')); })\r\n .addChild('input', function (b) { return b\r\n .id('facetTabName')\r\n .name('tab_name')\r\n .type('text')\r\n .attr('value', _this.title); });\r\n };\r\n ResultFacet.prototype.submitSettingsDialog = function () {\r\n var tabNameInput = document.querySelector('#facetTabName');\r\n if (tabNameInput.value.length == 0)\r\n return false;\r\n this.title = tabNameInput.value;\r\n return true;\r\n };\r\n ResultFacet.prototype.getDialogService = function () {\r\n return this.getContext()\r\n .getServices()\r\n .getDialogService();\r\n };\r\n ResultFacet.prototype.canDisplay = function () {\r\n var context = this.getContext();\r\n var resultTable = context.resultTable;\r\n return (resultTable.getCachedCount() == resultTable.getTotal());\r\n };\r\n ResultFacet.prototype.showUnableDisplayMessage = function (message) {\r\n var context = this.getContext();\r\n var resultTable = context.resultTable;\r\n this.displayMessageDiv.innerHTML = message || __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('Facets', 'ErrNotEnoughData')\r\n .replace('{totalRecs}', \"\" + resultTable.getTotal())\r\n .replace('{cachedRecs}', \"\" + resultTable.getCachedCount())\r\n .replace(/\\[(.*)\\]/g, \"$1\");\r\n var link = this.displayMessageDiv.querySelector(\"a.\" + this.cssPrefix + \"-download-all-link\");\r\n if (link) {\r\n link.addEventListener('click', this.downloadAllClickHandler);\r\n }\r\n Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"i\" /* domel */])(this.contentDiv).hide();\r\n Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"i\" /* domel */])(this.displayMessageDiv).show();\r\n };\r\n ResultFacet.prototype.hideUnableDisplayMessage = function () {\r\n Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"i\" /* domel */])(this.displayMessageDiv).hide();\r\n Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"i\" /* domel */])(this.contentDiv).show();\r\n };\r\n ResultFacet.prototype.getContext = function () {\r\n return this.container.getContext();\r\n };\r\n ResultFacet.prototype.getQuery = function () {\r\n return this.getContext().getQuery();\r\n };\r\n ResultFacet.prototype.saveToData = function () {\r\n return { title: this.title, type: this.getType() };\r\n };\r\n ResultFacet.prototype.loadFromData = function (data) {\r\n if (data) {\r\n this.title = data.title;\r\n }\r\n };\r\n ResultFacet.prototype.refresh = function () {\r\n this.hideUnableDisplayMessage();\r\n if (this.canDisplay()) {\r\n this.refreshCore();\r\n }\r\n else {\r\n this.showUnableDisplayMessage();\r\n }\r\n };\r\n ResultFacet.prototype.getChunksForLoading = function () {\r\n var resultTable = this.getContext().resultTable;\r\n var chunkSize = resultTable.chunkSize;\r\n var cachedChunks = resultTable.getCachedChunks();\r\n var chunksToLoad = [];\r\n if (cachedChunks[0].offset != 0) {\r\n chunksToLoad.push({ offset: 0 });\r\n }\r\n for (var i = 1; i < cachedChunks.length; i++) {\r\n var diffOffset = cachedChunks[i].offset - cachedChunks[i - 1].offset - chunkSize;\r\n if (diffOffset >= chunkSize) {\r\n var numbOfChunks = diffOffset / chunkSize;\r\n for (var j = 1; j <= numbOfChunks; j++) {\r\n chunksToLoad.push({ offset: cachedChunks[i - 1].offset + j * chunkSize });\r\n }\r\n }\r\n }\r\n var lastChunk = cachedChunks[cachedChunks.length - 1];\r\n var diff = resultTable.getTotal() - lastChunk.offset;\r\n if (diff >= chunkSize) {\r\n var numbOfChunks = diff / chunkSize;\r\n for (var j = 1; j <= numbOfChunks; j++) {\r\n chunksToLoad.push({ offset: lastChunk.offset + j * chunkSize });\r\n }\r\n }\r\n return chunksToLoad;\r\n };\r\n ResultFacet.prototype.onResize = function () {\r\n };\r\n return ResultFacet;\r\n}());\r\n\r\n//# sourceMappingURL=result_facet.js.map\n\n/***/ }),\n/* 46 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ChartType; });\n/** Represents chart types. */\r\nvar ChartType;\r\n(function (ChartType) {\r\n ChartType[ChartType[\"Column\"] = 3] = \"Column\";\r\n ChartType[ChartType[\"Histogram\"] = 4] = \"Histogram\";\r\n ChartType[ChartType[\"Bar\"] = 5] = \"Bar\";\r\n ChartType[ChartType[\"Combo\"] = 6] = \"Combo\";\r\n ChartType[ChartType[\"Area\"] = 7] = \"Area\";\r\n ChartType[ChartType[\"Line\"] = 9] = \"Line\";\r\n ChartType[ChartType[\"Pie\"] = 10] = \"Pie\";\r\n ChartType[ChartType[\"Donut\"] = 12] = \"Donut\";\r\n ChartType[ChartType[\"Gauge\"] = 17] = \"Gauge\";\r\n ChartType[ChartType[\"Candlestick\"] = 18] = \"Candlestick\";\r\n})(ChartType || (ChartType = {}));\r\n//# sourceMappingURL=chart_type.js.map\n\n/***/ }),\n/* 47 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return View; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__easyquery_core__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__easydata_ui__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__widgets_easy_grid_widget__ = __webpack_require__(73);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__widgets_charts_chart_widget_chartjs__ = __webpack_require__(75);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__widgets_entities_panel__ = __webpack_require__(121);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__widgets_columns_panel__ = __webpack_require__(162);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__widgets_columns_bar__ = __webpack_require__(68);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__widgets_locale_widget__ = __webpack_require__(385);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__widgets_query_panel__ = __webpack_require__(32);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__widgets_process_widget__ = __webpack_require__(183);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__widgets_filter_bar__ = __webpack_require__(178);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__widgets_sorting_bar__ = __webpack_require__(168);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__widgets_queryname_widget__ = __webpack_require__(386);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__widgets_statement_panel__ = __webpack_require__(182);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__widgets_result_facets_panel__ = __webpack_require__(184);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__utils_utils__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__utils_browser_utils__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__widgets_export_widget__ = __webpack_require__(190);\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar View = /** @class */ (function () {\r\n function View() {\r\n this.domRoots = [document];\r\n this.defaultViewOptions = {\r\n enableExport: true,\r\n disableConfirmationOnQueryChange: false,\r\n queryFileExtensions: 'text/xml,application/json',\r\n result: {\r\n clearResultOnQueryChange: true,\r\n showChart: true,\r\n showProcessIndicator: true\r\n },\r\n widgets: {\r\n resultGrid: {\r\n addColumns: false\r\n }\r\n }\r\n };\r\n this.resultOptions = {};\r\n this.enableExport = false;\r\n this.resetContext();\r\n this.renderSpinner();\r\n this.defaultErrorHandler = function (context, error) {\r\n console.error(error.action + \": \" + error.text);\r\n if (error.sourceError) {\r\n console.error(error.sourceError);\r\n }\r\n };\r\n }\r\n View.prototype.resetContext = function () {\r\n this.context = new __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"f\" /* EqContext */]();\r\n this.context\r\n .getServices()\r\n .registerDialogServiceResolver(function () { return new __WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"b\" /* DefaultDialogService */](); });\r\n };\r\n View.prototype.init = function (options) {\r\n // to support shadow DOM rendering\r\n if (options && options.shadowRoots)\r\n this.domRoots = this.domRoots.concat(options.shadowRoots);\r\n options = this.initOptions(options);\r\n this.initWidgets(options);\r\n this.context.init(options);\r\n this.initDone();\r\n };\r\n View.prototype.initDone = function () { };\r\n View.prototype.initWidgets = function (options) {\r\n var queryPanel = \"QueryPanel\";\r\n var columnsPanel = \"ColumnsPanel\";\r\n var entitiesPanel = \"EntitiesPanel\";\r\n var resultPanel = \"ResultPanel\";\r\n var columnsBar = \"ColumnsBar\";\r\n var sortingBar = \"SortingBar\";\r\n var filterBar = \"FilterBar\";\r\n var processBar = \"ProcessBar\";\r\n var statementPanel = \"StatementPanel\";\r\n var changeLocale = \"ChangeLocale\";\r\n var queryNameLabel = \"QueryNameLabel\";\r\n var facetsPanel = \"ResultFacetsPanel\";\r\n var resultCount = \"ResultCount\";\r\n var exportButton = \"ExportButton\";\r\n if (options.slots) {\r\n queryNameLabel = options.slots.queryNameLabel || queryNameLabel;\r\n queryPanel = options.slots.queryPanel || queryPanel;\r\n columnsPanel = options.slots.columnsPanel || columnsPanel;\r\n columnsBar = options.slots.columnsBar || columnsBar;\r\n entitiesPanel = options.slots.entitiesPanel || entitiesPanel;\r\n resultPanel = options.slots.resultPanel || resultPanel;\r\n statementPanel = options.slots.statementPanel || statementPanel;\r\n processBar = options.slots.processBar || processBar;\r\n changeLocale = options.slots.changeLocale || changeLocale;\r\n facetsPanel = options.slots.facetsPanel || facetsPanel;\r\n resultCount = options.slots.resultCountSpan || resultCount;\r\n filterBar = options.slots.filterBar || filterBar;\r\n exportButton = options.slots.exportButtons || exportButton;\r\n }\r\n var epElement = this.resolveElement(entitiesPanel);\r\n if (epElement && !this.entitiesPanelWidget) {\r\n this.entitiesPanelWidget = this.createEntitiesPanelWidget(epElement);\r\n this.context.addWidget(this.entitiesPanelWidget);\r\n }\r\n var cpElement = this.resolveElement(columnsPanel);\r\n if (cpElement && !this.columnsPanelWidget) {\r\n this.columnsPanelWidget = this.createColumnsPanelWidget(cpElement);\r\n this.context.addWidget(this.columnsPanelWidget);\r\n }\r\n var cbElement = this.resolveElement(columnsBar);\r\n if (cbElement && !this.columnsBarWidget) {\r\n this.columnsBarWidget = this.createColumnsBarWidget(cbElement);\r\n this.context.addWidget(this.columnsBarWidget);\r\n }\r\n var qpElement = this.resolveElement(queryPanel);\r\n if (qpElement && !this.queryPanelWidget) {\r\n this.queryPanelWidget = this.createQueryPanelWidget(qpElement);\r\n this.context.addWidget(this.queryPanelWidget);\r\n }\r\n this.resultPanelSlot = this.resolveElement(resultPanel);\r\n if (this.resultPanelSlot) {\r\n if (!this.resultGridWidget) {\r\n var gridPanel = Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"g\" /* addElement */])(this.resultPanelSlot, 'div', { cssClass: 'eqv-result-grid' });\r\n this.resultGridWidget = this.createResultGridWidget(gridPanel);\r\n this.context.addWidget(this.resultGridWidget);\r\n }\r\n if (this.resultOptions.showChart && !this.chartWidget) {\r\n var chartPanel = Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"g\" /* addElement */])(this.resultPanelSlot, 'div', { cssClass: 'eqv-chart-panel' });\r\n chartPanel.style.display = 'none';\r\n this.chartWidget = this.createChartWidget(chartPanel);\r\n this.context.addWidget(this.chartWidget);\r\n }\r\n }\r\n var qnElement = this.resolveElement(queryNameLabel);\r\n if (qnElement && !this.queryNameWidget) {\r\n this.queryNameWidget = this.createQueryNameWidget(qnElement);\r\n this.context.addWidget(this.queryNameWidget);\r\n }\r\n var fbElement = this.resolveElement(filterBar);\r\n if (fbElement && !this.filterBarWidget) {\r\n this.filterBarWidget = this.createFilterBarWidget(fbElement);\r\n this.context.addWidget(this.filterBarWidget);\r\n }\r\n var sbElement = this.resolveElement(sortingBar);\r\n if (sbElement && !this.sortingBarWidget) {\r\n this.sortingBarWidget = this.createSortingBarWidget(sbElement);\r\n this.context.addWidget(this.sortingBarWidget);\r\n }\r\n var pbElement = this.resolveElement(processBar);\r\n if (pbElement && !this.processWidget) {\r\n this.processWidget = this.createProcessWidget(pbElement);\r\n this.context.addWidget(this.processWidget);\r\n }\r\n var stElement = this.resolveElement(statementPanel);\r\n if (stElement && !this.statementPanelWidget) {\r\n this.statementPanelWidget = this.createStatementPanelWidget(stElement);\r\n this.context.addWidget(this.statementPanelWidget);\r\n }\r\n var clElement = this.resolveElement(changeLocale);\r\n if (clElement) {\r\n var widget = this.createLocaleWidget(clElement);\r\n this.context.addWidget(widget);\r\n }\r\n var fpElement = this.resolveElement(facetsPanel);\r\n if (fpElement && !this.resultFacetPanelWidget) {\r\n this.resultFacetPanelWidget = this.createResultFacetsPanel(fpElement);\r\n this.context.addWidget(this.resultFacetPanelWidget);\r\n }\r\n var ewElement = this.resolveElement(exportButton);\r\n if (ewElement && !this.exportWidget) {\r\n this.exportWidget = this.createExportWidget(ewElement);\r\n this.context.addWidget(this.exportWidget);\r\n }\r\n this.resultCountSlot = this.resolveElement(resultCount);\r\n };\r\n View.prototype.resolveElement = function (elementOrId) {\r\n if (typeof elementOrId === 'string') {\r\n for (var _i = 0, _a = this.domRoots; _i < _a.length; _i++) {\r\n var domRoot = _a[_i];\r\n var el = domRoot.getElementById(elementOrId);\r\n if (el)\r\n return el;\r\n }\r\n return null;\r\n }\r\n return elementOrId;\r\n };\r\n View.prototype.resolveElementsByClassName = function (className) {\r\n var result = [];\r\n for (var _i = 0, _a = this.domRoots; _i < _a.length; _i++) {\r\n var domRoot = _a[_i];\r\n var elemList = domRoot.querySelectorAll('.' + className);\r\n for (var i = 0; i < elemList.length; i++) {\r\n result.push(elemList[i]);\r\n }\r\n }\r\n return result;\r\n };\r\n /**\r\n * Shows records count.\r\n * @param count The value to show.\r\n */\r\n View.prototype.displayRecordsCount = function (count) {\r\n if (this.resultCountSlot && (typeof count !== 'undefined')) {\r\n this.resultCountSlot.style.display = \"inline\";\r\n this.resultCountSlot.innerHTML = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText(\"MsgResultCount\").replace(\"{0}\", count.toString());\r\n }\r\n };\r\n View.prototype.initOptions = function (options) {\r\n if (options) {\r\n options = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].assignDeep({}, this.defaultViewOptions, options);\r\n }\r\n else {\r\n options = this.defaultViewOptions;\r\n }\r\n if (!options.handlers) {\r\n options.handlers = {};\r\n }\r\n if (!options.handlers.onError) {\r\n options.handlers.onError = this.defaultErrorHandler;\r\n }\r\n if (!options.widgets) {\r\n options.widgets = {};\r\n }\r\n this.resultOptions = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].assignDeep(this.resultOptions, options.result);\r\n if (typeof this.resultOptions.showProcessIndicator == 'undefined') {\r\n this.resultOptions.showProcessIndicator = true;\r\n }\r\n else if (options.widgets.facetsPanel) {\r\n options.widgets.facetsPanel.showProcessIndicator\r\n = this.resultOptions.showProcessIndicator;\r\n }\r\n // support old format \r\n if (!options.widgets.easyGrid) {\r\n options.widgets.easyGrid = options.widgets.resultGrid || {};\r\n }\r\n // map columnTitleFormat option to widgets that have similar option\r\n if (options.columnTitleFormat) {\r\n options.widgets.entitiesPanel = options.widgets.entitiesPanel || {};\r\n options.widgets.entitiesPanel.columnTitleFormat = options.widgets.entitiesPanel.columnTitleFormat || options.columnTitleFormat;\r\n options.widgets.columnsBar = options.widgets.columnsBar || {};\r\n options.widgets.columnsBar.titleElementFormat = options.widgets.columnsBar.titleElementFormat || options.columnTitleFormat;\r\n options.widgets.columnsPanel = options.widgets.columnsPanel || {};\r\n options.widgets.columnsPanel.titleElementFormat = options.widgets.columnsPanel.titleElementFormat || options.columnTitleFormat;\r\n }\r\n options.widgets.easyGrid.paging =\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].assignDeep(this.resultOptions.paging, options.widgets.easyGrid.paging);\r\n this.enableExport = options.enableExport || false;\r\n if (!options.widgets.exportWidget) {\r\n options.widgets.exportWidget = {};\r\n }\r\n options.widgets.exportWidget.enableExport = this.enableExport;\r\n return options;\r\n };\r\n View.prototype.getContext = function () {\r\n return this.context;\r\n };\r\n /**\r\n * Sets dialog service for the view\r\n * @param dialogService The dialog service.\r\n */\r\n View.prototype.setDialogService = function (dialogService) {\r\n this.context.getServices()\r\n .registerDialogServiceResolver(function () { return dialogService; });\r\n };\r\n /** @deprecated `executeQuery` is deprecated. Use `fetchData` instead*/\r\n View.prototype.executeQuery = function (options) {\r\n console.warn('`executeQuery` is deprecated. Use `fetchData` instead');\r\n this.fetchData(options);\r\n };\r\n /**\r\n * Fetches the data according to the query and other options defined in the context.\r\n * @param options The options.\r\n */\r\n View.prototype.fetchData = function (options) {\r\n var _this = this;\r\n options = options || { refresh: true };\r\n this.showResultSpinner();\r\n this.context.fetchData({\r\n options: {\r\n page: options.page,\r\n pageSize: options.pageSize\r\n },\r\n success: function (result) {\r\n _this.hideResultSpinner();\r\n _this.toggleExportButtons();\r\n _this.displayRecordsCount(_this.context.resultTable.getTotal());\r\n if (options.refresh === true) {\r\n _this.context.refreshWidgets(__WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"u\" /* WidgetGroup */].Result);\r\n }\r\n if (options.callback) {\r\n options.callback();\r\n }\r\n if (options.success) {\r\n options.success();\r\n }\r\n },\r\n error: function () {\r\n _this.hideResultSpinner();\r\n }\r\n });\r\n };\r\n View.prototype.toggleExportButtons = function () {\r\n if (this.enableExport && this.context.resultTable\r\n && this.context.resultTable.getCachedCount() > 0) {\r\n this.enableExportButtons();\r\n }\r\n else {\r\n this.disableExportButtons();\r\n }\r\n };\r\n View.prototype.enableExportButtons = function () {\r\n // Nothing to do\r\n };\r\n View.prototype.disableExportButtons = function () {\r\n // Nothing to do\r\n };\r\n View.prototype.renderSpinner = function () {\r\n var html = '
';\r\n ;\r\n this._spinnerDiv = Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div')\r\n .addClass(\"eqjs-result-spinner\")\r\n .addChild('div', function (b) { return b\r\n .addClass(__WEBPACK_IMPORTED_MODULE_16__utils_utils__[\"b\" /* eqCssPrefix */] + \"-progress-win8\", __WEBPACK_IMPORTED_MODULE_17__utils_browser_utils__[\"a\" /* browserUtils */].getMobileCssClass())\r\n .addHtml(html); })\r\n .toDOM();\r\n };\r\n View.prototype.showResultSpinner = function () {\r\n if (this.resultOptions.showProcessIndicator && this.resultPanelSlot) {\r\n if (!this._spinnerDiv.parentNode) {\r\n for (var i = 0; i < this.resultPanelSlot.children.length; i++) {\r\n var el = this.resultPanelSlot.children[i];\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(el).hide();\r\n }\r\n this.resultPanelSlot.appendChild(this._spinnerDiv);\r\n }\r\n }\r\n };\r\n View.prototype.hideResultSpinner = function () {\r\n if (this.resultOptions.showProcessIndicator && this.resultPanelSlot) {\r\n if (this._spinnerDiv.parentNode) {\r\n this._spinnerDiv.parentNode.removeChild(this._spinnerDiv);\r\n for (var i = 0; i < this.resultPanelSlot.children.length; i++) {\r\n var el = this.resultPanelSlot.children[i];\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(el).show();\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Creates the widget that represents Chart Widget.\r\n * @param slot The HTMLElement to place the created widget in.\r\n * @returns the created Widget object.\r\n */\r\n View.prototype.createChartWidget = function (slotElement) {\r\n if (this.resultOptions.chartWidgetResolver) {\r\n return this.resultOptions.chartWidgetResolver(slotElement);\r\n }\r\n else {\r\n return new __WEBPACK_IMPORTED_MODULE_4__widgets_charts_chart_widget_chartjs__[\"a\" /* ChartJsWidget */](slotElement);\r\n }\r\n };\r\n /**\r\n * Creates the widget that represents Grid Widget.\r\n * @param slot The HTMLElement to place the created widget in.\r\n * @returns the created Widget object.\r\n */\r\n View.prototype.createResultGridWidget = function (slotElement) {\r\n if (this.resultOptions.resultGridResolver) {\r\n return this.resultOptions.resultGridResolver(slotElement);\r\n }\r\n else {\r\n return new __WEBPACK_IMPORTED_MODULE_3__widgets_easy_grid_widget__[\"a\" /* EasyGridWidget */](slotElement);\r\n }\r\n };\r\n /**\r\n * Creates the widget that represents Entity Panel.\r\n * @param slot The HTMLElement to place the created widget in.\r\n * @returns the created Widget object.\r\n */\r\n View.prototype.createEntitiesPanelWidget = function (slot) {\r\n return new __WEBPACK_IMPORTED_MODULE_5__widgets_entities_panel__[\"a\" /* EntitiesPanel */](slot);\r\n };\r\n /**\r\n * Creates the widget that represents Columns Panel.\r\n * @param slot The HTMLElement to place the created widget in.\r\n * @returns the created Widget object.\r\n */\r\n View.prototype.createColumnsPanelWidget = function (slot) {\r\n return new __WEBPACK_IMPORTED_MODULE_6__widgets_columns_panel__[\"a\" /* ColumnsPanel */](slot);\r\n };\r\n /**\r\n * Creates the widget that represents Query Panel.\r\n * @param slot The HTMLElement to place the created widget in.\r\n * @returns the created Widget object.\r\n */\r\n View.prototype.createQueryPanelWidget = function (slot) {\r\n return new __WEBPACK_IMPORTED_MODULE_9__widgets_query_panel__[\"a\" /* QueryPanel */](slot);\r\n };\r\n /**\r\n * Creates the widget that represents Locale Widget.\r\n * @param slot The HTMLElement to place the created widget in.\r\n * @returns the created Widget object.\r\n */\r\n View.prototype.createLocaleWidget = function (slot) {\r\n return new __WEBPACK_IMPORTED_MODULE_8__widgets_locale_widget__[\"a\" /* LocaleWidget */](slot);\r\n };\r\n /**\r\n * Creates the widget that represents Process Widget.\r\n * @param slot The HTMLElement to place the created widget in.\r\n * @returns the created Widget object.\r\n */\r\n View.prototype.createProcessWidget = function (slot) {\r\n return new __WEBPACK_IMPORTED_MODULE_10__widgets_process_widget__[\"a\" /* ProcessWidget */](slot);\r\n };\r\n /**\r\n * Creates the widget that represents Columns Bar.\r\n * @param slot The HTMLElement to place the created widget in.\r\n * @returns the created Widget object.\r\n */\r\n View.prototype.createColumnsBarWidget = function (slot) {\r\n return new __WEBPACK_IMPORTED_MODULE_7__widgets_columns_bar__[\"a\" /* ColumnsBar */](slot);\r\n };\r\n /**\r\n * Creates the widget that represents Filter Bar.\r\n * @param slot The HTMLElement to place the created widget in.\r\n * @returns the created Widget object.\r\n */\r\n View.prototype.createFilterBarWidget = function (slot) {\r\n return new __WEBPACK_IMPORTED_MODULE_11__widgets_filter_bar__[\"a\" /* FilterBar */](slot);\r\n };\r\n /**\r\n * Creates the widget that represents Sorting Bar.\r\n * @param slot The HTMLElement to place the created widget in.\r\n * @returns the created Widget object.\r\n */\r\n View.prototype.createSortingBarWidget = function (slot) {\r\n return new __WEBPACK_IMPORTED_MODULE_12__widgets_sorting_bar__[\"a\" /* SortingBar */](slot);\r\n };\r\n /**\r\n * Creates the widget that represents Query Name Widget.\r\n * @param slot The HTMLElement to place the created widget in.\r\n * @returns the created Widget object.\r\n */\r\n View.prototype.createQueryNameWidget = function (slot) {\r\n return new __WEBPACK_IMPORTED_MODULE_13__widgets_queryname_widget__[\"a\" /* QueryNameWidget */](slot);\r\n };\r\n /**\r\n * Creates the widget that represents Statement Panel Widget.\r\n * @param slot\r\n */\r\n View.prototype.createStatementPanelWidget = function (slot) {\r\n return new __WEBPACK_IMPORTED_MODULE_14__widgets_statement_panel__[\"a\" /* StatementPanel */](slot);\r\n };\r\n /**\r\n * Creates the widget that represents Result Facets Panel Widget.\r\n * @param slot\r\n */\r\n View.prototype.createResultFacetsPanel = function (slot) {\r\n return new __WEBPACK_IMPORTED_MODULE_15__widgets_result_facets_panel__[\"a\" /* ResultFacetsPanel */](slot);\r\n };\r\n /**\r\n * Creates the widget that represents Export funcionality.\r\n * @param slot\r\n */\r\n View.prototype.createExportWidget = function (slot) {\r\n return new __WEBPACK_IMPORTED_MODULE_18__widgets_export_widget__[\"a\" /* ExportWidget */](slot);\r\n };\r\n View.prototype.detach = function () {\r\n if (this.entitiesPanelWidget) {\r\n this.entitiesPanelWidget.destroy();\r\n this.entitiesPanelWidget = null;\r\n }\r\n if (this.columnsPanelWidget) {\r\n this.columnsPanelWidget.destroy();\r\n this.columnsPanelWidget = null;\r\n }\r\n if (this.queryPanelWidget) {\r\n this.queryPanelWidget.destroy();\r\n this.queryPanelWidget = null;\r\n }\r\n if (this.columnsBarWidget) {\r\n this.columnsBarWidget.destroy();\r\n this.columnsBarWidget = null;\r\n }\r\n if (this.resultGridWidget) {\r\n this.resultGridWidget.destroy();\r\n this.resultGridWidget = null;\r\n }\r\n if (this.chartWidget) {\r\n this.chartWidget.destroy();\r\n this.chartWidget = null;\r\n }\r\n if (this.queryNameWidget) {\r\n this.queryNameWidget.destroy();\r\n this.queryNameWidget = null;\r\n }\r\n if (this.processWidget) {\r\n this.processWidget.destroy();\r\n this.processWidget = null;\r\n }\r\n if (this.localeWidget) {\r\n this.localeWidget.destroy();\r\n this.localeWidget = null;\r\n }\r\n if (this.statementPanelWidget) {\r\n this.statementPanelWidget.destroy();\r\n this.statementPanelWidget = null;\r\n }\r\n if (this.filterBarWidget) {\r\n this.filterBarWidget.destroy();\r\n this.filterBarWidget = null;\r\n }\r\n if (this.sortingBarWidget) {\r\n this.sortingBarWidget.destroy();\r\n this.sortingBarWidget = null;\r\n }\r\n if (this.statementWidget) {\r\n this.statementWidget.destroy();\r\n this.statementWidget = null;\r\n }\r\n if (this.exportWidget) {\r\n this.exportWidget.destroy();\r\n this.exportWidget = null;\r\n }\r\n if (this.resultFacetPanelWidget) {\r\n this.resultFacetPanelWidget.destroy();\r\n this.resultFacetPanelWidget = null;\r\n }\r\n if (this.resultCountSlot) {\r\n this.resultCountSlot.innerHTML = '';\r\n this.resultCountSlot = null;\r\n }\r\n if (this.resultPanelSlot) {\r\n this.resultPanelSlot.innerHTML = '';\r\n this.resultPanelSlot = null;\r\n }\r\n this.domRoots = [document];\r\n this.resetContext();\r\n };\r\n return View;\r\n}());\r\n\r\n//# sourceMappingURL=view.js.map\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\n} catch(e) {\n\t// This works if the window reference is available\n\tif(typeof window === \"object\")\n\t\tg = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_Router__ = __webpack_require__(35);\n// Written in this round about way for babel-transform-imports\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_Router__[\"a\" /* default */]);\n\n/***/ }),\n/* 51 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_invariant__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__matchPath__ = __webpack_require__(36);\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n\nvar isEmptyChildren = function isEmptyChildren(children) {\n return __WEBPACK_IMPORTED_MODULE_2_react___default.a.Children.count(children) === 0;\n};\n\n/**\n * The public API for matching a single path and rendering.\n */\n\nvar Route = function (_React$Component) {\n _inherits(Route, _React$Component);\n\n function Route() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Route);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n match: _this.computeMatch(_this.props, _this.context.router)\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Route.prototype.getChildContext = function getChildContext() {\n return {\n router: _extends({}, this.context.router, {\n route: {\n location: this.props.location || this.context.router.route.location,\n match: this.state.match\n }\n })\n };\n };\n\n Route.prototype.computeMatch = function computeMatch(_ref, router) {\n var computedMatch = _ref.computedMatch,\n location = _ref.location,\n path = _ref.path,\n strict = _ref.strict,\n exact = _ref.exact,\n sensitive = _ref.sensitive;\n\n if (computedMatch) return computedMatch; // already computed the match for us\n\n __WEBPACK_IMPORTED_MODULE_1_invariant___default()(router, \"You should not use or withRouter() outside a \");\n\n var route = router.route;\n\n var pathname = (location || route.location).pathname;\n\n return Object(__WEBPACK_IMPORTED_MODULE_4__matchPath__[\"a\" /* default */])(pathname, { path: path, strict: strict, exact: exact, sensitive: sensitive }, route.match);\n };\n\n Route.prototype.componentWillMount = function componentWillMount() {\n __WEBPACK_IMPORTED_MODULE_0_warning___default()(!(this.props.component && this.props.render), \"You should not use and in the same route; will be ignored\");\n\n __WEBPACK_IMPORTED_MODULE_0_warning___default()(!(this.props.component && this.props.children && !isEmptyChildren(this.props.children)), \"You should not use and in the same route; will be ignored\");\n\n __WEBPACK_IMPORTED_MODULE_0_warning___default()(!(this.props.render && this.props.children && !isEmptyChildren(this.props.children)), \"You should not use and in the same route; will be ignored\");\n };\n\n Route.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps, nextContext) {\n __WEBPACK_IMPORTED_MODULE_0_warning___default()(!(nextProps.location && !this.props.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.');\n\n __WEBPACK_IMPORTED_MODULE_0_warning___default()(!(!nextProps.location && this.props.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.');\n\n this.setState({\n match: this.computeMatch(nextProps, nextContext.router)\n });\n };\n\n Route.prototype.render = function render() {\n var match = this.state.match;\n var _props = this.props,\n children = _props.children,\n component = _props.component,\n render = _props.render;\n var _context$router = this.context.router,\n history = _context$router.history,\n route = _context$router.route,\n staticContext = _context$router.staticContext;\n\n var location = this.props.location || route.location;\n var props = { match: match, location: location, history: history, staticContext: staticContext };\n\n if (component) return match ? __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(component, props) : null;\n\n if (render) return match ? render(props) : null;\n\n if (typeof children === \"function\") return children(props);\n\n if (children && !isEmptyChildren(children)) return __WEBPACK_IMPORTED_MODULE_2_react___default.a.Children.only(children);\n\n return null;\n };\n\n return Route;\n}(__WEBPACK_IMPORTED_MODULE_2_react___default.a.Component);\n\nRoute.propTypes = {\n computedMatch: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object, // private, from \n path: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n exact: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n strict: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n sensitive: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n component: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func,\n render: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func,\n children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node]),\n location: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nRoute.contextTypes = {\n router: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.shape({\n history: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired,\n route: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired,\n staticContext: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n })\n};\nRoute.childContextTypes = {\n router: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Route);\n\n/***/ }),\n/* 52 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path_to_regexp__ = __webpack_require__(82);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path_to_regexp___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_path_to_regexp__);\n\n\nvar patternCache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nvar compileGenerator = function compileGenerator(pattern) {\n var cacheKey = pattern;\n var cache = patternCache[cacheKey] || (patternCache[cacheKey] = {});\n\n if (cache[pattern]) return cache[pattern];\n\n var compiledGenerator = __WEBPACK_IMPORTED_MODULE_0_path_to_regexp___default.a.compile(pattern);\n\n if (cacheCount < cacheLimit) {\n cache[pattern] = compiledGenerator;\n cacheCount++;\n }\n\n return compiledGenerator;\n};\n\n/**\n * Public API for generating a URL pathname from a pattern and parameters.\n */\nvar generatePath = function generatePath() {\n var pattern = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (pattern === \"/\") {\n return pattern;\n }\n var generator = compileGenerator(pattern);\n return generator(params, { pretty: true });\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (generatePath);\n\n/***/ }),\n/* 53 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_inheritsLoose__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utils__ = __webpack_require__(2);\n\n\n\n\n\n\n\n\nvar propTypes = {\n active: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n 'aria-label': __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string,\n block: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n color: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string,\n disabled: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n outline: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n tag: __WEBPACK_IMPORTED_MODULE_7__utils__[\"t\" /* tagPropType */],\n innerRef: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string]),\n onClick: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func,\n size: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string,\n children: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.node,\n className: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.object,\n close: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool\n};\nvar defaultProps = {\n color: 'secondary',\n tag: 'button'\n};\n\nvar Button = /*#__PURE__*/function (_React$Component) {\n Object(__WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_inheritsLoose__[\"a\" /* default */])(Button, _React$Component);\n\n function Button(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.onClick = _this.onClick.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n return _this;\n }\n\n var _proto = Button.prototype;\n\n _proto.onClick = function onClick(e) {\n if (this.props.disabled) {\n e.preventDefault();\n return;\n }\n\n if (this.props.onClick) {\n return this.props.onClick(e);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n active = _this$props.active,\n ariaLabel = _this$props['aria-label'],\n block = _this$props.block,\n className = _this$props.className,\n close = _this$props.close,\n cssModule = _this$props.cssModule,\n color = _this$props.color,\n outline = _this$props.outline,\n size = _this$props.size,\n Tag = _this$props.tag,\n innerRef = _this$props.innerRef,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(_this$props, [\"active\", \"aria-label\", \"block\", \"className\", \"close\", \"cssModule\", \"color\", \"outline\", \"size\", \"tag\", \"innerRef\"]);\n\n if (close && typeof attributes.children === 'undefined') {\n attributes.children = /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\"span\", {\n \"aria-hidden\": true\n }, \"\\xD7\");\n }\n\n var btnOutlineColor = \"btn\" + (outline ? '-outline' : '') + \"-\" + color;\n var classes = Object(__WEBPACK_IMPORTED_MODULE_7__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_6_classnames___default()(className, {\n close: close\n }, close || 'btn', close || btnOutlineColor, size ? \"btn-\" + size : false, block ? 'btn-block' : false, {\n active: active,\n disabled: this.props.disabled\n }), cssModule);\n\n if (attributes.href && Tag === 'button') {\n Tag = 'a';\n }\n\n var defaultAriaLabel = close ? 'Close' : null;\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({\n type: Tag === 'button' && attributes.onClick ? 'button' : undefined\n }, attributes, {\n className: classes,\n ref: innerRef,\n onClick: this.onClick,\n \"aria-label\": ariaLabel || defaultAriaLabel\n }));\n };\n\n return Button;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.Component);\n\nButton.propTypes = propTypes;\nButton.defaultProps = defaultProps;\n/* harmony default export */ __webpack_exports__[\"a\"] = (Button);\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports) {\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nmodule.exports = _inheritsLoose;\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports) {\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports) {\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar keys = __webpack_require__(99);\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\torigDefineProperty(obj, 'x', { enumerable: false, value: obj });\n\t\t// eslint-disable-next-line no-unused-vars, no-restricted-syntax\n\t\tfor (var _ in obj) { // jscs:ignore disallowUnusedVariables\n\t\t\treturn false;\n\t\t}\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n\n\n/***/ }),\n/* 58 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ManagerReferenceNodeContext; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return ManagerReferenceNodeSetterContext; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return Manager; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_inheritsLoose__ = __webpack_require__(54);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_inheritsLoose___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_inheritsLoose__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_assertThisInitialized__ = __webpack_require__(55);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_assertThisInitialized___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_assertThisInitialized__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_defineProperty__ = __webpack_require__(56);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_defineProperty___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_defineProperty__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__hypnosphi_create_react_context__ = __webpack_require__(287);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__hypnosphi_create_react_context___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__hypnosphi_create_react_context__);\n\n\n\n\n\nvar ManagerReferenceNodeContext = __WEBPACK_IMPORTED_MODULE_4__hypnosphi_create_react_context___default()();\nvar ManagerReferenceNodeSetterContext = __WEBPACK_IMPORTED_MODULE_4__hypnosphi_create_react_context___default()();\n\nvar Manager =\n/*#__PURE__*/\nfunction (_React$Component) {\n __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_inheritsLoose___default()(Manager, _React$Component);\n\n function Manager() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n __WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_defineProperty___default()(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_assertThisInitialized___default()(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_assertThisInitialized___default()(_this)), \"referenceNode\", void 0);\n\n __WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_defineProperty___default()(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_assertThisInitialized___default()(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_assertThisInitialized___default()(_this)), \"setReferenceNode\", function (newReferenceNode) {\n if (newReferenceNode && _this.referenceNode !== newReferenceNode) {\n _this.referenceNode = newReferenceNode;\n\n _this.forceUpdate();\n }\n });\n\n return _this;\n }\n\n var _proto = Manager.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.referenceNode = null;\n };\n\n _proto.render = function render() {\n return __WEBPACK_IMPORTED_MODULE_3_react__[\"createElement\"](ManagerReferenceNodeContext.Provider, {\n value: this.referenceNode\n }, __WEBPACK_IMPORTED_MODULE_3_react__[\"createElement\"](ManagerReferenceNodeSetterContext.Provider, {\n value: this.setReferenceNode\n }, this.props.children));\n };\n\n return Manager;\n}(__WEBPACK_IMPORTED_MODULE_3_react__[\"Component\"]);\n\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _CSSTransition = _interopRequireDefault(__webpack_require__(296));\n\nvar _ReplaceTransition = _interopRequireDefault(__webpack_require__(301));\n\nvar _TransitionGroup = _interopRequireDefault(__webpack_require__(107));\n\nvar _Transition = _interopRequireDefault(__webpack_require__(104));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = {\n Transition: _Transition.default,\n TransitionGroup: _TransitionGroup.default,\n ReplaceTransition: _ReplaceTransition.default,\n CSSTransition: _CSSTransition.default\n};\n\n/***/ }),\n/* 60 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_defineProperty__ = __webpack_require__(14);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_assertThisInitialized__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__babel_runtime_helpers_esm_inheritsLoose__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_react_transition_group__ = __webpack_require__(59);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_react_transition_group___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_react_transition_group__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__utils__ = __webpack_require__(2);\n\n\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(Object(source), true).forEach(function (key) { Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_defineProperty__[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n\n\n\n\n\n\nvar CarouselItem = /*#__PURE__*/function (_React$Component) {\n Object(__WEBPACK_IMPORTED_MODULE_4__babel_runtime_helpers_esm_inheritsLoose__[\"a\" /* default */])(CarouselItem, _React$Component);\n\n function CarouselItem(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n startAnimation: false\n };\n _this.onEnter = _this.onEnter.bind(Object(__WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.onEntering = _this.onEntering.bind(Object(__WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.onExit = _this.onExit.bind(Object(__WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.onExiting = _this.onExiting.bind(Object(__WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.onExited = _this.onExited.bind(Object(__WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n return _this;\n }\n\n var _proto = CarouselItem.prototype;\n\n _proto.onEnter = function onEnter(node, isAppearing) {\n this.setState({\n startAnimation: false\n });\n this.props.onEnter(node, isAppearing);\n };\n\n _proto.onEntering = function onEntering(node, isAppearing) {\n // getting this variable triggers a reflow\n var offsetHeight = node.offsetHeight;\n this.setState({\n startAnimation: true\n });\n this.props.onEntering(node, isAppearing);\n return offsetHeight;\n };\n\n _proto.onExit = function onExit(node) {\n this.setState({\n startAnimation: false\n });\n this.props.onExit(node);\n };\n\n _proto.onExiting = function onExiting(node) {\n this.setState({\n startAnimation: true\n });\n node.dispatchEvent(new CustomEvent('slide.bs.carousel'));\n this.props.onExiting(node);\n };\n\n _proto.onExited = function onExited(node) {\n node.dispatchEvent(new CustomEvent('slid.bs.carousel'));\n this.props.onExited(node);\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n isIn = _this$props.in,\n children = _this$props.children,\n cssModule = _this$props.cssModule,\n slide = _this$props.slide,\n Tag = _this$props.tag,\n className = _this$props.className,\n transitionProps = Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(_this$props, [\"in\", \"children\", \"cssModule\", \"slide\", \"tag\", \"className\"]);\n\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8_react_transition_group__[\"Transition\"], Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, transitionProps, {\n enter: slide,\n exit: slide,\n in: isIn,\n onEnter: this.onEnter,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }), function (status) {\n var direction = _this2.context.direction;\n var isActive = status === __WEBPACK_IMPORTED_MODULE_9__utils__[\"d\" /* TransitionStatuses */].ENTERED || status === __WEBPACK_IMPORTED_MODULE_9__utils__[\"d\" /* TransitionStatuses */].EXITING;\n var directionClassName = (status === __WEBPACK_IMPORTED_MODULE_9__utils__[\"d\" /* TransitionStatuses */].ENTERING || status === __WEBPACK_IMPORTED_MODULE_9__utils__[\"d\" /* TransitionStatuses */].EXITING) && _this2.state.startAnimation && (direction === 'right' ? 'carousel-item-left' : 'carousel-item-right');\n var orderClassName = status === __WEBPACK_IMPORTED_MODULE_9__utils__[\"d\" /* TransitionStatuses */].ENTERING && (direction === 'right' ? 'carousel-item-next' : 'carousel-item-prev');\n var itemClasses = Object(__WEBPACK_IMPORTED_MODULE_9__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_7_classnames___default()(className, 'carousel-item', isActive && 'active', directionClassName, orderClassName), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement(Tag, {\n className: itemClasses\n }, children);\n });\n };\n\n return CarouselItem;\n}(__WEBPACK_IMPORTED_MODULE_5_react___default.a.Component);\n\nCarouselItem.propTypes = _objectSpread(_objectSpread({}, __WEBPACK_IMPORTED_MODULE_8_react_transition_group__[\"Transition\"].propTypes), {}, {\n tag: __WEBPACK_IMPORTED_MODULE_9__utils__[\"t\" /* tagPropType */],\n in: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.bool,\n cssModule: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object,\n children: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.node,\n slide: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.bool,\n className: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string\n});\nCarouselItem.defaultProps = _objectSpread(_objectSpread({}, __WEBPACK_IMPORTED_MODULE_8_react_transition_group__[\"Transition\"].defaultProps), {}, {\n tag: 'div',\n timeout: __WEBPACK_IMPORTED_MODULE_9__utils__[\"e\" /* TransitionTimeouts */].Carousel,\n slide: true\n});\nCarouselItem.contextTypes = {\n direction: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string\n};\n/* harmony default export */ __webpack_exports__[\"a\"] = (CarouselItem);\n\n/***/ }),\n/* 61 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return EditorTag; });\nvar EditorTag = {\r\n /** Unknown tag value */\r\n Unknown: \"Unknown\",\r\n /** Edit tag value */\r\n Edit: \"EDIT\",\r\n /** DateTime tag value */\r\n DateTime: \"DATETIME\",\r\n /** List tag value */\r\n List: \"LIST\",\r\n /** CustomList tag value */\r\n CustomList: \"CUSTOMLIST\"\r\n};\r\n//# sourceMappingURL=editor_tag.js.map\n\n/***/ }),\n/* 62 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return DataModel; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__aggr_function__ = __webpack_require__(133);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__operator__ = __webpack_require__(134);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__entity__ = __webpack_require__(136);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__types_data_kind__ = __webpack_require__(25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__types_eq_editor_tag__ = __webpack_require__(63);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__query_query__ = __webpack_require__(29);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__types_expr_tag__ = __webpack_require__(21);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__common_tree__ = __webpack_require__(137);\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * Represents a data model\r\n */\r\nvar DataModel = /** @class */ (function (_super) {\r\n __extends(DataModel, _super);\r\n /** The default constructor. */\r\n function DataModel() {\r\n var _this = _super.call(this) || this;\r\n _this.mainEntity = null;\r\n _this.operators = new Array();\r\n _this.rootEntity = new __WEBPACK_IMPORTED_MODULE_3__entity__[\"a\" /* Entity */]();\r\n _this.aggrFunctions = new Array();\r\n _this.dateMacros = ['${{Today}}', '${{Yesterday}}',\r\n '${{Tomorrow}}', '${{FirstDayOfMonth}}', '${{LastDayOfMonth}}',\r\n '${{FirstDayOfWeek}}', '${{FirstDayOfYear}}', '${{FirstDayOfNextWeek}}', '${{FirstDayOfPrevMonth}}',\r\n '${{FirstDayOfNextMonth}}', '${{FirstDayOfNextYear}}', '${{FirstDayOfPrevYear}}', '${{FirstDayOfPrevWeek}}'];\r\n _this.timeMacros = ['${{Now}}', '${{HourStart}}', '${{Midnight}}', '${{Noon}}'];\r\n _this.links = [];\r\n return _this;\r\n }\r\n /**\r\n * Gets the main entity of model\r\n * @return The main entity.\r\n */\r\n DataModel.prototype.getMainEntity = function () {\r\n return this.mainEntity;\r\n };\r\n /**\r\n * Loads data model from JSON.\r\n * @param stringJson The JSON string.\r\n */\r\n DataModel.prototype.loadFromJSON = function (stringJson) {\r\n var model = JSON.parse(stringJson);\r\n this.loadFromData(model);\r\n };\r\n /**\r\n * Loads data model from its JSON representation object.\r\n * @param data The JSON representation object.\r\n */\r\n DataModel.prototype.loadFromData = function (data) {\r\n _super.prototype.loadFromData.call(this, data);\r\n //Operators\r\n this.operators = new Array();\r\n if (data.operators) {\r\n for (var i = 0; i < data.operators.length; i++) {\r\n var newOperator = new __WEBPACK_IMPORTED_MODULE_2__operator__[\"b\" /* Operator */]();\r\n newOperator.loadFromData(this, data.operators[i]);\r\n this.operators.push(newOperator);\r\n }\r\n }\r\n //rootEntity\r\n this.rootEntity.loadFromData(this, data.entroot);\r\n //Aggr Functions\r\n this.aggrFunctions = new Array();\r\n if (data.aggrfuncs) {\r\n for (var i = 0; i < data.aggrfuncs.length; i++) {\r\n var newAggrFunc = new __WEBPACK_IMPORTED_MODULE_1__aggr_function__[\"a\" /* AggrFunction */]();\r\n newAggrFunc.loadFromData(data.aggrfuncs[i]);\r\n this.aggrFunctions.push(newAggrFunc);\r\n }\r\n }\r\n };\r\n /**\r\n * Gets the data model object.\r\n * @returns Tha data model.\r\n */\r\n DataModel.prototype.getObject = function () {\r\n return this;\r\n };\r\n /**\r\n * Sets data to data model.\r\n * @param model Its JSON representation object or JSON string.\r\n */\r\n DataModel.prototype.setData = function (model) {\r\n if (typeof model === 'string') {\r\n this.loadFromJSON(model);\r\n }\r\n else {\r\n this.loadFromData(model);\r\n }\r\n };\r\n /**\r\n * Creates entity.\r\n * @param parent The parent entity.\r\n * @returns The Entity.\r\n */\r\n DataModel.prototype.createEntity = function (parent) {\r\n return new __WEBPACK_IMPORTED_MODULE_3__entity__[\"a\" /* Entity */](parent);\r\n };\r\n /**\r\n * Creates entity attribute.\r\n * @param parent The parent entity.\r\n * @returns The entity attribute.\r\n */\r\n DataModel.prototype.createEntityAttr = function (parent) {\r\n return new __WEBPACK_IMPORTED_MODULE_3__entity__[\"b\" /* EntityAttr */](parent);\r\n };\r\n /**\r\n * Creates query.\r\n * @returns The Query.\r\n */\r\n DataModel.prototype.createQuery = function () {\r\n return new __WEBPACK_IMPORTED_MODULE_6__query_query__[\"a\" /* Query */](this);\r\n };\r\n /**\r\n * Gets root entity of the data model.\r\n * @returns The root entity.\r\n */\r\n DataModel.prototype.getRootEntity = function () {\r\n return this.rootEntity;\r\n };\r\n /**\r\n * Finds editor by its ID.\r\n * @param editorId The editor ID.\r\n * @returns The value editor or `null`.\r\n */\r\n DataModel.prototype.getEditorById = function (editorId) {\r\n return _super.prototype.getEditorById.call(this, editorId);\r\n };\r\n /**\r\n * Gets entity attribute by its ID.\r\n * This function runs through all attributes inside specified model (it's root entity and all its sub-entities).\r\n * @param attrId The attribute ID.\r\n * @returns The attribute or `null`.\r\n */\r\n DataModel.prototype.getAttributeById = function (attrId) {\r\n var attr = this.getEntityAttrById(this.getRootEntity(), attrId);\r\n if (!attr) {\r\n return null;\r\n }\r\n return attr;\r\n };\r\n /**\r\n * Checks wether attribute contains such property.\r\n * @param attrId The attribute ID.\r\n * @param propName The property name.\r\n * @returns `true` if the attribute contains the property, otherwise `false`.\r\n */\r\n DataModel.prototype.checkAttrProperty = function (attrId, propName) {\r\n var attribute = this.getAttributeById(attrId);\r\n if (attribute) {\r\n if (typeof attribute[propName] === 'undefined') {\r\n throw 'No such property: ' + propName;\r\n }\r\n if (attribute[propName]) {\r\n return true;\r\n }\r\n else if (attribute.lookupAttr) {\r\n attrId = attribute.lookupAttr;\r\n attribute = this.getAttributeById(attrId);\r\n return attribute && attribute[propName];\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n else\r\n return false;\r\n };\r\n /**\r\n * Gets entity attribute by its ID.\r\n * This function runs through all attributes inside specified entity and all its sub-entities.\r\n * @param entity\r\n * @param attrId\r\n * @returns The attribute or `null`.\r\n */\r\n DataModel.prototype.getEntityAttrById = function (entity, attrId) {\r\n return _super.prototype.getEntityAttrById.call(this, entity, attrId);\r\n };\r\n DataModel.prototype._listByEntityWithFilter = function (entity, filterFunc) {\r\n var result = new Array();\r\n var caption;\r\n var ent = null;\r\n if (entity.subEntities) {\r\n var subEntityCount = entity.subEntities.length;\r\n for (var entIdx = 0; entIdx < subEntityCount; entIdx++) {\r\n ent = entity.subEntities[entIdx];\r\n if (!filterFunc || filterFunc(ent, null)) {\r\n caption = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('Entities', ent.name);\r\n if (!caption) {\r\n caption = ent.caption;\r\n }\r\n var newEnt = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].assign(new __WEBPACK_IMPORTED_MODULE_3__entity__[\"a\" /* Entity */](), { id: ent.name, text: caption, items: [], isEntity: true });\r\n newEnt.items = this._listByEntityWithFilter(ent, filterFunc);\r\n if (newEnt.items.length > 0)\r\n result.push(newEnt);\r\n }\r\n }\r\n }\r\n var attr = null;\r\n if (entity.attributes) {\r\n var attrCount = entity.attributes.length;\r\n for (var attrIdx = 0; attrIdx < attrCount; attrIdx++) {\r\n attr = entity.attributes[attrIdx];\r\n if (!filterFunc || filterFunc(entity, attr)) {\r\n caption = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('Attributes', attr.id);\r\n if (!caption)\r\n caption = attr.caption;\r\n var newEnt = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].assign(new __WEBPACK_IMPORTED_MODULE_3__entity__[\"a\" /* Entity */](), { id: attr.id, text: caption, dataType: attr.dataType });\r\n result.push(newEnt);\r\n }\r\n }\r\n }\r\n return result;\r\n };\r\n DataModel.prototype._listByEntity = function (entity, opts, filterFunc) {\r\n opts = opts || {};\r\n var resultEntities = [];\r\n var resultAttributes = [];\r\n var caption;\r\n var ent = null;\r\n if (entity.subEntities) {\r\n var subEntityCount = entity.subEntities.length;\r\n for (var entIdx = 0; entIdx < subEntityCount; entIdx++) {\r\n ent = entity.subEntities[entIdx];\r\n if (!filterFunc || filterFunc(ent, null)) {\r\n if (opts.addUIC !== false && ent.useInConditions !== false ||\r\n opts.addUIR !== false && ent.useInResult !== false ||\r\n opts.addUIS !== false && ent.useInSorting !== false) {\r\n caption = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('Entities', ent.name) || ent.caption;\r\n var newEnt = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].assign(new __WEBPACK_IMPORTED_MODULE_3__entity__[\"a\" /* Entity */](), {\r\n id: ent.name,\r\n text: caption,\r\n items: [],\r\n isEntity: true,\r\n description: ent.description\r\n });\r\n var newOpts = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].assign({}, opts);\r\n newOpts.includeRootData = false;\r\n newEnt.items = this._listByEntity(ent, newOpts, filterFunc);\r\n if (newEnt.items.length > 0) {\r\n resultEntities.push(newEnt);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n var attr = null;\r\n if (entity.attributes) {\r\n var attrCount = entity.attributes.length;\r\n for (var attrIdx = 0; attrIdx < attrCount; attrIdx++) {\r\n attr = entity.attributes[attrIdx];\r\n if (!filterFunc || filterFunc(entity, attr)) {\r\n if (opts.addUIC !== false && attr.useInConditions !== false ||\r\n opts.addUIR !== false && attr.useInResult !== false ||\r\n opts.addUIS !== false && attr.useInSorting !== false) {\r\n caption = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('Attributes', attr.id) || attr.caption;\r\n resultAttributes.push(__WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].assign(new __WEBPACK_IMPORTED_MODULE_3__entity__[\"b\" /* EntityAttr */](entity), { id: attr.id, text: caption, dataType: attr.dataType, lookupAttr: attr.lookupAttr, description: attr.description }));\r\n }\r\n }\r\n }\r\n }\r\n var sortCheck = function (a, b) {\r\n if (a.text.toLowerCase() == b.text.toLowerCase()) {\r\n return 0;\r\n }\r\n if (a.text.toLowerCase() > b.text.toLowerCase()) {\r\n return 1;\r\n }\r\n return -1;\r\n };\r\n if (opts.sortEntities) {\r\n resultEntities.sort(sortCheck);\r\n resultAttributes.sort(sortCheck);\r\n }\r\n var result;\r\n if (!opts.attrPlacement || opts.attrPlacement == 0) {\r\n result = resultEntities.concat(resultAttributes);\r\n }\r\n else {\r\n result = resultAttributes.concat(resultEntities);\r\n }\r\n if (opts.attrPlacement == 2) {\r\n result.sort(sortCheck);\r\n }\r\n if (opts.includeRootData) {\r\n caption = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('Entities', entity.name);\r\n if (!caption)\r\n caption = entity.caption;\r\n return { id: entity.name, text: caption, items: result };\r\n }\r\n else {\r\n return result;\r\n }\r\n };\r\n /**\r\n * Clears data model.\r\n */\r\n DataModel.prototype.clear = function () {\r\n _super.prototype.clear.call(this);\r\n this.operators = [];\r\n this.aggrFunctions = [];\r\n };\r\n /**\r\n * Add or update an operator.\r\n * @param desc The operator descriptor.\r\n * @returns The operator.\r\n */\r\n DataModel.prototype.addOrUpdateOperator = function (desc) {\r\n var op = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].findItemById(this.operators, desc.id);\r\n if (!op) {\r\n op = new __WEBPACK_IMPORTED_MODULE_2__operator__[\"b\" /* Operator */]();\r\n op.id = desc.id;\r\n this.operators.push(op);\r\n }\r\n op.caption = desc.caption;\r\n op.expr = desc.expr || '';\r\n op.displayFormat = desc.format;\r\n op.defaultOperand = new __WEBPACK_IMPORTED_MODULE_2__operator__[\"a\" /* Operand */]();\r\n op.defaultOperand.kind = desc.kind || __WEBPACK_IMPORTED_MODULE_4__types_data_kind__[\"a\" /* DataKind */].Scalar;\r\n if (desc.appliedTypes)\r\n op.appliedTypes = desc.appliedTypes;\r\n if (desc.paramCount > 0) {\r\n op.paramCount = desc.paramCount;\r\n }\r\n this.runThroughEntities(function (attr, opts) {\r\n if (attr.operators.indexOf(op.id) < 0 && op.appliedTypes.indexOf(attr.dataType) >= 0) {\r\n attr.operators.push(op.id);\r\n }\r\n });\r\n return op;\r\n };\r\n /**\r\n * Removes an operator.\r\n * @param id The id.\r\n * @param soft If `false` - removes operators from model and attributes. Otherwise only\r\n * from attributes.\r\n */\r\n DataModel.prototype.removeOperator = function (id, soft) {\r\n if (soft === void 0) { soft = false; }\r\n var op = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].findItemById(this.operators, id);\r\n if (op) {\r\n if (!soft)\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].removeArrayItem(this.operators, op);\r\n this.runThroughEntities(function (attr, opts) {\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].removeArrayItem(attr.operators, op.id);\r\n });\r\n }\r\n };\r\n /**\r\n * Get operators for data type.\r\n * @param type The data type\r\n * @return The array of operator ids.\r\n */\r\n DataModel.prototype.getOperatorIdsByDataType = function (type) {\r\n switch (type) {\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].String:\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Memo:\r\n return 'StartsWith,EndsWith,Contains,Equal,InList,NotStartsWith,NotEndsWith,NotContains,NotEqual,NotInList,IsNull,IsNotNull'.split(',');\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Guid:\r\n return 'Equal,NotEqual'.split(',');\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Date:\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].DateTime:\r\n return 'DateWithinToday,DateWithinThisWeek,DateWithinPrevWeek,DateWithinThisMonth,DateWithinPrevMonth,DateWithinThisYear,DateWithinPrevYear,DateBeforePrecise,DateAfterPrecise,DatePeriodPrecise,IsNull,IsNotNull'.split(',');\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Time:\r\n return 'TimeBeforePrecise,TimeAfterPrecise,TimePeriodPrecise,IsNull,IsNotNull'.split(',');\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Byte:\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Word:\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Int32:\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Int64:\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Float:\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Currency:\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].BCD:\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Autoinc:\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Unknown:\r\n return 'Equal,Between,LessThan,LessOrEqual,GreaterThan,GreaterOrEqual,InList,NotEqual,NotBetween,NotInList,IsNull,IsNotNull'.split(',');\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Bool:\r\n return 'IsTrue,NotTrue'.split(',');\r\n default:\r\n var result = [];\r\n for (var _i = 0, _a = this.operators; _i < _a.length; _i++) {\r\n var op = _a[_i];\r\n if (op.appliedTypes.indexOf(type) >= 0)\r\n result.push(op.id);\r\n }\r\n return result;\r\n }\r\n };\r\n /**\r\n * Builds entities tree used in query.\r\n * @param query The query.\r\n */\r\n DataModel.prototype.buildQueryPath = function (query) {\r\n var entity = this.mainEntity || this.rootEntity;\r\n var tree = this.createTreeNodeFromEntity(entity);\r\n tree.setParents();\r\n return tree;\r\n };\r\n DataModel.prototype.createTreeNodeFromEntity = function (entity) {\r\n var tree = new __WEBPACK_IMPORTED_MODULE_8__common_tree__[\"a\" /* Tree */](entity);\r\n for (var _i = 0, _a = entity.subEntities; _i < _a.length; _i++) {\r\n var subEnentity = _a[_i];\r\n tree.addChild(this.createTreeNodeFromEntity(subEnentity));\r\n }\r\n return tree;\r\n };\r\n /**\r\n * Get Entities used in query.\r\n * @param query The query.\r\n */\r\n DataModel.prototype.getEntitiesInQuery = function (query) {\r\n if (query.model.id !== this.id)\r\n throw Error('Model mithmatch');\r\n var entities = [];\r\n var columns = query.getColumns();\r\n for (var _i = 0, columns_1 = columns; _i < columns_1.length; _i++) {\r\n var column = columns_1[_i];\r\n if (!column.enabled)\r\n continue;\r\n this.addEntityByExpression(entities, column.expr);\r\n }\r\n var rootCond = query.getRootCondition();\r\n this.fillEntitiesByCondtionGroup(entities, rootCond);\r\n return entities;\r\n };\r\n DataModel.prototype.findAggrFunctionById = function (funcId) {\r\n for (var _i = 0, _a = this.aggrFunctions; _i < _a.length; _i++) {\r\n var func = _a[_i];\r\n if (func.id === funcId)\r\n return func;\r\n }\r\n return null;\r\n };\r\n DataModel.prototype.fillEntitiesByCondtionGroup = function (entities, root) {\r\n for (var _i = 0, _a = root.getConditions(); _i < _a.length; _i++) {\r\n var condition = _a[_i];\r\n if (!condition.isGroup()) {\r\n for (var _b = 0, _c = condition.expressions; _b < _c.length; _b++) {\r\n var expr = _c[_b];\r\n this.addEntityByExpression(entities, expr);\r\n if (expr.args) {\r\n for (var _d = 0, _e = expr.args; _d < _e.length; _d++) {\r\n var arg = _e[_d];\r\n this.addEntityByExpression(entities, arg);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n this.fillEntitiesByCondtionGroup(entities, condition);\r\n }\r\n }\r\n };\r\n DataModel.prototype.addEntityByExpression = function (entities, expr) {\r\n if (expr.tag !== __WEBPACK_IMPORTED_MODULE_7__types_expr_tag__[\"a\" /* ExprTag */].EntityAttribute)\r\n return;\r\n var attrId = expr.baseAttrId || expr.value;\r\n if (attrId) {\r\n var attr = this.getAttributeById(attrId);\r\n if (attr) {\r\n if (attr.entity && __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].indexOfArrayItem(entities, attr.entity) < 0) {\r\n entities.push(attr.entity);\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Finds link between two entities.\r\n * @param entityFrom The entity `from`.\r\n * @param entityTo The entity `to`.\r\n * @return The link.\r\n */\r\n DataModel.prototype.findLink = function (entityFrom, entityTo) {\r\n for (var _i = 0, _a = this.links; _i < _a.length; _i++) {\r\n var link = _a[_i];\r\n if (link.entityFrom == entityFrom\r\n && link.entityTo == entityTo)\r\n return link;\r\n }\r\n return null;\r\n };\r\n /**\r\n * Get links with the entity.\r\n * @param entity The entity.\r\n * @return The link.\r\n */\r\n DataModel.prototype.getLinksByEntity = function (entity) {\r\n var result = [];\r\n for (var _i = 0, _a = this.links; _i < _a.length; _i++) {\r\n var link = _a[_i];\r\n if (link.entityFrom == entity || link.entityTo == entity) {\r\n result.push(link);\r\n }\r\n }\r\n return result;\r\n };\r\n /**\r\n * Gets entities tree.\r\n * @param opts The options.\r\n * @param filterFunc The filter function.\r\n * Takes two parameters, Entity and EntityAttr (second parameter will be null for entities), and returns boolean (true if the corresponding entity or attribute).\r\n * @returns The tree of the entities and their attributes according to options and the filter function\r\n */\r\n DataModel.prototype.getEntitiesTree = function (opts, filterFunc) {\r\n return this._listByEntity(this.getRootEntity(), opts, filterFunc);\r\n };\r\n /**\r\n * Gets entities tree due to filter.\r\n * @param filterFunc The filter function.\r\n * Takes two parameters, Entity and EntityAttr (second parameter will be null for entities), and returns boolean (true if the corresponding entity or attribute).\r\n * @returns The tree of the entities and their attributes according to the filter function\r\n */\r\n DataModel.prototype.getEntitiesTreeWithFilter = function (filterFunc) {\r\n return this._listByEntityWithFilter(this.getRootEntity(), filterFunc);\r\n };\r\n /**\r\n * Finds full entity path by attribute\r\n * @param attrId The attribute id.\r\n * @param sep The separator.\r\n * @returns The path.\r\n */\r\n DataModel.prototype.getFullEntityPathByAttr = function (attrId, sep) {\r\n sep = sep || ' ';\r\n return this.getEntityPathByAttr(this.getRootEntity(), attrId, sep, true);\r\n };\r\n /**\r\n * Finds entity path by attribute\r\n * @param entity The entity.\r\n * @param attrId The attribute id.\r\n * @param sep The separator.\r\n * @param root The root option.\r\n * @returns The path.\r\n */\r\n DataModel.prototype.getEntityPathByAttr = function (entity, attrId, sep, root) {\r\n return _super.prototype.getEntityPathByAttr.call(this, entity, attrId, sep, root);\r\n };\r\n /**\r\n * Gets the attribute text.\r\n * @param attr The attribute.\r\n * @param format The format.\r\n * @returns Formatted text.\r\n */\r\n DataModel.prototype.getAttributeText = function (attr, format) {\r\n return _super.prototype.getAttributeText.call(this, attr, format);\r\n };\r\n DataModel.prototype.getFirstUICAttr = function () {\r\n return this.getFirstUICAttrInEntity(this.getRootEntity());\r\n };\r\n /**\r\n * Gets first `UIC` attribute in specified entity\r\n * (`UIC` stands for `use in conditions` - so such attribute can be used in conditions)\r\n * @param entity Entity object to search our attribute in.\r\n * @returns The entity attribute or `null`\r\n */\r\n DataModel.prototype.getFirstUICAttrInEntity = function (entity) {\r\n if (entity.useInConditions !== false) {\r\n if (entity.attributes) {\r\n var attrCount = entity.attributes.length;\r\n for (var i = 0; i < attrCount; i++) {\r\n if (entity.attributes[i].useInConditions) {\r\n return entity.attributes[i];\r\n }\r\n }\r\n }\r\n if (entity.subEntities) {\r\n var subEntityCount = entity.subEntities.length;\r\n for (var i = 0; i < subEntityCount; i++) {\r\n var result = this.getFirstUICAttrInEntity(entity.subEntities[i]);\r\n if (result) {\r\n return result;\r\n }\r\n }\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * Scans model's entity tree and calls the callback functions for each attribute and entity.\r\n * @param processAttribute The callback function which is called for each attribute in model's entity tree.\r\n * The processed attribute is passed in the first function parameter.\r\n * @param processEntity The callback function which is called for each entity in tree.\r\n * The processed entity is passed in the first function parameter.\r\n */\r\n DataModel.prototype.runThroughEntities = function (processAttribute, processEntity) {\r\n this.getRootEntity().scan(processAttribute, processEntity);\r\n };\r\n /**\r\n * Finds first attribute by filter.\r\n * @param filterFunc The filter function. Takes EntityAttr object in parameter and returns boolean\r\n */\r\n DataModel.prototype.getFirstAttributeByFilter = function (filterFunc) {\r\n var res = null;\r\n this.runThroughEntities(function (attr, opts) {\r\n if (filterFunc(attr)) {\r\n opts.stop = true;\r\n res = attr;\r\n }\r\n }, null);\r\n return res;\r\n };\r\n /**\r\n * Finds operator in model by its ID.\r\n * This function runs through all operators inside specified model and returns the one with specified ID.\r\n * @param operatorId An operator ID.\r\n * @returns The operator or `null`.\r\n */\r\n DataModel.prototype.findOperatorById = function (operatorId) {\r\n if (this.operators.length > 0) {\r\n var opCount = this.operators.length;\r\n for (var idx = 0; idx < opCount; idx++) {\r\n if (this.operators[idx].id == operatorId) {\r\n return this.operators[idx];\r\n }\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * Finds operator in model by its ID.\r\n * his function runs through all operators inside specified model and returns the one with specified ID.\r\n * @param operatorId Operator ID.\r\n * @returns The operator or special `NullOperator` object if operator is not found.\r\n */\r\n DataModel.prototype.getOperatorById = function (operatorId) {\r\n var op = this.findOperatorById(operatorId);\r\n if (!op)\r\n op = new __WEBPACK_IMPORTED_MODULE_2__operator__[\"b\" /* Operator */]();\r\n return op;\r\n };\r\n DataModel.prototype.getDefaultOperatorIdForAttr = function (attr) {\r\n if (attr.defaultOperator) {\r\n return attr.defaultOperator;\r\n }\r\n else if (attr.operators.length > 0) {\r\n return attr.operators[0];\r\n }\r\n else {\r\n return (new __WEBPACK_IMPORTED_MODULE_2__operator__[\"b\" /* Operator */]()).id;\r\n }\r\n };\r\n /**\r\n * Gets caption of the aggregate function.\r\n * @param funcId The function id.\r\n * @returns The caption.\r\n */\r\n DataModel.prototype.getAggrFunctionCaption = function (funcId) {\r\n var funcTexts = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('AggregateFunctions', funcId);\r\n var funcCaption = funcTexts ? funcTexts.caption : __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('Aggr' + funcId.replace(' ', '') + '_Caption');\r\n if (funcCaption) {\r\n return funcCaption;\r\n }\r\n var func = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].findItemById(this.aggrFunctions, funcId);\r\n if (!func || !func.caption)\r\n return funcId;\r\n return func.caption;\r\n };\r\n /**\r\n * Gets format of the aggregate function.\r\n * @param funcId The function id.\r\n * @returns The caption.\r\n */\r\n DataModel.prototype.getAggrFunctionFormat = function (funcId) {\r\n var funcTexts = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('AggregateFunctions', funcId);\r\n var funcFormat = funcTexts ? funcTexts.displayFormat : __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('Aggr' + funcId.replace(' ', '') + '_Format');\r\n if (funcFormat) {\r\n return funcFormat;\r\n }\r\n var func = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].findItemById(this.aggrFunctions, funcId);\r\n if (!func || !func.displayFormat)\r\n return '';\r\n return func.displayFormat;\r\n };\r\n /**\r\n * Gets default operator for an attribute.\r\n * @param attr The attribute.\r\n * @returns The operator.\r\n */\r\n DataModel.prototype.getDefaultOperatorForAttr = function (attr) {\r\n var operatorId = this.getDefaultOperatorIdForAttr(attr);\r\n return this.getOperatorById(operatorId);\r\n };\r\n /**\r\n * Gets operand.\r\n * @param attr The attribute.\r\n * @param operator The operator.\r\n * @param index The index.\r\n * @returns The operand.\r\n */\r\n DataModel.prototype.getOperand = function (attr, operator, index) {\r\n var defOperand = new __WEBPACK_IMPORTED_MODULE_2__operator__[\"a\" /* Operand */]();\r\n if (operator && operator.defaultOperand) {\r\n defOperand.copyFrom(operator.defaultOperand);\r\n if (!defOperand.defValue) {\r\n defOperand.defValue = '';\r\n }\r\n if (!defOperand.defText) {\r\n defOperand.defText = '';\r\n }\r\n }\r\n else {\r\n defOperand.kind = __WEBPACK_IMPORTED_MODULE_4__types_data_kind__[\"a\" /* DataKind */].Scalar;\r\n defOperand.dataType = attr.dataType;\r\n defOperand.defValue = '';\r\n defOperand.defText = '';\r\n defOperand.editor = null;\r\n }\r\n var result = defOperand;\r\n if (result.dataType === __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Unknown && attr) {\r\n result.dataType = attr.dataType;\r\n }\r\n if (operator && (index >= 0)) {\r\n if (operator.operands && operator.operands[index - 1]) {\r\n result = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].assign(result, operator.operands[index - 1]);\r\n }\r\n }\r\n ;\r\n if (!result.editor) {\r\n if (defOperand.editor) {\r\n result.editor = defOperand.editor;\r\n }\r\n else if (defOperand.kind === __WEBPACK_IMPORTED_MODULE_4__types_data_kind__[\"a\" /* DataKind */].Query) {\r\n result.editor.tag = __WEBPACK_IMPORTED_MODULE_5__types_eq_editor_tag__[\"a\" /* EqEditorTag */].SubQuery;\r\n }\r\n else if (attr && attr.defaultEditor) {\r\n result.editor = attr.defaultEditor;\r\n }\r\n else if (result.dataType === __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Date || result.dataType === __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].DateTime\r\n || result.dataType === __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Time) {\r\n result.editor.tag = __WEBPACK_IMPORTED_MODULE_5__types_eq_editor_tag__[\"a\" /* EqEditorTag */].DateTime;\r\n }\r\n else {\r\n result.editor.tag = __WEBPACK_IMPORTED_MODULE_5__types_eq_editor_tag__[\"a\" /* EqEditorTag */].Edit;\r\n }\r\n }\r\n return result;\r\n };\r\n /**\r\n * Gets the list of aggegate functions.\r\n * @returns AN array of aggregate functions.\r\n */\r\n DataModel.prototype.getAggrFunctions = function () {\r\n return this.aggrFunctions;\r\n };\r\n /**\r\n * Gets date by its macro value.\r\n * @param macro The macro value.\r\n * @returns The date or `null`\r\n */\r\n DataModel.prototype.getDateMacroValue = function (macro) {\r\n if (this.isDateMacro(macro)) {\r\n var d = new Date();\r\n var macroName = macro.match(/\\${{(.*?)}}/)[1];\r\n switch (macroName) {\r\n case 'Today':\r\n break;\r\n case 'Yesterday':\r\n d.setDate(d.getDate() - 1);\r\n break;\r\n case 'Tomorrow':\r\n d.setDate(d.getDate() + 1);\r\n break;\r\n case 'FirstDayOfMonth':\r\n d.setDate(1);\r\n break;\r\n case 'LastDayOfMonth':\r\n d.setMonth(d.getMonth() + 1, 0);\r\n break;\r\n case 'FirstDayOfPrevWeek':\r\n var day = d.getDay();\r\n day = (day == 0) ? 1 : 8 - day; //We start week from Monday, but js - from Sunday\r\n d.setDate(d.getDate() - day);\r\n break;\r\n case 'FirstDayOfWeek':\r\n var day = d.getDay();\r\n day = (day == 0) ? 6 : day - 1; //We start week from Monday, but js - from Sunday\r\n d.setDate(d.getDate() - day);\r\n break;\r\n case 'FirstDayOfYear':\r\n d.setMonth(0, 1);\r\n break;\r\n case 'FirstDayOfNextWeek':\r\n var day = d.getDay();\r\n day = (day == 0) ? 1 : 8 - day; //We start week from Monday, but js - from Sunday\r\n d.setDate(d.getDate() + day);\r\n break;\r\n case 'FirstDayOfNextMonth':\r\n d.setMonth(d.getMonth() + 1, 1);\r\n break;\r\n case 'FirstDayOfPrevMonth':\r\n d.setMonth(d.getMonth() - 1, 1);\r\n break;\r\n case 'FirstDayOfPrevYear':\r\n d.setFullYear(d.getFullYear() - 1, 0, 1);\r\n break;\r\n case 'FirstDayOfNextYear':\r\n d.setFullYear(d.getFullYear() + 1, 0, 1);\r\n break;\r\n }\r\n ;\r\n return d;\r\n }\r\n return null;\r\n };\r\n /**\r\n * Checks wether macro value is date.\r\n * @param macro The macro value.\r\n * @retruns `true` if the macro value is date, otherwise `false`.\r\n */\r\n DataModel.prototype.isDateMacro = function (macro) {\r\n return __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].indexOfArrayItem(this.dateMacros, macro) >= 0;\r\n };\r\n /**\r\n * Gets date or macro by macro value.\r\n * @param macroValue The macro value.\r\n * @returns The date or macro valu.\r\n */\r\n DataModel.prototype.getDateOrMacroValue = function (macroValue) {\r\n var d = this.getDateMacroValue(macroValue);\r\n return d ? d : macroValue;\r\n };\r\n /**\r\n * Gets time by its macro value.\r\n * @param macro The macro value.\r\n * @returns The date or `null`.\r\n */\r\n DataModel.prototype.getTimeMacroValue = function (macro) {\r\n var d = new Date();\r\n if (this.isTimeMacro(macro)) {\r\n var macroName = macro.match(/\\${{(.*?)}}/)[1];\r\n switch (macroName) {\r\n case 'Now':\r\n break;\r\n case 'HourStart':\r\n d.setMinutes(0, 0, 0);\r\n break;\r\n case 'Midnight':\r\n d.setHours(0, 0, 0, 0);\r\n break;\r\n case 'Noon':\r\n d.setHours(12, 0, 0, 0);\r\n break;\r\n }\r\n ;\r\n return d;\r\n }\r\n return null;\r\n };\r\n /**\r\n * Checks wether macro value is time.\r\n * @param macro The macro value.\r\n * @retruns `true` if the macro value is time, otherwise `false`.\r\n */\r\n DataModel.prototype.isTimeMacro = function (macro) {\r\n return __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].indexOfArrayItem(this.timeMacros, macro) >= 0;\r\n };\r\n /**\r\n * Gets time or macro by macro value.\r\n * @param macroValue The macro value.\r\n * @returns The time or macro valu.\r\n */\r\n DataModel.prototype.getTimeOrMacroValue = function (time) {\r\n var t = this.getTimeMacroValue(time);\r\n return t ? t : time;\r\n };\r\n /**\r\n * Gets all date marcos.\r\n * @returns The array of marcos\r\n */\r\n DataModel.prototype.getAllDateMacros = function () {\r\n return this.dateMacros;\r\n };\r\n /**\r\n * Gets all time marcos.\r\n * @returns The array of marcos\r\n */\r\n DataModel.prototype.getAllTimeMacros = function () {\r\n return this.timeMacros;\r\n };\r\n return DataModel;\r\n}(__WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"h\" /* MetaData */]));\r\n\r\n//# sourceMappingURL=data_model.js.map\n\n/***/ }),\n/* 63 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return EqEditorTag; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\n/** Represents editor tags*/\r\nvar EqEditorTag = __assign({}, __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"e\" /* EditorTag */], { \r\n /** SqlList tag value */\r\n SqlList: \"SQLLIST\", \r\n /** SubQuery tag value */\r\n SubQuery: \"SUBQUERY\", \r\n /** Bind to parent column tag value */\r\n BindToParentColumn: \"BINDTOPARENTCOLUMN\" });\r\n//# sourceMappingURL=eq_editor_tag.js.map\n\n/***/ }),\n/* 64 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return SortDirection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QueryColumn; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__expression__ = __webpack_require__(42);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__query_events__ = __webpack_require__(30);\n\r\n\r\n\r\n/** Represents sorting direction. */\r\nvar SortDirection;\r\n(function (SortDirection) {\r\n /** No sorting. */\r\n SortDirection[SortDirection[\"None\"] = 0] = \"None\";\r\n /** Ascending order. */\r\n SortDirection[SortDirection[\"Ascending\"] = 1] = \"Ascending\";\r\n /** Descending order. */\r\n SortDirection[SortDirection[\"Descending\"] = 2] = \"Descending\";\r\n})(SortDirection || (SortDirection = {}));\r\n/**\r\n * Represents some column which will be queried\r\n */\r\nvar QueryColumn = /** @class */ (function () {\r\n /** the default constructor. */\r\n function QueryColumn(query, justsorted) {\r\n if (justsorted === void 0) { justsorted = false; }\r\n this.query = query;\r\n this.justsorted = justsorted;\r\n /** Column is enabled */\r\n this.enabled = true;\r\n /** The parameters associated with this column */\r\n this.params = [];\r\n this._isHidden = false;\r\n this._id = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].generateId('col');\r\n this.caption = '';\r\n this.sorting = SortDirection.None;\r\n this.sortIndex = -1;\r\n this.expr = new __WEBPACK_IMPORTED_MODULE_1__expression__[\"a\" /* Expression */](this);\r\n this.blockId = '';\r\n }\r\n Object.defineProperty(QueryColumn.prototype, \"id\", {\r\n get: function () {\r\n return this._id;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n QueryColumn.prototype.getModel = function () {\r\n return this.query.getModel();\r\n };\r\n QueryColumn.prototype.getQuery = function () {\r\n return this.query;\r\n };\r\n /** Indicates whether this column is read-only */\r\n QueryColumn.prototype.isReadOnly = function () {\r\n return false;\r\n };\r\n /** Indicates whether this column is just-sorted */\r\n QueryColumn.prototype.isJustSorted = function () {\r\n return this.justsorted;\r\n };\r\n QueryColumn.prototype.setReadOnly = function (value) {\r\n //do nothing. Read-only columns are not supported here\r\n };\r\n /** Indicates whether this column is invisible */\r\n QueryColumn.prototype.isHidden = function () {\r\n return this._isHidden;\r\n };\r\n QueryColumn.prototype.setHidden = function (value) {\r\n this._isHidden = value;\r\n };\r\n /**\r\n * Loads column from its JSON representation object.\r\n * @param model The Data Model.\r\n * @param colData The JSON representation object.\r\n */\r\n QueryColumn.prototype.loadFromData = function (model, colData) {\r\n if (colData) {\r\n if (colData.id) {\r\n this._id = colData.id;\r\n }\r\n this.caption = colData.cptn;\r\n if (typeof colData.srt !== 'undefined') {\r\n this.sorting = colData.srt;\r\n this.sortIndex = colData.srtidx;\r\n }\r\n if (colData.enabled === false) {\r\n this.enabled = colData.enabled;\r\n }\r\n this.expr.loadFromData(model, colData.expr);\r\n this.blockId = colData.blockId;\r\n if (colData.hidden) {\r\n this.setHidden(true);\r\n }\r\n }\r\n };\r\n /**\r\n * Saves the column to a data transfer object (ready for sending to the server-side) .\r\n * @returns An plain object that represents the column.\r\n */\r\n QueryColumn.prototype.saveToData = function () {\r\n var obj = {};\r\n obj.id = this._id;\r\n if (this.caption) {\r\n obj.cptn = this.caption;\r\n }\r\n if (typeof this.sorting !== 'undefined') {\r\n obj.srt = this.sorting;\r\n obj.srtidx = this.sortIndex;\r\n }\r\n obj.expr = this.expr.saveToData();\r\n if (this.blockId) {\r\n obj.blockId = this.blockId;\r\n }\r\n if (this.enabled === false) {\r\n obj.enabled = this.enabled;\r\n }\r\n if (this.isHidden()) {\r\n obj.hidden = true;\r\n }\r\n return obj;\r\n };\r\n QueryColumn.prototype.fireChangedEvent = function () {\r\n this.query.fireChangedEvent({\r\n part: (this.justsorted)\r\n ? __WEBPACK_IMPORTED_MODULE_2__query_events__[\"b\" /* QueryChangePart */].SortingColumns\r\n : __WEBPACK_IMPORTED_MODULE_2__query_events__[\"b\" /* QueryChangePart */].Columns,\r\n action: __WEBPACK_IMPORTED_MODULE_2__query_events__[\"a\" /* QueryChangeAction */].Modify,\r\n changee: this\r\n });\r\n };\r\n QueryColumn.prototype.getExpressionIndex = function (expr) {\r\n return 0;\r\n };\r\n QueryColumn.prototype.expressionChanged = function (expr, oldValue) {\r\n };\r\n return QueryColumn;\r\n}());\r\n\r\n//# sourceMappingURL=query_column.js.map\n\n/***/ }),\n/* 65 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return CondTag; });\n/**\r\n * Represents a type of condition.\r\n * Current we have 2 possible types: a simple condition or a predicate - a group of conditions\r\n*/\r\nvar CondTag;\r\n(function (CondTag) {\r\n /** An unknown type of condition (just in case).*/\r\n CondTag[CondTag[\"Unknown\"] = 0] = \"Unknown\";\r\n /** A simple condition (e.g. SomeField > SomeValue).*/\r\n CondTag[CondTag[\"Simple\"] = 1] = \"Simple\";\r\n /** A predicate (a group of conditions).*/\r\n CondTag[CondTag[\"Group\"] = 51] = \"Group\";\r\n})(CondTag || (CondTag = {}));\r\n//# sourceMappingURL=cond_tag.js.map\n\n/***/ }),\n/* 66 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return GridColumnAlign; });\n/* unused harmony export GridColumn */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return GridColumnList; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__easy_grid_cell_renderer__ = __webpack_require__(67);\n\r\n\r\nvar DEFAULT_WIDTH = 150;\r\nvar DEFAULT_WIDTH_NUMBER = 120;\r\nvar DEFAULT_WIDTH_DATE = 200;\r\nvar DEFAULT_WIDTH_BOOL = 80;\r\nvar DEFAULT_WIDTH_STRING = 250;\r\nvar MIN_WIDTH_STRING = 100;\r\nvar MAX_WIDTH_STRING = 500;\r\nvar ROW_NUM_WIDTH = 60;\r\nvar GridColumnAlign;\r\n(function (GridColumnAlign) {\r\n GridColumnAlign[GridColumnAlign[\"NONE\"] = 1] = \"NONE\";\r\n GridColumnAlign[GridColumnAlign[\"LEFT\"] = 2] = \"LEFT\";\r\n GridColumnAlign[GridColumnAlign[\"CENTER\"] = 3] = \"CENTER\";\r\n GridColumnAlign[GridColumnAlign[\"RIGHT\"] = 4] = \"RIGHT\";\r\n})(GridColumnAlign || (GridColumnAlign = {}));\r\nfunction MapAlignment(alignment) {\r\n switch (alignment) {\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"a\" /* ColumnAlignment */].Left:\r\n return GridColumnAlign.LEFT;\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"a\" /* ColumnAlignment */].Center:\r\n return GridColumnAlign.CENTER;\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"a\" /* ColumnAlignment */].Right:\r\n return GridColumnAlign.RIGHT;\r\n default:\r\n return GridColumnAlign.NONE;\r\n }\r\n}\r\nvar GridColumn = /** @class */ (function () {\r\n function GridColumn(column, grid, isRowNum) {\r\n if (isRowNum === void 0) { isRowNum = false; }\r\n this._label = null;\r\n //public left: number;\r\n this.align = GridColumnAlign.NONE;\r\n this.isVisible = true;\r\n this.isRowNum = false;\r\n this.dataColumn = column;\r\n this.grid = grid;\r\n if (column) {\r\n if (column.style.alignment) {\r\n this.align = MapAlignment(column.style.alignment);\r\n }\r\n var coltype = column.type;\r\n var cellType = this.grid.cellRendererStore.getCellType(coltype);\r\n switch (cellType) {\r\n case __WEBPACK_IMPORTED_MODULE_1__easy_grid_cell_renderer__[\"a\" /* CellRendererType */].NUMBER:\r\n this.width = DEFAULT_WIDTH_NUMBER;\r\n break;\r\n case __WEBPACK_IMPORTED_MODULE_1__easy_grid_cell_renderer__[\"a\" /* CellRendererType */].DATETIME:\r\n this.width = DEFAULT_WIDTH_DATE;\r\n break;\r\n case __WEBPACK_IMPORTED_MODULE_1__easy_grid_cell_renderer__[\"a\" /* CellRendererType */].BOOL:\r\n this.width = DEFAULT_WIDTH_BOOL;\r\n break;\r\n default:\r\n this.width = DEFAULT_WIDTH_STRING;\r\n }\r\n this.cellRenderer = this.grid.cellRendererStore.getDefaultRenderer(column.type);\r\n }\r\n else if (isRowNum) {\r\n this.isRowNum = true;\r\n this.width = ROW_NUM_WIDTH;\r\n this._label = '';\r\n this.cellRenderer = this.grid.cellRendererStore.getDefaultRendererByType(__WEBPACK_IMPORTED_MODULE_1__easy_grid_cell_renderer__[\"a\" /* CellRendererType */].NUMBER);\r\n }\r\n if (grid && grid.options && grid.options.onGetCellRenderer) {\r\n this.cellRenderer = grid.options.onGetCellRenderer(this, this.cellRenderer) || this.cellRenderer;\r\n }\r\n }\r\n Object.defineProperty(GridColumn.prototype, \"label\", {\r\n get: function () {\r\n return this._label ? this._label : this.isRowNum ? '' : this.dataColumn.label;\r\n },\r\n set: function (value) {\r\n this._label = this.label;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n Object.defineProperty(GridColumn.prototype, \"type\", {\r\n get: function () {\r\n return this.dataColumn ? this.dataColumn.type : null;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return GridColumn;\r\n}());\r\n\r\nvar GridColumnList = /** @class */ (function () {\r\n function GridColumnList(columnList, grid) {\r\n this.items = [];\r\n this.grid = grid;\r\n this.sync(columnList);\r\n }\r\n GridColumnList.prototype.sync = function (columnList, hasRowNumCol) {\r\n if (hasRowNumCol === void 0) { hasRowNumCol = true; }\r\n this.clear();\r\n if (hasRowNumCol) {\r\n var rowNumCol = new GridColumn(null, this.grid, true);\r\n this.add(rowNumCol);\r\n }\r\n if (columnList) {\r\n for (var _i = 0, _a = columnList.getItems(); _i < _a.length; _i++) {\r\n var column = _a[_i];\r\n var col = new GridColumn(column, this.grid);\r\n if (this.grid.options.onSyncGridColumn) {\r\n this.grid.options.onSyncGridColumn(col);\r\n }\r\n this.add(col);\r\n }\r\n }\r\n };\r\n Object.defineProperty(GridColumnList.prototype, \"count\", {\r\n get: function () {\r\n return this.items.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n GridColumnList.prototype.add = function (col) {\r\n var index = this.items.length;\r\n this.items.push(col);\r\n return index;\r\n };\r\n GridColumnList.prototype.put = function (index, col) {\r\n if (index >= 0 && index < this.items.length) {\r\n this.items[index] = col;\r\n }\r\n };\r\n GridColumnList.prototype.move = function (col, newIndex) {\r\n var oldIndex = this.items.indexOf(col);\r\n if (oldIndex >= 0 && oldIndex != newIndex)\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].moveArrayItem(this.items, oldIndex, newIndex);\r\n };\r\n GridColumnList.prototype.get = function (index) {\r\n if (index >= 0 && index < this.items.length) {\r\n return this.items[index];\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n // public getIndex(name: string) : number {\r\n // return this.mapper[name];\r\n // }\r\n GridColumnList.prototype.getItems = function () {\r\n return this.items;\r\n };\r\n GridColumnList.prototype.removeAt = function (index) {\r\n var col = this.get(index);\r\n this.items.splice(index, 1);\r\n //delete this.mapper[col.name];\r\n };\r\n GridColumnList.prototype.clear = function () {\r\n this.items = [];\r\n //this.mapper = {};\r\n };\r\n return GridColumnList;\r\n}());\r\n\r\n//# sourceMappingURL=easy_grid_columns.js.map\n\n/***/ }),\n/* 67 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return CellRendererType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return GridCellRendererStore; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__easy_grid_columns__ = __webpack_require__(66);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__ = __webpack_require__(18);\n\r\n\r\n\r\nvar cssPrefix = \"keg\";\r\nvar DFMT_REGEX = /{0:(.*?)}/g;\r\nvar CellRendererType;\r\n(function (CellRendererType) {\r\n CellRendererType[CellRendererType[\"STRING\"] = 1] = \"STRING\";\r\n CellRendererType[CellRendererType[\"NUMBER\"] = 2] = \"NUMBER\";\r\n CellRendererType[CellRendererType[\"DATETIME\"] = 3] = \"DATETIME\";\r\n CellRendererType[CellRendererType[\"BOOL\"] = 4] = \"BOOL\";\r\n})(CellRendererType || (CellRendererType = {}));\r\nvar StringCellRendererDefault = function (value, column, cellElement, rowElement) {\r\n var text = value ? value.toString().replace(/\\n/g, '\\u21B5 ') : '';\r\n var builder = Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])('div', cellElement)\r\n .addClass(cssPrefix + \"-cell-value\")\r\n .addHtml(text)\r\n .title(value || '');\r\n if (column.align == __WEBPACK_IMPORTED_MODULE_1__easy_grid_columns__[\"a\" /* GridColumnAlign */].NONE) {\r\n builder.addClass(cssPrefix + \"-cell-value-align-right\");\r\n }\r\n};\r\nvar NumberCellRendererDefault = function (value, column, cellElement, rowElement) {\r\n var strValue = (value || '').toString();\r\n if (typeof value == 'number') {\r\n if (column.dataColumn && column.dataColumn.displayFormat\r\n && DFMT_REGEX.test(column.dataColumn.displayFormat)) {\r\n strValue = column.dataColumn.displayFormat.replace(DFMT_REGEX, function (_, $1) {\r\n return __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].numberToStr(value, $1);\r\n });\r\n }\r\n else {\r\n strValue = value.toLocaleString();\r\n }\r\n }\r\n var builder = Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])('div', cellElement)\r\n .addClass(cssPrefix + \"-cell-value\")\r\n .addHtml(strValue)\r\n .title(strValue);\r\n if (column.align == __WEBPACK_IMPORTED_MODULE_1__easy_grid_columns__[\"a\" /* GridColumnAlign */].NONE) {\r\n builder.addClass(cssPrefix + \"-cell-value-align-right\");\r\n }\r\n};\r\nvar DateTimeCellRendererDefault = function (value, column, cellElement, rowElement) {\r\n var isDate = Object.prototype.toString.call(value) === '[object Date]';\r\n var strValue = (value || '').toString();\r\n if (isDate) {\r\n if (column.dataColumn && column.dataColumn.displayFormat\r\n && DFMT_REGEX.test(column.dataColumn.displayFormat)) {\r\n strValue = column.dataColumn.displayFormat.replace(DFMT_REGEX, function (_, $1) {\r\n return __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].dateTimeToStr(value, column.type, $1);\r\n });\r\n }\r\n else {\r\n var locale = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getCurrentLocale();\r\n var timeOptions = { hour: 'numeric', minute: 'numeric', second: 'numeric' };\r\n switch (column.type) {\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Date:\r\n strValue = value.toLocaleDateString(locale);\r\n break;\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Time:\r\n strValue = value.toLocaleTimeString(locale, timeOptions);\r\n break;\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].DateTime:\r\n strValue = value.toLocaleDateString(locale) + \" \" + value.toLocaleTimeString(locale, timeOptions);\r\n break;\r\n }\r\n }\r\n }\r\n var builder = Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])('div', cellElement)\r\n .addClass(cssPrefix + \"-cell-value\")\r\n .addHtml(strValue)\r\n .title(strValue);\r\n if (column.align == __WEBPACK_IMPORTED_MODULE_1__easy_grid_columns__[\"a\" /* GridColumnAlign */].NONE) {\r\n builder.addClass(cssPrefix + \"-cell-value-align-right\");\r\n }\r\n};\r\nvar BoolCellRendererDefault = function (value, column, cellElement, rowElement) {\r\n if (column.dataColumn && column.dataColumn.displayFormat\r\n && DFMT_REGEX.test(column.dataColumn.displayFormat)) {\r\n var strValue = column.dataColumn.displayFormat.replace(DFMT_REGEX, function (_, $1) {\r\n return __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].booleanToStr(value, $1);\r\n });\r\n return StringCellRendererDefault(strValue, column, cellElement, rowElement);\r\n }\r\n else {\r\n Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])('div', cellElement)\r\n .addClass(cssPrefix + \"-cell-value\")\r\n .addClass(cssPrefix + \"-cell-value-bool\")\r\n .addClass(cssPrefix + \"-\" + (value ? 'cell-value-true' : 'cell-value-false'));\r\n }\r\n};\r\nvar GridCellRendererStore = /** @class */ (function () {\r\n function GridCellRendererStore(options) {\r\n this.renderers = {};\r\n this.defaultRenderers = {};\r\n this.registerRenderer('StringDefault', StringCellRendererDefault);\r\n this.setDefaultRenderer(CellRendererType.STRING, StringCellRendererDefault);\r\n this.registerRenderer('NumberDefault', NumberCellRendererDefault);\r\n this.setDefaultRenderer(CellRendererType.NUMBER, NumberCellRendererDefault);\r\n this.registerRenderer('DateTimeDefault', DateTimeCellRendererDefault);\r\n this.setDefaultRenderer(CellRendererType.DATETIME, DateTimeCellRendererDefault);\r\n this.registerRenderer('BoolDefault', BoolCellRendererDefault);\r\n this.setDefaultRenderer(CellRendererType.BOOL, BoolCellRendererDefault);\r\n }\r\n GridCellRendererStore.prototype.getDefaultRenderer = function (columnType) {\r\n var cellType = this.getCellType(columnType);\r\n return this.defaultRenderers[CellRendererType[cellType]];\r\n };\r\n GridCellRendererStore.prototype.getDefaultRendererByType = function (rendererType) {\r\n return this.defaultRenderers[CellRendererType[rendererType]];\r\n };\r\n GridCellRendererStore.prototype.setDefaultRenderer = function (cellType, renderer) {\r\n if (renderer) {\r\n this.defaultRenderers[CellRendererType[cellType]] = renderer;\r\n }\r\n };\r\n GridCellRendererStore.prototype.getRenderer = function (name) {\r\n return this.renderers[name];\r\n };\r\n GridCellRendererStore.prototype.registerRenderer = function (name, renderer) {\r\n this.renderers[name] = renderer;\r\n };\r\n GridCellRendererStore.prototype.getCellType = function (dataType) {\r\n switch (dataType) {\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Autoinc:\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Byte:\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Word:\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Currency:\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Float:\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Int32:\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Int64:\r\n return CellRendererType.NUMBER;\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Date:\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].DateTime:\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Time:\r\n return CellRendererType.DATETIME;\r\n case __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Bool:\r\n return CellRendererType.BOOL;\r\n default:\r\n return CellRendererType.STRING;\r\n }\r\n };\r\n return GridCellRendererStore;\r\n}());\r\n\r\n//# sourceMappingURL=easy_grid_cell_renderer.js.map\n\n/***/ }),\n/* 68 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ColumnsBar; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__easyquery_core__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__easydata_ui__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_popup_menu__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_utils__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils_browser_utils__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__renderers_columnsbar_aggrfunc_column_renderer__ = __webpack_require__(166);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__renderers_columnsbar_simple_column_renderer__ = __webpack_require__(69);\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar ColumnsBar = /** @class */ (function (_super) {\r\n __extends(ColumnsBar, _super);\r\n function ColumnsBar(slot, customQuery) {\r\n var _this = _super.call(this, slot) || this;\r\n _this.options = {\r\n isSubQuery: false,\r\n activeColumn: null,\r\n showAddRow: true,\r\n showHeader: true,\r\n showColumnTitles: true,\r\n allowAggrColumns: true,\r\n allowDuplicates: true,\r\n allowCustomExpressions: false,\r\n allowSorting: true,\r\n attrElementFormat: '{entity} {attr}',\r\n titleElementFormat: null,\r\n alwaysShowButtons: false,\r\n accentActiveColumn: true,\r\n menuSearchBoxAfter: 30,\r\n allowDragDrop: true,\r\n menuOptions: {\r\n showSearchBoxAfter: 30,\r\n searchBoxAutoFocus: true,\r\n activateOnMouseOver: true,\r\n adjustHeight: true,\r\n itemRenderedCallback: null\r\n },\r\n attrPlacement: 0,\r\n sortEntities: false,\r\n columnRenderedCallback: null,\r\n customExpressionText: 0,\r\n };\r\n _this.landingSlot = Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div')\r\n .addClass(__WEBPACK_IMPORTED_MODULE_4__utils_utils__[\"b\" /* eqCssPrefix */] + \"-highlight\")\r\n .toDOM();\r\n _this.landingIndex = -1;\r\n _this.sortMenuList = [\r\n { id: 'None', text: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('CmdNotSorted') },\r\n { id: 'Ascending', text: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('CmdAscending') },\r\n { id: 'Descending', text: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('CmdDescending') },\r\n { id: '---', text: '---' }\r\n ];\r\n _this.moveMenuList = [\r\n { id: 'MoveTop', text: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('CmdMoveToFirst') },\r\n { id: 'MoveUp', text: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('CmdMoveToPrev') },\r\n { id: 'MoveDown', text: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('CmdMoveToNext') },\r\n { id: 'MoveBottom', text: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('CmdMoveToLast') }\r\n ];\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(_this.slot)\r\n .addClass(_this.cssPrefix + \"-panel\")\r\n .addClass(__WEBPACK_IMPORTED_MODULE_5__utils_browser_utils__[\"a\" /* browserUtils */].getMobileCssClass());\r\n _this.group = __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"u\" /* WidgetGroup */].Query;\r\n _this.customQuery = customQuery;\r\n return _this;\r\n }\r\n Object.defineProperty(ColumnsBar.prototype, \"cssPrefix\", {\r\n get: function () {\r\n return \"eqjs-cb\";\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ColumnsBar.prototype.getWidgetType = function () {\r\n return 'columnsBar';\r\n };\r\n ColumnsBar.prototype.init = function (context, options) {\r\n var _this = this;\r\n _super.prototype.init.call(this, context, options);\r\n this.setOptions(options);\r\n this.detachQueryObserver();\r\n this.attachQueryObserver();\r\n __WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"j\" /* eqDragManager */].removeDropContainer(this.slot);\r\n if (this.options.allowDragDrop) {\r\n __WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"j\" /* eqDragManager */].registerDropContainer({\r\n element: this.slot,\r\n scopes: [\"entityAttrSort\"],\r\n onDragEnter: function (container, ev) {\r\n _this.showLandingSlot(ev.pageX, ev.pageY);\r\n },\r\n onDragOver: function (container, ev) {\r\n _this.showLandingSlot(ev.pageX, ev.pageY);\r\n },\r\n onDragLeave: function (container, ev) {\r\n ev.dropEffect = __WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"d\" /* DropEffect */].Forbid;\r\n _this.hideLandingSlot();\r\n },\r\n onDrop: function (container, ev) {\r\n var query = _this.getQuery();\r\n var columns = query.getColumns();\r\n var index = columns.indexOf(ev.data.column);\r\n _this.moveColumnCore(index, _this.landingIndex);\r\n }\r\n });\r\n }\r\n };\r\n ColumnsBar.prototype.attachQueryObserver = function () {\r\n var _this = this;\r\n var query = this.getQuery();\r\n this.queryEventCallbackId = query.addChangedCallback(function (event) {\r\n //if something has changed, and that change is related to columns\r\n var edata = event.data;\r\n if (!edata || (edata.part != __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"p\" /* QueryChangePart */].Columns && edata.part != __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"p\" /* QueryChangePart */].All)) {\r\n return;\r\n }\r\n var focusedBefore = document.activeElement;\r\n var isFocusInside = _this.slot.contains(focusedBefore) || focusedBefore == document.body;\r\n switch (edata.action) {\r\n case __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"o\" /* QueryChangeAction */].Modify: {\r\n var columns = edata.changee;\r\n var modifyColumn_1 = function (column) {\r\n var colEl = _this.columnsBlock.querySelector(\"div[data-id='\" + column.id + \"']\");\r\n if (colEl) {\r\n var newEl = _this.renderColumn(column, colEl);\r\n if (isFocusInside) {\r\n var focusElem = newEl.querySelector('a');\r\n if (focusElem) {\r\n focusElem.focus();\r\n }\r\n }\r\n }\r\n };\r\n if (Array.isArray(columns)) {\r\n columns.forEach(function (col) { return modifyColumn_1(col); });\r\n }\r\n else {\r\n modifyColumn_1(columns);\r\n }\r\n break;\r\n }\r\n case __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"o\" /* QueryChangeAction */].Add: {\r\n var columns = edata.changee;\r\n var addColumn_1 = function (column) {\r\n var index = query.getColumns().indexOf(column);\r\n _this.addColumnElement(column, index);\r\n };\r\n if (Array.isArray(columns)) {\r\n columns.forEach(function (col) { return addColumn_1(col); });\r\n }\r\n else {\r\n addColumn_1(columns);\r\n }\r\n break;\r\n }\r\n case __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"o\" /* QueryChangeAction */].Delete: {\r\n var columns = edata.changee;\r\n var deleteColumn_1 = function (column) {\r\n var colEl = _this.columnsBlock.querySelector(\"div[data-id='\" + column.id + \"']\");\r\n if (colEl) {\r\n var next = colEl.nextSibling;\r\n var prev = colEl.previousSibling;\r\n _this.columnsBlock.removeChild(colEl);\r\n if (isFocusInside) {\r\n var focusCond = next || prev || _this.addRowButton;\r\n var focusElem = focusCond.querySelector('a');\r\n if (focusElem) {\r\n focusElem.focus();\r\n }\r\n }\r\n }\r\n };\r\n if (Array.isArray(columns)) {\r\n columns.forEach(function (col) { return deleteColumn_1(col); });\r\n }\r\n else {\r\n deleteColumn_1(columns);\r\n }\r\n break;\r\n }\r\n default:\r\n _this.refresh();\r\n break;\r\n }\r\n });\r\n };\r\n ColumnsBar.prototype.getQuery = function () {\r\n return this.customQuery\r\n ? this.customQuery\r\n : this.getContext().getQuery();\r\n };\r\n ColumnsBar.prototype.destroyCore = function () {\r\n __WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"j\" /* eqDragManager */].removeDropContainer(this.slot);\r\n this.detachQueryObserver();\r\n this.slot.innerHTML = '';\r\n };\r\n ColumnsBar.prototype.detachQueryObserver = function () {\r\n if (this.queryEventCallbackId) {\r\n var query = this.getQuery();\r\n query.removeChangedCallback(this.queryEventCallbackId);\r\n }\r\n };\r\n ColumnsBar.prototype.setOptions = function (options) {\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].assignDeep(this.options, options);\r\n };\r\n ColumnsBar.prototype.showLandingSlot = function (pageX, pageY) {\r\n var elements = this.columnsBlock.querySelectorAll(\"[class*=\" + this.cssPrefix + \"-row]\");\r\n var columnSlots = [];\r\n for (var i = 0; i < elements.length; i++) {\r\n if (elements[i].style.display !== 'none') {\r\n columnSlots.push(elements[i]);\r\n }\r\n }\r\n if (columnSlots.length === 0) {\r\n this.landingIndex = 0;\r\n return;\r\n }\r\n var landingPos = Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"k\" /* getElementAbsolutePos */])(this.landingSlot);\r\n if (pageX >= landingPos.x && pageX <= landingPos.x + this.landingSlot.offsetWidth\r\n && pageY >= landingPos.y && pageY <= landingPos.y + this.landingSlot.offsetHeight) {\r\n return;\r\n }\r\n var newLandingIndex = this.landingIndex;\r\n for (var i = 0; i < columnSlots.length; i++) {\r\n var colSlot = columnSlots[i];\r\n var absPos = Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"k\" /* getElementAbsolutePos */])(colSlot);\r\n var colWidth = colSlot.offsetWidth;\r\n var colHeight = colSlot.offsetHeight;\r\n var paddingWidth = 0.2 * colWidth;\r\n var paddingHeight = 2;\r\n if (pageX >= absPos.x + paddingWidth && pageX <= absPos.x + colWidth - paddingWidth\r\n && pageY >= absPos.y + paddingHeight && pageY <= absPos.y + colHeight - paddingHeight) {\r\n if (pageX > landingPos.x)\r\n newLandingIndex = i + 1;\r\n else\r\n newLandingIndex = i;\r\n break;\r\n }\r\n }\r\n if (newLandingIndex != this.landingIndex || this.landingSlot.parentElement) {\r\n this.landingIndex = newLandingIndex;\r\n if (this.landingIndex <= 0) {\r\n this.columnsBlock.insertBefore(this.landingSlot, columnSlots[0]);\r\n }\r\n if (this.landingIndex < columnSlots.length) {\r\n this.columnsBlock.insertBefore(this.landingSlot, columnSlots[this.landingIndex]);\r\n }\r\n else {\r\n this.columnsBlock.appendChild(this.landingSlot);\r\n }\r\n }\r\n };\r\n ColumnsBar.prototype.hideLandingSlot = function () {\r\n this.landingIndex = -1;\r\n if (this.landingSlot.parentElement) {\r\n this.landingSlot.parentElement.removeChild(this.landingSlot);\r\n }\r\n };\r\n ColumnsBar.prototype.onProcessStartCore = function () {\r\n };\r\n ColumnsBar.prototype.onProcessEndCore = function () {\r\n };\r\n ColumnsBar.prototype.refreshCore = function () {\r\n this.clear();\r\n this.render();\r\n };\r\n ColumnsBar.prototype.clear = function () {\r\n // if (this.addRowButton) {\r\n // this.addRowButton.innerHTML = \"\";\r\n // this.addRowButton.className = \"\";\r\n // }\r\n // this.columnsBlock.innerHTML = \"\";\r\n this.slot.innerHTML = '';\r\n };\r\n ColumnsBar.prototype.renderAddRowButton = function () {\r\n var _this = this;\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(this.addRowButton)\r\n .addClass(__WEBPACK_IMPORTED_MODULE_4__utils_utils__[\"b\" /* eqCssPrefix */] + \"-addrow\", this.cssPrefix + \"-addrow\", __WEBPACK_IMPORTED_MODULE_4__utils_utils__[\"b\" /* eqCssPrefix */] + \"-addrow-empty\")\r\n .addClass(__WEBPACK_IMPORTED_MODULE_5__utils_browser_utils__[\"a\" /* browserUtils */].getMobileCssClass())\r\n .title(__WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('CmdClickToAddColumn'))\r\n .addChild('a', function (builder) { return builder\r\n .attr('href', 'javascript:void(0)')\r\n .on('click', function (e) {\r\n e.preventDefault();\r\n _this.showEntitiesMenu({\r\n anchor: e.target,\r\n selectedIds: null,\r\n itemSelectedCallback: function (data, items) {\r\n var attrid = data.id;\r\n _this.addNewColumn(attrid);\r\n return false;\r\n }\r\n });\r\n }); });\r\n if (__WEBPACK_IMPORTED_MODULE_5__utils_browser_utils__[\"a\" /* browserUtils */].isMobileMode()) {\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(this.columnsBlock)\r\n .addChildElement(this.addRowButton);\r\n }\r\n };\r\n ColumnsBar.prototype.render = function () {\r\n var _this = this;\r\n this.createEntitiesMenu();\r\n if (this.options.allowSorting) {\r\n this.createSortMenu();\r\n }\r\n this.createMoveMenu();\r\n this.columnsBlock =\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div')\r\n .addClass(this.cssPrefix + \"-columns\")\r\n .addClass(__WEBPACK_IMPORTED_MODULE_5__utils_browser_utils__[\"a\" /* browserUtils */].getMobileCssClass())\r\n .toDOM();\r\n if (this.options.showAddRow) {\r\n this.addRowButton =\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div')\r\n .toDOM();\r\n if (__WEBPACK_IMPORTED_MODULE_5__utils_browser_utils__[\"a\" /* browserUtils */].isMobileMode()) {\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(this.columnsBlock)\r\n .addChildElement(this.addRowButton);\r\n }\r\n else {\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(this.slot)\r\n .addChildElement(this.addRowButton);\r\n }\r\n this.renderAddRowButton();\r\n }\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(this.slot)\r\n .addChildElement(this.columnsBlock)\r\n .addChildElement(this.renderColumnButtonsBlockMobile());\r\n var query = this.getQuery();\r\n var columns = query.getColumns();\r\n columns.forEach(function (column, index) {\r\n var slot = _this.renderColumn(column);\r\n _this.columnsBlock.appendChild(slot);\r\n });\r\n };\r\n ColumnsBar.prototype.renderColumnButtonsBlockMobile = function () {\r\n var _this = this;\r\n this.columnButtonsBlockMobileArrow = Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('i').toDOM();\r\n this.columnButtonsBlockMobile = Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div')\r\n .addClass(this.cssPrefix + \"-column-buttonsBlock\")\r\n .addClass(__WEBPACK_IMPORTED_MODULE_5__utils_browser_utils__[\"a\" /* browserUtils */].getMobileCssClass())\r\n .addChildElement(this.columnButtonsBlockMobileArrow)\r\n .hide()\r\n .toDOM();\r\n this.buttonsBlockSortingButton = Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div', this.columnButtonsBlockMobile)\r\n .addClass(this.cssPrefix + \"-column-button\", this.cssPrefix + \"-column-sortbutton-none\")\r\n .toDOM();\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(this.buttonsBlockSortingButton)\r\n .on('touchstart click', function (ev) {\r\n ev.stopPropagation();\r\n _this.currentColumnRenderer.buttonSortingClickHandler.call(_this.currentColumnRenderer, ev, _this.buttonsBlockSortingButton);\r\n _this.toggleColumnPicked(null);\r\n _this.hideColumnButtonsMobile();\r\n return false;\r\n });\r\n this.buttonsBlockTypeButton = Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div', this.columnButtonsBlockMobile)\r\n .addClass(this.cssPrefix + \"-column-button\", this.cssPrefix + \"-column-button-type\")\r\n .on('touchstart click', function (ev) {\r\n ev.stopPropagation();\r\n _this.currentColumnRenderer.buttonTypeClickHandler.call(_this.currentColumnRenderer, ev);\r\n _this.toggleColumnPicked(null);\r\n _this.hideColumnButtonsMobile();\r\n return false;\r\n })\r\n .toDOM();\r\n this.buttonsBlockDeleteButton = Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div', this.columnButtonsBlockMobile)\r\n .addClass(this.cssPrefix + \"-column-button\", this.cssPrefix + \"-column-button-delete\")\r\n .on('touchstart click', function (ev) {\r\n ev.stopPropagation();\r\n _this.currentColumnRenderer.buttonDeleteClickHandler.call(_this.currentColumnRenderer, ev);\r\n _this.toggleColumnPicked(null);\r\n _this.hideColumnButtonsMobile();\r\n return false;\r\n })\r\n .toDOM();\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div', this.columnButtonsBlockMobile)\r\n .addClass(this.cssPrefix + \"-column-button-close-block\")\r\n .on('touchstart click', function () {\r\n _this.toggleColumnPicked(null);\r\n _this.hideColumnButtonsMobile();\r\n });\r\n return this.columnButtonsBlockMobile;\r\n };\r\n ColumnsBar.prototype.showColumnButtonsMobile = function (column, columnRenderer, columnElement) {\r\n this.currentActiveColumn = column;\r\n this.currentColumnRenderer = columnRenderer;\r\n //calculate coordinates\r\n var rect = columnElement.getBoundingClientRect();\r\n var top = columnElement.offsetTop;\r\n var left = columnElement.offsetLeft;\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(this.columnButtonsBlockMobileArrow)\r\n .setStyle('left', (left + rect.width / 2).toString() + 'px');\r\n if (rect.top > 100) {\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(this.columnButtonsBlockMobile)\r\n .removeClass('show-below')\r\n .setStyle('top', (top - rect.height).toString() + 'px');\r\n }\r\n else {\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(this.columnButtonsBlockMobile)\r\n .addClass('show-below')\r\n .setStyle('top', (top + rect.height).toString() + 'px');\r\n }\r\n //show/hide separate buttons\r\n if (column.enabled && !column.isReadOnly()) {\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(this.buttonsBlockSortingButton).show();\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(this.buttonsBlockTypeButton).show();\r\n }\r\n else {\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(this.buttonsBlockSortingButton).hide();\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(this.buttonsBlockTypeButton).hide();\r\n }\r\n //show\r\n if (column.isReadOnly()) {\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(this.columnButtonsBlockMobile).hide();\r\n }\r\n else {\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(this.columnButtonsBlockMobile).show();\r\n }\r\n };\r\n ColumnsBar.prototype.hideColumnButtonsMobile = function () {\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(this.columnButtonsBlockMobile).hide();\r\n };\r\n ColumnsBar.prototype.renderColumn = function (column, elem) {\r\n var _this = this;\r\n var renderer = this.getColumnRenderer(column, elem);\r\n if (renderer) {\r\n var columnSlot_1 = renderer.render();\r\n renderer.onShowButtonsMobile = function () {\r\n _this.showColumnButtonsMobile(column, renderer, columnSlot_1);\r\n };\r\n renderer.onHideButtonsMobile = function () {\r\n _this.hideColumnButtonsMobile();\r\n };\r\n return columnSlot_1;\r\n }\r\n return null;\r\n };\r\n ColumnsBar.prototype.getColumnRenderer = function (column, slot) {\r\n switch (column.expr.tag) {\r\n case __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"k\" /* ExprTag */].AggregateFunction:\r\n return new __WEBPACK_IMPORTED_MODULE_6__renderers_columnsbar_aggrfunc_column_renderer__[\"a\" /* AggrFuncColumnRendererCB */](this, column, slot);\r\n case __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"k\" /* ExprTag */].CustomSql:\r\n // return new CustomSqlColumnRendererCB(this, column, slot);\r\n case __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"k\" /* ExprTag */].EntityAttribute:\r\n case __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"k\" /* ExprTag */].ParentEntityAttribute:\r\n return new __WEBPACK_IMPORTED_MODULE_7__renderers_columnsbar_simple_column_renderer__[\"a\" /* SimpleColumnRendererCB */](this, column, slot);\r\n }\r\n return null;\r\n };\r\n ColumnsBar.prototype.addNewColumn = function (attrId, index) {\r\n var _this = this;\r\n var model = this.getContext().getModel();\r\n var query = this.getQuery();\r\n var getColumnByAttrId = function (attrid) {\r\n var attribute = model.getAttributeById(attrid);\r\n if (!attribute) {\r\n return null;\r\n }\r\n if (!attribute.useInResult) {\r\n if (attribute.lookupAttr) {\r\n attrid = attribute.lookupAttr;\r\n attribute = model.getAttributeById(attrid);\r\n if (!attribute || !attribute.useInResult) {\r\n return null;\r\n }\r\n }\r\n else\r\n return null;\r\n }\r\n var column = query.createColumn();\r\n column.caption = _this.getDefaultColumnCaption(attribute);\r\n column.sorting = __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"r\" /* SortDirection */].None;\r\n column.sortIndex = -1;\r\n column.expr.tag = __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"k\" /* ExprTag */].EntityAttribute;\r\n //column.expr.id = attrid;\r\n column.expr.setValue(attrid, true);\r\n column.params.concat(attribute.params);\r\n return column;\r\n };\r\n if (!this.getQuery()) {\r\n return;\r\n }\r\n var colToAdd, col;\r\n if (Array.isArray(attrId)) {\r\n colToAdd = [];\r\n for (var i = 0; i < attrId.length; i++) {\r\n col = getColumnByAttrId(attrId[i]);\r\n if (col) {\r\n colToAdd.push(col);\r\n }\r\n }\r\n }\r\n else\r\n colToAdd = getColumnByAttrId(attrId);\r\n this.addColumn(colToAdd, index);\r\n return colToAdd;\r\n };\r\n ColumnsBar.prototype.toggleColumnPicked = function (column) {\r\n var el;\r\n var isActive;\r\n if (column) {\r\n el = this.columnsBlock.querySelector(\"div[data-id=\" + column.id + \"]\");\r\n if (el) {\r\n isActive = el.classList.contains('active');\r\n }\r\n }\r\n //clear 'active' in all rows\r\n var rows = this.columnsBlock.querySelectorAll(\".\" + this.cssPrefix + \"-row\");\r\n for (var i = 0; i < rows.length; i++) {\r\n var row = rows[i];\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(row)\r\n .removeClass('active')\r\n .data(\"show-buttons\", null);\r\n }\r\n if (el && !isActive) {\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(el)\r\n .addClass('active')\r\n .data(\"show-buttons\", \"\");\r\n }\r\n };\r\n ColumnsBar.prototype.addColumn = function (column, index) {\r\n var query = this.getQuery();\r\n if (!query) {\r\n return;\r\n }\r\n if (Array.isArray(column))\r\n column = this.checkColumnsArray(column);\r\n else\r\n column = this.checkColumn(column);\r\n if (!column || (Array.isArray(column) && column.length == 0)) {\r\n return;\r\n }\r\n query.addColumnObj(column, index, self);\r\n query.fireChangedEvent({\r\n part: __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"p\" /* QueryChangePart */].Columns,\r\n action: __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"o\" /* QueryChangeAction */].Add,\r\n changee: column\r\n });\r\n };\r\n //adds one column to the bar on the specified position\r\n ColumnsBar.prototype.addColumnElement = function (column, index) {\r\n var rows = this.columnsBlock.querySelectorAll(\"[class*=\" + this.cssPrefix + \"-row]\");\r\n var newColBlock = this.renderColumn(column);\r\n if (rows.length > 0) {\r\n if (index < rows.length - 1) {\r\n this.columnsBlock.insertBefore(newColBlock, rows[index]);\r\n }\r\n else {\r\n this.columnsBlock.appendChild(newColBlock);\r\n }\r\n }\r\n else {\r\n this.columnsBlock.appendChild(newColBlock);\r\n }\r\n if (this.options.columnRenderedCallback) {\r\n this.options.columnRenderedCallback(newColBlock);\r\n }\r\n };\r\n ColumnsBar.prototype.checkColumnsArray = function (cols) {\r\n var i = 0, len = cols.length;\r\n var result = [];\r\n for (var i_1 = 0; i_1 < len; i_1++) {\r\n if (this.checkColumn(cols[i_1]))\r\n result.push(cols[i_1]);\r\n }\r\n return result;\r\n };\r\n ColumnsBar.prototype.checkColumn = function (col) {\r\n if (!this.options.allowDuplicates) {\r\n var query = this.getQuery();\r\n var columns = query.getColumns();\r\n var colJson = JSON.stringify(col.expr);\r\n for (var i = 0; i < columns.length; i++) {\r\n var qcolJson = JSON.stringify(columns[i].expr);\r\n if (qcolJson === colJson) {\r\n return null;\r\n }\r\n }\r\n }\r\n return col;\r\n };\r\n ColumnsBar.prototype.getDefaultColumnCaption = function (attr) {\r\n var format = this.options.titleElementFormat || this.options.attrElementFormat;\r\n var model = this.getContext().getModel();\r\n return model.getAttributeText(attr, format);\r\n };\r\n ColumnsBar.prototype.getColumnsBlock = function () {\r\n return this.columnsBlock;\r\n };\r\n ColumnsBar.prototype.showEntitiesMenu = function (menuOptions) {\r\n this.entitiesMenu && this.entitiesMenu.showMenu(menuOptions);\r\n };\r\n ColumnsBar.prototype.createEntitiesMenu = function () {\r\n var model = this.getContext().getModel();\r\n if (!model || model.isEmpty())\r\n return null;\r\n var menuId = this.slot.id;\r\n if (menuId) {\r\n menuId += '-EntitiesMenu';\r\n }\r\n var entitiesList = model.getEntitiesTree({ addUIC: false, addUIR: true, addUIS: false, attrPlacement: this.options.attrPlacement, sortEntities: this.options.sortEntities });\r\n var options = { items: entitiesList, adjustHeight: this.options.adjustEntitiesMenuHeight, id: menuId, domWriteItemsId: this.options.domWriteItemsId };\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].assign(options, this.options.menuOptions);\r\n this.entitiesMenu = new __WEBPACK_IMPORTED_MODULE_3__utils_popup_menu__[\"a\" /* PopupMenu */](options);\r\n };\r\n ColumnsBar.prototype.createSortMenu = function () {\r\n var model = this.getContext().getModel();\r\n if (!model || model.isEmpty())\r\n return null;\r\n var menuId = this.slot.id;\r\n if (menuId) {\r\n menuId += '-SortMenu';\r\n }\r\n var items = this.sortMenuList.concat(this.moveMenuList);\r\n var menuOptions = { \"items\": items, id: menuId, domWriteItemsId: this.options.domWriteItemsId };\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].assign(menuOptions, this.options.menuOptions);\r\n menuOptions.searchBoxAlwaysShown = false;\r\n this.sortMenu = new __WEBPACK_IMPORTED_MODULE_3__utils_popup_menu__[\"a\" /* PopupMenu */](menuOptions);\r\n };\r\n ColumnsBar.prototype.createMoveMenu = function () {\r\n var model = this.getContext().getModel();\r\n if (!model || model.isEmpty())\r\n return null;\r\n var menuId = this.slot.id;\r\n if (menuId) {\r\n menuId += '-MoveMenu';\r\n }\r\n var items = this.moveMenuList;\r\n var menuOptions = { \"items\": items, id: menuId, domWriteItemsId: this.options.domWriteItemsId };\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].assign(menuOptions, this.options.menuOptions);\r\n this.moveMenu = new __WEBPACK_IMPORTED_MODULE_3__utils_popup_menu__[\"a\" /* PopupMenu */](menuOptions);\r\n menuOptions.searchBoxAlwaysShown = false;\r\n };\r\n ColumnsBar.prototype.moveColumn = function (column, direction) {\r\n var query = this.getQuery();\r\n var columns = query.getColumns();\r\n var index = columns.indexOf(column);\r\n if (index >= 0) {\r\n switch (direction) {\r\n case 'MoveTop':\r\n if (index == 0) {\r\n return;\r\n }\r\n this.moveColumnCore(index, 0);\r\n break;\r\n case 'MoveUp':\r\n if (index == 0) {\r\n return;\r\n }\r\n this.moveColumnCore(index, index - 1);\r\n break;\r\n case 'MoveDown':\r\n if (index == columns.length - 1) {\r\n return;\r\n }\r\n this.moveColumnCore(index, index + 1);\r\n break;\r\n case 'MoveBottom':\r\n if (index == columns.length - 1) {\r\n return;\r\n }\r\n this.moveColumnCore(index, columns.length - 1);\r\n break;\r\n }\r\n ;\r\n }\r\n };\r\n ColumnsBar.prototype.moveColumnCore = function (index1, index2) {\r\n var query = this.getQuery();\r\n if (!query)\r\n return;\r\n var rows = this.columnsBlock.querySelectorAll(\"[class*=\" + this.cssPrefix + \"-row]\");\r\n var colToMove = rows[index1];\r\n if (index2 <= 0) {\r\n this.columnsBlock.insertBefore(colToMove, this.columnsBlock[0]);\r\n }\r\n else if (index2 < rows.length) {\r\n this.columnsBlock.insertBefore(colToMove, rows[index2]);\r\n }\r\n else {\r\n this.columnsBlock.appendChild(colToMove);\r\n }\r\n query.moveColumn(index1, index2);\r\n query.fireColumnsChangedEvent(__WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"o\" /* QueryChangeAction */].All);\r\n };\r\n ColumnsBar.prototype.areCustomExpressionsAllowed = function () {\r\n var query = this.getQuery();\r\n return query.isEx() && this.options.allowCustomExpressions;\r\n };\r\n ColumnsBar.globalCounter = 0;\r\n return ColumnsBar;\r\n}(__WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"t\" /* Widget */]));\r\n\r\n//# sourceMappingURL=columns_bar.js.map\n\n/***/ }),\n/* 69 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return SimpleColumnRendererCB; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easyquery_core__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__easydata_ui__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__column_renderer__ = __webpack_require__(167);\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\n\r\n\r\nvar SimpleColumnRendererCB = /** @class */ (function (_super) {\r\n __extends(SimpleColumnRendererCB, _super);\r\n function SimpleColumnRendererCB() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SimpleColumnRendererCB.prototype.getClassesToAdd = function () {\r\n return _super.prototype.getClassesToAdd.call(this) + \" \" + this.cssPrefix + \"-row \" + this.cssPrefix + \"-row-column-entattr\";\r\n };\r\n SimpleColumnRendererCB.prototype.baseExpressionItemSelectedCallback = function (data, item) {\r\n var attrid = data.id;\r\n //this.column.expr.id = attrid;\r\n this.column.expr.setValue(attrid, true);\r\n this.column.caption = '';\r\n this.refresh();\r\n this.fireColumnChanged();\r\n };\r\n SimpleColumnRendererCB.prototype.getUIS = function () {\r\n var arg = this.column.expr.args[0];\r\n if (arg) {\r\n var model = this.bar.getContext().getModel();\r\n return model.checkAttrProperty(arg.value, \"useInSorting\");\r\n }\r\n else {\r\n return true;\r\n }\r\n };\r\n SimpleColumnRendererCB.prototype.changeTypeToCustomSql = function () {\r\n var query = this.column.getQuery();\r\n query.changeColumnType(this.column, __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"k\" /* ExprTag */].CustomSql);\r\n this.fireColumnChanged();\r\n };\r\n SimpleColumnRendererCB.prototype.changeTypeToAggr = function (funcId) {\r\n var query = this.column.getQuery();\r\n query.changeColumnType(this.column, __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"k\" /* ExprTag */].AggregateFunction, { funcId: funcId });\r\n this.fireColumnChanged();\r\n };\r\n SimpleColumnRendererCB.prototype.changeTypeHandler = function (ev) {\r\n var _this = this;\r\n this.functionMenu.showMenu({\r\n anchor: ev.target,\r\n selectedIds: null,\r\n itemSelectedCallback: function (data, items) {\r\n if (data.id == \"CUSTOMSQL\") {\r\n _this.changeTypeToCustomSql();\r\n }\r\n else {\r\n _this.changeTypeToAggr(data.id);\r\n }\r\n return false;\r\n },\r\n menuClosedCallback: function () {\r\n _this.keepShowingButtons = false;\r\n if (!_this.isMouseOverBlock) {\r\n _this.element.dispatchEvent(Object(__WEBPACK_IMPORTED_MODULE_1__easydata_ui__[\"h\" /* createBrowserEvent */])('mouseleave'));\r\n }\r\n }\r\n });\r\n };\r\n return SimpleColumnRendererCB;\r\n}(__WEBPACK_IMPORTED_MODULE_2__column_renderer__[\"a\" /* ColumnRendererCB */]));\r\n\r\n//# sourceMappingURL=simple_column_renderer.js.map\n\n/***/ }),\n/* 70 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export ConditionAction */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ConditionRenderer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return SimpleConditionRenderer; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__easyquery_core__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__easydata_ui__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__text_renderer__ = __webpack_require__(169);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_browser_utils__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__types_qp_editable_part__ = __webpack_require__(17);\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar ConditionAction;\r\n(function (ConditionAction) {\r\n ConditionAction[ConditionAction[\"AddCondition\"] = 0] = \"AddCondition\";\r\n ConditionAction[ConditionAction[\"AddGroup\"] = 1] = \"AddGroup\";\r\n ConditionAction[ConditionAction[\"Enable\"] = 2] = \"Enable\";\r\n ConditionAction[ConditionAction[\"Delete\"] = 4] = \"Delete\";\r\n ConditionAction[ConditionAction[\"Menu\"] = 5] = \"Menu\";\r\n ConditionAction[ConditionAction[\"Parameterized\"] = 6] = \"Parameterized\";\r\n ConditionAction[ConditionAction[\"InJoin\"] = 7] = \"InJoin\";\r\n})(ConditionAction || (ConditionAction = {}));\r\nvar ConditionRenderer = /** @class */ (function () {\r\n function ConditionRenderer(panel, condition, slot) {\r\n this.panel = panel;\r\n this.condition = condition;\r\n this.element = slot || Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div').toDOM();\r\n }\r\n Object.defineProperty(ConditionRenderer.prototype, \"cssPrefix\", {\r\n get: function () {\r\n return 'eqjs-qp';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ConditionRenderer.prototype.refresh = function () {\r\n this.render();\r\n };\r\n ConditionRenderer.prototype.clear = function () {\r\n if (this.element) {\r\n this.element.className = '';\r\n this.element.removeAttribute('data-id');\r\n this.element.removeAttribute('style');\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(this.element)\r\n .html('');\r\n }\r\n // const elClone = this.element.cloneNode(true);\r\n // this.element.parentNode.replaceChild(elClone, el);\r\n };\r\n ConditionRenderer.prototype.render = function (autoAppear) {\r\n this.clear();\r\n //this.preRender();\r\n this.coreRender(autoAppear);\r\n if (this.panel.options.onConditionRendered) {\r\n this.panel.options.onConditionRendered(this.condition, this.element);\r\n }\r\n return this.element;\r\n };\r\n ConditionRenderer.prototype.isEditable = function () {\r\n return this.condition.enabled && !this.condition.isReadOnly();\r\n };\r\n return ConditionRenderer;\r\n}());\r\n\r\nvar SimpleConditionRenderer = /** @class */ (function (_super) {\r\n __extends(SimpleConditionRenderer, _super);\r\n function SimpleConditionRenderer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SimpleConditionRenderer.prototype.getClassesToAdd = function () {\r\n var result = this.cssPrefix + \"-row \" + this.cssPrefix + \"-row-condition\";\r\n result += this.condition.isInJoin() ? \" \" + this.cssPrefix + \"-condition-injoin\" : '';\r\n result += this.condition.isParameterized() ? \" \" + this.cssPrefix + \"-condition-parameterized\" : '';\r\n if (!__WEBPACK_IMPORTED_MODULE_4__utils_browser_utils__[\"a\" /* browserUtils */].isMobileMode()) {\r\n var level = this.condition.getLevel();\r\n if (level > 0)\r\n result += \" \" + this.cssPrefix + \"-level-\" + level;\r\n }\r\n result += this.condition.enabled ? '' : \" \" + this.cssPrefix + \"-disabled\";\r\n if (this.condition.enabled) {\r\n result += this.condition.isReadOnly() ? \" \" + this.cssPrefix + \"-readonly\" : '';\r\n }\r\n return result;\r\n };\r\n SimpleConditionRenderer.prototype.coreRender = function (autoAppear) {\r\n var _this = this;\r\n var model = this.panel.getContext().getModel();\r\n var operator = model.getOperatorById(this.condition.getOperatorId());\r\n var arrFormat = __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"w\" /* equtils */].parseOperatorFormat(operator);\r\n var item = null;\r\n var arrLength = arrFormat.length;\r\n var builder = Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div');\r\n if (this.element && this.element.parentNode) {\r\n this.element.parentNode\r\n .replaceChild(builder.toDOM(), this.element);\r\n }\r\n this.element = builder.toDOM();\r\n builder\r\n .addClass(this.getClassesToAdd())\r\n .addClass(__WEBPACK_IMPORTED_MODULE_4__utils_browser_utils__[\"a\" /* browserUtils */].getMobileCssClass())\r\n .data('id', this.condition.id)\r\n .data('condrow', '')\r\n .addChildElement(this.renderCheckbox())\r\n .addChildElement(this.renderConjunction());\r\n var mayAppear = autoAppear;\r\n var _loop_1 = function (idx) {\r\n item = arrFormat[idx];\r\n if (item.type === 'operator') {\r\n var renderer = this_1.panel.getOperatorRenderer(this_1.condition, item.text);\r\n if (renderer) {\r\n builder.addChildElement(renderer.render());\r\n }\r\n }\r\n else if (item.type === 'expression') {\r\n var toAppear = mayAppear && (item.index > 0);\r\n var exprRenderer_1 = this_1.panel.getExpressionRenderer(this_1.condition.expressions[item.index]);\r\n if (exprRenderer_1) {\r\n var el = exprRenderer_1.render(toAppear);\r\n builder.addChildElement(el);\r\n setTimeout(function () {\r\n exprRenderer_1.adjustWidth();\r\n }, 100);\r\n }\r\n mayAppear = mayAppear && !toAppear;\r\n }\r\n else if (item.type === 'text') {\r\n builder.addChildElement(new __WEBPACK_IMPORTED_MODULE_3__text_renderer__[\"a\" /* TextRenderer */](this_1.panel, item.text).render());\r\n }\r\n };\r\n var this_1 = this;\r\n for (var idx = 0; idx < arrLength; idx++) {\r\n _loop_1(idx);\r\n }\r\n if (this.panel.options.accentActiveCondition || __WEBPACK_IMPORTED_MODULE_4__utils_browser_utils__[\"a\" /* browserUtils */].isMobileMode()) {\r\n builder.on('click', function (ev) {\r\n ev.stopPropagation();\r\n _this.panel.toggleConditionPicked(_this.condition);\r\n _this.adjustButtonsVisibility();\r\n if (!__WEBPACK_IMPORTED_MODULE_4__utils_browser_utils__[\"a\" /* browserUtils */].isMobileMode()) {\r\n _this.element.dispatchEvent(Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"h\" /* createBrowserEvent */])(\"mouseenter\"));\r\n }\r\n return false;\r\n });\r\n }\r\n builder\r\n .addChildElement(this.renderButtonsBlock());\r\n if (!__WEBPACK_IMPORTED_MODULE_4__utils_browser_utils__[\"a\" /* browserUtils */].isMobileMode()) {\r\n builder\r\n .on('mouseenter', function (event) {\r\n _this.isMouseOverBlock = true;\r\n _this.enterButtonBlock();\r\n event.stopPropagation();\r\n return false;\r\n })\r\n .on('mouseleave', function (event) {\r\n _this.isMouseOverBlock = false;\r\n if (!_this.keepShowingButtons && Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(_this.buttonsBlock).isVisible()) {\r\n _this.leaveButtonBlock();\r\n }\r\n event.stopPropagation();\r\n return false;\r\n });\r\n }\r\n };\r\n SimpleConditionRenderer.prototype.setConditionParameterized = function (value) {\r\n this.condition.setParameterized(value);\r\n this.condition.fireChangedEvent();\r\n };\r\n SimpleConditionRenderer.prototype.setConditionInJoin = function (value) {\r\n this.condition.setInJoin(value);\r\n this.condition.fireChangedEvent();\r\n };\r\n SimpleConditionRenderer.prototype.getConditionMenu = function () {\r\n return this.panel.getConditionMenu();\r\n };\r\n SimpleConditionRenderer.prototype.renderConjunction = function () {\r\n var parent = this.condition.getParent();\r\n if (!parent)\r\n return null;\r\n var isFirstConditionInGroup = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].findItemIndexById(parent.getConditions(), this.condition.id) == 0;\r\n if (this.panel.options.showConjunctions && !isFirstConditionInGroup) {\r\n var linkTypeStr = __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"w\" /* equtils */].linkTypeToStr(this.condition.getParent().linkType);\r\n var conjuctionText = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText(\"Conj\" + linkTypeStr);\r\n return Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(\"span\")\r\n .text(conjuctionText)\r\n .title(conjuctionText)\r\n .addClass(this.cssPrefix + \"-condelement \" + this.cssPrefix + \"-condition-conjuction\")\r\n .toDOM();\r\n }\r\n return null;\r\n };\r\n SimpleConditionRenderer.prototype.renderCheckbox = function () {\r\n var _this = this;\r\n if (this.panel.options.showCheckboxes && !this.condition.isReadOnly()) {\r\n return Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(\"div\")\r\n .title(__WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('CmdToggleEnable'))\r\n .attr('tabIndex', '0')\r\n .addClass(this.cssPrefix + \"-condelement \" + this.cssPrefix + \"-condition-checkbox\")\r\n .addClass(\"\" + (this.condition.enabled ? 'enabled' : ''))\r\n .on('click', function () {\r\n _this.condition.enabled = !_this.condition.enabled;\r\n _this.condition.fireChangedEvent();\r\n return false;\r\n })\r\n .on('keypress', function (evt) { if ([13, 32].includes(evt.keyCode)) {\r\n evt.target.click();\r\n } })\r\n .toDOM();\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n SimpleConditionRenderer.prototype.isConditionActive = function () {\r\n return this.element.classList.contains(\"active\");\r\n };\r\n SimpleConditionRenderer.prototype.hideButtons = function () {\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(this.element).data(\"show-buttons\", null);\r\n };\r\n SimpleConditionRenderer.prototype.showButtons = function () {\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(this.element).data(\"show-buttons\", \"\");\r\n };\r\n SimpleConditionRenderer.prototype.adjustButtonsVisibility = function () {\r\n if (this.panel.options.alwaysShowButtonsInConditions\r\n || (this.panel.options.accentActiveCondition && this.isConditionActive())) {\r\n this.showButtons();\r\n }\r\n };\r\n SimpleConditionRenderer.prototype.enterButtonBlock = function () {\r\n this.showButtons();\r\n };\r\n SimpleConditionRenderer.prototype.leaveButtonBlock = function () {\r\n if (!this.panel.options.alwaysShowButtonsInConditions\r\n && (!this.isConditionActive() || this.panel.options.accentActiveCondition)) {\r\n this.hideButtons();\r\n }\r\n };\r\n SimpleConditionRenderer.prototype.conditionMenuHandler = function (action, evt) {\r\n var _this = this;\r\n switch (action) {\r\n case ConditionAction.AddCondition:\r\n if (!this.condition.isGroup())\r\n return;\r\n var entMenu = this.panel.getEntitiesMenu();\r\n if (entMenu) {\r\n entMenu.showMenu({\r\n anchor: evt.target,\r\n itemSelectedCallback: function (item) {\r\n var query = _this.panel.getQuery();\r\n var descr = {\r\n parent: _this.condition,\r\n attributeId: item.id\r\n };\r\n var cond = query.addSimpleCondition(descr);\r\n if (cond) {\r\n query.fireConditionsChangedEvent(__WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"o\" /* QueryChangeAction */].Add, cond);\r\n }\r\n return false;\r\n }\r\n });\r\n }\r\n break;\r\n case ConditionAction.AddGroup:\r\n if (!this.condition.isGroup())\r\n return;\r\n var query = this.panel.getQuery();\r\n var descr = {\r\n parent: this.condition\r\n };\r\n var group = this.panel.getQuery().addConditionGroup(descr);\r\n if (group) {\r\n query.fireConditionsChangedEvent(__WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"o\" /* QueryChangeAction */].Add, group);\r\n }\r\n break;\r\n case ConditionAction.Enable:\r\n this.condition.enabled = !this.condition.enabled;\r\n this.condition.fireChangedEvent();\r\n break;\r\n case ConditionAction.Delete:\r\n var parent_1 = this.condition.getParent();\r\n if (!parent_1)\r\n return;\r\n var conditions = parent_1.getConditions();\r\n var idx = conditions.indexOf(this.condition);\r\n if (idx >= 0) {\r\n conditions.splice(idx, 1);\r\n this.condition.getQuery().fireConditionsChangedEvent(__WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"o\" /* QueryChangeAction */].Delete, this.condition);\r\n }\r\n break;\r\n case ConditionAction.Menu:\r\n var condMenu = this.getConditionMenu();\r\n this.keepShowingButtons = true;\r\n condMenu.showMenu({\r\n anchor: evt.target,\r\n selectedIds: this.getConditionMenuSelectedItems(),\r\n itemSelectedCallback: function (item) {\r\n var action;\r\n switch (item.id) {\r\n case \"enable\":\r\n action = ConditionAction.Enable;\r\n break;\r\n case \"delete\":\r\n action = ConditionAction.Delete;\r\n break;\r\n case \"param\":\r\n action = ConditionAction.Parameterized;\r\n break;\r\n case \"inJoin\":\r\n action = ConditionAction.InJoin;\r\n break;\r\n case \"addCondition\":\r\n action = ConditionAction.AddCondition;\r\n break;\r\n case \"addGroup\":\r\n action = ConditionAction.AddGroup;\r\n break;\r\n }\r\n _this.conditionMenuHandler(action, evt);\r\n },\r\n itemFilterCallback: function (item) {\r\n var result = _this.condition.enabled || item.id === \"enable\" || item.id === \"delete\";\r\n if (item.id === \"enable\") {\r\n var parent_2 = _this.condition.getParent();\r\n result = result && parent_2 && parent_2.enabled;\r\n }\r\n else if (item.id === \"delete\") {\r\n result = result && ((_this.panel.options.editableParts & __WEBPACK_IMPORTED_MODULE_5__types_qp_editable_part__[\"a\" /* QPEditablePart */].Removal) === __WEBPACK_IMPORTED_MODULE_5__types_qp_editable_part__[\"a\" /* QPEditablePart */].Removal);\r\n }\r\n else if (item.id === \"addGroup\" || item.id === \"addCondition\") {\r\n result = result && ((_this.panel.options.editableParts & __WEBPACK_IMPORTED_MODULE_5__types_qp_editable_part__[\"a\" /* QPEditablePart */].Addition) === __WEBPACK_IMPORTED_MODULE_5__types_qp_editable_part__[\"a\" /* QPEditablePart */].Addition);\r\n }\r\n return result;\r\n },\r\n menuClosedCallback: function () {\r\n _this.keepShowingButtons = false;\r\n if (!_this.isMouseOverBlock)\r\n _this.leaveButtonBlock();\r\n }\r\n });\r\n break;\r\n case ConditionAction.Parameterized:\r\n this.condition.setParameterized(!this.condition.isParameterized());\r\n this.condition.fireChangedEvent();\r\n break;\r\n case ConditionAction.InJoin:\r\n this.condition.setInJoin(!this.condition.isInJoin());\r\n this.condition.fireChangedEvent();\r\n break;\r\n }\r\n evt.stopPropagation();\r\n return false;\r\n };\r\n SimpleConditionRenderer.prototype.getConditionMenuSelectedItems = function () {\r\n var arrSelected = [];\r\n if (this.condition.enabled) {\r\n arrSelected.push(\"enable\");\r\n }\r\n ;\r\n if (this.condition.isParameterized()) {\r\n arrSelected.push(\"param\");\r\n }\r\n ;\r\n if (this.condition.isInJoin()) {\r\n arrSelected.push(\"inJoin\");\r\n }\r\n ;\r\n return arrSelected;\r\n };\r\n SimpleConditionRenderer.prototype.renderButtonsBlock = function () {\r\n var _this = this;\r\n var onButtonMouseEnter = function (evt) {\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(evt.target)\r\n .addClass(_this.cssPrefix + \"-condition-button-active\");\r\n };\r\n var onButtonMouseLeave = function (evt) {\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(evt.target)\r\n .removeClass(_this.cssPrefix + \"-condition-button-active\");\r\n };\r\n var builder = Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])(\"div\")\r\n .addClass(this.cssPrefix + \"-condition-buttonsBlock\")\r\n .addClass(__WEBPACK_IMPORTED_MODULE_4__utils_browser_utils__[\"a\" /* browserUtils */].getMobileCssClass());\r\n this.buttonsBlock = builder.toDOM();\r\n if (this.condition.isReadOnly()) {\r\n return this.buttonsBlock;\r\n }\r\n var buttonsToShow = this.getButtonsToShow();\r\n if (buttonsToShow.indexOf(\"addCondition\") >= 0 && this.condition.enabled\r\n && ((this.panel.options.editableParts & __WEBPACK_IMPORTED_MODULE_5__types_qp_editable_part__[\"a\" /* QPEditablePart */].Addition) == __WEBPACK_IMPORTED_MODULE_5__types_qp_editable_part__[\"a\" /* QPEditablePart */].Addition)) {\r\n builder.addChild(\"div\", function (b) {\r\n b.addClass(_this.cssPrefix + \"-button-placeholder\")\r\n .data(\"btnplaceholder\", \"\")\r\n .addChild(\"div\", function (b) {\r\n b.addClass(_this.cssPrefix + \"-condition-button \" + _this.cssPrefix + \"-condition-button-addCondition\")\r\n .attr('tabIndex', '0')\r\n .data(\"button\", \"\")\r\n .title(__WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('CmdAddCondition'))\r\n .on('click', function (evt) { return _this.conditionMenuHandler(ConditionAction.AddCondition, evt); })\r\n .on('keypress', function (evt) { if (evt.keyCode == 13) {\r\n evt.target.click();\r\n } })\r\n .on('mouseenter', onButtonMouseEnter)\r\n .on('mouseleave', onButtonMouseLeave);\r\n });\r\n });\r\n }\r\n ;\r\n var showAddGroupBtn = buttonsToShow.indexOf(\"addGroup\") >= 0 || buttonsToShow.indexOf(\"addPredicate\") >= 0;\r\n if (showAddGroupBtn && this.condition.enabled\r\n && ((this.panel.options.editableParts & __WEBPACK_IMPORTED_MODULE_5__types_qp_editable_part__[\"a\" /* QPEditablePart */].Addition) == __WEBPACK_IMPORTED_MODULE_5__types_qp_editable_part__[\"a\" /* QPEditablePart */].Addition)) {\r\n builder.addChild(\"div\", function (b) {\r\n b.addClass(_this.cssPrefix + \"-button-placeholder\")\r\n .data(\"btnplaceholder\", \"\")\r\n .addChild(\"div\", function (b) {\r\n b.addClass(_this.cssPrefix + \"-condition-button \" + _this.cssPrefix + \"-condition-button-addPredicate\")\r\n .attr('tabIndex', '0')\r\n .data(\"button\", \"\")\r\n .title(__WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('CmdAddCondGroup'))\r\n .on('click', function (evt) { return _this.conditionMenuHandler(ConditionAction.AddGroup, evt); })\r\n .on('keypress', function (evt) { if (evt.keyCode == 13) {\r\n evt.target.click();\r\n } })\r\n .on('mouseenter', onButtonMouseEnter)\r\n .on('mouseleave', onButtonMouseLeave);\r\n });\r\n });\r\n }\r\n ;\r\n if (this.getButtonsToShow().indexOf(\"enable\") >= 0 && this.condition.getParent() && this.condition.getParent().enabled) {\r\n builder.addChild(\"div\", function (b) {\r\n b.addClass(_this.cssPrefix + \"-button-placeholder\")\r\n .data(\"btnplaceholder\", \"\")\r\n .addChild(\"div\", function (b) {\r\n b.addClass(_this.cssPrefix + \"-condition-button \" + _this.cssPrefix + \"-condition-button-enable\")\r\n .attr('tabIndex', '0')\r\n .data(\"button\", \"\")\r\n .title(__WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('CmdToggleEnable'))\r\n .addClass(_this.condition.enabled ? 'enabled' : '')\r\n .on('click', function (evt) { return _this.conditionMenuHandler(ConditionAction.Enable, evt); })\r\n .on('keypress', function (evt) { if (evt.keyCode == 13) {\r\n evt.target.click();\r\n } })\r\n .on('mouseenter', onButtonMouseEnter)\r\n .on('mouseleave', onButtonMouseLeave);\r\n });\r\n });\r\n }\r\n ;\r\n if (this.getButtonsToShow().indexOf(\"delete\") >= 0 && this.condition.getParent()\r\n && ((this.panel.options.editableParts & __WEBPACK_IMPORTED_MODULE_5__types_qp_editable_part__[\"a\" /* QPEditablePart */].Removal) == __WEBPACK_IMPORTED_MODULE_5__types_qp_editable_part__[\"a\" /* QPEditablePart */].Removal)) {\r\n builder.addChild(\"div\", function (b) {\r\n b.addClass(_this.cssPrefix + \"-button-placeholder\")\r\n .data(\"btnplaceholder\", \"\")\r\n .addChild(\"div\", function (b) {\r\n b.addClass(_this.cssPrefix + \"-condition-button \" + _this.cssPrefix + \"-condition-button-delete\")\r\n .attr('tabIndex', '0')\r\n .data(\"button\", \"\")\r\n .title(__WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('CmdDelete'))\r\n .on('click', function (evt) { return _this.conditionMenuHandler(ConditionAction.Delete, evt); })\r\n .on('keypress', function (evt) { if (evt.keyCode == 13) {\r\n evt.target.click();\r\n } })\r\n .on('mouseenter', onButtonMouseEnter)\r\n .on('mouseleave', onButtonMouseLeave);\r\n });\r\n });\r\n }\r\n ;\r\n if (this.getButtonsToShow().indexOf(\"menu\") >= 0) {\r\n builder.addChild(\"div\", function (b) {\r\n b.addClass(_this.cssPrefix + \"-button-placeholder\")\r\n .data(\"btnplaceholder\", \"\")\r\n .addChild(\"div\", function (b) {\r\n b.addClass(_this.cssPrefix + \"-condition-button \" + _this.cssPrefix + \"-condition-button-menu\")\r\n .attr('tabIndex', '0')\r\n .data(\"button\", \"\")\r\n .title(__WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('ButtonMenu'))\r\n .on('click', function (evt) { return _this.conditionMenuHandler(ConditionAction.Menu, evt); });\r\n if (!__WEBPACK_IMPORTED_MODULE_4__utils_browser_utils__[\"a\" /* browserUtils */].isMobileMode()) {\r\n b\r\n .on('keypress', function (evt) { if (evt.keyCode == 13) {\r\n evt.target.click();\r\n } })\r\n .on('mouseenter', onButtonMouseEnter)\r\n .on('mouseleave', onButtonMouseLeave);\r\n }\r\n });\r\n });\r\n }\r\n ;\r\n this.adjustButtonsVisibility();\r\n return this.buttonsBlock;\r\n };\r\n SimpleConditionRenderer.prototype.getButtonsToShow = function () {\r\n return this.panel.options.buttons && this.panel.options.buttons.condition && Array.isArray(this.panel.options.buttons.condition) ? this.panel.options.buttons.condition : [\"enable\", \"delete\"];\r\n };\r\n return SimpleConditionRenderer;\r\n}(ConditionRenderer));\r\n\r\n//# sourceMappingURL=condition_renderer.js.map\n\n/***/ }),\n/* 71 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return BaseElementRenderer; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_ui__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_browser_utils__ = __webpack_require__(9);\n\r\n\r\nvar BaseElementRenderer = /** @class */ (function () {\r\n function BaseElementRenderer(slot) {\r\n this.element = slot || Object(__WEBPACK_IMPORTED_MODULE_0__easydata_ui__[\"i\" /* domel */])('div').toDOM();\r\n }\r\n BaseElementRenderer.prototype.refresh = function () {\r\n this.render();\r\n };\r\n BaseElementRenderer.prototype.render = function (isEditMode) {\r\n var _this = this;\r\n if (isEditMode === void 0) { isEditMode = false; }\r\n this.labelElement = this.renderLabelElement();\r\n Object(__WEBPACK_IMPORTED_MODULE_0__easydata_ui__[\"i\" /* domel */])(this.element)\r\n .html('')\r\n .addClass(this.getClassesToAdd())\r\n .addClass(__WEBPACK_IMPORTED_MODULE_1__utils_browser_utils__[\"a\" /* browserUtils */].getMobileCssClass())\r\n .addChildElement(this.labelElement);\r\n if (this.isEditable()) {\r\n this.renderEditor();\r\n if (isEditMode) {\r\n setTimeout(function () { return _this.showEditor(); }, 50);\r\n }\r\n }\r\n return this.element;\r\n };\r\n BaseElementRenderer.prototype.isEditable = function () {\r\n return true;\r\n };\r\n BaseElementRenderer.prototype.renderLabelElement = function () {\r\n var _this = this;\r\n var displayedText = this.getLabelText();\r\n if (this.isEditable()) {\r\n return Object(__WEBPACK_IMPORTED_MODULE_0__easydata_ui__[\"i\" /* domel */])('a')\r\n .attr('href', 'javascript:void(0)')\r\n .title(displayedText)\r\n .text(displayedText)\r\n .on('click', function (ev) {\r\n ev.preventDefault();\r\n _this.showEditor();\r\n return false;\r\n })\r\n .toDOM();\r\n }\r\n else {\r\n return Object(__WEBPACK_IMPORTED_MODULE_0__easydata_ui__[\"i\" /* domel */])('span')\r\n .title(displayedText)\r\n .text(displayedText)\r\n .toDOM();\r\n }\r\n };\r\n BaseElementRenderer.prototype.getClassesToAdd = function () {\r\n return '';\r\n };\r\n BaseElementRenderer.prototype.getLabelText = function () {\r\n return this.getEmptyText();\r\n };\r\n BaseElementRenderer.prototype.getEmptyText = function () {\r\n return '';\r\n };\r\n return BaseElementRenderer;\r\n}());\r\n\r\n//# sourceMappingURL=base_element_renderer.js.map\n\n/***/ }),\n/* 72 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return DropDownRenderer; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_element_renderer__ = __webpack_require__(71);\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\nvar DropDownRenderer = /** @class */ (function (_super) {\r\n __extends(DropDownRenderer, _super);\r\n function DropDownRenderer(slot) {\r\n return _super.call(this, slot) || this;\r\n }\r\n DropDownRenderer.prototype.showEditor = function () {\r\n var _this = this;\r\n var menu = this.getMenu();\r\n if (menu) {\r\n menu.showMenu({\r\n anchor: this.labelElement,\r\n itemSelectedCallback: function (item) {\r\n _this.itemSelected(item.id);\r\n return false;\r\n }\r\n });\r\n }\r\n };\r\n DropDownRenderer.prototype.closeEditor = function () {\r\n var menu = this.getMenu();\r\n if (menu)\r\n menu.hideMenu();\r\n };\r\n return DropDownRenderer;\r\n}(__WEBPACK_IMPORTED_MODULE_0__base_element_renderer__[\"a\" /* BaseElementRenderer */]));\r\n\r\n//# sourceMappingURL=dropdown_renderer.js.map\n\n/***/ }),\n/* 73 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return EasyGridWidget; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easyquery_core__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__easydata_core__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__easydata_ui__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__grid__ = __webpack_require__(181);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_popup_menu__ = __webpack_require__(15);\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\n\r\n\r\n\r\n\r\nvar EasyGridWidget = /** @class */ (function (_super) {\r\n __extends(EasyGridWidget, _super);\r\n /**\r\n * The default constructor.\r\n * @param slot The html element.\r\n */\r\n function EasyGridWidget(slot) {\r\n var _this = _super.call(this, slot) || this;\r\n _this.hasCustomTotalsSettings = false;\r\n //!!!! DO NOT forget to add types for options\r\n _this.options = { autoRefresh: true };\r\n _this.group = __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"u\" /* WidgetGroup */].Result;\r\n return _this;\r\n }\r\n EasyGridWidget.prototype.getWidgetType = function () {\r\n return 'easyGrid';\r\n };\r\n /**\r\n * Initialize widget.\r\n * @param context The context.\r\n * @param options The options.\r\n */\r\n EasyGridWidget.prototype.init = function (context, options) {\r\n var _this = this;\r\n _super.prototype.init.call(this, context, options);\r\n var gridOptions = __assign({}, options, { slot: this.slot, dataTable: context.resultTable });\r\n this.options = __WEBPACK_IMPORTED_MODULE_1__easydata_core__[\"m\" /* utils */].assign(this.options, options);\r\n gridOptions.onAddColumnClick = function (ev) { return _this.addColumnClickHandler(ev); };\r\n gridOptions.onColumnMoved = function (ev) { return _this.columnMovedHandler(ev); };\r\n if (this.context.calcTotals) {\r\n if (gridOptions.totals) {\r\n this.hasCustomTotalsSettings = true;\r\n }\r\n else {\r\n gridOptions.totals = __assign({}, this.context.getTotalsSettings(), { calculator: null });\r\n }\r\n gridOptions.totals.calculator = this.context.getServices()\r\n .getTotalCalculator();\r\n }\r\n this.destroy();\r\n this.grid = new __WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"e\" /* EasyGrid */](gridOptions);\r\n if (this.options.autoRefresh) {\r\n this.attachQueryObserver();\r\n }\r\n };\r\n EasyGridWidget.prototype.refreshCore = function () {\r\n this.clear();\r\n this.updateTotalsSettings();\r\n this.render();\r\n };\r\n EasyGridWidget.prototype.render = function () {\r\n this.createEntitiesMenu();\r\n this.grid.refresh();\r\n };\r\n EasyGridWidget.prototype.attachQueryObserver = function () {\r\n var _this = this;\r\n var query = this.getQuery();\r\n this.queryEventCallbackId = query.addChangedCallback(function (event) {\r\n //if something has changed, and that change is related to columns\r\n var edata = event.data;\r\n if (!edata || (edata.part != __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"p\" /* QueryChangePart */].Columns && edata.part != __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"p\" /* QueryChangePart */].All)) {\r\n return;\r\n }\r\n if (event.data.source == _this) {\r\n _this.grid.refresh();\r\n }\r\n else {\r\n _this.refresh();\r\n }\r\n });\r\n };\r\n EasyGridWidget.prototype.destroyCore = function () {\r\n this.detachQueryObserver();\r\n if (this.grid)\r\n this.grid.destroy();\r\n this.slot.innerHTML = '';\r\n };\r\n EasyGridWidget.prototype.detachQueryObserver = function () {\r\n if (this.queryEventCallbackId) {\r\n var query = this.getContext().getQuery();\r\n query.removeChangedCallback(this.queryEventCallbackId);\r\n }\r\n };\r\n EasyGridWidget.prototype.updateTotalsSettings = function () {\r\n var context = this.getContext();\r\n if (context.calcTotals && !this.hasCustomTotalsSettings) {\r\n var settings = context.getTotalsSettings();\r\n this.grid.options.totals.calcGrandTotals = settings.calcGrandTotals;\r\n this.grid.options.totals.cols = settings.cols;\r\n }\r\n };\r\n EasyGridWidget.prototype.createEntitiesMenu = function () {\r\n var model = this.getContext().getModel();\r\n if (!model || model.isEmpty())\r\n return;\r\n var menuId = this.slot.id;\r\n if (menuId) {\r\n menuId += '-EntitiesMenu';\r\n }\r\n var entitiesList = model.getEntitiesTree({ addUIC: false, addUIR: true, addUIS: false });\r\n var options = { items: entitiesList, id: menuId };\r\n __WEBPACK_IMPORTED_MODULE_1__easydata_core__[\"m\" /* utils */].assign(options, this.options.menuOptions);\r\n this.entitiesMenu = new __WEBPACK_IMPORTED_MODULE_4__utils_popup_menu__[\"a\" /* PopupMenu */](options);\r\n };\r\n EasyGridWidget.prototype.getModel = function () {\r\n return this.context.getModel();\r\n };\r\n EasyGridWidget.prototype.getQuery = function () {\r\n return this.context.getQuery();\r\n };\r\n EasyGridWidget.prototype.clear = function () {\r\n if (this.grid)\r\n this.grid.clear();\r\n };\r\n EasyGridWidget.prototype.addColumnClickHandler = function (ev) {\r\n var _this = this;\r\n this.entitiesMenu.showMenu({\r\n anchor: ev.sourceEvent.target,\r\n selectedIds: null,\r\n itemSelectedCallback: function (data, items) {\r\n var attrid = data.id;\r\n _this.addNewColumn(attrid);\r\n return false;\r\n }\r\n });\r\n };\r\n EasyGridWidget.prototype.columnMovedHandler = function (ev) {\r\n var query = this.getQuery();\r\n var oldIndex = __WEBPACK_IMPORTED_MODULE_1__easydata_core__[\"m\" /* utils */].findItemIndexById(query.getColumns(), ev.columnId);\r\n if (oldIndex >= 0) {\r\n query.moveColumn(oldIndex, ev.newIndex);\r\n query.fireChangedEvent({\r\n part: __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"p\" /* QueryChangePart */].Columns,\r\n action: __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"o\" /* QueryChangeAction */].All,\r\n source: this\r\n });\r\n }\r\n };\r\n EasyGridWidget.prototype.addNewColumn = function (attrId) {\r\n var _this = this;\r\n var model = this.getContext().getModel();\r\n var query = this.getContext().getQuery();\r\n var getColumnByAttrId = function (attrid) {\r\n var attribute = model.getAttributeById(attrid);\r\n if (!attribute) {\r\n return null;\r\n }\r\n if (!attribute.useInSorting) {\r\n if (attribute.lookupAttr) {\r\n attrid = attribute.lookupAttr;\r\n attribute = model.getAttributeById(attrid);\r\n if (!attribute || !attribute.useInSorting) {\r\n return null;\r\n }\r\n }\r\n else\r\n return null;\r\n }\r\n var column = query.createColumn();\r\n column.caption = _this.getDefaultColumnCaption(attribute);\r\n column.sorting = __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"r\" /* SortDirection */].None;\r\n column.sortIndex = -1;\r\n column.expr.tag = __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"k\" /* ExprTag */].EntityAttribute;\r\n //column.expr.id = attrid;\r\n column.expr.setValue(attrid, true);\r\n column.params.concat(attribute.params);\r\n return column;\r\n };\r\n if (!this.getContext().getQuery()) {\r\n return;\r\n }\r\n return this.addColumn(getColumnByAttrId(attrId));\r\n };\r\n EasyGridWidget.prototype.getDefaultColumnCaption = function (attr) {\r\n var format = this.options.titleElementFormat || this.options.attrElementFormat;\r\n var model = this.getContext().getModel();\r\n return model.getAttributeText(attr, format);\r\n };\r\n EasyGridWidget.prototype.addColumn = function (column) {\r\n var query = this.getContext().getQuery();\r\n if (!query) {\r\n return;\r\n }\r\n column = this.checkColumn(column);\r\n if (!column) {\r\n return;\r\n }\r\n column = query.addColumn({\r\n caption: column.caption,\r\n attributeId: column.expr.value,\r\n sorting: column.sorting,\r\n sortIndex: column.sortIndex\r\n });\r\n query.fireChangedEvent({\r\n part: __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"p\" /* QueryChangePart */].Columns,\r\n action: __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"o\" /* QueryChangeAction */].Add,\r\n changee: column,\r\n source: this\r\n });\r\n return column;\r\n };\r\n EasyGridWidget.prototype.checkColumn = function (col) {\r\n var query = this.getContext().getQuery();\r\n var columns = query.getColumns();\r\n var colJson = JSON.stringify(col.expr.saveToData());\r\n for (var i = 0; i < columns.length; i++) {\r\n var qcolJson = JSON.stringify(columns[i].expr.saveToData());\r\n if (qcolJson === colJson) {\r\n return null;\r\n }\r\n }\r\n return col;\r\n };\r\n return EasyGridWidget;\r\n}(__WEBPACK_IMPORTED_MODULE_3__grid__[\"a\" /* Grid */]));\r\n\r\n//# sourceMappingURL=easy_grid_widget.js.map\n\n/***/ }),\n/* 74 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ExportDialog; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_ui__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__easyquery_core__ = __webpack_require__(7);\n\r\n\r\nvar ExportDialog = /** @class */ (function () {\r\n function ExportDialog(context) {\r\n this.context = context;\r\n this.promise = null;\r\n }\r\n ExportDialog.prototype.show = function (defFormat) {\r\n var _this = this;\r\n if (defFormat === void 0) { defFormat = null; }\r\n if (!this.promise) {\r\n var formats = this.context.getExportFormats();\r\n if (formats.length == 0)\r\n throw Error(\"No exporter has been registered.\");\r\n defFormat = defFormat || formats[0];\r\n this.promise = new Promise(function (resolve, reject) {\r\n var ds = _this.context.getServices().getDialogService();\r\n var body = Object(__WEBPACK_IMPORTED_MODULE_0__easydata_ui__[\"i\" /* domel */])('div')\r\n .addClass('kdlg-form-section')\r\n .addChild('div', function (b) { return b\r\n .addClass('kfrm-form')\r\n .addChild('div', function (b) { return b\r\n .addClass('kfrm-fields col-a-1 label-align-right')\r\n .addChild('label', function (b) { return b\r\n .addClass('kdlg-form-label', 'kflex-20')\r\n .attr('for', 'export_format')\r\n .addText(__WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"x\" /* i18n */].getText('ExportDlgFmtLabel')); })\r\n .addChild('div', function (b) { return b\r\n .addClass('kfrm-select')\r\n .addChild('select', function (b) {\r\n b\r\n .attr('name', 'export_format')\r\n .id('exportFormat');\r\n for (var _i = 0, _a = _this.context.getExportFormats(); _i < _a.length; _i++) {\r\n var format = _a[_i];\r\n b.addOption({\r\n value: format,\r\n title: __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"x\" /* i18n */].getText(format) || format,\r\n selected: defFormat == format\r\n });\r\n }\r\n }); }); }); })\r\n .toDOM();\r\n ds.open({\r\n title: __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"x\" /* i18n */].getText('ExportDlgTitle'),\r\n body: body,\r\n onSubmit: function () {\r\n var format = body.querySelector('#exportFormat').value;\r\n _this.context.exportResult({\r\n format: format,\r\n success: resolve,\r\n error: reject\r\n });\r\n return true;\r\n }\r\n });\r\n });\r\n }\r\n return this.promise.finally(function () { return _this.promise = null; });\r\n };\r\n return ExportDialog;\r\n}());\r\n\r\n//# sourceMappingURL=export_dialog.js.map\n\n/***/ }),\n/* 75 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ChartJsWidget; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_ui__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__chart_widget__ = __webpack_require__(76);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__chart_type__ = __webpack_require__(46);\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\n\r\n\r\nvar ChartJsWidget = /** @class */ (function (_super) {\r\n __extends(ChartJsWidget, _super);\r\n /**\r\n * The default constructor.\r\n * @param slot The html element.\r\n * @param provider The provider.\r\n */\r\n function ChartJsWidget(slot) {\r\n var _this = _super.call(this, slot) || this;\r\n _this.colors = [\r\n '#4dc9f6',\r\n '#f67019',\r\n '#f53794',\r\n '#537bc4',\r\n '#acc236',\r\n '#166a8f',\r\n '#00a950',\r\n '#58595b',\r\n '#8549ba'\r\n ];\r\n _this.chartLabels = [];\r\n _this.chartColumns = [];\r\n _this.hasChartTypes = [\r\n __WEBPACK_IMPORTED_MODULE_2__chart_type__[\"a\" /* ChartType */].Column,\r\n __WEBPACK_IMPORTED_MODULE_2__chart_type__[\"a\" /* ChartType */].Bar,\r\n __WEBPACK_IMPORTED_MODULE_2__chart_type__[\"a\" /* ChartType */].Line,\r\n __WEBPACK_IMPORTED_MODULE_2__chart_type__[\"a\" /* ChartType */].Pie\r\n ];\r\n _this.options.legend = {\r\n show: false,\r\n position: 'bottom'\r\n };\r\n return _this;\r\n }\r\n ChartJsWidget.prototype.getWidgetType = function () {\r\n return 'chartChartJs';\r\n };\r\n ChartJsWidget.hasChartJs = function () {\r\n return typeof Chart !== 'undefined';\r\n };\r\n ChartJsWidget.prototype.canDraw = function () {\r\n return ChartJsWidget.hasChartJs();\r\n };\r\n ChartJsWidget.prototype.initChart = function () {\r\n if (ChartJsWidget.hasChartJs() && this.labelColumn >= 0\r\n && this.dataColumns && this.dataColumns.length > 0) {\r\n this.updateChartColumns();\r\n }\r\n };\r\n ChartJsWidget.prototype.drawCore = function () {\r\n if (ChartJsWidget.hasChartJs() && this.dataTable\r\n && this.dataTable.getCachedCount() > 0) {\r\n var config = this.generateConfig();\r\n var chartCanvas = this.getChartCanvas(this.chartDiv);\r\n var chartContext = chartCanvas.getContext('2d');\r\n new Chart(chartContext, config);\r\n }\r\n };\r\n ChartJsWidget.prototype.updateChartColumns = function () {\r\n if (this.dataTable) {\r\n this.chartLabels = [];\r\n this.chartColumns = [];\r\n var rows = this.dataTable.getCachedRows();\r\n for (var i = 0; i < rows.length; i++) {\r\n this.chartLabels.push(rows[i].getValue(this.labelColumn));\r\n this.chartColumns.push(rows[i].getValue(this.dataColumns[0]));\r\n }\r\n }\r\n };\r\n ChartJsWidget.prototype.getChartCanvas = function (slot) {\r\n var result;\r\n //find canvas element\r\n var canvases = slot.getElementsByTagName('canvas');\r\n if (canvases && canvases.length > 0) {\r\n result = canvases[0];\r\n }\r\n else {\r\n result = Object(__WEBPACK_IMPORTED_MODULE_0__easydata_ui__[\"g\" /* addElement */])(slot, 'canvas');\r\n }\r\n return result;\r\n };\r\n ChartJsWidget.prototype.generateConfig = function () {\r\n var dataColors = [];\r\n var datasetName = this.dataTable.columns.get(this.dataColumns[0]).label;\r\n var fillValue = true;\r\n var borderColor;\r\n if (this.chartType == __WEBPACK_IMPORTED_MODULE_2__chart_type__[\"a\" /* ChartType */].Pie\r\n || this.chartType == __WEBPACK_IMPORTED_MODULE_2__chart_type__[\"a\" /* ChartType */].Bar\r\n || this.chartType == __WEBPACK_IMPORTED_MODULE_2__chart_type__[\"a\" /* ChartType */].Column) {\r\n for (var i = 0; i < this.chartLabels.length; i++) {\r\n dataColors.push(this.colors[i % this.colors.length]);\r\n }\r\n }\r\n else {\r\n dataColors = [this.colors[3]];\r\n }\r\n if (this.chartType == __WEBPACK_IMPORTED_MODULE_2__chart_type__[\"a\" /* ChartType */].Line) {\r\n fillValue = false;\r\n borderColor = this.colors[3];\r\n }\r\n this.options.legend = this.options.legend || {};\r\n return {\r\n type: this.getChartType(),\r\n data: {\r\n datasets: [{\r\n data: this.chartColumns,\r\n backgroundColor: dataColors,\r\n borderColor: borderColor,\r\n label: datasetName,\r\n fill: fillValue\r\n }],\r\n labels: this.chartLabels\r\n },\r\n options: {\r\n legend: {\r\n display: this.options.legend.show && this.chartType == __WEBPACK_IMPORTED_MODULE_2__chart_type__[\"a\" /* ChartType */].Pie,\r\n position: this.options.legend.position || 'bottom'\r\n },\r\n title: {\r\n display: true,\r\n text: datasetName\r\n }\r\n }\r\n };\r\n };\r\n ChartJsWidget.prototype.getChartType = function () {\r\n switch (this.chartType) {\r\n case __WEBPACK_IMPORTED_MODULE_2__chart_type__[\"a\" /* ChartType */].Column:\r\n return \"bar\";\r\n case __WEBPACK_IMPORTED_MODULE_2__chart_type__[\"a\" /* ChartType */].Bar:\r\n return \"horizontalBar\";\r\n case __WEBPACK_IMPORTED_MODULE_2__chart_type__[\"a\" /* ChartType */].Line:\r\n return \"line\";\r\n case __WEBPACK_IMPORTED_MODULE_2__chart_type__[\"a\" /* ChartType */].Pie:\r\n return \"pie\";\r\n default:\r\n return \"pie\";\r\n }\r\n };\r\n return ChartJsWidget;\r\n}(__WEBPACK_IMPORTED_MODULE_1__chart_widget__[\"a\" /* ChartWidget */]));\r\n\r\n//# sourceMappingURL=chart_widget_chartjs.js.map\n\n/***/ }),\n/* 76 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ChartWidget; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easyquery_core__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__easydata_core__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__easydata_ui__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__chart_type__ = __webpack_require__(46);\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\n\r\n\r\n\r\nvar ChartWidget = /** @class */ (function (_super) {\r\n __extends(ChartWidget, _super);\r\n /**\r\n * The default constructor.\r\n * @param slot The html element.\r\n * @param provider The provider.\r\n */\r\n function ChartWidget(slot) {\r\n var _this = _super.call(this, slot) || this;\r\n _this.chartType = __WEBPACK_IMPORTED_MODULE_3__chart_type__[\"a\" /* ChartType */].Pie;\r\n _this.supportedChartTypes = [];\r\n _this.dataTable = null;\r\n _this.potentialLabelColumns = [];\r\n _this.potentialDataColumns = [];\r\n _this.labelColumn = -1;\r\n _this.dataColumns = [];\r\n _this.options = {\r\n chartType: __WEBPACK_IMPORTED_MODULE_3__chart_type__[\"a\" /* ChartType */].Pie,\r\n showOnPaging: false,\r\n hideSettings: false,\r\n legend: {\r\n show: false,\r\n position: 'right'\r\n }\r\n };\r\n _this.element = slot;\r\n _this.group = __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"u\" /* WidgetGroup */].Result;\r\n return _this;\r\n }\r\n Object.defineProperty(ChartWidget.prototype, \"cssPrefix\", {\r\n get: function () {\r\n return 'eqjs-chart';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Initialize widget.\r\n * @param context The context.\r\n * @param options The options.\r\n */\r\n ChartWidget.prototype.init = function (context, options) {\r\n _super.prototype.init.call(this, context, options);\r\n this.dataTable = context.resultTable;\r\n this.setOptions(options);\r\n };\r\n /**\r\n * Checks, if widget has data.\r\n * @returns `true` if has data, otherwise - `false`.\r\n */\r\n ChartWidget.prototype.hasData = function () {\r\n var result = this.dataTable != null;\r\n if (result) {\r\n result = this.dataTable.getCachedCount() > 0;\r\n }\r\n return result;\r\n };\r\n /**\r\n * Checks, if there ara colums for chart\r\n * @returns `true` if there are columns, otherwise - `false`.\r\n */\r\n ChartWidget.prototype.hasColumnsForChart = function () {\r\n return this.potentialLabelColumns.length > 0 && this.potentialDataColumns.length > 0;\r\n };\r\n /**\r\n * Refresh widget implementation\r\n */\r\n ChartWidget.prototype.refreshCore = function () {\r\n this.prepareChartData();\r\n this.render();\r\n };\r\n ChartWidget.prototype.setOptions = function (options) {\r\n __WEBPACK_IMPORTED_MODULE_1__easydata_core__[\"m\" /* utils */].assignDeep(this.options, options);\r\n this.supportedChartTypes = this.getSupportedChartTypes();\r\n if (this.supportedChartTypes.length == 0) {\r\n throw Error(\"Chart widget should support at least one chart type\");\r\n }\r\n if (options.chartType && this.supportedChartTypes.indexOf(options.chartType) >= 0) {\r\n this.chartType = options.chartType;\r\n }\r\n else {\r\n this.chartType = this.supportedChartTypes[0];\r\n }\r\n };\r\n ChartWidget.prototype.getOptions = function () {\r\n return this.options;\r\n };\r\n ChartWidget.prototype.getChartTypeName = function (ct) {\r\n switch (ct) {\r\n case __WEBPACK_IMPORTED_MODULE_3__chart_type__[\"a\" /* ChartType */].Area:\r\n return \"Area chart\";\r\n case __WEBPACK_IMPORTED_MODULE_3__chart_type__[\"a\" /* ChartType */].Bar:\r\n return \"Bar chart\";\r\n case __WEBPACK_IMPORTED_MODULE_3__chart_type__[\"a\" /* ChartType */].Candlestick:\r\n return \"Candlestick chart\";\r\n case __WEBPACK_IMPORTED_MODULE_3__chart_type__[\"a\" /* ChartType */].Column:\r\n return \"Column chart\";\r\n case __WEBPACK_IMPORTED_MODULE_3__chart_type__[\"a\" /* ChartType */].Combo:\r\n return \"Combo chart\";\r\n case __WEBPACK_IMPORTED_MODULE_3__chart_type__[\"a\" /* ChartType */].Donut:\r\n return \"Donut chart\";\r\n case __WEBPACK_IMPORTED_MODULE_3__chart_type__[\"a\" /* ChartType */].Gauge:\r\n return \"Gauge chart\";\r\n case __WEBPACK_IMPORTED_MODULE_3__chart_type__[\"a\" /* ChartType */].Histogram:\r\n return \"Histogram chart\";\r\n case __WEBPACK_IMPORTED_MODULE_3__chart_type__[\"a\" /* ChartType */].Line:\r\n return \"Line chart\";\r\n default:\r\n return \"Pie chart\";\r\n }\r\n };\r\n ChartWidget.prototype.updateSettings = function (settings) {\r\n if (typeof settings.showLegend !== 'undefined') {\r\n this.options.legend = this.options.legend || {};\r\n this.options.legend.show = settings.showLegend;\r\n }\r\n this.chartType = settings.type;\r\n this.labelColumn = settings.labelColumn;\r\n this.updateChartColumns();\r\n this.dataColumns[0] = settings.dataColumn;\r\n this.updateChartColumns();\r\n };\r\n /**\r\n * Prepares data for chart.\r\n */\r\n ChartWidget.prototype.prepareChartData = function () {\r\n var _this = this;\r\n if (this.dataTable) {\r\n this.potentialLabelColumns = [];\r\n this.potentialDataColumns = [];\r\n var colNum = this.dataTable.columns.count;\r\n for (var i = 0; i < colNum; i++) {\r\n var column = this.dataTable.columns.get(i);\r\n var colType = column.type;\r\n var colLabel = column.label;\r\n this.potentialLabelColumns.push({ idx: i, label: colLabel });\r\n if (__WEBPACK_IMPORTED_MODULE_1__easydata_core__[\"m\" /* utils */].isNumericType(colType)) {\r\n this.potentialDataColumns.push({ idx: i, label: colLabel });\r\n }\r\n }\r\n ;\r\n if (this.labelColumn != -1) {\r\n if (!this.potentialLabelColumns\r\n .filter(function (c) { return c.idx == _this.labelColumn; })\r\n .length) {\r\n this.labelColumn = -1;\r\n }\r\n }\r\n else {\r\n this.labelColumn = (this.potentialLabelColumns.length > 0)\r\n ? this.potentialLabelColumns[0].idx : -1;\r\n }\r\n if (this.dataColumns.length) {\r\n var ids_1 = this.potentialDataColumns.map(function (d) { return d.idx; });\r\n this.dataColumns = this.dataColumns.filter(function (v) { return ids_1.indexOf(v) >= 0; });\r\n if (!this.dataColumns.length) {\r\n this.dataColumns = (this.potentialDataColumns.length > 0)\r\n ? [].concat(this.potentialDataColumns[0].idx)\r\n : [];\r\n }\r\n }\r\n else {\r\n this.dataColumns = (this.potentialDataColumns.length > 0)\r\n ? [].concat(this.potentialDataColumns[0].idx)\r\n : [];\r\n }\r\n this.initChart();\r\n }\r\n };\r\n ChartWidget.prototype.getSupportedChartTypes = function () {\r\n var _this = this;\r\n var chartTypes = this.options.supportedChartTypes\r\n ? this.options.supportedChartTypes\r\n : Object.keys(__WEBPACK_IMPORTED_MODULE_3__chart_type__[\"a\" /* ChartType */]).map(function (key) { return __WEBPACK_IMPORTED_MODULE_3__chart_type__[\"a\" /* ChartType */][key]; });\r\n return chartTypes.filter(function (type) { return _this.hasChartTypes.indexOf(type) >= 0; });\r\n };\r\n ChartWidget.prototype.getCurrentChartType = function () {\r\n return this.chartType;\r\n };\r\n ChartWidget.prototype.render = function () {\r\n var _this = this;\r\n this.clear();\r\n if (this.hasData() && this.hasColumnsForChart()\r\n && (this.context.resultTable.getTotal()\r\n == this.context.resultTable.getCachedCount())) {\r\n var headerDiv = document.createElement('div');\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"f\" /* addCssClass */])(headerDiv, this.cssPrefix + \"-header\");\r\n var mainDiv = document.createElement('div');\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"f\" /* addCssClass */])(mainDiv, this.cssPrefix + \"-main\");\r\n if (this.canDraw()) {\r\n var chartTypeSelector = document.createElement('select');\r\n for (var _i = 0, _a = this.supportedChartTypes; _i < _a.length; _i++) {\r\n var ct = _a[_i];\r\n var sopt = document.createElement('option');\r\n sopt.value = ct.toString();\r\n sopt.text = this.getChartTypeName(ct);\r\n chartTypeSelector.appendChild(sopt);\r\n }\r\n chartTypeSelector.value = this.chartType.toString();\r\n headerDiv.appendChild(chartTypeSelector);\r\n chartTypeSelector.addEventListener('change', function (ev) {\r\n var ctkey = ev.target.value;\r\n _this.chartType = parseInt(ctkey);\r\n _this.refresh();\r\n });\r\n this.settingsDiv = document.createElement('div');\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"f\" /* addCssClass */])(this.settingsDiv, this.cssPrefix + \"-settings\");\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"o\" /* hideElement */])(this.settingsDiv);\r\n mainDiv.appendChild(this.settingsDiv);\r\n this.chartDiv = document.createElement('div');\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"f\" /* addCssClass */])(this.chartDiv, this.cssPrefix + \"-content\");\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"o\" /* hideElement */])(this.chartDiv);\r\n mainDiv.appendChild(this.chartDiv);\r\n this.initSettingsDiv();\r\n var chartSettingsBtn = document.createElement('div');\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"f\" /* addCssClass */])(chartSettingsBtn, this.cssPrefix + \"-settings-icon\");\r\n chartSettingsBtn.title = \"Settings\";\r\n headerDiv.appendChild(chartSettingsBtn);\r\n chartSettingsBtn.addEventListener('click', function (ev) {\r\n _this.toggleSettings();\r\n });\r\n this.drawChart(100);\r\n }\r\n else {\r\n this.addContentDiv(mainDiv, \"Chart Provider is not defined\");\r\n }\r\n if (!this.options.hideSettings) {\r\n this.element.appendChild(headerDiv);\r\n }\r\n this.element.appendChild(mainDiv);\r\n this.element.style.display = \"\";\r\n }\r\n else {\r\n this.element.style.display = \"none\";\r\n }\r\n };\r\n ChartWidget.prototype.addContentDiv = function (mainDiv, text) {\r\n var contentDiv = document.createElement('div');\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"f\" /* addCssClass */])(contentDiv, this.cssPrefix + \"-no-data\");\r\n contentDiv.innerText = text;\r\n mainDiv.appendChild(contentDiv);\r\n };\r\n /**\r\n * Clears chart.\r\n */\r\n ChartWidget.prototype.clear = function () {\r\n this.element.innerHTML = '';\r\n };\r\n /**\r\n * Draws chart with delay.\r\n * @param delay The delay.\r\n */\r\n ChartWidget.prototype.drawChart = function (delay) {\r\n var _this = this;\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"q\" /* showElement */])(this.chartDiv);\r\n if (delay > 0) {\r\n setTimeout(function () { return _this.drawCore(); }, delay);\r\n }\r\n else {\r\n this.drawCore();\r\n }\r\n };\r\n /**\r\n * Inititialize settings div.\r\n */\r\n ChartWidget.prototype.initSettingsDiv = function () {\r\n var _this = this;\r\n var settingsHeader = document.createElement('div');\r\n settingsHeader.textContent = 'SETTINGS';\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"f\" /* addCssClass */])(settingsHeader, this.cssPrefix + \"-settings-header\");\r\n this.settingsDiv.appendChild(settingsHeader);\r\n // Label column\r\n var labelDiv = document.createElement('div');\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"f\" /* addCssClass */])(labelDiv, this.cssPrefix + \"-settings-single\");\r\n this.settingsDiv.appendChild(labelDiv);\r\n var labelColumnSelectorCaption = document.createElement('span');\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"q\" /* showElement */])(labelColumnSelectorCaption);\r\n labelColumnSelectorCaption.textContent = 'Label column';\r\n labelDiv.appendChild(labelColumnSelectorCaption);\r\n var labelColumnSelector = document.createElement('select');\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"q\" /* showElement */])(labelColumnSelector);\r\n labelDiv.appendChild(labelColumnSelector);\r\n for (var _i = 0, _a = this.potentialLabelColumns; _i < _a.length; _i++) {\r\n var col = _a[_i];\r\n var sopt = document.createElement('option');\r\n sopt.value = col.idx.toString();\r\n sopt.text = col.label;\r\n labelColumnSelector.appendChild(sopt);\r\n }\r\n if (this.labelColumn >= 0) {\r\n labelColumnSelector.value = this.labelColumn.toString();\r\n }\r\n labelColumnSelector.addEventListener('change', function (ev) {\r\n _this.labelColumn = parseInt(ev.target.value);\r\n _this.updateChartColumns();\r\n _this.toggleSettings(function () {\r\n _this.drawChart(100);\r\n });\r\n });\r\n // Data column\r\n var dataDiv = document.createElement('div');\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"f\" /* addCssClass */])(dataDiv, this.cssPrefix + \"-settings-single\");\r\n this.settingsDiv.appendChild(dataDiv);\r\n var dataColumnSelectorCaption = document.createElement('span');\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"q\" /* showElement */])(dataColumnSelectorCaption);\r\n dataColumnSelectorCaption.textContent = 'Data column';\r\n dataDiv.appendChild(dataColumnSelectorCaption);\r\n var dataColumnSelector = document.createElement('select');\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"q\" /* showElement */])(dataColumnSelector);\r\n dataDiv.appendChild(dataColumnSelector);\r\n for (var _b = 0, _c = this.potentialDataColumns; _b < _c.length; _b++) {\r\n var col = _c[_b];\r\n var sopt = document.createElement('option');\r\n sopt.value = col.idx.toString();\r\n sopt.text = col.label;\r\n dataColumnSelector.appendChild(sopt);\r\n }\r\n if (this.dataColumns.length > 0 && this.dataColumns[0] >= 0) {\r\n dataColumnSelector.value = this.dataColumns[0].toString();\r\n }\r\n dataColumnSelector.addEventListener('change', function (ev) {\r\n _this.dataColumns[0] = parseInt(ev.target.value);\r\n _this.updateChartColumns();\r\n _this.toggleSettings(function () {\r\n _this.drawChart(100);\r\n });\r\n });\r\n };\r\n ChartWidget.prototype.getPotentialLabelColumns = function () {\r\n return this.potentialLabelColumns;\r\n };\r\n ChartWidget.prototype.getPotentialDataColumns = function () {\r\n return this.potentialDataColumns;\r\n };\r\n ChartWidget.prototype.getLabelColumnIndex = function () {\r\n return this.labelColumn;\r\n };\r\n ChartWidget.prototype.getDataColumnIndex = function () {\r\n return this.dataColumns[0];\r\n };\r\n /**\r\n * Toggles settings.\r\n * @param callback The callback.\r\n */\r\n ChartWidget.prototype.toggleSettings = function (callback) {\r\n var first;\r\n var second;\r\n if (Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"p\" /* isVisible */])(this.chartDiv)) {\r\n first = this.chartDiv;\r\n second = this.settingsDiv;\r\n }\r\n else {\r\n first = this.settingsDiv;\r\n second = this.chartDiv;\r\n }\r\n Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"t\" /* toggleVisibility */])(first, second, {\r\n complete: callback\r\n });\r\n };\r\n return ChartWidget;\r\n}(__WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"t\" /* Widget */]));\r\n\r\n//# sourceMappingURL=chart_widget.js.map\n\n/***/ }),\n/* 77 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QueryEx; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easyquery_core__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__condition_ex__ = __webpack_require__(192);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__query_column_ex__ = __webpack_require__(193);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_lcv__ = __webpack_require__(34);\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\n\r\n\r\n\r\nvar QueryEx = /** @class */ (function (_super) {\r\n __extends(QueryEx, _super);\r\n function QueryEx(model) {\r\n return _super.call(this, model) || this;\r\n }\r\n QueryEx.prototype.isEx = function () {\r\n return __WEBPACK_IMPORTED_MODULE_3__utils_lcv__[\"a\" /* lcv */].__kt !== 0;\r\n };\r\n QueryEx.prototype.createCondition = function (tag) {\r\n if (tag === void 0) { tag = __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"a\" /* CondTag */].Simple; }\r\n if (!__WEBPACK_IMPORTED_MODULE_3__utils_lcv__[\"a\" /* lcv */].__kt)\r\n return _super.prototype.createCondition.call(this, tag);\r\n return new __WEBPACK_IMPORTED_MODULE_1__condition_ex__[\"a\" /* ConditionEx */](this, tag);\r\n };\r\n QueryEx.prototype.createColumn = function (justsorted) {\r\n if (justsorted === void 0) { justsorted = false; }\r\n if (!__WEBPACK_IMPORTED_MODULE_3__utils_lcv__[\"a\" /* lcv */].__kt)\r\n return _super.prototype.createColumn.call(this, justsorted);\r\n return new __WEBPACK_IMPORTED_MODULE_2__query_column_ex__[\"a\" /* QueryColumnEx */](this, justsorted);\r\n };\r\n /**\r\n * Adds a condition group - a group of simple conditions (predicates) linked by AND or OR\r\n * @param descriptor The descriptor of the new condition group.\r\n * @returns The new search condition.\r\n */\r\n QueryEx.prototype.addConditionGroup = function (descriptor, addChildCondition) {\r\n if (addChildCondition === void 0) { addChildCondition = true; }\r\n if (!__WEBPACK_IMPORTED_MODULE_3__utils_lcv__[\"a\" /* lcv */].__kt)\r\n return _super.prototype.addConditionGroup.call(this, descriptor, addChildCondition);\r\n var parent = descriptor.parent || this.getRootCondition();\r\n var lType = descriptor.linking || (parent.linkType === __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"m\" /* LinkType */].All ? __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"m\" /* LinkType */].Any : __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"m\" /* LinkType */].All);\r\n var group = this.createCondition(__WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"a\" /* CondTag */].Group);\r\n group.linkType = lType;\r\n if (addChildCondition) {\r\n var model = this.getModel();\r\n var attr = model.getFirstUICAttr();\r\n var op = model.getDefaultOperatorForAttr(attr);\r\n var cond = this.createSimpleConditionObject(attr, op, \"\");\r\n group.addCondition(cond);\r\n }\r\n parent.addCondition(group);\r\n return group;\r\n };\r\n QueryEx.prototype.addExtraConditionGroup = function (descriptor, addChildCondition) {\r\n if (addChildCondition === void 0) { addChildCondition = true; }\r\n descriptor.parent = descriptor.parent || this.extraConditions;\r\n if (!__WEBPACK_IMPORTED_MODULE_3__utils_lcv__[\"a\" /* lcv */].__kt)\r\n return _super.prototype.addExtraConditionGroup.call(this, descriptor, addChildCondition);\r\n return this.addConditionGroup(descriptor);\r\n };\r\n return QueryEx;\r\n}(__WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"n\" /* Query */]));\r\n\r\n//# sourceMappingURL=query_ex.js.map\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar asap = __webpack_require__(200);\n\nfunction noop() {}\n\n// States:\n//\n// 0 - pending\n// 1 - fulfilled with _value\n// 2 - rejected with _value\n// 3 - adopted the state of another promise, _value\n//\n// once the state is no longer pending (0) it is immutable\n\n// All `_` prefixed properties will be reduced to `_{random number}`\n// at build time to obfuscate them and discourage their use.\n// We don't use symbols or Object.defineProperty to fully hide them\n// because the performance isn't good enough.\n\n\n// to avoid using try/catch inside critical functions, we\n// extract them to here.\nvar LAST_ERROR = null;\nvar IS_ERROR = {};\nfunction getThen(obj) {\n try {\n return obj.then;\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nfunction tryCallOne(fn, a) {\n try {\n return fn(a);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\nfunction tryCallTwo(fn, a, b) {\n try {\n fn(a, b);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nmodule.exports = Promise;\n\nfunction Promise(fn) {\n if (typeof this !== 'object') {\n throw new TypeError('Promises must be constructed via new');\n }\n if (typeof fn !== 'function') {\n throw new TypeError('Promise constructor\\'s argument is not a function');\n }\n this._75 = 0;\n this._83 = 0;\n this._18 = null;\n this._38 = null;\n if (fn === noop) return;\n doResolve(fn, this);\n}\nPromise._47 = null;\nPromise._71 = null;\nPromise._44 = noop;\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n if (this.constructor !== Promise) {\n return safeThen(this, onFulfilled, onRejected);\n }\n var res = new Promise(noop);\n handle(this, new Handler(onFulfilled, onRejected, res));\n return res;\n};\n\nfunction safeThen(self, onFulfilled, onRejected) {\n return new self.constructor(function (resolve, reject) {\n var res = new Promise(noop);\n res.then(resolve, reject);\n handle(self, new Handler(onFulfilled, onRejected, res));\n });\n}\nfunction handle(self, deferred) {\n while (self._83 === 3) {\n self = self._18;\n }\n if (Promise._47) {\n Promise._47(self);\n }\n if (self._83 === 0) {\n if (self._75 === 0) {\n self._75 = 1;\n self._38 = deferred;\n return;\n }\n if (self._75 === 1) {\n self._75 = 2;\n self._38 = [self._38, deferred];\n return;\n }\n self._38.push(deferred);\n return;\n }\n handleResolved(self, deferred);\n}\n\nfunction handleResolved(self, deferred) {\n asap(function() {\n var cb = self._83 === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n if (self._83 === 1) {\n resolve(deferred.promise, self._18);\n } else {\n reject(deferred.promise, self._18);\n }\n return;\n }\n var ret = tryCallOne(cb, self._18);\n if (ret === IS_ERROR) {\n reject(deferred.promise, LAST_ERROR);\n } else {\n resolve(deferred.promise, ret);\n }\n });\n}\nfunction resolve(self, newValue) {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self) {\n return reject(\n self,\n new TypeError('A promise cannot be resolved with itself.')\n );\n }\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = getThen(newValue);\n if (then === IS_ERROR) {\n return reject(self, LAST_ERROR);\n }\n if (\n then === self.then &&\n newValue instanceof Promise\n ) {\n self._83 = 3;\n self._18 = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(then.bind(newValue), self);\n return;\n }\n }\n self._83 = 1;\n self._18 = newValue;\n finale(self);\n}\n\nfunction reject(self, newValue) {\n self._83 = 2;\n self._18 = newValue;\n if (Promise._71) {\n Promise._71(self, newValue);\n }\n finale(self);\n}\nfunction finale(self) {\n if (self._75 === 1) {\n handle(self, self._38);\n self._38 = null;\n }\n if (self._75 === 2) {\n for (var i = 0; i < self._38.length; i++) {\n handle(self, self._38[i]);\n }\n self._38 = null;\n }\n}\n\nfunction Handler(onFulfilled, onRejected, promise){\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, promise) {\n var done = false;\n var res = tryCallTwo(fn, function (value) {\n if (done) return;\n done = true;\n resolve(promise, value);\n }, function (reason) {\n if (done) return;\n done = true;\n reject(promise, reason);\n });\n if (!done && res === IS_ERROR) {\n done = true;\n reject(promise, LAST_ERROR);\n }\n}\n\n\n/***/ }),\n/* 79 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_invariant__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_invariant__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_history__ = __webpack_require__(23);\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\nvar isModifiedEvent = function isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n};\n\n/**\n * The public API for rendering a history-aware .\n */\n\nvar Link = function (_React$Component) {\n _inherits(Link, _React$Component);\n\n function Link() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Link);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.handleClick = function (event) {\n if (_this.props.onClick) _this.props.onClick(event);\n\n if (!event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n !_this.props.target && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n\n var history = _this.context.router.history;\n var _this$props = _this.props,\n replace = _this$props.replace,\n to = _this$props.to;\n\n\n if (replace) {\n history.replace(to);\n } else {\n history.push(to);\n }\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Link.prototype.render = function render() {\n var _props = this.props,\n replace = _props.replace,\n to = _props.to,\n innerRef = _props.innerRef,\n props = _objectWithoutProperties(_props, [\"replace\", \"to\", \"innerRef\"]); // eslint-disable-line no-unused-vars\n\n __WEBPACK_IMPORTED_MODULE_2_invariant___default()(this.context.router, \"You should not use outside a \");\n\n __WEBPACK_IMPORTED_MODULE_2_invariant___default()(to !== undefined, 'You must specify the \"to\" property');\n\n var history = this.context.router.history;\n\n var location = typeof to === \"string\" ? Object(__WEBPACK_IMPORTED_MODULE_3_history__[\"c\" /* createLocation */])(to, null, null, history.location) : to;\n\n var href = history.createHref(location);\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"a\", _extends({}, props, { onClick: this.handleClick, href: href, ref: innerRef }));\n };\n\n return Link;\n}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);\n\nLink.propTypes = {\n onClick: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func,\n target: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,\n replace: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,\n to: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object]).isRequired,\n innerRef: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func])\n};\nLink.defaultProps = {\n replace: false\n};\nLink.contextTypes = {\n router: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({\n history: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({\n push: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired,\n replace: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired,\n createHref: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired\n }).isRequired\n }).isRequired\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Link);\n\n/***/ }),\n/* 80 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_history__ = __webpack_require__(23);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Router__ = __webpack_require__(35);\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n\n/**\n * The public API for a that stores location in memory.\n */\n\nvar MemoryRouter = function (_React$Component) {\n _inherits(MemoryRouter, _React$Component);\n\n function MemoryRouter() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, MemoryRouter);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.history = Object(__WEBPACK_IMPORTED_MODULE_3_history__[\"d\" /* createMemoryHistory */])(_this.props), _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n MemoryRouter.prototype.componentWillMount = function componentWillMount() {\n __WEBPACK_IMPORTED_MODULE_0_warning___default()(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\");\n };\n\n MemoryRouter.prototype.render = function render() {\n return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__Router__[\"a\" /* default */], { history: this.history, children: this.props.children });\n };\n\n return MemoryRouter;\n}(__WEBPACK_IMPORTED_MODULE_1_react___default.a.Component);\n\nMemoryRouter.propTypes = {\n initialEntries: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.array,\n initialIndex: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n getUserConfirmation: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func,\n keyLength: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,\n children: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.node\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (MemoryRouter);\n\n/***/ }),\n/* 81 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_Route__ = __webpack_require__(51);\n// Written in this round about way for babel-transform-imports\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_Route__[\"a\" /* default */]);\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isarray = __webpack_require__(224)\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options))\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$')\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n\n\n/***/ }),\n/* 83 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_invariant__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_invariant__);\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n/**\n * The public API for prompting the user before navigating away\n * from a screen with a component.\n */\n\nvar Prompt = function (_React$Component) {\n _inherits(Prompt, _React$Component);\n\n function Prompt() {\n _classCallCheck(this, Prompt);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n Prompt.prototype.enable = function enable(message) {\n if (this.unblock) this.unblock();\n\n this.unblock = this.context.router.history.block(message);\n };\n\n Prompt.prototype.disable = function disable() {\n if (this.unblock) {\n this.unblock();\n this.unblock = null;\n }\n };\n\n Prompt.prototype.componentWillMount = function componentWillMount() {\n __WEBPACK_IMPORTED_MODULE_2_invariant___default()(this.context.router, \"You should not use outside a \");\n\n if (this.props.when) this.enable(this.props.message);\n };\n\n Prompt.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (nextProps.when) {\n if (!this.props.when || this.props.message !== nextProps.message) this.enable(nextProps.message);\n } else {\n this.disable();\n }\n };\n\n Prompt.prototype.componentWillUnmount = function componentWillUnmount() {\n this.disable();\n };\n\n Prompt.prototype.render = function render() {\n return null;\n };\n\n return Prompt;\n}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);\n\nPrompt.propTypes = {\n when: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,\n message: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string]).isRequired\n};\nPrompt.defaultProps = {\n when: true\n};\nPrompt.contextTypes = {\n router: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({\n history: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({\n block: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired\n }).isRequired\n }).isRequired\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Prompt);\n\n/***/ }),\n/* 84 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_warning__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_invariant__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_invariant__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_history__ = __webpack_require__(23);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__generatePath__ = __webpack_require__(52);\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n\n\n/**\n * The public API for updating the location programmatically\n * with a component.\n */\n\nvar Redirect = function (_React$Component) {\n _inherits(Redirect, _React$Component);\n\n function Redirect() {\n _classCallCheck(this, Redirect);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n Redirect.prototype.isStatic = function isStatic() {\n return this.context.router && this.context.router.staticContext;\n };\n\n Redirect.prototype.componentWillMount = function componentWillMount() {\n __WEBPACK_IMPORTED_MODULE_3_invariant___default()(this.context.router, \"You should not use outside a \");\n\n if (this.isStatic()) this.perform();\n };\n\n Redirect.prototype.componentDidMount = function componentDidMount() {\n if (!this.isStatic()) this.perform();\n };\n\n Redirect.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {\n var prevTo = Object(__WEBPACK_IMPORTED_MODULE_4_history__[\"c\" /* createLocation */])(prevProps.to);\n var nextTo = Object(__WEBPACK_IMPORTED_MODULE_4_history__[\"c\" /* createLocation */])(this.props.to);\n\n if (Object(__WEBPACK_IMPORTED_MODULE_4_history__[\"f\" /* locationsAreEqual */])(prevTo, nextTo)) {\n __WEBPACK_IMPORTED_MODULE_2_warning___default()(false, \"You tried to redirect to the same route you're currently on: \" + (\"\\\"\" + nextTo.pathname + nextTo.search + \"\\\"\"));\n return;\n }\n\n this.perform();\n };\n\n Redirect.prototype.computeTo = function computeTo(_ref) {\n var computedMatch = _ref.computedMatch,\n to = _ref.to;\n\n if (computedMatch) {\n if (typeof to === \"string\") {\n return Object(__WEBPACK_IMPORTED_MODULE_5__generatePath__[\"a\" /* default */])(to, computedMatch.params);\n } else {\n return _extends({}, to, {\n pathname: Object(__WEBPACK_IMPORTED_MODULE_5__generatePath__[\"a\" /* default */])(to.pathname, computedMatch.params)\n });\n }\n }\n\n return to;\n };\n\n Redirect.prototype.perform = function perform() {\n var history = this.context.router.history;\n var push = this.props.push;\n\n var to = this.computeTo(this.props);\n\n if (push) {\n history.push(to);\n } else {\n history.replace(to);\n }\n };\n\n Redirect.prototype.render = function render() {\n return null;\n };\n\n return Redirect;\n}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);\n\nRedirect.propTypes = {\n computedMatch: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object, // private, from \n push: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,\n from: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,\n to: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object]).isRequired\n};\nRedirect.defaultProps = {\n push: false\n};\nRedirect.contextTypes = {\n router: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({\n history: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({\n push: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired,\n replace: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired\n }).isRequired,\n staticContext: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object\n }).isRequired\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Redirect);\n\n/***/ }),\n/* 85 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_invariant__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_history__ = __webpack_require__(23);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Router__ = __webpack_require__(35);\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n\n\nvar addLeadingSlash = function addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n};\n\nvar addBasename = function addBasename(basename, location) {\n if (!basename) return location;\n\n return _extends({}, location, {\n pathname: addLeadingSlash(basename) + location.pathname\n });\n};\n\nvar stripBasename = function stripBasename(basename, location) {\n if (!basename) return location;\n\n var base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return _extends({}, location, {\n pathname: location.pathname.substr(base.length)\n });\n};\n\nvar createURL = function createURL(location) {\n return typeof location === \"string\" ? location : Object(__WEBPACK_IMPORTED_MODULE_4_history__[\"e\" /* createPath */])(location);\n};\n\nvar staticHandler = function staticHandler(methodName) {\n return function () {\n __WEBPACK_IMPORTED_MODULE_1_invariant___default()(false, \"You cannot %s with \", methodName);\n };\n};\n\nvar noop = function noop() {};\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\n\nvar StaticRouter = function (_React$Component) {\n _inherits(StaticRouter, _React$Component);\n\n function StaticRouter() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, StaticRouter);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.createHref = function (path) {\n return addLeadingSlash(_this.props.basename + createURL(path));\n }, _this.handlePush = function (location) {\n var _this$props = _this.props,\n basename = _this$props.basename,\n context = _this$props.context;\n\n context.action = \"PUSH\";\n context.location = addBasename(basename, Object(__WEBPACK_IMPORTED_MODULE_4_history__[\"c\" /* createLocation */])(location));\n context.url = createURL(context.location);\n }, _this.handleReplace = function (location) {\n var _this$props2 = _this.props,\n basename = _this$props2.basename,\n context = _this$props2.context;\n\n context.action = \"REPLACE\";\n context.location = addBasename(basename, Object(__WEBPACK_IMPORTED_MODULE_4_history__[\"c\" /* createLocation */])(location));\n context.url = createURL(context.location);\n }, _this.handleListen = function () {\n return noop;\n }, _this.handleBlock = function () {\n return noop;\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n StaticRouter.prototype.getChildContext = function getChildContext() {\n return {\n router: {\n staticContext: this.props.context\n }\n };\n };\n\n StaticRouter.prototype.componentWillMount = function componentWillMount() {\n __WEBPACK_IMPORTED_MODULE_0_warning___default()(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { StaticRouter as Router }`.\");\n };\n\n StaticRouter.prototype.render = function render() {\n var _props = this.props,\n basename = _props.basename,\n context = _props.context,\n location = _props.location,\n props = _objectWithoutProperties(_props, [\"basename\", \"context\", \"location\"]);\n\n var history = {\n createHref: this.createHref,\n action: \"POP\",\n location: stripBasename(basename, Object(__WEBPACK_IMPORTED_MODULE_4_history__[\"c\" /* createLocation */])(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__Router__[\"a\" /* default */], _extends({}, props, { history: history }));\n };\n\n return StaticRouter;\n}(__WEBPACK_IMPORTED_MODULE_2_react___default.a.Component);\n\nStaticRouter.propTypes = {\n basename: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n context: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired,\n location: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object])\n};\nStaticRouter.defaultProps = {\n basename: \"\",\n location: \"/\"\n};\nStaticRouter.childContextTypes = {\n router: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (StaticRouter);\n\n/***/ }),\n/* 86 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_warning__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_warning__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_invariant__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_invariant__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__matchPath__ = __webpack_require__(36);\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n\n/**\n * The public API for rendering the first that matches.\n */\n\nvar Switch = function (_React$Component) {\n _inherits(Switch, _React$Component);\n\n function Switch() {\n _classCallCheck(this, Switch);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n Switch.prototype.componentWillMount = function componentWillMount() {\n __WEBPACK_IMPORTED_MODULE_3_invariant___default()(this.context.router, \"You should not use outside a \");\n };\n\n Switch.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n __WEBPACK_IMPORTED_MODULE_2_warning___default()(!(nextProps.location && !this.props.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.');\n\n __WEBPACK_IMPORTED_MODULE_2_warning___default()(!(!nextProps.location && this.props.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.');\n };\n\n Switch.prototype.render = function render() {\n var route = this.context.router.route;\n var children = this.props.children;\n\n var location = this.props.location || route.location;\n\n var match = void 0,\n child = void 0;\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.Children.forEach(children, function (element) {\n if (match == null && __WEBPACK_IMPORTED_MODULE_0_react___default.a.isValidElement(element)) {\n var _element$props = element.props,\n pathProp = _element$props.path,\n exact = _element$props.exact,\n strict = _element$props.strict,\n sensitive = _element$props.sensitive,\n from = _element$props.from;\n\n var path = pathProp || from;\n\n child = element;\n match = Object(__WEBPACK_IMPORTED_MODULE_4__matchPath__[\"a\" /* default */])(location.pathname, { path: path, exact: exact, strict: strict, sensitive: sensitive }, route.match);\n }\n });\n\n return match ? __WEBPACK_IMPORTED_MODULE_0_react___default.a.cloneElement(child, { location: location, computedMatch: match }) : null;\n };\n\n return Switch;\n}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);\n\nSwitch.contextTypes = {\n router: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({\n route: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object.isRequired\n }).isRequired\n};\nSwitch.propTypes = {\n children: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.node,\n location: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Switch);\n\n/***/ }),\n/* 87 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_hoist_non_react_statics__ = __webpack_require__(232);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_hoist_non_react_statics___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_hoist_non_react_statics__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Route__ = __webpack_require__(51);\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\n\n\n\n\n/**\n * A public higher-order component to access the imperative API\n */\nvar withRouter = function withRouter(Component) {\n var C = function C(props) {\n var wrappedComponentRef = props.wrappedComponentRef,\n remainingProps = _objectWithoutProperties(props, [\"wrappedComponentRef\"]);\n\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__Route__[\"a\" /* default */], {\n children: function children(routeComponentProps) {\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(Component, _extends({}, remainingProps, routeComponentProps, {\n ref: wrappedComponentRef\n }));\n }\n });\n };\n\n C.displayName = \"withRouter(\" + (Component.displayName || Component.name) + \")\";\n C.WrappedComponent = Component;\n C.propTypes = {\n wrappedComponentRef: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func\n };\n\n return __WEBPACK_IMPORTED_MODULE_2_hoist_non_react_statics___default()(C, Component);\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (withRouter);\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar utils = __webpack_require__(13);\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {\n\nvar utils = __webpack_require__(13);\nvar normalizeHeaderName = __webpack_require__(245);\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = __webpack_require__(92);\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = __webpack_require__(92);\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(244)))\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar utils = __webpack_require__(13);\nvar settle = __webpack_require__(246);\nvar cookies = __webpack_require__(248);\nvar buildURL = __webpack_require__(89);\nvar buildFullPath = __webpack_require__(249);\nvar parseHeaders = __webpack_require__(252);\nvar isURLSameOrigin = __webpack_require__(253);\nvar createError = __webpack_require__(93);\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar enhanceError = __webpack_require__(247);\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar utils = __webpack_require__(13);\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n\n\n/***/ }),\n/* 96 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Container__ = __webpack_require__(259);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__Container__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Row__ = __webpack_require__(260);\n/* unused harmony reexport Row */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Col__ = __webpack_require__(261);\n/* unused harmony reexport Col */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Navbar__ = __webpack_require__(262);\n/* unused harmony reexport Navbar */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__NavbarBrand__ = __webpack_require__(263);\n/* unused harmony reexport NavbarBrand */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__NavbarText__ = __webpack_require__(264);\n/* unused harmony reexport NavbarText */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__NavbarToggler__ = __webpack_require__(265);\n/* unused harmony reexport NavbarToggler */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__Nav__ = __webpack_require__(266);\n/* unused harmony reexport Nav */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__NavItem__ = __webpack_require__(267);\n/* unused harmony reexport NavItem */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__NavLink__ = __webpack_require__(268);\n/* unused harmony reexport NavLink */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__Breadcrumb__ = __webpack_require__(270);\n/* unused harmony reexport Breadcrumb */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__BreadcrumbItem__ = __webpack_require__(271);\n/* unused harmony reexport BreadcrumbItem */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__Button__ = __webpack_require__(53);\n/* unused harmony reexport Button */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__ButtonToggle__ = __webpack_require__(272);\n/* unused harmony reexport ButtonToggle */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__ButtonDropdown__ = __webpack_require__(97);\n/* unused harmony reexport ButtonDropdown */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__ButtonGroup__ = __webpack_require__(291);\n/* unused harmony reexport ButtonGroup */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__ButtonToolbar__ = __webpack_require__(292);\n/* unused harmony reexport ButtonToolbar */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__Dropdown__ = __webpack_require__(37);\n/* unused harmony reexport Dropdown */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__DropdownItem__ = __webpack_require__(293);\n/* unused harmony reexport DropdownItem */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__DropdownMenu__ = __webpack_require__(294);\n/* unused harmony reexport DropdownMenu */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__DropdownToggle__ = __webpack_require__(295);\n/* unused harmony reexport DropdownToggle */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__DropdownContext__ = __webpack_require__(27);\n/* unused harmony reexport DropdownContext */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__Fade__ = __webpack_require__(28);\n/* unused harmony reexport Fade */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__Badge__ = __webpack_require__(303);\n/* unused harmony reexport Badge */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__Card__ = __webpack_require__(304);\n/* unused harmony reexport Card */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__CardGroup__ = __webpack_require__(305);\n/* unused harmony reexport CardGroup */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__CardDeck__ = __webpack_require__(306);\n/* unused harmony reexport CardDeck */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__CardColumns__ = __webpack_require__(307);\n/* unused harmony reexport CardColumns */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__CardBody__ = __webpack_require__(308);\n/* unused harmony reexport CardBody */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_29__CardLink__ = __webpack_require__(309);\n/* unused harmony reexport CardLink */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_30__CardFooter__ = __webpack_require__(310);\n/* unused harmony reexport CardFooter */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_31__CardHeader__ = __webpack_require__(311);\n/* unused harmony reexport CardHeader */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_32__CardImg__ = __webpack_require__(312);\n/* unused harmony reexport CardImg */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_33__CardImgOverlay__ = __webpack_require__(313);\n/* unused harmony reexport CardImgOverlay */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_34__Carousel__ = __webpack_require__(108);\n/* unused harmony reexport Carousel */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_35__UncontrolledCarousel__ = __webpack_require__(314);\n/* unused harmony reexport UncontrolledCarousel */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_36__CarouselControl__ = __webpack_require__(109);\n/* unused harmony reexport CarouselControl */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_37__CarouselItem__ = __webpack_require__(60);\n/* unused harmony reexport CarouselItem */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_38__CarouselIndicators__ = __webpack_require__(110);\n/* unused harmony reexport CarouselIndicators */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_39__CarouselCaption__ = __webpack_require__(111);\n/* unused harmony reexport CarouselCaption */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_40__CardSubtitle__ = __webpack_require__(315);\n/* unused harmony reexport CardSubtitle */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_41__CardText__ = __webpack_require__(316);\n/* unused harmony reexport CardText */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_42__CardTitle__ = __webpack_require__(317);\n/* unused harmony reexport CardTitle */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_43__CustomFileInput__ = __webpack_require__(112);\n/* unused harmony reexport CustomFileInput */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_44__CustomInput__ = __webpack_require__(318);\n/* unused harmony reexport CustomInput */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_45__PopperContent__ = __webpack_require__(113);\n/* unused harmony reexport PopperContent */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_46__PopperTargetHelper__ = __webpack_require__(319);\n/* unused harmony reexport PopperTargetHelper */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_47__Popover__ = __webpack_require__(114);\n/* unused harmony reexport Popover */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_48__UncontrolledPopover__ = __webpack_require__(320);\n/* unused harmony reexport UncontrolledPopover */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_49__PopoverHeader__ = __webpack_require__(321);\n/* unused harmony reexport PopoverHeader */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_50__PopoverBody__ = __webpack_require__(322);\n/* unused harmony reexport PopoverBody */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_51__Progress__ = __webpack_require__(323);\n/* unused harmony reexport Progress */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_52__Modal__ = __webpack_require__(324);\n/* unused harmony reexport Modal */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_53__ModalHeader__ = __webpack_require__(326);\n/* unused harmony reexport ModalHeader */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_54__ModalBody__ = __webpack_require__(327);\n/* unused harmony reexport ModalBody */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_55__ModalFooter__ = __webpack_require__(328);\n/* unused harmony reexport ModalFooter */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_56__Tooltip__ = __webpack_require__(116);\n/* unused harmony reexport Tooltip */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_57__Table__ = __webpack_require__(329);\n/* unused harmony reexport Table */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_58__ListGroup__ = __webpack_require__(330);\n/* unused harmony reexport ListGroup */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_59__Form__ = __webpack_require__(331);\n/* unused harmony reexport Form */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_60__FormFeedback__ = __webpack_require__(332);\n/* unused harmony reexport FormFeedback */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_61__FormGroup__ = __webpack_require__(333);\n/* unused harmony reexport FormGroup */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_62__FormText__ = __webpack_require__(334);\n/* unused harmony reexport FormText */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_63__Input__ = __webpack_require__(335);\n/* unused harmony reexport Input */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_64__InputGroup__ = __webpack_require__(336);\n/* unused harmony reexport InputGroup */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_65__InputGroupAddon__ = __webpack_require__(337);\n/* unused harmony reexport InputGroupAddon */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_66__InputGroupButtonDropdown__ = __webpack_require__(338);\n/* unused harmony reexport InputGroupButtonDropdown */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_67__InputGroupText__ = __webpack_require__(117);\n/* unused harmony reexport InputGroupText */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_68__Label__ = __webpack_require__(339);\n/* unused harmony reexport Label */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_69__Media__ = __webpack_require__(340);\n/* unused harmony reexport Media */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_70__Pagination__ = __webpack_require__(341);\n/* unused harmony reexport Pagination */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_71__PaginationItem__ = __webpack_require__(342);\n/* unused harmony reexport PaginationItem */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_72__PaginationLink__ = __webpack_require__(343);\n/* unused harmony reexport PaginationLink */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_73__TabContent__ = __webpack_require__(344);\n/* unused harmony reexport TabContent */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_74__TabPane__ = __webpack_require__(345);\n/* unused harmony reexport TabPane */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_75__Jumbotron__ = __webpack_require__(346);\n/* unused harmony reexport Jumbotron */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_76__Alert__ = __webpack_require__(119);\n/* unused harmony reexport Alert */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_77__Toast__ = __webpack_require__(347);\n/* unused harmony reexport Toast */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_78__ToastBody__ = __webpack_require__(348);\n/* unused harmony reexport ToastBody */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_79__ToastHeader__ = __webpack_require__(349);\n/* unused harmony reexport ToastHeader */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_80__Collapse__ = __webpack_require__(120);\n/* unused harmony reexport Collapse */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_81__ListGroupItem__ = __webpack_require__(350);\n/* unused harmony reexport ListGroupItem */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_82__ListGroupItemHeading__ = __webpack_require__(351);\n/* unused harmony reexport ListGroupItemHeading */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_83__ListGroupItemText__ = __webpack_require__(352);\n/* unused harmony reexport ListGroupItemText */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_84__List__ = __webpack_require__(353);\n/* unused harmony reexport List */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_85__ListInlineItem__ = __webpack_require__(354);\n/* unused harmony reexport ListInlineItem */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_86__UncontrolledAlert__ = __webpack_require__(355);\n/* unused harmony reexport UncontrolledAlert */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_87__UncontrolledButtonDropdown__ = __webpack_require__(356);\n/* unused harmony reexport UncontrolledButtonDropdown */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_88__UncontrolledCollapse__ = __webpack_require__(357);\n/* unused harmony reexport UncontrolledCollapse */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_89__UncontrolledDropdown__ = __webpack_require__(358);\n/* unused harmony reexport UncontrolledDropdown */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_90__UncontrolledTooltip__ = __webpack_require__(359);\n/* unused harmony reexport UncontrolledTooltip */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_91__Spinner__ = __webpack_require__(360);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return __WEBPACK_IMPORTED_MODULE_91__Spinner__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_92__utils__ = __webpack_require__(2);\n/* unused harmony reexport Util */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_93__polyfill__ = __webpack_require__(361);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_93__polyfill___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_93__polyfill__);\n/* unused harmony reexport Polyfill */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n/* 97 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Dropdown__ = __webpack_require__(37);\n\n\n\n\nvar propTypes = {\n children: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.node\n};\n\nvar ButtonDropdown = function ButtonDropdown(props) {\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__Dropdown__[\"a\" /* default */], Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({\n group: true\n }, props));\n};\n\nButtonDropdown.propTypes = propTypes;\n/* harmony default export */ __webpack_exports__[\"a\"] = (ButtonDropdown);\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports) {\n\nfunction _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar slice = Array.prototype.slice;\nvar isArgs = __webpack_require__(100);\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : __webpack_require__(276);\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\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar toObject = Object;\nvar TypeErr = TypeError;\n\nmodule.exports = function flags() {\n\tif (this != null && this !== toObject(this)) {\n\t\tthrow new TypeErr('RegExp.prototype.flags getter called on non-object');\n\t}\n\tvar result = '';\n\tif (this.global) {\n\t\tresult += 'g';\n\t}\n\tif (this.ignoreCase) {\n\t\tresult += 'i';\n\t}\n\tif (this.multiline) {\n\t\tresult += 'm';\n\t}\n\tif (this.dotAll) {\n\t\tresult += 's';\n\t}\n\tif (this.unicode) {\n\t\tresult += 'u';\n\t}\n\tif (this.sticky) {\n\t\tresult += 'y';\n\t}\n\treturn result;\n};\n\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar implementation = __webpack_require__(101);\n\nvar supportsDescriptors = __webpack_require__(57).supportsDescriptors;\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar TypeErr = TypeError;\n\nmodule.exports = function getPolyfill() {\n\tif (!supportsDescriptors) {\n\t\tthrow new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n\t}\n\tif (/a/mig.flags === 'gim') {\n\t\tvar descriptor = gOPD(RegExp.prototype, 'flags');\n\t\tif (descriptor && typeof descriptor.get === 'function' && typeof (/a/).dotAll === 'boolean') {\n\t\t\treturn descriptor.get;\n\t\t}\n\t}\n\treturn implementation;\n};\n\n\n/***/ }),\n/* 103 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return unwrapArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return safeInvoke; });\n/* unused harmony export shallowEqual */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return setRef; });\n/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nvar unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nvar safeInvoke = function safeInvoke(fn) {\n if (typeof fn === \"function\") {\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 return fn.apply(void 0, args);\n }\n};\n/**\n * Does a shallow equality check of two objects by comparing the reference\n * equality of each value.\n */\n\nvar shallowEqual = function shallowEqual(objA, objB) {\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n\n if (bKeys.length !== aKeys.length) {\n return false;\n }\n\n for (var i = 0; i < bKeys.length; i++) {\n var key = aKeys[i];\n\n if (objA[key] !== objB[key]) {\n return false;\n }\n }\n\n return true;\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nvar setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === \"function\") {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(__webpack_require__(1));\n\nvar _react = _interopRequireDefault(__webpack_require__(0));\n\nvar _reactDom = _interopRequireDefault(__webpack_require__(22));\n\nvar _reactLifecyclesCompat = __webpack_require__(105);\n\nvar _PropTypes = __webpack_require__(106);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\n };\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = false ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\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 return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;\n\n/***/ }),\n/* 105 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"polyfill\", function() { return polyfill; });\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\n\n\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(1));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar timeoutsShape = false ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number,\n appear: _propTypes.default.number\n}).isRequired]) : null;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = false ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]) : null;\nexports.classNamesShape = classNamesShape;\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(1));\n\nvar _react = _interopRequireDefault(__webpack_require__(0));\n\nvar _reactLifecyclesCompat = __webpack_require__(105);\n\nvar _ChildMapping = __webpack_require__(302);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n /**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\n};\n\nvar TransitionGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: {\n isMounting: !this.appeared\n }\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n this.mounted = true;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return children;\n }\n\n return _react.default.createElement(Component, props, children);\n };\n\n return TransitionGroup;\n}(_react.default.Component);\n\nTransitionGroup.childContextTypes = {\n transitionGroup: _propTypes.default.object.isRequired\n};\nTransitionGroup.propTypes = false ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: _propTypes.default.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: _propTypes.default.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: _propTypes.default.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: _propTypes.default.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];\n\n/***/ }),\n/* 108 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_assertThisInitialized__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_inheritsLoose__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__CarouselItem__ = __webpack_require__(60);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utils__ = __webpack_require__(2);\n\n\n\n\n\n\n\nvar SWIPE_THRESHOLD = 40;\n\nvar Carousel = /*#__PURE__*/function (_React$Component) {\n Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_inheritsLoose__[\"a\" /* default */])(Carousel, _React$Component);\n\n function Carousel(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.handleKeyPress = _this.handleKeyPress.bind(Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.renderItems = _this.renderItems.bind(Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.hoverStart = _this.hoverStart.bind(Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.hoverEnd = _this.hoverEnd.bind(Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.handleTouchStart = _this.handleTouchStart.bind(Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.handleTouchEnd = _this.handleTouchEnd.bind(Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.touchStartX = 0;\n _this.touchStartY = 0;\n _this.state = {\n activeIndex: _this.props.activeIndex,\n direction: 'right',\n indicatorClicked: false\n };\n return _this;\n }\n\n var _proto = Carousel.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n direction: this.state.direction\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n // Set up the cycle\n if (this.props.ride === 'carousel') {\n this.setInterval();\n } // TODO: move this to the specific carousel like bootstrap. Currently it will trigger ALL carousels on the page.\n\n\n document.addEventListener('keyup', this.handleKeyPress);\n };\n\n Carousel.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var newState = null;\n var activeIndex = prevState.activeIndex,\n direction = prevState.direction,\n indicatorClicked = prevState.indicatorClicked;\n\n if (nextProps.activeIndex !== activeIndex) {\n // Calculate the direction to turn\n if (nextProps.activeIndex === activeIndex + 1) {\n direction = 'right';\n } else if (nextProps.activeIndex === activeIndex - 1) {\n direction = 'left';\n } else if (nextProps.activeIndex < activeIndex) {\n direction = indicatorClicked ? 'left' : 'right';\n } else if (nextProps.activeIndex !== activeIndex) {\n direction = indicatorClicked ? 'right' : 'left';\n }\n\n newState = {\n activeIndex: nextProps.activeIndex,\n direction: direction,\n indicatorClicked: false\n };\n }\n\n return newState;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevState.activeIndex === this.state.activeIndex) return;\n this.setInterval(this.props);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.clearInterval();\n document.removeEventListener('keyup', this.handleKeyPress);\n };\n\n _proto.setInterval = function (_setInterval) {\n function setInterval() {\n return _setInterval.apply(this, arguments);\n }\n\n setInterval.toString = function () {\n return _setInterval.toString();\n };\n\n return setInterval;\n }(function (props) {\n if (props === void 0) {\n props = this.props;\n }\n\n // make sure not to have multiple intervals going...\n this.clearInterval();\n\n if (props.interval) {\n this.cycleInterval = setInterval(function () {\n props.next();\n }, parseInt(props.interval, 10));\n }\n });\n\n _proto.clearInterval = function (_clearInterval) {\n function clearInterval() {\n return _clearInterval.apply(this, arguments);\n }\n\n clearInterval.toString = function () {\n return _clearInterval.toString();\n };\n\n return clearInterval;\n }(function () {\n clearInterval(this.cycleInterval);\n });\n\n _proto.hoverStart = function hoverStart() {\n if (this.props.pause === 'hover') {\n this.clearInterval();\n }\n\n if (this.props.mouseEnter) {\n var _this$props;\n\n (_this$props = this.props).mouseEnter.apply(_this$props, arguments);\n }\n };\n\n _proto.hoverEnd = function hoverEnd() {\n if (this.props.pause === 'hover') {\n this.setInterval();\n }\n\n if (this.props.mouseLeave) {\n var _this$props2;\n\n (_this$props2 = this.props).mouseLeave.apply(_this$props2, arguments);\n }\n };\n\n _proto.handleKeyPress = function handleKeyPress(evt) {\n if (this.props.keyboard) {\n if (evt.keyCode === 37) {\n this.props.previous();\n } else if (evt.keyCode === 39) {\n this.props.next();\n }\n }\n };\n\n _proto.handleTouchStart = function handleTouchStart(e) {\n if (!this.props.enableTouch) {\n return;\n }\n\n this.touchStartX = e.changedTouches[0].screenX;\n this.touchStartY = e.changedTouches[0].screenY;\n };\n\n _proto.handleTouchEnd = function handleTouchEnd(e) {\n if (!this.props.enableTouch) {\n return;\n }\n\n var currentX = e.changedTouches[0].screenX;\n var currentY = e.changedTouches[0].screenY;\n var diffX = Math.abs(this.touchStartX - currentX);\n var diffY = Math.abs(this.touchStartY - currentY); // Don't swipe if Y-movement is bigger than X-movement\n\n if (diffX < diffY) {\n return;\n }\n\n if (diffX < SWIPE_THRESHOLD) {\n return;\n }\n\n if (currentX < this.touchStartX) {\n this.props.next();\n } else {\n this.props.previous();\n }\n };\n\n _proto.renderItems = function renderItems(carouselItems, className) {\n var _this2 = this;\n\n var slide = this.props.slide;\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"div\", {\n className: className\n }, carouselItems.map(function (item, index) {\n var isIn = index === _this2.state.activeIndex;\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.cloneElement(item, {\n in: isIn,\n slide: slide\n });\n }));\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$props3 = this.props,\n cssModule = _this$props3.cssModule,\n slide = _this$props3.slide,\n className = _this$props3.className;\n var outerClasses = Object(__WEBPACK_IMPORTED_MODULE_6__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'carousel', slide && 'slide'), cssModule);\n var innerClasses = Object(__WEBPACK_IMPORTED_MODULE_6__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()('carousel-inner'), cssModule); // filter out booleans, null, or undefined\n\n var children = this.props.children.filter(function (child) {\n return child !== null && child !== undefined && typeof child !== 'boolean';\n });\n var slidesOnly = children.every(function (child) {\n return child.type === __WEBPACK_IMPORTED_MODULE_5__CarouselItem__[\"a\" /* default */];\n }); // Rendering only slides\n\n if (slidesOnly) {\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"div\", {\n className: outerClasses,\n onMouseEnter: this.hoverStart,\n onMouseLeave: this.hoverEnd\n }, this.renderItems(children, innerClasses));\n } // Rendering slides and controls\n\n\n if (children[0] instanceof Array) {\n var _carouselItems = children[0];\n var _controlLeft = children[1];\n var _controlRight = children[2];\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"div\", {\n className: outerClasses,\n onMouseEnter: this.hoverStart,\n onMouseLeave: this.hoverEnd\n }, this.renderItems(_carouselItems, innerClasses), _controlLeft, _controlRight);\n } // Rendering indicators, slides and controls\n\n\n var indicators = children[0];\n\n var wrappedOnClick = function wrappedOnClick(e) {\n if (typeof indicators.props.onClickHandler === 'function') {\n _this3.setState({\n indicatorClicked: true\n }, function () {\n return indicators.props.onClickHandler(e);\n });\n }\n };\n\n var wrappedIndicators = /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.cloneElement(indicators, {\n onClickHandler: wrappedOnClick\n });\n var carouselItems = children[1];\n var controlLeft = children[2];\n var controlRight = children[3];\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"div\", {\n className: outerClasses,\n onMouseEnter: this.hoverStart,\n onMouseLeave: this.hoverEnd,\n onTouchStart: this.handleTouchStart,\n onTouchEnd: this.handleTouchEnd\n }, wrappedIndicators, this.renderItems(carouselItems, innerClasses), controlLeft, controlRight);\n };\n\n return Carousel;\n}(__WEBPACK_IMPORTED_MODULE_2_react___default.a.Component);\n\nCarousel.propTypes = {\n // the current active slide of the carousel\n activeIndex: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number,\n // a function which should advance the carousel to the next slide (via activeIndex)\n next: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func.isRequired,\n // a function which should advance the carousel to the previous slide (via activeIndex)\n previous: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func.isRequired,\n // controls if the left and right arrow keys should control the carousel\n keyboard: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n\n /* If set to \"hover\", pauses the cycling of the carousel on mouseenter and resumes the cycling of the carousel on\n * mouseleave. If set to false, hovering over the carousel won't pause it. (default: \"hover\")\n */\n pause: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOf(['hover', false]),\n // Autoplays the carousel after the user manually cycles the first item. If \"carousel\", autoplays the carousel on load.\n // This is how bootstrap defines it... I would prefer a bool named autoplay or something...\n ride: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOf(['carousel']),\n // the interval at which the carousel automatically cycles (default: 5000)\n // eslint-disable-next-line react/no-unused-prop-types\n interval: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool]),\n children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.array,\n // called when the mouse enters the Carousel\n mouseEnter: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func,\n // called when the mouse exits the Carousel\n mouseLeave: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func,\n // controls whether the slide animation on the Carousel works or not\n slide: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n enableTouch: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool\n};\nCarousel.defaultProps = {\n interval: 5000,\n pause: 'hover',\n keyboard: true,\n slide: true,\n enableTouch: true\n};\nCarousel.childContextTypes = {\n direction: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string\n};\n/* harmony default export */ __webpack_exports__[\"a\"] = (Carousel);\n\n/***/ }),\n/* 109 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils__ = __webpack_require__(2);\n\n\n\n\n\nvar CarouselControl = function CarouselControl(props) {\n var direction = props.direction,\n onClickHandler = props.onClickHandler,\n cssModule = props.cssModule,\n directionText = props.directionText,\n className = props.className;\n var anchorClasses = Object(__WEBPACK_IMPORTED_MODULE_3__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_2_classnames___default()(className, \"carousel-control-\" + direction), cssModule);\n var iconClasses = Object(__WEBPACK_IMPORTED_MODULE_3__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_2_classnames___default()(\"carousel-control-\" + direction + \"-icon\"), cssModule);\n var screenReaderClasses = Object(__WEBPACK_IMPORTED_MODULE_3__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_2_classnames___default()('sr-only'), cssModule);\n return (\n /*#__PURE__*/\n // We need to disable this linting rule to use an `` instead of\n // `\n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity: 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**.\n */\n\n\nvar CSSTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.onEnter = function (node, appearing) {\n var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),\n className = _this$getClassNames.className;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, className);\n\n if (_this.props.onEnter) {\n _this.props.onEnter(node, appearing);\n }\n };\n\n _this.onEntering = function (node, appearing) {\n var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),\n activeClassName = _this$getClassNames2.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onEntering) {\n _this.props.onEntering(node, appearing);\n }\n };\n\n _this.onEntered = function (node, appearing) {\n var appearClassName = _this.getClassNames('appear').doneClassName;\n\n var enterClassName = _this.getClassNames('enter').doneClassName;\n\n var doneClassName = appearing ? appearClassName + \" \" + enterClassName : enterClassName;\n\n _this.removeClasses(node, appearing ? 'appear' : 'enter');\n\n addClass(node, doneClassName);\n\n if (_this.props.onEntered) {\n _this.props.onEntered(node, appearing);\n }\n };\n\n _this.onExit = function (node) {\n var _this$getClassNames3 = _this.getClassNames('exit'),\n className = _this$getClassNames3.className;\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n addClass(node, className);\n\n if (_this.props.onExit) {\n _this.props.onExit(node);\n }\n };\n\n _this.onExiting = function (node) {\n var _this$getClassNames4 = _this.getClassNames('exit'),\n activeClassName = _this$getClassNames4.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onExiting) {\n _this.props.onExiting(node);\n }\n };\n\n _this.onExited = function (node) {\n var _this$getClassNames5 = _this.getClassNames('exit'),\n doneClassName = _this$getClassNames5.doneClassName;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, doneClassName);\n\n if (_this.props.onExited) {\n _this.props.onExited(node);\n }\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + '-' : '';\n var className = isStringClassNames ? prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? className + '-active' : classNames[type + 'Active'];\n var doneClassName = isStringClassNames ? className + '-done' : classNames[type + 'Done'];\n return {\n className: className,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$getClassNames6 = this.getClassNames(type),\n className = _this$getClassNames6.className,\n activeClassName = _this$getClassNames6.activeClassName,\n doneClassName = _this$getClassNames6.doneClassName;\n\n className && removeClass(node, className);\n activeClassName && removeClass(node, activeClassName);\n doneClassName && removeClass(node, doneClassName);\n };\n\n _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {\n // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n if (className) {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n /* eslint-enable no-unused-expressions */\n\n addClass(node, className);\n }\n };\n\n _proto.render = function render() {\n var props = _extends({}, this.props);\n\n delete props.classNames;\n return _react.default.createElement(_Transition.default, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(_react.default.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = false ? _extends({}, _Transition.default.propTypes, {\n /**\n * The animation classNames applied to the component as it enters, exits or\n * has finished the transition. A single name can be provided and it will be\n * suffixed for each stage: e.g.\n *\n * `classNames=\"fade\"` applies `fade-enter`, `fade-enter-active`,\n * `fade-enter-done`, `fade-exit`, `fade-exit-active`, `fade-exit-done`,\n * `fade-appear`, `fade-appear-active`, and `fade-appear-done`.\n *\n * **Note**: `fade-appear-done` and `fade-enter-done` will _both_ be applied.\n * This allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply an\n * epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: _PropTypes.classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nvar _default = CSSTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];\n\n/***/ }),\n/* 297 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _interopRequireDefault = __webpack_require__(298);\n\nexports.__esModule = true;\nexports.default = addClass;\n\nvar _hasClass = _interopRequireDefault(__webpack_require__(299));\n\nfunction addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);\n}\n\nmodule.exports = exports[\"default\"];\n\n/***/ }),\n/* 298 */\n/***/ (function(module, exports) {\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\n\n/***/ }),\n/* 299 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.default = hasClass;\n\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];\n\n/***/ }),\n/* 300 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n};\n\n/***/ }),\n/* 301 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(1));\n\nvar _react = _interopRequireDefault(__webpack_require__(0));\n\nvar _reactDom = __webpack_require__(22);\n\nvar _TransitionGroup = _interopRequireDefault(__webpack_require__(107));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n/**\n * The `` component is a specialized `Transition` component\n * that animates between two children.\n *\n * ```jsx\n * \n *
I appear first
\n *
I replace the above
\n *
\n * ```\n */\nvar ReplaceTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ReplaceTransition, _React$Component);\n\n function ReplaceTransition() {\n var _this;\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n\n _this.handleEnter = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _this.handleLifecycle('onEnter', 0, args);\n };\n\n _this.handleEntering = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return _this.handleLifecycle('onEntering', 0, args);\n };\n\n _this.handleEntered = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return _this.handleLifecycle('onEntered', 0, args);\n };\n\n _this.handleExit = function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return _this.handleLifecycle('onExit', 1, args);\n };\n\n _this.handleExiting = function () {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return _this.handleLifecycle('onExiting', 1, args);\n };\n\n _this.handleExited = function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return _this.handleLifecycle('onExited', 1, args);\n };\n\n return _this;\n }\n\n var _proto = ReplaceTransition.prototype;\n\n _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {\n var _child$props;\n\n var children = this.props.children;\n\n var child = _react.default.Children.toArray(children)[idx];\n\n if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);\n if (this.props[handler]) this.props[handler]((0, _reactDom.findDOMNode)(this));\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n inProp = _this$props.in,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\"]);\n\n var _React$Children$toArr = _react.default.Children.toArray(children),\n first = _React$Children$toArr[0],\n second = _React$Children$toArr[1];\n\n delete props.onEnter;\n delete props.onEntering;\n delete props.onEntered;\n delete props.onExit;\n delete props.onExiting;\n delete props.onExited;\n return _react.default.createElement(_TransitionGroup.default, props, inProp ? _react.default.cloneElement(first, {\n key: 'first',\n onEnter: this.handleEnter,\n onEntering: this.handleEntering,\n onEntered: this.handleEntered\n }) : _react.default.cloneElement(second, {\n key: 'second',\n onEnter: this.handleExit,\n onEntering: this.handleExiting,\n onEntered: this.handleExited\n }));\n };\n\n return ReplaceTransition;\n}(_react.default.Component);\n\nReplaceTransition.propTypes = false ? {\n in: _propTypes.default.bool.isRequired,\n children: function children(props, propName) {\n if (_react.default.Children.count(props[propName]) !== 2) return new Error(\"\\\"\" + propName + \"\\\" must be exactly two transition components.\");\n return null;\n }\n} : {};\nvar _default = ReplaceTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];\n\n/***/ }),\n/* 302 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\nexports.getInitialChildMapping = getInitialChildMapping;\nexports.getNextChildMapping = getNextChildMapping;\n\nvar _react = __webpack_require__(0);\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\nfunction getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) _react.Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\n\nfunction mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nfunction getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\n\nfunction getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!(0, _react.isValidElement)(child)) return;\n var hasPrev = key in prevChildMapping;\n var hasNext = key in nextChildMapping;\n var prevChild = prevChildMapping[key];\n var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = (0, _react.cloneElement)(child, {\n in: false\n });\n } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}\n\n/***/ }),\n/* 303 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n color: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n pill: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n innerRef: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string]),\n children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node,\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n color: 'secondary',\n pill: false,\n tag: 'span'\n};\n\nvar Badge = function Badge(props) {\n var className = props.className,\n cssModule = props.cssModule,\n color = props.color,\n innerRef = props.innerRef,\n pill = props.pill,\n Tag = props.tag,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"color\", \"innerRef\", \"pill\", \"tag\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'badge', 'badge-' + color, pill ? 'badge-pill' : false), cssModule);\n\n if (attributes.href && Tag === 'span') {\n Tag = 'a';\n }\n\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes,\n ref: innerRef\n }));\n};\n\nBadge.propTypes = propTypes;\nBadge.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (Badge);\n\n/***/ }),\n/* 304 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n inverse: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n color: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n body: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n outline: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,\n innerRef: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func])\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar Card = function Card(props) {\n var className = props.className,\n cssModule = props.cssModule,\n color = props.color,\n body = props.body,\n inverse = props.inverse,\n outline = props.outline,\n Tag = props.tag,\n innerRef = props.innerRef,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"color\", \"body\", \"inverse\", \"outline\", \"tag\", \"innerRef\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'card', inverse ? 'text-white' : false, body ? 'card-body' : false, color ? (outline ? 'border' : 'bg') + \"-\" + color : false), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes,\n ref: innerRef\n }));\n};\n\nCard.propTypes = propTypes;\nCard.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (Card);\n\n/***/ }),\n/* 305 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar CardGroup = function CardGroup(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'card-group'), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }));\n};\n\nCardGroup.propTypes = propTypes;\nCardGroup.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (CardGroup);\n\n/***/ }),\n/* 306 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar CardDeck = function CardDeck(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'card-deck'), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }));\n};\n\nCardDeck.propTypes = propTypes;\nCardDeck.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (CardDeck);\n\n/***/ }),\n/* 307 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar CardColumns = function CardColumns(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'card-columns'), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }));\n};\n\nCardColumns.propTypes = propTypes;\nCardColumns.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (CardColumns);\n\n/***/ }),\n/* 308 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,\n innerRef: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func])\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar CardBody = function CardBody(props) {\n var className = props.className,\n cssModule = props.cssModule,\n innerRef = props.innerRef,\n Tag = props.tag,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"innerRef\", \"tag\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'card-body'), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes,\n ref: innerRef\n }));\n};\n\nCardBody.propTypes = propTypes;\nCardBody.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (CardBody);\n\n/***/ }),\n/* 309 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n innerRef: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string]),\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'a'\n};\n\nvar CardLink = function CardLink(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n innerRef = props.innerRef,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"tag\", \"innerRef\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'card-link'), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n ref: innerRef,\n className: classes\n }));\n};\n\nCardLink.propTypes = propTypes;\nCardLink.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (CardLink);\n\n/***/ }),\n/* 310 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar CardFooter = function CardFooter(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'card-footer'), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }));\n};\n\nCardFooter.propTypes = propTypes;\nCardFooter.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (CardFooter);\n\n/***/ }),\n/* 311 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar CardHeader = function CardHeader(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'card-header'), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }));\n};\n\nCardHeader.propTypes = propTypes;\nCardHeader.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (CardHeader);\n\n/***/ }),\n/* 312 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n top: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n bottom: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'img'\n};\n\nvar CardImg = function CardImg(props) {\n var className = props.className,\n cssModule = props.cssModule,\n top = props.top,\n bottom = props.bottom,\n Tag = props.tag,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"top\", \"bottom\", \"tag\"]);\n\n var cardImgClassName = 'card-img';\n\n if (top) {\n cardImgClassName = 'card-img-top';\n }\n\n if (bottom) {\n cardImgClassName = 'card-img-bottom';\n }\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, cardImgClassName), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }));\n};\n\nCardImg.propTypes = propTypes;\nCardImg.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (CardImg);\n\n/***/ }),\n/* 313 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar CardImgOverlay = function CardImgOverlay(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'card-img-overlay'), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }));\n};\n\nCardImgOverlay.propTypes = propTypes;\nCardImgOverlay.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (CardImgOverlay);\n\n/***/ }),\n/* 314 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_inheritsLoose__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Carousel__ = __webpack_require__(108);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__CarouselItem__ = __webpack_require__(60);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__CarouselControl__ = __webpack_require__(109);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__CarouselIndicators__ = __webpack_require__(110);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__CarouselCaption__ = __webpack_require__(111);\n\n\n\n\n\n\n\n\n\n\n\nvar propTypes = {\n items: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.array.isRequired,\n indicators: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n controls: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n autoPlay: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n defaultActiveIndex: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n activeIndex: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number,\n next: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func,\n previous: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func,\n goToIndex: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func\n};\n\nvar UncontrolledCarousel = /*#__PURE__*/function (_Component) {\n Object(__WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_inheritsLoose__[\"a\" /* default */])(UncontrolledCarousel, _Component);\n\n function UncontrolledCarousel(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n _this.animating = false;\n _this.state = {\n activeIndex: props.defaultActiveIndex || 0\n };\n _this.next = _this.next.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.previous = _this.previous.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.goToIndex = _this.goToIndex.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.onExiting = _this.onExiting.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.onExited = _this.onExited.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n return _this;\n }\n\n var _proto = UncontrolledCarousel.prototype;\n\n _proto.onExiting = function onExiting() {\n this.animating = true;\n };\n\n _proto.onExited = function onExited() {\n this.animating = false;\n };\n\n _proto.next = function next() {\n if (this.animating) return;\n var nextIndex = this.state.activeIndex === this.props.items.length - 1 ? 0 : this.state.activeIndex + 1;\n this.setState({\n activeIndex: nextIndex\n });\n };\n\n _proto.previous = function previous() {\n if (this.animating) return;\n var nextIndex = this.state.activeIndex === 0 ? this.props.items.length - 1 : this.state.activeIndex - 1;\n this.setState({\n activeIndex: nextIndex\n });\n };\n\n _proto.goToIndex = function goToIndex(newIndex) {\n if (this.animating) return;\n this.setState({\n activeIndex: newIndex\n });\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n defaultActiveIndex = _this$props.defaultActiveIndex,\n autoPlay = _this$props.autoPlay,\n indicators = _this$props.indicators,\n controls = _this$props.controls,\n items = _this$props.items,\n goToIndex = _this$props.goToIndex,\n props = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(_this$props, [\"defaultActiveIndex\", \"autoPlay\", \"indicators\", \"controls\", \"items\", \"goToIndex\"]);\n\n var activeIndex = this.state.activeIndex;\n var slides = items.map(function (item) {\n var key = item.key || item.src;\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__CarouselItem__[\"a\" /* default */], {\n onExiting: _this2.onExiting,\n onExited: _this2.onExited,\n key: key\n }, /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\"img\", {\n className: \"d-block w-100\",\n src: item.src,\n alt: item.altText\n }), /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_10__CarouselCaption__[\"a\" /* default */], {\n captionText: item.caption,\n captionHeader: item.header || item.caption\n }));\n });\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__Carousel__[\"a\" /* default */], Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({\n activeIndex: activeIndex,\n next: this.next,\n previous: this.previous,\n ride: autoPlay ? 'carousel' : undefined\n }, props), indicators && /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__CarouselIndicators__[\"a\" /* default */], {\n items: items,\n activeIndex: props.activeIndex || activeIndex,\n onClickHandler: goToIndex || this.goToIndex\n }), slides, controls && /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__CarouselControl__[\"a\" /* default */], {\n direction: \"prev\",\n directionText: \"Previous\",\n onClickHandler: props.previous || this.previous\n }), controls && /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__CarouselControl__[\"a\" /* default */], {\n direction: \"next\",\n directionText: \"Next\",\n onClickHandler: props.next || this.next\n }));\n };\n\n return UncontrolledCarousel;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nUncontrolledCarousel.propTypes = propTypes;\nUncontrolledCarousel.defaultProps = {\n controls: true,\n indicators: true,\n autoPlay: true\n};\n/* unused harmony default export */ var _unused_webpack_default_export = (UncontrolledCarousel);\n\n/***/ }),\n/* 315 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar CardSubtitle = function CardSubtitle(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'card-subtitle'), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }));\n};\n\nCardSubtitle.propTypes = propTypes;\nCardSubtitle.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (CardSubtitle);\n\n/***/ }),\n/* 316 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'p'\n};\n\nvar CardText = function CardText(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'card-text'), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }));\n};\n\nCardText.propTypes = propTypes;\nCardText.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (CardText);\n\n/***/ }),\n/* 317 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar CardTitle = function CardTitle(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'card-title'), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }));\n};\n\nCardTitle.propTypes = propTypes;\nCardTitle.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (CardTitle);\n\n/***/ }),\n/* 318 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__CustomFileInput__ = __webpack_require__(112);\n\n\n\n\n\n\n\nvar propTypes = {\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n id: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number]).isRequired,\n type: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string.isRequired,\n label: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node,\n inline: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n valid: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n invalid: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n bsSize: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n htmlFor: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,\n children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.array, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func]),\n innerRef: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func])\n};\n\nfunction CustomInput(props) {\n var className = props.className,\n label = props.label,\n inline = props.inline,\n valid = props.valid,\n invalid = props.invalid,\n cssModule = props.cssModule,\n children = props.children,\n bsSize = props.bsSize,\n innerRef = props.innerRef,\n htmlFor = props.htmlFor,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"label\", \"inline\", \"valid\", \"invalid\", \"cssModule\", \"children\", \"bsSize\", \"innerRef\", \"htmlFor\"]);\n\n var type = attributes.type;\n var customClass = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, \"custom-\" + type, bsSize ? \"custom-\" + type + \"-\" + bsSize : false), cssModule);\n var validationClassNames = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(invalid && \"is-invalid\", valid && \"is-valid\"), cssModule);\n var labelHtmlFor = htmlFor || attributes.id;\n\n if (type === \"select\") {\n var _type = attributes.type,\n _rest = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(attributes, [\"type\"]);\n\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"select\", Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, _rest, {\n ref: innerRef,\n className: __WEBPACK_IMPORTED_MODULE_4_classnames___default()(validationClassNames, customClass),\n \"aria-invalid\": invalid\n }), children);\n }\n\n if (type === \"file\") {\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__CustomFileInput__[\"a\" /* default */], props);\n }\n\n if (type !== \"checkbox\" && type !== \"radio\" && type !== \"switch\") {\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"input\", Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n ref: innerRef,\n \"aria-invalid\": invalid,\n className: __WEBPACK_IMPORTED_MODULE_4_classnames___default()(validationClassNames, customClass)\n }));\n }\n\n var wrapperClasses = __WEBPACK_IMPORTED_MODULE_4_classnames___default()(customClass, Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(\"custom-control\", {\n \"custom-control-inline\": inline\n }), cssModule));\n\n var hidden = attributes.hidden,\n rest = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(attributes, [\"hidden\"]);\n\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"div\", {\n className: wrapperClasses,\n hidden: hidden || false\n }, /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"input\", Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, rest, {\n type: type === \"switch\" ? \"checkbox\" : type,\n ref: innerRef,\n \"aria-invalid\": invalid,\n className: __WEBPACK_IMPORTED_MODULE_4_classnames___default()(validationClassNames, Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(\"custom-control-input\", cssModule))\n })), /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"label\", {\n className: Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(\"custom-control-label\", cssModule),\n htmlFor: labelHtmlFor\n }, label), children);\n}\n\nCustomInput.propTypes = propTypes;\n/* unused harmony default export */ var _unused_webpack_default_export = (CustomInput);\n\n/***/ }),\n/* 319 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils__ = __webpack_require__(2);\n\n\n\nvar PopperTargetHelper = function PopperTargetHelper(props, context) {\n context.popperManager.setTargetNode(Object(__WEBPACK_IMPORTED_MODULE_1__utils__[\"m\" /* getTarget */])(props.target));\n return null;\n};\n\nPopperTargetHelper.contextTypes = {\n popperManager: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.object.isRequired\n};\nPopperTargetHelper.propTypes = {\n target: __WEBPACK_IMPORTED_MODULE_1__utils__[\"u\" /* targetPropType */].isRequired\n};\n/* unused harmony default export */ var _unused_webpack_default_export = (PopperTargetHelper);\n\n/***/ }),\n/* 320 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export default */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_defineProperty__ = __webpack_require__(14);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_inheritsLoose__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Popover__ = __webpack_require__(114);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utils__ = __webpack_require__(2);\n\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(Object(source), true).forEach(function (key) { Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_defineProperty__[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n\n\n\n\nvar omitKeys = ['defaultOpen'];\n\nvar UncontrolledPopover = /*#__PURE__*/function (_Component) {\n Object(__WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_inheritsLoose__[\"a\" /* default */])(UncontrolledPopover, _Component);\n\n function UncontrolledPopover(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n _this.state = {\n isOpen: props.defaultOpen || false\n };\n _this.toggle = _this.toggle.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n return _this;\n }\n\n var _proto = UncontrolledPopover.prototype;\n\n _proto.toggle = function toggle() {\n this.setState({\n isOpen: !this.state.isOpen\n });\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__Popover__[\"a\" /* default */], Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({\n isOpen: this.state.isOpen,\n toggle: this.toggle\n }, Object(__WEBPACK_IMPORTED_MODULE_7__utils__[\"q\" /* omit */])(this.props, omitKeys)));\n };\n\n return UncontrolledPopover;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\n\nUncontrolledPopover.propTypes = _objectSpread({\n defaultOpen: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool\n}, __WEBPACK_IMPORTED_MODULE_6__Popover__[\"a\" /* default */].propTypes);\n\n/***/ }),\n/* 321 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'h3'\n};\n\nvar PopoverHeader = function PopoverHeader(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'popover-header'), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }));\n};\n\nPopoverHeader.propTypes = propTypes;\nPopoverHeader.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (PopoverHeader);\n\n/***/ }),\n/* 322 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar PopoverBody = function PopoverBody(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'popover-body'), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }));\n};\n\nPopoverBody.propTypes = propTypes;\nPopoverBody.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (PopoverBody);\n\n/***/ }),\n/* 323 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_defineProperty__ = __webpack_require__(14);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utils__ = __webpack_require__(2);\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(Object(source), true).forEach(function (key) { Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_defineProperty__[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n\n\n\n\nvar propTypes = {\n children: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.node,\n bar: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool,\n multi: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool,\n tag: __WEBPACK_IMPORTED_MODULE_6__utils__[\"t\" /* tagPropType */],\n value: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number]),\n min: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number]),\n max: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.number]),\n animated: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool,\n striped: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool,\n color: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string,\n className: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string,\n barClassName: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.object,\n style: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.object,\n barStyle: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.object,\n barAriaValueText: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string,\n barAriaLabelledBy: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string\n};\nvar defaultProps = {\n tag: 'div',\n value: 0,\n min: 0,\n max: 100,\n style: {},\n barStyle: {}\n};\n\nvar Progress = function Progress(props) {\n var children = props.children,\n className = props.className,\n barClassName = props.barClassName,\n cssModule = props.cssModule,\n value = props.value,\n min = props.min,\n max = props.max,\n animated = props.animated,\n striped = props.striped,\n color = props.color,\n bar = props.bar,\n multi = props.multi,\n Tag = props.tag,\n style = props.style,\n barStyle = props.barStyle,\n barAriaValueText = props.barAriaValueText,\n barAriaLabelledBy = props.barAriaLabelledBy,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"children\", \"className\", \"barClassName\", \"cssModule\", \"value\", \"min\", \"max\", \"animated\", \"striped\", \"color\", \"bar\", \"multi\", \"tag\", \"style\", \"barStyle\", \"barAriaValueText\", \"barAriaLabelledBy\"]);\n\n var percent = Object(__WEBPACK_IMPORTED_MODULE_6__utils__[\"v\" /* toNumber */])(value) / Object(__WEBPACK_IMPORTED_MODULE_6__utils__[\"v\" /* toNumber */])(max) * 100;\n var progressClasses = Object(__WEBPACK_IMPORTED_MODULE_6__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_5_classnames___default()(className, 'progress'), cssModule);\n var progressBarClasses = Object(__WEBPACK_IMPORTED_MODULE_6__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_5_classnames___default()('progress-bar', bar ? className || barClassName : barClassName, animated ? 'progress-bar-animated' : null, color ? \"bg-\" + color : null, striped || animated ? 'progress-bar-striped' : null), cssModule);\n var progressBarProps = {\n className: progressBarClasses,\n style: _objectSpread(_objectSpread(_objectSpread({}, bar ? style : {}), barStyle), {}, {\n width: percent + \"%\"\n }),\n role: 'progressbar',\n 'aria-valuenow': value,\n 'aria-valuemin': min,\n 'aria-valuemax': max,\n 'aria-valuetext': barAriaValueText,\n 'aria-labelledby': barAriaLabelledBy,\n children: children\n };\n\n if (bar) {\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, progressBarProps));\n }\n\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n style: style,\n className: progressClasses\n }), multi ? children : /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(\"div\", progressBarProps));\n};\n\nProgress.propTypes = propTypes;\nProgress.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (Progress);\n\n/***/ }),\n/* 324 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_defineProperty__ = __webpack_require__(14);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_inheritsLoose__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__Portal__ = __webpack_require__(325);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__Fade__ = __webpack_require__(28);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__utils__ = __webpack_require__(2);\n\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(Object(source), true).forEach(function (key) { Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_defineProperty__[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n\n\n\n\n\n\n\nfunction noop() {}\n\nvar FadePropTypes = __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.shape(__WEBPACK_IMPORTED_MODULE_8__Fade__[\"a\" /* default */].propTypes);\nvar propTypes = {\n isOpen: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n autoFocus: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n centered: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n scrollable: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n size: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string,\n toggle: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func,\n keyboard: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n role: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string,\n labelledBy: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string,\n backdrop: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOf(['static'])]),\n onEnter: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func,\n onExit: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func,\n onOpened: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func,\n onClosed: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func,\n children: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.node,\n className: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string,\n wrapClassName: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string,\n modalClassName: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string,\n backdropClassName: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string,\n contentClassName: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string,\n external: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.node,\n fade: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n cssModule: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.object,\n zIndex: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string]),\n backdropTransition: FadePropTypes,\n modalTransition: FadePropTypes,\n innerRef: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func]),\n unmountOnClose: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n returnFocusAfterClose: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n container: __WEBPACK_IMPORTED_MODULE_9__utils__[\"u\" /* targetPropType */],\n trapFocus: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool\n};\nvar propsToOmit = Object.keys(propTypes);\nvar defaultProps = {\n isOpen: false,\n autoFocus: true,\n centered: false,\n scrollable: false,\n role: 'dialog',\n backdrop: true,\n keyboard: true,\n zIndex: 1050,\n fade: true,\n onOpened: noop,\n onClosed: noop,\n modalTransition: {\n timeout: __WEBPACK_IMPORTED_MODULE_9__utils__[\"e\" /* TransitionTimeouts */].Modal\n },\n backdropTransition: {\n mountOnEnter: true,\n timeout: __WEBPACK_IMPORTED_MODULE_9__utils__[\"e\" /* TransitionTimeouts */].Fade // uses standard fade transition\n\n },\n unmountOnClose: true,\n returnFocusAfterClose: true,\n container: 'body',\n trapFocus: false\n};\n\nvar Modal = /*#__PURE__*/function (_React$Component) {\n Object(__WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_inheritsLoose__[\"a\" /* default */])(Modal, _React$Component);\n\n function Modal(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this._element = null;\n _this._originalBodyPadding = null;\n _this.getFocusableChildren = _this.getFocusableChildren.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.handleBackdropClick = _this.handleBackdropClick.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.handleBackdropMouseDown = _this.handleBackdropMouseDown.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.handleEscape = _this.handleEscape.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.handleStaticBackdropAnimation = _this.handleStaticBackdropAnimation.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.handleTab = _this.handleTab.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.onOpened = _this.onOpened.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.onClosed = _this.onClosed.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.manageFocusAfterClose = _this.manageFocusAfterClose.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.clearBackdropAnimationTimeout = _this.clearBackdropAnimationTimeout.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.trapFocus = _this.trapFocus.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.state = {\n isOpen: false,\n showStaticBackdropAnimation: false\n };\n return _this;\n }\n\n var _proto = Modal.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this$props = this.props,\n isOpen = _this$props.isOpen,\n autoFocus = _this$props.autoFocus,\n onEnter = _this$props.onEnter;\n\n if (isOpen) {\n this.init();\n this.setState({\n isOpen: true\n });\n\n if (autoFocus) {\n this.setFocus();\n }\n }\n\n if (onEnter) {\n onEnter();\n } // traps focus inside the Modal, even if the browser address bar is focused\n\n\n document.addEventListener('focus', this.trapFocus, true);\n this._isMounted = true;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (this.props.isOpen && !prevProps.isOpen) {\n this.init();\n this.setState({\n isOpen: true\n }); // let render() renders Modal Dialog first\n\n return;\n } // now Modal Dialog is rendered and we can refer this._element and this._dialog\n\n\n if (this.props.autoFocus && this.state.isOpen && !prevState.isOpen) {\n this.setFocus();\n }\n\n if (this._element && prevProps.zIndex !== this.props.zIndex) {\n this._element.style.zIndex = this.props.zIndex;\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.clearBackdropAnimationTimeout();\n\n if (this.props.onExit) {\n this.props.onExit();\n }\n\n if (this._element) {\n this.destroy();\n\n if (this.props.isOpen || this.state.isOpen) {\n this.close();\n }\n }\n\n document.removeEventListener('focus', this.trapFocus, true);\n this._isMounted = false;\n };\n\n _proto.trapFocus = function trapFocus(ev) {\n if (!this.props.trapFocus) {\n return;\n }\n\n if (!this._element) //element is not attached\n return;\n if (this._dialog && this._dialog.parentNode === ev.target) // initial focus when the Modal is opened\n return;\n if (this.modalIndex < Modal.openCount - 1) // last opened modal\n return;\n var children = this.getFocusableChildren();\n\n for (var i = 0; i < children.length; i++) {\n // focus is already inside the Modal\n if (children[i] === ev.target) return;\n }\n\n if (children.length > 0) {\n // otherwise focus the first focusable element in the Modal\n ev.preventDefault();\n ev.stopPropagation();\n children[0].focus();\n }\n };\n\n _proto.onOpened = function onOpened(node, isAppearing) {\n this.props.onOpened();\n (this.props.modalTransition.onEntered || noop)(node, isAppearing);\n };\n\n _proto.onClosed = function onClosed(node) {\n var unmountOnClose = this.props.unmountOnClose; // so all methods get called before it is unmounted\n\n this.props.onClosed();\n (this.props.modalTransition.onExited || noop)(node);\n\n if (unmountOnClose) {\n this.destroy();\n }\n\n this.close();\n\n if (this._isMounted) {\n this.setState({\n isOpen: false\n });\n }\n };\n\n _proto.setFocus = function setFocus() {\n if (this._dialog && this._dialog.parentNode && typeof this._dialog.parentNode.focus === 'function') {\n this._dialog.parentNode.focus();\n }\n };\n\n _proto.getFocusableChildren = function getFocusableChildren() {\n return this._element.querySelectorAll(__WEBPACK_IMPORTED_MODULE_9__utils__[\"k\" /* focusableElements */].join(', '));\n };\n\n _proto.getFocusedChild = function getFocusedChild() {\n var currentFocus;\n var focusableChildren = this.getFocusableChildren();\n\n try {\n currentFocus = document.activeElement;\n } catch (err) {\n currentFocus = focusableChildren[0];\n }\n\n return currentFocus;\n } // not mouseUp because scrollbar fires it, shouldn't close when user scrolls\n ;\n\n _proto.handleBackdropClick = function handleBackdropClick(e) {\n if (e.target === this._mouseDownElement) {\n e.stopPropagation();\n var backdrop = this._dialog ? this._dialog.parentNode : null;\n\n if (backdrop && e.target === backdrop && this.props.backdrop === 'static') {\n this.handleStaticBackdropAnimation();\n }\n\n if (!this.props.isOpen || this.props.backdrop !== true) return;\n\n if (backdrop && e.target === backdrop && this.props.toggle) {\n this.props.toggle(e);\n }\n }\n };\n\n _proto.handleTab = function handleTab(e) {\n if (e.which !== 9) return;\n if (this.modalIndex < Modal.openCount - 1) return; // last opened modal\n\n var focusableChildren = this.getFocusableChildren();\n var totalFocusable = focusableChildren.length;\n if (totalFocusable === 0) return;\n var currentFocus = this.getFocusedChild();\n var focusedIndex = 0;\n\n for (var i = 0; i < totalFocusable; i += 1) {\n if (focusableChildren[i] === currentFocus) {\n focusedIndex = i;\n break;\n }\n }\n\n if (e.shiftKey && focusedIndex === 0) {\n e.preventDefault();\n focusableChildren[totalFocusable - 1].focus();\n } else if (!e.shiftKey && focusedIndex === totalFocusable - 1) {\n e.preventDefault();\n focusableChildren[0].focus();\n }\n };\n\n _proto.handleBackdropMouseDown = function handleBackdropMouseDown(e) {\n this._mouseDownElement = e.target;\n };\n\n _proto.handleEscape = function handleEscape(e) {\n if (this.props.isOpen && e.keyCode === __WEBPACK_IMPORTED_MODULE_9__utils__[\"o\" /* keyCodes */].esc && this.props.toggle) {\n if (this.props.keyboard) {\n e.preventDefault();\n e.stopPropagation();\n this.props.toggle(e);\n } else if (this.props.backdrop === 'static') {\n e.preventDefault();\n e.stopPropagation();\n this.handleStaticBackdropAnimation();\n }\n }\n };\n\n _proto.handleStaticBackdropAnimation = function handleStaticBackdropAnimation() {\n var _this2 = this;\n\n this.clearBackdropAnimationTimeout();\n this.setState({\n showStaticBackdropAnimation: true\n });\n this._backdropAnimationTimeout = setTimeout(function () {\n _this2.setState({\n showStaticBackdropAnimation: false\n });\n }, 100);\n };\n\n _proto.init = function init() {\n try {\n this._triggeringElement = document.activeElement;\n } catch (err) {\n this._triggeringElement = null;\n }\n\n if (!this._element) {\n this._element = document.createElement('div');\n\n this._element.setAttribute('tabindex', '-1');\n\n this._element.style.position = 'relative';\n this._element.style.zIndex = this.props.zIndex;\n this._mountContainer = Object(__WEBPACK_IMPORTED_MODULE_9__utils__[\"m\" /* getTarget */])(this.props.container);\n\n this._mountContainer.appendChild(this._element);\n }\n\n this._originalBodyPadding = Object(__WEBPACK_IMPORTED_MODULE_9__utils__[\"l\" /* getOriginalBodyPadding */])();\n Object(__WEBPACK_IMPORTED_MODULE_9__utils__[\"h\" /* conditionallyUpdateScrollbar */])();\n\n if (Modal.openCount === 0) {\n document.body.className = __WEBPACK_IMPORTED_MODULE_6_classnames___default()(document.body.className, Object(__WEBPACK_IMPORTED_MODULE_9__utils__[\"p\" /* mapToCssModules */])('modal-open', this.props.cssModule));\n }\n\n this.modalIndex = Modal.openCount;\n Modal.openCount += 1;\n };\n\n _proto.destroy = function destroy() {\n if (this._element) {\n this._mountContainer.removeChild(this._element);\n\n this._element = null;\n }\n\n this.manageFocusAfterClose();\n };\n\n _proto.manageFocusAfterClose = function manageFocusAfterClose() {\n if (this._triggeringElement) {\n var returnFocusAfterClose = this.props.returnFocusAfterClose;\n if (this._triggeringElement.focus && returnFocusAfterClose) this._triggeringElement.focus();\n this._triggeringElement = null;\n }\n };\n\n _proto.close = function close() {\n if (Modal.openCount <= 1) {\n var modalOpenClassName = Object(__WEBPACK_IMPORTED_MODULE_9__utils__[\"p\" /* mapToCssModules */])('modal-open', this.props.cssModule); // Use regex to prevent matching `modal-open` as part of a different class, e.g. `my-modal-opened`\n\n var modalOpenClassNameRegex = new RegExp(\"(^| )\" + modalOpenClassName + \"( |$)\");\n document.body.className = document.body.className.replace(modalOpenClassNameRegex, ' ').trim();\n }\n\n this.manageFocusAfterClose();\n Modal.openCount = Math.max(0, Modal.openCount - 1);\n Object(__WEBPACK_IMPORTED_MODULE_9__utils__[\"s\" /* setScrollbarWidth */])(this._originalBodyPadding);\n };\n\n _proto.renderModalDialog = function renderModalDialog() {\n var _classNames,\n _this3 = this;\n\n var attributes = Object(__WEBPACK_IMPORTED_MODULE_9__utils__[\"q\" /* omit */])(this.props, propsToOmit);\n var dialogBaseClass = 'modal-dialog';\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\"div\", Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: Object(__WEBPACK_IMPORTED_MODULE_9__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_6_classnames___default()(dialogBaseClass, this.props.className, (_classNames = {}, _classNames[\"modal-\" + this.props.size] = this.props.size, _classNames[dialogBaseClass + \"-centered\"] = this.props.centered, _classNames[dialogBaseClass + \"-scrollable\"] = this.props.scrollable, _classNames)), this.props.cssModule),\n role: \"document\",\n ref: function ref(c) {\n _this3._dialog = c;\n }\n }), /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\"div\", {\n className: Object(__WEBPACK_IMPORTED_MODULE_9__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_6_classnames___default()('modal-content', this.props.contentClassName), this.props.cssModule)\n }, this.props.children));\n };\n\n _proto.render = function render() {\n var unmountOnClose = this.props.unmountOnClose;\n\n if (!!this._element && (this.state.isOpen || !unmountOnClose)) {\n var isModalHidden = !!this._element && !this.state.isOpen && !unmountOnClose;\n this._element.style.display = isModalHidden ? 'none' : 'block';\n var _this$props2 = this.props,\n wrapClassName = _this$props2.wrapClassName,\n modalClassName = _this$props2.modalClassName,\n backdropClassName = _this$props2.backdropClassName,\n cssModule = _this$props2.cssModule,\n isOpen = _this$props2.isOpen,\n backdrop = _this$props2.backdrop,\n role = _this$props2.role,\n labelledBy = _this$props2.labelledBy,\n external = _this$props2.external,\n innerRef = _this$props2.innerRef;\n var modalAttributes = {\n onClick: this.handleBackdropClick,\n onMouseDown: this.handleBackdropMouseDown,\n onKeyUp: this.handleEscape,\n onKeyDown: this.handleTab,\n style: {\n display: 'block'\n },\n 'aria-labelledby': labelledBy,\n role: role,\n tabIndex: '-1'\n };\n var hasTransition = this.props.fade;\n\n var modalTransition = _objectSpread(_objectSpread(_objectSpread({}, __WEBPACK_IMPORTED_MODULE_8__Fade__[\"a\" /* default */].defaultProps), this.props.modalTransition), {}, {\n baseClass: hasTransition ? this.props.modalTransition.baseClass : '',\n timeout: hasTransition ? this.props.modalTransition.timeout : 0\n });\n\n var backdropTransition = _objectSpread(_objectSpread(_objectSpread({}, __WEBPACK_IMPORTED_MODULE_8__Fade__[\"a\" /* default */].defaultProps), this.props.backdropTransition), {}, {\n baseClass: hasTransition ? this.props.backdropTransition.baseClass : '',\n timeout: hasTransition ? this.props.backdropTransition.timeout : 0\n });\n\n var Backdrop = backdrop && (hasTransition ? /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__Fade__[\"a\" /* default */], Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, backdropTransition, {\n in: isOpen && !!backdrop,\n cssModule: cssModule,\n className: Object(__WEBPACK_IMPORTED_MODULE_9__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_6_classnames___default()('modal-backdrop', backdropClassName), cssModule)\n })) : /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\"div\", {\n className: Object(__WEBPACK_IMPORTED_MODULE_9__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_6_classnames___default()('modal-backdrop', 'show', backdropClassName), cssModule)\n }));\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__Portal__[\"a\" /* default */], {\n node: this._element\n }, /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\"div\", {\n className: Object(__WEBPACK_IMPORTED_MODULE_9__utils__[\"p\" /* mapToCssModules */])(wrapClassName)\n }, /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__Fade__[\"a\" /* default */], Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, modalAttributes, modalTransition, {\n in: isOpen,\n onEntered: this.onOpened,\n onExited: this.onClosed,\n cssModule: cssModule,\n className: Object(__WEBPACK_IMPORTED_MODULE_9__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_6_classnames___default()('modal', modalClassName, this.state.showStaticBackdropAnimation && 'modal-static'), cssModule),\n innerRef: innerRef\n }), external, this.renderModalDialog()), Backdrop));\n }\n\n return null;\n };\n\n _proto.clearBackdropAnimationTimeout = function clearBackdropAnimationTimeout() {\n if (this._backdropAnimationTimeout) {\n clearTimeout(this._backdropAnimationTimeout);\n this._backdropAnimationTimeout = undefined;\n }\n };\n\n return Modal;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.Component);\n\nModal.propTypes = propTypes;\nModal.defaultProps = defaultProps;\nModal.openCount = 0;\n/* unused harmony default export */ var _unused_webpack_default_export = (Modal);\n\n/***/ }),\n/* 325 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_inheritsLoose__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_dom__ = __webpack_require__(22);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_dom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react_dom__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils__ = __webpack_require__(2);\n\n\n\n\n\nvar propTypes = {\n children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node.isRequired,\n node: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.any\n};\n\nvar Portal = /*#__PURE__*/function (_React$Component) {\n Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_inheritsLoose__[\"a\" /* default */])(Portal, _React$Component);\n\n function Portal() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Portal.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.defaultNode) {\n document.body.removeChild(this.defaultNode);\n }\n\n this.defaultNode = null;\n };\n\n _proto.render = function render() {\n if (!__WEBPACK_IMPORTED_MODULE_4__utils__[\"g\" /* canUseDOM */]) {\n return null;\n }\n\n if (!this.props.node && !this.defaultNode) {\n this.defaultNode = document.createElement('div');\n document.body.appendChild(this.defaultNode);\n }\n\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react_dom___default.a.createPortal(this.props.children, this.props.node || this.defaultNode);\n };\n\n return Portal;\n}(__WEBPACK_IMPORTED_MODULE_1_react___default.a.Component);\n\nPortal.propTypes = propTypes;\n/* harmony default export */ __webpack_exports__[\"a\"] = (Portal);\n\n/***/ }),\n/* 326 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n wrapTag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n toggle: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func,\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,\n children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node,\n closeAriaLabel: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n charCode: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number]),\n close: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'h5',\n wrapTag: 'div',\n closeAriaLabel: 'Close',\n charCode: 215\n};\n\nvar ModalHeader = function ModalHeader(props) {\n var closeButton;\n\n var className = props.className,\n cssModule = props.cssModule,\n children = props.children,\n toggle = props.toggle,\n Tag = props.tag,\n WrapTag = props.wrapTag,\n closeAriaLabel = props.closeAriaLabel,\n charCode = props.charCode,\n close = props.close,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"children\", \"toggle\", \"tag\", \"wrapTag\", \"closeAriaLabel\", \"charCode\", \"close\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'modal-header'), cssModule);\n\n if (!close && toggle) {\n var closeIcon = typeof charCode === 'number' ? String.fromCharCode(charCode) : charCode;\n closeButton = /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"button\", {\n type: \"button\",\n onClick: toggle,\n className: Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])('close', cssModule),\n \"aria-label\": closeAriaLabel\n }, /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"span\", {\n \"aria-hidden\": \"true\"\n }, closeIcon));\n }\n\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(WrapTag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }), /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, {\n className: Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])('modal-title', cssModule)\n }, children), close || closeButton);\n};\n\nModalHeader.propTypes = propTypes;\nModalHeader.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (ModalHeader);\n\n/***/ }),\n/* 327 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar ModalBody = function ModalBody(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'modal-body'), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }));\n};\n\nModalBody.propTypes = propTypes;\nModalBody.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (ModalBody);\n\n/***/ }),\n/* 328 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar ModalFooter = function ModalFooter(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'modal-footer'), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }));\n};\n\nModalFooter.propTypes = propTypes;\nModalFooter.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (ModalFooter);\n\n/***/ }),\n/* 329 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,\n size: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n bordered: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n borderless: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n striped: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n dark: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n hover: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n responsive: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string]),\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n responsiveTag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n innerRef: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object])\n};\nvar defaultProps = {\n tag: 'table',\n responsiveTag: 'div'\n};\n\nvar Table = function Table(props) {\n var className = props.className,\n cssModule = props.cssModule,\n size = props.size,\n bordered = props.bordered,\n borderless = props.borderless,\n striped = props.striped,\n dark = props.dark,\n hover = props.hover,\n responsive = props.responsive,\n Tag = props.tag,\n ResponsiveTag = props.responsiveTag,\n innerRef = props.innerRef,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"size\", \"bordered\", \"borderless\", \"striped\", \"dark\", \"hover\", \"responsive\", \"tag\", \"responsiveTag\", \"innerRef\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'table', size ? 'table-' + size : false, bordered ? 'table-bordered' : false, borderless ? 'table-borderless' : false, striped ? 'table-striped' : false, dark ? 'table-dark' : false, hover ? 'table-hover' : false), cssModule);\n var table = /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n ref: innerRef,\n className: classes\n }));\n\n if (responsive) {\n var responsiveClassName = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(responsive === true ? 'table-responsive' : \"table-responsive-\" + responsive, cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(ResponsiveTag, {\n className: responsiveClassName\n }, table);\n }\n\n return table;\n};\n\nTable.propTypes = propTypes;\nTable.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (Table);\n\n/***/ }),\n/* 330 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n flush: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,\n horizontal: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string])\n};\nvar defaultProps = {\n tag: 'ul',\n horizontal: false\n};\n\nvar getHorizontalClass = function getHorizontalClass(horizontal) {\n if (horizontal === false) {\n return false;\n } else if (horizontal === true || horizontal === \"xs\") {\n return \"list-group-horizontal\";\n }\n\n return \"list-group-horizontal-\" + horizontal;\n};\n\nvar ListGroup = function ListGroup(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n flush = props.flush,\n horizontal = props.horizontal,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"tag\", \"flush\", \"horizontal\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'list-group', // list-group-horizontal cannot currently be mixed with list-group-flush\n // we only try to apply horizontal classes if flush is false\n flush ? 'list-group-flush' : getHorizontalClass(horizontal)), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }));\n};\n\nListGroup.propTypes = propTypes;\nListGroup.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (ListGroup);\n\n/***/ }),\n/* 331 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_inheritsLoose__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utils__ = __webpack_require__(2);\n\n\n\n\n\n\n\n\nvar propTypes = {\n children: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.node,\n inline: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n tag: __WEBPACK_IMPORTED_MODULE_7__utils__[\"t\" /* tagPropType */],\n innerRef: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string]),\n className: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'form'\n};\n\nvar Form = /*#__PURE__*/function (_Component) {\n Object(__WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_inheritsLoose__[\"a\" /* default */])(Form, _Component);\n\n function Form(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n _this.getRef = _this.getRef.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.submit = _this.submit.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n return _this;\n }\n\n var _proto = Form.prototype;\n\n _proto.getRef = function getRef(ref) {\n if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n\n this.ref = ref;\n };\n\n _proto.submit = function submit() {\n if (this.ref) {\n this.ref.submit();\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n className = _this$props.className,\n cssModule = _this$props.cssModule,\n inline = _this$props.inline,\n Tag = _this$props.tag,\n innerRef = _this$props.innerRef,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(_this$props, [\"className\", \"cssModule\", \"inline\", \"tag\", \"innerRef\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_7__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_6_classnames___default()(className, inline ? 'form-inline' : false), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n ref: innerRef,\n className: classes\n }));\n };\n\n return Form;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nForm.propTypes = propTypes;\nForm.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (Form);\n\n/***/ }),\n/* 332 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node,\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,\n valid: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n tooltip: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool\n};\nvar defaultProps = {\n tag: 'div',\n valid: undefined\n};\n\nvar FormFeedback = function FormFeedback(props) {\n var className = props.className,\n cssModule = props.cssModule,\n valid = props.valid,\n tooltip = props.tooltip,\n Tag = props.tag,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"valid\", \"tooltip\", \"tag\"]);\n\n var validMode = tooltip ? 'tooltip' : 'feedback';\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, valid ? \"valid-\" + validMode : \"invalid-\" + validMode), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }));\n};\n\nFormFeedback.propTypes = propTypes;\nFormFeedback.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (FormFeedback);\n\n/***/ }),\n/* 333 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node,\n row: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n check: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n inline: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n disabled: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar FormGroup = function FormGroup(props) {\n var className = props.className,\n cssModule = props.cssModule,\n row = props.row,\n disabled = props.disabled,\n check = props.check,\n inline = props.inline,\n Tag = props.tag,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"row\", \"disabled\", \"check\", \"inline\", \"tag\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, row ? 'row' : false, check ? 'form-check' : 'form-group', check && inline ? 'form-check-inline' : false, check && disabled ? 'disabled' : false), cssModule);\n\n if (Tag === 'fieldset') {\n attributes.disabled = disabled;\n }\n\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }));\n};\n\nFormGroup.propTypes = propTypes;\nFormGroup.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (FormGroup);\n\n/***/ }),\n/* 334 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node,\n inline: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n color: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'small',\n color: 'muted'\n};\n\nvar FormText = function FormText(props) {\n var className = props.className,\n cssModule = props.cssModule,\n inline = props.inline,\n color = props.color,\n Tag = props.tag,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"inline\", \"color\", \"tag\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, !inline ? 'form-text' : false, color ? \"text-\" + color : false), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }));\n};\n\nFormText.propTypes = propTypes;\nFormText.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (FormText);\n\n/***/ }),\n/* 335 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_inheritsLoose__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utils__ = __webpack_require__(2);\n\n\n\n\n\n/* eslint react/prefer-stateless-function: 0 */\n\n\n\n\nvar propTypes = {\n children: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.node,\n type: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string,\n size: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string]),\n bsSize: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string,\n valid: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n invalid: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n tag: __WEBPACK_IMPORTED_MODULE_7__utils__[\"t\" /* tagPropType */],\n innerRef: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string]),\n plaintext: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n addon: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n className: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.object\n};\nvar defaultProps = {\n type: 'text'\n};\n\nvar Input = /*#__PURE__*/function (_React$Component) {\n Object(__WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_inheritsLoose__[\"a\" /* default */])(Input, _React$Component);\n\n function Input(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.getRef = _this.getRef.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.focus = _this.focus.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n return _this;\n }\n\n var _proto = Input.prototype;\n\n _proto.getRef = function getRef(ref) {\n if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n\n this.ref = ref;\n };\n\n _proto.focus = function focus() {\n if (this.ref) {\n this.ref.focus();\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n className = _this$props.className,\n cssModule = _this$props.cssModule,\n type = _this$props.type,\n bsSize = _this$props.bsSize,\n valid = _this$props.valid,\n invalid = _this$props.invalid,\n tag = _this$props.tag,\n addon = _this$props.addon,\n plaintext = _this$props.plaintext,\n innerRef = _this$props.innerRef,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(_this$props, [\"className\", \"cssModule\", \"type\", \"bsSize\", \"valid\", \"invalid\", \"tag\", \"addon\", \"plaintext\", \"innerRef\"]);\n\n var checkInput = ['radio', 'checkbox'].indexOf(type) > -1;\n var isNotaNumber = new RegExp('\\\\D', 'g');\n var fileInput = type === 'file';\n var textareaInput = type === 'textarea';\n var selectInput = type === 'select';\n var rangeInput = type === 'range';\n var Tag = tag || (selectInput || textareaInput ? type : 'input');\n var formControlClass = 'form-control';\n\n if (plaintext) {\n formControlClass = formControlClass + \"-plaintext\";\n Tag = tag || 'input';\n } else if (fileInput) {\n formControlClass = formControlClass + \"-file\";\n } else if (rangeInput) {\n formControlClass = formControlClass + \"-range\";\n } else if (checkInput) {\n if (addon) {\n formControlClass = null;\n } else {\n formControlClass = 'form-check-input';\n }\n }\n\n if (attributes.size && isNotaNumber.test(attributes.size)) {\n Object(__WEBPACK_IMPORTED_MODULE_7__utils__[\"w\" /* warnOnce */])('Please use the prop \"bsSize\" instead of the \"size\" to bootstrap\\'s input sizing.');\n bsSize = attributes.size;\n delete attributes.size;\n }\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_7__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_6_classnames___default()(className, invalid && 'is-invalid', valid && 'is-valid', bsSize ? \"form-control-\" + bsSize : false, formControlClass), cssModule);\n\n if (Tag === 'input' || tag && typeof tag === 'function') {\n attributes.type = type;\n }\n\n if (attributes.children && !(plaintext || type === 'select' || typeof Tag !== 'string' || Tag === 'select')) {\n Object(__WEBPACK_IMPORTED_MODULE_7__utils__[\"w\" /* warnOnce */])(\"Input with a type of \\\"\" + type + \"\\\" cannot have children. Please use \\\"value\\\"/\\\"defaultValue\\\" instead.\");\n delete attributes.children;\n }\n\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n ref: innerRef,\n className: classes,\n \"aria-invalid\": invalid\n }));\n };\n\n return Input;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.Component);\n\nInput.propTypes = propTypes;\nInput.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (Input);\n\n/***/ }),\n/* 336 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n size: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar InputGroup = function InputGroup(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n size = props.size,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"tag\", \"size\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'input-group', size ? \"input-group-\" + size : null), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }));\n};\n\nInputGroup.propTypes = propTypes;\nInputGroup.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (InputGroup);\n\n/***/ }),\n/* 337 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__InputGroupText__ = __webpack_require__(117);\n\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n addonType: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOf(['prepend', 'append']).isRequired,\n children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node,\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar InputGroupAddon = function InputGroupAddon(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n addonType = props.addonType,\n children = props.children,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"tag\", \"addonType\", \"children\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'input-group-' + addonType), cssModule); // Convenience to assist with transition\n\n if (typeof children === 'string') {\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }), /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__InputGroupText__[\"a\" /* default */], {\n children: children\n }));\n }\n\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes,\n children: children\n }));\n};\n\nInputGroupAddon.propTypes = propTypes;\nInputGroupAddon.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (InputGroupAddon);\n\n/***/ }),\n/* 338 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Dropdown__ = __webpack_require__(37);\n\n\n\nvar propTypes = {\n addonType: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(['prepend', 'append']).isRequired,\n children: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.node\n};\n\nvar InputGroupButtonDropdown = function InputGroupButtonDropdown(props) {\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__Dropdown__[\"a\" /* default */], props);\n};\n\nInputGroupButtonDropdown.propTypes = propTypes;\n/* unused harmony default export */ var _unused_webpack_default_export = (InputGroupButtonDropdown);\n\n/***/ }),\n/* 339 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar colWidths = ['xs', 'sm', 'md', 'lg', 'xl'];\nvar stringOrNumberProp = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string]);\nvar columnProps = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.shape({\n size: stringOrNumberProp,\n order: stringOrNumberProp,\n offset: stringOrNumberProp\n})]);\nvar propTypes = {\n children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node,\n hidden: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n check: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n size: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n for: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,\n xs: columnProps,\n sm: columnProps,\n md: columnProps,\n lg: columnProps,\n xl: columnProps,\n widths: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.array\n};\nvar defaultProps = {\n tag: 'label',\n widths: colWidths\n};\n\nvar getColumnSizeClass = function getColumnSizeClass(isXs, colWidth, colSize) {\n if (colSize === true || colSize === '') {\n return isXs ? 'col' : \"col-\" + colWidth;\n } else if (colSize === 'auto') {\n return isXs ? 'col-auto' : \"col-\" + colWidth + \"-auto\";\n }\n\n return isXs ? \"col-\" + colSize : \"col-\" + colWidth + \"-\" + colSize;\n};\n\nvar Label = function Label(props) {\n var className = props.className,\n cssModule = props.cssModule,\n hidden = props.hidden,\n widths = props.widths,\n Tag = props.tag,\n check = props.check,\n size = props.size,\n htmlFor = props.for,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"hidden\", \"widths\", \"tag\", \"check\", \"size\", \"for\"]);\n\n var colClasses = [];\n widths.forEach(function (colWidth, i) {\n var columnProp = props[colWidth];\n delete attributes[colWidth];\n\n if (!columnProp && columnProp !== '') {\n return;\n }\n\n var isXs = !i;\n var colClass;\n\n if (Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"n\" /* isObject */])(columnProp)) {\n var _classNames;\n\n var colSizeInterfix = isXs ? '-' : \"-\" + colWidth + \"-\";\n colClass = getColumnSizeClass(isXs, colWidth, columnProp.size);\n colClasses.push(Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()((_classNames = {}, _classNames[colClass] = columnProp.size || columnProp.size === '', _classNames[\"order\" + colSizeInterfix + columnProp.order] = columnProp.order || columnProp.order === 0, _classNames[\"offset\" + colSizeInterfix + columnProp.offset] = columnProp.offset || columnProp.offset === 0, _classNames))), cssModule);\n } else {\n colClass = getColumnSizeClass(isXs, colWidth, columnProp);\n colClasses.push(colClass);\n }\n });\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, hidden ? 'sr-only' : false, check ? 'form-check-label' : false, size ? \"col-form-label-\" + size : false, colClasses, colClasses.length ? 'col-form-label' : false), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({\n htmlFor: htmlFor\n }, attributes, {\n className: classes\n }));\n};\n\nLabel.propTypes = propTypes;\nLabel.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (Label);\n\n/***/ }),\n/* 340 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n body: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n bottom: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node,\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,\n heading: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n left: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n list: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n middle: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n object: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n right: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n top: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool\n};\n\nvar Media = function Media(props) {\n var body = props.body,\n bottom = props.bottom,\n className = props.className,\n cssModule = props.cssModule,\n heading = props.heading,\n left = props.left,\n list = props.list,\n middle = props.middle,\n object = props.object,\n right = props.right,\n tag = props.tag,\n top = props.top,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"body\", \"bottom\", \"className\", \"cssModule\", \"heading\", \"left\", \"list\", \"middle\", \"object\", \"right\", \"tag\", \"top\"]);\n\n var defaultTag;\n\n if (heading) {\n defaultTag = 'h4';\n } else if (attributes.href) {\n defaultTag = 'a';\n } else if (attributes.src || object) {\n defaultTag = 'img';\n } else if (list) {\n defaultTag = 'ul';\n } else {\n defaultTag = 'div';\n }\n\n var Tag = tag || defaultTag;\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, {\n 'media-body': body,\n 'media-heading': heading,\n 'media-left': left,\n 'media-right': right,\n 'media-top': top,\n 'media-bottom': bottom,\n 'media-middle': middle,\n 'media-object': object,\n 'media-list': list,\n media: !body && !heading && !left && !right && !top && !bottom && !middle && !object && !list\n }), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }));\n};\n\nMedia.propTypes = propTypes;\n/* unused harmony default export */ var _unused_webpack_default_export = (Media);\n\n/***/ }),\n/* 341 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node,\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n listClassName: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,\n size: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n listTag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n 'aria-label': __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string\n};\nvar defaultProps = {\n tag: 'nav',\n listTag: 'ul',\n 'aria-label': 'pagination'\n};\n\nvar Pagination = function Pagination(props) {\n var _classNames;\n\n var className = props.className,\n listClassName = props.listClassName,\n cssModule = props.cssModule,\n size = props.size,\n Tag = props.tag,\n ListTag = props.listTag,\n label = props['aria-label'],\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"listClassName\", \"cssModule\", \"size\", \"tag\", \"listTag\", \"aria-label\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className), cssModule);\n var listClasses = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(listClassName, 'pagination', (_classNames = {}, _classNames[\"pagination-\" + size] = !!size, _classNames)), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, {\n className: classes,\n \"aria-label\": label\n }, /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(ListTag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: listClasses\n })));\n};\n\nPagination.propTypes = propTypes;\nPagination.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (Pagination);\n\n/***/ }),\n/* 342 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n active: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node,\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,\n disabled: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */]\n};\nvar defaultProps = {\n tag: 'li'\n};\n\nvar PaginationItem = function PaginationItem(props) {\n var active = props.active,\n className = props.className,\n cssModule = props.cssModule,\n disabled = props.disabled,\n Tag = props.tag,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"active\", \"className\", \"cssModule\", \"disabled\", \"tag\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'page-item', {\n active: active,\n disabled: disabled\n }), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }));\n};\n\nPaginationItem.propTypes = propTypes;\nPaginationItem.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (PaginationItem);\n\n/***/ }),\n/* 343 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n 'aria-label': __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node,\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,\n next: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n previous: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n first: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n last: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */]\n};\nvar defaultProps = {\n tag: 'a'\n};\n\nvar PaginationLink = function PaginationLink(props) {\n var className = props.className,\n cssModule = props.cssModule,\n next = props.next,\n previous = props.previous,\n first = props.first,\n last = props.last,\n Tag = props.tag,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"next\", \"previous\", \"first\", \"last\", \"tag\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'page-link'), cssModule);\n var defaultAriaLabel;\n\n if (previous) {\n defaultAriaLabel = 'Previous';\n } else if (next) {\n defaultAriaLabel = 'Next';\n } else if (first) {\n defaultAriaLabel = 'First';\n } else if (last) {\n defaultAriaLabel = 'Last';\n }\n\n var ariaLabel = props['aria-label'] || defaultAriaLabel;\n var defaultCaret;\n\n if (previous) {\n defaultCaret = \"\\u2039\";\n } else if (next) {\n defaultCaret = \"\\u203A\";\n } else if (first) {\n defaultCaret = \"\\xAB\";\n } else if (last) {\n defaultCaret = \"\\xBB\";\n }\n\n var children = props.children;\n\n if (children && Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n if (!attributes.href && Tag === 'a') {\n Tag = 'button';\n }\n\n if (previous || next || first || last) {\n children = [/*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"span\", {\n \"aria-hidden\": \"true\",\n key: \"caret\"\n }, children || defaultCaret), /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"span\", {\n className: \"sr-only\",\n key: \"sr\"\n }, ariaLabel)];\n }\n\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes,\n \"aria-label\": ariaLabel\n }), children);\n};\n\nPaginationLink.propTypes = propTypes;\nPaginationLink.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (PaginationLink);\n\n/***/ }),\n/* 344 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_inheritsLoose__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__TabContext__ = __webpack_require__(118);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utils__ = __webpack_require__(2);\n\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_6__utils__[\"t\" /* tagPropType */],\n activeTab: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.any,\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar TabContent = /*#__PURE__*/function (_Component) {\n Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_inheritsLoose__[\"a\" /* default */])(TabContent, _Component);\n\n TabContent.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n if (prevState.activeTab !== nextProps.activeTab) {\n return {\n activeTab: nextProps.activeTab\n };\n }\n\n return null;\n };\n\n function TabContent(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n _this.state = {\n activeTab: _this.props.activeTab\n };\n return _this;\n }\n\n var _proto = TabContent.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n className = _this$props.className,\n cssModule = _this$props.cssModule,\n Tag = _this$props.tag;\n var attributes = Object(__WEBPACK_IMPORTED_MODULE_6__utils__[\"q\" /* omit */])(this.props, Object.keys(propTypes));\n var classes = Object(__WEBPACK_IMPORTED_MODULE_6__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()('tab-content', className), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__TabContext__[\"a\" /* TabContext */].Provider, {\n value: {\n activeTabId: this.state.activeTab\n }\n }, /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n })));\n };\n\n return TabContent;\n}(__WEBPACK_IMPORTED_MODULE_2_react__[\"Component\"]);\n\n/* unused harmony default export */ var _unused_webpack_default_export = (TabContent);\nTabContent.propTypes = propTypes;\nTabContent.defaultProps = defaultProps;\n\n/***/ }),\n/* 345 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export default */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__TabContext__ = __webpack_require__(118);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utils__ = __webpack_require__(2);\n\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_6__utils__[\"t\" /* tagPropType */],\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,\n tabId: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.any\n};\nvar defaultProps = {\n tag: 'div'\n};\nfunction TabPane(props) {\n var className = props.className,\n cssModule = props.cssModule,\n tabId = props.tabId,\n Tag = props.tag,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"tabId\", \"tag\"]);\n\n var getClasses = function getClasses(activeTabId) {\n return Object(__WEBPACK_IMPORTED_MODULE_6__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()('tab-pane', className, {\n active: tabId === activeTabId\n }), cssModule);\n };\n\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__TabContext__[\"a\" /* TabContext */].Consumer, null, function (_ref) {\n var activeTabId = _ref.activeTabId;\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: getClasses(activeTabId)\n }));\n });\n}\nTabPane.propTypes = propTypes;\nTabPane.defaultProps = defaultProps;\n\n/***/ }),\n/* 346 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n fluid: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar Jumbotron = function Jumbotron(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n fluid = props.fluid,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"tag\", \"fluid\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'jumbotron', fluid ? 'jumbotron-fluid' : false), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }));\n};\n\nJumbotron.propTypes = propTypes;\nJumbotron.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (Jumbotron);\n\n/***/ }),\n/* 347 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_defineProperty__ = __webpack_require__(14);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utils__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__Fade__ = __webpack_require__(28);\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(Object(source), true).forEach(function (key) { Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_defineProperty__[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n\n\n\n\n\nvar propTypes = {\n children: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.node,\n className: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.object,\n fade: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool,\n isOpen: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool,\n tag: __WEBPACK_IMPORTED_MODULE_6__utils__[\"t\" /* tagPropType */],\n transition: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.shape(__WEBPACK_IMPORTED_MODULE_7__Fade__[\"a\" /* default */].propTypes),\n innerRef: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.func])\n};\nvar defaultProps = {\n isOpen: true,\n tag: 'div',\n fade: true,\n transition: _objectSpread(_objectSpread({}, __WEBPACK_IMPORTED_MODULE_7__Fade__[\"a\" /* default */].defaultProps), {}, {\n unmountOnExit: true\n })\n};\n\nfunction Toast(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n isOpen = props.isOpen,\n children = props.children,\n transition = props.transition,\n fade = props.fade,\n innerRef = props.innerRef,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"tag\", \"isOpen\", \"children\", \"transition\", \"fade\", \"innerRef\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_6__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_5_classnames___default()(className, 'toast'), cssModule);\n\n var toastTransition = _objectSpread(_objectSpread(_objectSpread({}, __WEBPACK_IMPORTED_MODULE_7__Fade__[\"a\" /* default */].defaultProps), transition), {}, {\n baseClass: fade ? transition.baseClass : '',\n timeout: fade ? transition.timeout : 0\n });\n\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7__Fade__[\"a\" /* default */], Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, toastTransition, {\n tag: Tag,\n className: classes,\n in: isOpen,\n role: \"alert\",\n innerRef: innerRef\n }), children);\n}\n\nToast.propTypes = propTypes;\nToast.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (Toast);\n\n/***/ }),\n/* 348 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,\n innerRef: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func])\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar ToastBody = function ToastBody(props) {\n var className = props.className,\n cssModule = props.cssModule,\n innerRef = props.innerRef,\n Tag = props.tag,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"innerRef\", \"tag\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'toast-body'), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes,\n ref: innerRef\n }));\n};\n\nToastBody.propTypes = propTypes;\nToastBody.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (ToastBody);\n\n/***/ }),\n/* 349 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n icon: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node]),\n wrapTag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n toggle: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func,\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,\n children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node,\n closeAriaLabel: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n charCode: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number]),\n close: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'strong',\n wrapTag: 'div',\n tagClassName: 'mr-auto',\n closeAriaLabel: 'Close',\n charCode: 215\n};\n\nvar ToastHeader = function ToastHeader(props) {\n var closeButton;\n var icon;\n\n var className = props.className,\n cssModule = props.cssModule,\n children = props.children,\n toggle = props.toggle,\n Tag = props.tag,\n WrapTag = props.wrapTag,\n closeAriaLabel = props.closeAriaLabel,\n charCode = props.charCode,\n close = props.close,\n tagClassName = props.tagClassName,\n iconProp = props.icon,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"children\", \"toggle\", \"tag\", \"wrapTag\", \"closeAriaLabel\", \"charCode\", \"close\", \"tagClassName\", \"icon\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'toast-header'), cssModule);\n\n if (!close && toggle) {\n var closeIcon = typeof charCode === 'number' ? String.fromCharCode(charCode) : charCode;\n closeButton = /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"button\", {\n type: \"button\",\n onClick: toggle,\n className: Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])('close', cssModule),\n \"aria-label\": closeAriaLabel\n }, /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"span\", {\n \"aria-hidden\": \"true\"\n }, closeIcon));\n }\n\n if (typeof iconProp === \"string\") {\n icon = /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"svg\", {\n className: Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(\"rounded text-\" + iconProp),\n width: \"20\",\n height: \"20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n preserveAspectRatio: \"xMidYMid slice\",\n focusable: \"false\",\n role: \"img\"\n }, /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"rect\", {\n fill: \"currentColor\",\n width: \"100%\",\n height: \"100%\"\n }));\n } else if (iconProp) {\n icon = iconProp;\n }\n\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(WrapTag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }), icon, /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, {\n className: Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(tagClassName, {\n \"ml-2\": icon != null\n }), cssModule)\n }, children), close || closeButton);\n};\n\nToastHeader.propTypes = propTypes;\nToastHeader.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (ToastHeader);\n\n/***/ }),\n/* 350 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n active: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n disabled: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n color: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n action: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.any,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'li'\n};\n\nvar handleDisabledOnClick = function handleDisabledOnClick(e) {\n e.preventDefault();\n};\n\nvar ListGroupItem = function ListGroupItem(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n active = props.active,\n disabled = props.disabled,\n action = props.action,\n color = props.color,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"tag\", \"active\", \"disabled\", \"action\", \"color\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, active ? 'active' : false, disabled ? 'disabled' : false, action ? 'list-group-item-action' : false, color ? \"list-group-item-\" + color : false, 'list-group-item'), cssModule); // Prevent click event when disabled.\n\n if (disabled) {\n attributes.onClick = handleDisabledOnClick;\n }\n\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }));\n};\n\nListGroupItem.propTypes = propTypes;\nListGroupItem.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (ListGroupItem);\n\n/***/ }),\n/* 351 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.any,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'h5'\n};\n\nvar ListGroupItemHeading = function ListGroupItemHeading(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'list-group-item-heading'), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }));\n};\n\nListGroupItemHeading.propTypes = propTypes;\nListGroupItemHeading.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (ListGroupItemHeading);\n\n/***/ }),\n/* 352 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.any,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'p'\n};\n\nvar ListGroupItemText = function ListGroupItemText(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'list-group-item-text'), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes\n }));\n};\n\nListGroupItemText.propTypes = propTypes;\nListGroupItemText.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (ListGroupItemText);\n\n/***/ }),\n/* 353 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,\n type: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string\n};\nvar defaultProps = {\n tag: 'ul'\n};\nvar List = /*#__PURE__*/Object(__WEBPACK_IMPORTED_MODULE_2_react__[\"forwardRef\"])(function (props, ref) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n type = props.type,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"tag\", \"type\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, type ? \"list-\" + type : false), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes,\n ref: ref\n }));\n});\nList.propTypes = propTypes;\nList.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (List);\n\n/***/ }),\n/* 354 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object\n};\nvar defaultProps = {\n tag: 'li'\n};\nvar ListInlineItem = /*#__PURE__*/Object(__WEBPACK_IMPORTED_MODULE_2_react__[\"forwardRef\"])(function (props, ref) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, 'list-inline-item'), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({}, attributes, {\n className: classes,\n ref: ref\n }));\n});\nListInlineItem.propTypes = propTypes;\nListInlineItem.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (ListInlineItem);\n\n/***/ }),\n/* 355 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_assertThisInitialized__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_inheritsLoose__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Alert__ = __webpack_require__(119);\n\n\n\n\n\n\nvar UncontrolledAlert = /*#__PURE__*/function (_Component) {\n Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_inheritsLoose__[\"a\" /* default */])(UncontrolledAlert, _Component);\n\n function UncontrolledAlert(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n _this.state = {\n isOpen: true\n };\n _this.toggle = _this.toggle.bind(Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n return _this;\n }\n\n var _proto = UncontrolledAlert.prototype;\n\n _proto.toggle = function toggle() {\n this.setState({\n isOpen: !this.state.isOpen\n });\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__Alert__[\"a\" /* default */], Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({\n isOpen: this.state.isOpen,\n toggle: this.toggle\n }, this.props));\n };\n\n return UncontrolledAlert;\n}(__WEBPACK_IMPORTED_MODULE_3_react__[\"Component\"]);\n\n/* unused harmony default export */ var _unused_webpack_default_export = (UncontrolledAlert);\n\n/***/ }),\n/* 356 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export default */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_defineProperty__ = __webpack_require__(14);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_inheritsLoose__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__ButtonDropdown__ = __webpack_require__(97);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utils__ = __webpack_require__(2);\n\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(Object(source), true).forEach(function (key) { Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_defineProperty__[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n\n\n\n\nvar omitKeys = ['defaultOpen'];\n\nvar UncontrolledButtonDropdown = /*#__PURE__*/function (_Component) {\n Object(__WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_inheritsLoose__[\"a\" /* default */])(UncontrolledButtonDropdown, _Component);\n\n function UncontrolledButtonDropdown(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n _this.state = {\n isOpen: props.defaultOpen || false\n };\n _this.toggle = _this.toggle.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n return _this;\n }\n\n var _proto = UncontrolledButtonDropdown.prototype;\n\n _proto.toggle = function toggle() {\n this.setState({\n isOpen: !this.state.isOpen\n });\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__ButtonDropdown__[\"a\" /* default */], Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({\n isOpen: this.state.isOpen,\n toggle: this.toggle\n }, Object(__WEBPACK_IMPORTED_MODULE_7__utils__[\"q\" /* omit */])(this.props, omitKeys)));\n };\n\n return UncontrolledButtonDropdown;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\n\nUncontrolledButtonDropdown.propTypes = _objectSpread({\n defaultOpen: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool\n}, __WEBPACK_IMPORTED_MODULE_6__ButtonDropdown__[\"a\" /* default */].propTypes);\n\n/***/ }),\n/* 357 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_assertThisInitialized__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_inheritsLoose__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Collapse__ = __webpack_require__(120);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utils__ = __webpack_require__(2);\n\n\n\n\n\n\n\nvar omitKeys = ['toggleEvents', 'defaultOpen'];\nvar propTypes = {\n defaultOpen: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool,\n toggler: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string.isRequired,\n toggleEvents: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string)\n};\nvar defaultProps = {\n toggleEvents: __WEBPACK_IMPORTED_MODULE_6__utils__[\"i\" /* defaultToggleEvents */]\n};\n\nvar UncontrolledCollapse = /*#__PURE__*/function (_Component) {\n Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_inheritsLoose__[\"a\" /* default */])(UncontrolledCollapse, _Component);\n\n function UncontrolledCollapse(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n _this.togglers = null;\n _this.removeEventListeners = null;\n _this.toggle = _this.toggle.bind(Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n _this.state = {\n isOpen: props.defaultOpen || false\n };\n return _this;\n }\n\n var _proto = UncontrolledCollapse.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.togglers = Object(__WEBPACK_IMPORTED_MODULE_6__utils__[\"j\" /* findDOMElements */])(this.props.toggler);\n\n if (this.togglers.length) {\n this.removeEventListeners = Object(__WEBPACK_IMPORTED_MODULE_6__utils__[\"f\" /* addMultipleEventListeners */])(this.togglers, this.toggle, this.props.toggleEvents);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.togglers.length && this.removeEventListeners) {\n this.removeEventListeners();\n }\n };\n\n _proto.toggle = function toggle(e) {\n this.setState(function (_ref) {\n var isOpen = _ref.isOpen;\n return {\n isOpen: !isOpen\n };\n });\n e.preventDefault();\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__Collapse__[\"a\" /* default */], Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({\n isOpen: this.state.isOpen\n }, Object(__WEBPACK_IMPORTED_MODULE_6__utils__[\"q\" /* omit */])(this.props, omitKeys)));\n };\n\n return UncontrolledCollapse;\n}(__WEBPACK_IMPORTED_MODULE_3_react__[\"Component\"]);\n\nUncontrolledCollapse.propTypes = propTypes;\nUncontrolledCollapse.defaultProps = defaultProps;\n/* unused harmony default export */ var _unused_webpack_default_export = (UncontrolledCollapse);\n\n/***/ }),\n/* 358 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export default */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_defineProperty__ = __webpack_require__(14);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_inheritsLoose__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Dropdown__ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utils__ = __webpack_require__(2);\n\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(Object(source), true).forEach(function (key) { Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_defineProperty__[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n\n\n\n\nvar omitKeys = ['defaultOpen'];\n\nvar UncontrolledDropdown = /*#__PURE__*/function (_Component) {\n Object(__WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_inheritsLoose__[\"a\" /* default */])(UncontrolledDropdown, _Component);\n\n function UncontrolledDropdown(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n _this.state = {\n isOpen: props.defaultOpen || false\n };\n _this.toggle = _this.toggle.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n return _this;\n }\n\n var _proto = UncontrolledDropdown.prototype;\n\n _proto.toggle = function toggle(e) {\n this.setState({\n isOpen: !this.state.isOpen\n });\n\n if (this.props.onToggle) {\n this.props.onToggle(e, !this.state.isOpen);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__Dropdown__[\"a\" /* default */], Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({\n isOpen: this.state.isOpen,\n toggle: this.toggle\n }, Object(__WEBPACK_IMPORTED_MODULE_7__utils__[\"q\" /* omit */])(this.props, omitKeys)));\n };\n\n return UncontrolledDropdown;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\n\nUncontrolledDropdown.propTypes = _objectSpread({\n defaultOpen: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool,\n onToggle: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func\n}, __WEBPACK_IMPORTED_MODULE_6__Dropdown__[\"a\" /* default */].propTypes);\n\n/***/ }),\n/* 359 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export default */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_defineProperty__ = __webpack_require__(14);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_inheritsLoose__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Tooltip__ = __webpack_require__(116);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utils__ = __webpack_require__(2);\n\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(Object(source), true).forEach(function (key) { Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_defineProperty__[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n\n\n\n\nvar omitKeys = ['defaultOpen'];\n\nvar UncontrolledTooltip = /*#__PURE__*/function (_Component) {\n Object(__WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_inheritsLoose__[\"a\" /* default */])(UncontrolledTooltip, _Component);\n\n function UncontrolledTooltip(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n _this.state = {\n isOpen: props.defaultOpen || false\n };\n _this.toggle = _this.toggle.bind(Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_assertThisInitialized__[\"a\" /* default */])(_this));\n return _this;\n }\n\n var _proto = UncontrolledTooltip.prototype;\n\n _proto.toggle = function toggle() {\n this.setState({\n isOpen: !this.state.isOpen\n });\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__Tooltip__[\"a\" /* default */], Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({\n isOpen: this.state.isOpen,\n toggle: this.toggle\n }, Object(__WEBPACK_IMPORTED_MODULE_7__utils__[\"q\" /* omit */])(this.props, omitKeys)));\n };\n\n return UncontrolledTooltip;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\n\nUncontrolledTooltip.propTypes = _objectSpread({\n defaultOpen: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool\n}, __WEBPACK_IMPORTED_MODULE_6__Tooltip__[\"a\" /* default */].propTypes);\n\n/***/ }),\n/* 360 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils__ = __webpack_require__(2);\n\n\n\n\n\n\nvar propTypes = {\n tag: __WEBPACK_IMPORTED_MODULE_5__utils__[\"t\" /* tagPropType */],\n type: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n size: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n color: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n className: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,\n cssModule: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,\n children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string\n};\nvar defaultProps = {\n tag: 'div',\n type: 'border',\n children: 'Loading...'\n};\n\nvar Spinner = function Spinner(props) {\n var className = props.className,\n cssModule = props.cssModule,\n type = props.type,\n size = props.size,\n color = props.color,\n children = props.children,\n Tag = props.tag,\n attributes = Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__[\"a\" /* default */])(props, [\"className\", \"cssModule\", \"type\", \"size\", \"color\", \"children\", \"tag\"]);\n\n var classes = Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])(__WEBPACK_IMPORTED_MODULE_4_classnames___default()(className, size ? \"spinner-\" + type + \"-\" + size : false, \"spinner-\" + type, color ? \"text-\" + color : false), cssModule);\n return /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(Tag, Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__[\"a\" /* default */])({\n role: \"status\"\n }, attributes, {\n className: classes\n }), children && /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(\"span\", {\n className: Object(__WEBPACK_IMPORTED_MODULE_5__utils__[\"p\" /* mapToCssModules */])('sr-only', cssModule)\n }, children));\n};\n\nSpinner.propTypes = propTypes;\nSpinner.defaultProps = defaultProps;\n/* harmony default export */ __webpack_exports__[\"a\"] = (Spinner);\n\n/***/ }),\n/* 361 */\n/***/ (function(module, exports) {\n\n(function () {\n if (typeof window !== 'object' || typeof window.CustomEvent === 'function') return;\n\n var CustomEvent = function CustomEvent(event, params) {\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: null\n };\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n window.CustomEvent = CustomEvent;\n})();\n\n(function () {\n if (typeof Object.values === 'function') return;\n\n var values = function values(O) {\n return Object.keys(O).map(function (key) {\n return O[key];\n });\n };\n\n Object.values = values;\n})();\n\n/***/ }),\n/* 362 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Layout; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_reactstrap__ = __webpack_require__(96);\nvar _createClass=function(){function defineProperties(target,props){for(var i=0;i= 300 || status < 200) {\r\n var rtPromise = (xhr.responseType === 'arraybuffer'\r\n || xhr.responseType === 'blob')\r\n ? HttpClient.decodeArrayBuffer(xhr.response)\r\n : Promise.resolve(xhr.responseText);\r\n rtPromise.then(function (responseText) {\r\n var responseObj = (responseContentType.indexOf('application/json') == 0)\r\n ? JSON.parse(responseText)\r\n : responseText;\r\n var message = responseObj.message ||\r\n (status == 404\r\n ? \"No such endpoint: \" + url\r\n : responseObj);\r\n reject(new HttpResponseError(status, message));\r\n });\r\n return;\r\n }\r\n var responseObj = (xhr.responseType === 'arraybuffer' || xhr.responseType === 'blob')\r\n ? xhr.response\r\n : (responseContentType.indexOf('application/json') == 0)\r\n ? JSON.parse(xhr.responseText)\r\n : xhr.responseText;\r\n resolve(responseObj);\r\n };\r\n xhr.send(dataToSend);\r\n }));\r\n };\r\n HttpClient.decodeArrayBuffer = function (uintArray) {\r\n var reader = new FileReader();\r\n return new Promise(function (resolve) {\r\n reader.onloadend = function () {\r\n if (reader.readyState == FileReader.DONE) {\r\n resolve(reader.result);\r\n }\r\n };\r\n reader.readAsText(new Blob([uintArray]));\r\n });\r\n };\r\n return HttpClient;\r\n}());\r\n\r\n//# sourceMappingURL=http_client.js.map\n\n/***/ }),\n/* 366 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return HttpActionResult; });\nvar HttpActionResult = /** @class */ (function () {\r\n function HttpActionResult(request, promise) {\r\n this.request = request;\r\n this.promise = promise;\r\n }\r\n HttpActionResult.prototype.getPromise = function () {\r\n return this.promise;\r\n };\r\n HttpActionResult.prototype.getRequest = function () {\r\n return this.request;\r\n };\r\n HttpActionResult.prototype.then = function (onfulfilled, onrejected) {\r\n return this.promise.then(onfulfilled, onrejected);\r\n };\r\n HttpActionResult.prototype.catch = function (onrejected) {\r\n return this.promise.catch(onrejected);\r\n };\r\n HttpActionResult.prototype.finally = function (onfinally) {\r\n return this.promise.finally(onfinally);\r\n };\r\n return HttpActionResult;\r\n}());\r\n\r\n//# sourceMappingURL=http_action_result.js.map\n\n/***/ }),\n/* 367 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return MetaData; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__i18n_i18n__ = __webpack_require__(39);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_utils__ = __webpack_require__(24);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__types_editor_tag__ = __webpack_require__(61);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__types_data_type__ = __webpack_require__(20);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__meta_entity__ = __webpack_require__(126);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__value_editor__ = __webpack_require__(127);\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * Represents a data model\r\n */\r\nvar MetaData = /** @class */ (function () {\r\n /** The default constructor. */\r\n function MetaData() {\r\n this.mainEntity = null;\r\n this.id = '__none';\r\n this.name = 'Empty model';\r\n this.rootEntity = this.createEntity();\r\n }\r\n /**\r\n * Gets the main entity of model\r\n * @return The main entity.\r\n */\r\n MetaData.prototype.getMainEntity = function () {\r\n return this.mainEntity;\r\n };\r\n MetaData.prototype.createEntity = function (parent) {\r\n return new __WEBPACK_IMPORTED_MODULE_4__meta_entity__[\"a\" /* MetaEntity */](parent);\r\n };\r\n MetaData.prototype.createEntityAttr = function (parent) {\r\n return new __WEBPACK_IMPORTED_MODULE_4__meta_entity__[\"b\" /* MetaEntityAttr */](parent);\r\n };\r\n MetaData.prototype.createValueEditor = function () {\r\n return new __WEBPACK_IMPORTED_MODULE_5__value_editor__[\"a\" /* ValueEditor */]();\r\n };\r\n /**\r\n * Loads data model from JSON.\r\n * @param stringJson The JSON string.\r\n */\r\n MetaData.prototype.loadFromJSON = function (stringJson) {\r\n var model = JSON.parse(stringJson);\r\n this.loadFromData(model);\r\n };\r\n /**\r\n * Loads data model from its JSON representation object.\r\n * @param data The JSON representation object.\r\n */\r\n MetaData.prototype.loadFromData = function (data) {\r\n this.id = data.id;\r\n this.name = data.name;\r\n this.version = data.vers;\r\n //Editors\r\n this.editors = new Array();\r\n if (data.editors) {\r\n for (var i = 0; i < data.editors.length; i++) {\r\n var newEditor = this.createValueEditor();\r\n newEditor.loadFromData(data.editors[i]);\r\n this.editors.push(newEditor);\r\n }\r\n }\r\n //rootEntity\r\n this.rootEntity.loadFromData(this, data.entroot);\r\n };\r\n /**\r\n * Sets data to data model.\r\n * @param model Its JSON representation object or JSON string.\r\n */\r\n MetaData.prototype.setData = function (model) {\r\n if (typeof model === 'string') {\r\n this.loadFromJSON(model);\r\n }\r\n else {\r\n this.loadFromData(model);\r\n }\r\n };\r\n /**\r\n * Checks wether the data model is empty.\r\n * @returns `true` if the data model is empty, otherwise `false`.\r\n */\r\n MetaData.prototype.isEmpty = function () {\r\n return this.rootEntity.subEntities.length === 0 && this.rootEntity.attributes.length === 0;\r\n };\r\n /**\r\n * Gets ID of the data model.\r\n * @returns The ID.\r\n */\r\n MetaData.prototype.getId = function () {\r\n return this.id;\r\n };\r\n /**\r\n * Gets name of the data model.\r\n * @returns The name.\r\n */\r\n MetaData.prototype.getName = function () {\r\n return this.name;\r\n };\r\n /**\r\n * Gets root entity of the data model.\r\n * @returns The root entity.\r\n */\r\n MetaData.prototype.getRootEntity = function () {\r\n return this.rootEntity;\r\n };\r\n /**\r\n * Finds editor by its ID.\r\n * @param editorId The editor ID.\r\n * @returns The value editor or `null`.\r\n */\r\n MetaData.prototype.getEditorById = function (editorId) {\r\n for (var _i = 0, _a = this.editors; _i < _a.length; _i++) {\r\n var editor = _a[_i];\r\n if (editor.id === editorId) {\r\n return editor;\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * Gets entity attribute by its ID.\r\n * This function runs through all attributes inside specified model (it's root entity and all its sub-entities).\r\n * @param attrId The attribute ID.\r\n * @returns The attribute or `null`.\r\n */\r\n MetaData.prototype.getAttributeById = function (attrId) {\r\n var attr = this.getEntityAttrById(this.getRootEntity(), attrId);\r\n if (!attr) {\r\n return null;\r\n }\r\n return attr;\r\n };\r\n /**\r\n * Checks wether attribute contains such property.\r\n * @param attrId The attribute ID.\r\n * @param propName The property name.\r\n * @returns `true` if the attribute contains the property, otherwise `false`.\r\n */\r\n MetaData.prototype.checkAttrProperty = function (attrId, propName) {\r\n var attribute = this.getAttributeById(attrId);\r\n if (attribute) {\r\n if (typeof attribute[propName] === 'undefined') {\r\n throw 'No such property: ' + propName;\r\n }\r\n if (attribute[propName]) {\r\n return true;\r\n }\r\n else if (attribute.lookupAttr) {\r\n attrId = attribute.lookupAttr;\r\n attribute = this.getAttributeById(attrId);\r\n return attribute && attribute[propName];\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n else\r\n return false;\r\n };\r\n /**\r\n * Gets entity attribute by its ID.\r\n * This function runs through all attributes inside specified entity and all its sub-entities.\r\n * @param entity\r\n * @param attrId\r\n * @returns The attribute or `null`.\r\n */\r\n MetaData.prototype.getEntityAttrById = function (entity, attrId) {\r\n var idx;\r\n if (entity.attributes) {\r\n var attrCount = entity.attributes.length;\r\n for (idx = 0; idx < attrCount; idx++) {\r\n if (entity.attributes[idx].id == attrId) {\r\n return entity.attributes[idx];\r\n }\r\n }\r\n }\r\n var res;\r\n if (entity.subEntities) {\r\n var subEntityCount = entity.subEntities.length;\r\n for (idx = 0; idx < subEntityCount; idx++) {\r\n res = this.getEntityAttrById(entity.subEntities[idx], attrId);\r\n if (res)\r\n return res;\r\n }\r\n }\r\n return null;\r\n };\r\n MetaData.prototype.listByEntityWithFilter = function (entity, filterFunc) {\r\n var result = new Array();\r\n var caption;\r\n var ent = null;\r\n if (entity.subEntities) {\r\n var subEntityCount = entity.subEntities.length;\r\n for (var entIdx = 0; entIdx < subEntityCount; entIdx++) {\r\n ent = entity.subEntities[entIdx];\r\n if (!filterFunc || filterFunc(ent, null)) {\r\n caption = __WEBPACK_IMPORTED_MODULE_0__i18n_i18n__[\"a\" /* i18n */].getText('Entities', ent.name);\r\n if (!caption) {\r\n caption = ent.caption;\r\n }\r\n var newEnt = __WEBPACK_IMPORTED_MODULE_1__utils_utils__[\"a\" /* utils */].assign(this.createEntity(), { id: ent.name, text: caption, items: [], isEntity: true });\r\n newEnt.items = this.listByEntityWithFilter(ent, filterFunc);\r\n if (newEnt.items.length > 0)\r\n result.push(newEnt);\r\n }\r\n }\r\n }\r\n var attr = null;\r\n if (entity.attributes) {\r\n var attrCount = entity.attributes.length;\r\n for (var attrIdx = 0; attrIdx < attrCount; attrIdx++) {\r\n attr = entity.attributes[attrIdx];\r\n if (!filterFunc || filterFunc(entity, attr)) {\r\n caption = __WEBPACK_IMPORTED_MODULE_0__i18n_i18n__[\"a\" /* i18n */].getText('Attributes', attr.id);\r\n if (!caption)\r\n caption = attr.caption;\r\n var newEnt = __WEBPACK_IMPORTED_MODULE_1__utils_utils__[\"a\" /* utils */].assign(this.createEntity(), { id: attr.id, text: caption, dataType: attr.dataType });\r\n result.push(newEnt);\r\n }\r\n }\r\n }\r\n return result;\r\n };\r\n MetaData.prototype.listByEntity = function (entity, opts, filterFunc) {\r\n opts = opts || {};\r\n var resultEntities = [];\r\n var resultAttributes = [];\r\n var caption;\r\n var ent = null;\r\n if (entity.subEntities) {\r\n var subEntityCount = entity.subEntities.length;\r\n for (var entIdx = 0; entIdx < subEntityCount; entIdx++) {\r\n ent = entity.subEntities[entIdx];\r\n if (!filterFunc || filterFunc(ent, null)) {\r\n caption = __WEBPACK_IMPORTED_MODULE_0__i18n_i18n__[\"a\" /* i18n */].getText('Entities', ent.name) || ent.caption;\r\n var newEnt = __WEBPACK_IMPORTED_MODULE_1__utils_utils__[\"a\" /* utils */].assign(this.createEntity(), {\r\n id: ent.name,\r\n text: caption,\r\n items: [],\r\n isEntity: true,\r\n description: ent.description\r\n });\r\n var newOpts = __WEBPACK_IMPORTED_MODULE_1__utils_utils__[\"a\" /* utils */].assign({}, opts);\r\n newOpts.includeRootData = false;\r\n newEnt.items = this.listByEntity(ent, newOpts, filterFunc);\r\n if (newEnt.items.length > 0) {\r\n resultEntities.push(newEnt);\r\n }\r\n }\r\n }\r\n }\r\n var attr = null;\r\n if (entity.attributes) {\r\n var attrCount = entity.attributes.length;\r\n for (var attrIdx = 0; attrIdx < attrCount; attrIdx++) {\r\n attr = entity.attributes[attrIdx];\r\n if (!filterFunc || filterFunc(entity, attr)) {\r\n caption = __WEBPACK_IMPORTED_MODULE_0__i18n_i18n__[\"a\" /* i18n */].getText('Attributes', attr.id) || attr.caption;\r\n resultAttributes.push(__WEBPACK_IMPORTED_MODULE_1__utils_utils__[\"a\" /* utils */].assign(this.createEntityAttr(entity), {\r\n id: attr.id, text: caption,\r\n dataType: attr.dataType, lookupAttr: attr.lookupAttr,\r\n description: attr.description\r\n }));\r\n }\r\n }\r\n }\r\n var sortCheck = function (a, b) {\r\n if (a.text.toLowerCase() == b.text.toLowerCase()) {\r\n return 0;\r\n }\r\n if (a.text.toLowerCase() > b.text.toLowerCase()) {\r\n return 1;\r\n }\r\n return -1;\r\n };\r\n if (opts.sortEntities) {\r\n resultEntities.sort(sortCheck);\r\n resultAttributes.sort(sortCheck);\r\n }\r\n var result;\r\n if (!opts.attrPlacement || opts.attrPlacement == 0) {\r\n result = resultEntities.concat(resultAttributes);\r\n }\r\n else {\r\n result = resultAttributes.concat(resultEntities);\r\n }\r\n if (opts.attrPlacement == 2) {\r\n result.sort(sortCheck);\r\n }\r\n if (opts.includeRootData) {\r\n caption = __WEBPACK_IMPORTED_MODULE_0__i18n_i18n__[\"a\" /* i18n */].getText('Entities', entity.name);\r\n if (!caption)\r\n caption = entity.caption;\r\n return { id: entity.name, text: caption, items: result };\r\n }\r\n else {\r\n return result;\r\n }\r\n };\r\n /**\r\n * Clears data model.\r\n */\r\n MetaData.prototype.clear = function () {\r\n this.rootEntity = this.createEntity();\r\n this.editors = [];\r\n this.version = '';\r\n };\r\n /**\r\n * Add default value editors.\r\n */\r\n MetaData.prototype.addDefaultValueEditors = function () {\r\n var ve;\r\n ve = this.addOrUpdateValueEditor('_DTE', __WEBPACK_IMPORTED_MODULE_2__types_editor_tag__[\"a\" /* EditorTag */].Edit, __WEBPACK_IMPORTED_MODULE_3__types_data_type__[\"a\" /* DataType */].String);\r\n ve.defValue = '';\r\n this.addOrUpdateValueEditor('_DPDE', __WEBPACK_IMPORTED_MODULE_2__types_editor_tag__[\"a\" /* EditorTag */].DateTime, __WEBPACK_IMPORTED_MODULE_3__types_data_type__[\"a\" /* DataType */].DateTime);\r\n this.addOrUpdateValueEditor('_DPTE', __WEBPACK_IMPORTED_MODULE_2__types_editor_tag__[\"a\" /* EditorTag */].DateTime, __WEBPACK_IMPORTED_MODULE_3__types_data_type__[\"a\" /* DataType */].DateTime);\r\n };\r\n /**\r\n * Add or update a value editor.\r\n * @param id The id.\r\n * @param tag The tag.\r\n * @param resType The result type.\r\n * @returns The value editor.\r\n */\r\n MetaData.prototype.addOrUpdateValueEditor = function (id, tag, resType) {\r\n var ve = __WEBPACK_IMPORTED_MODULE_1__utils_utils__[\"a\" /* utils */].findItemById(this.editors, id);\r\n if (!ve) {\r\n ve = this.createValueEditor();\r\n ve.id = id;\r\n this.editors.push(ve);\r\n }\r\n ve.tag = tag;\r\n ve.resType = resType;\r\n return ve;\r\n };\r\n /**\r\n * Gets entities tree.\r\n * @param opts The options.\r\n * @param filterFunc The filter function.\r\n * Takes two parameters, Entity and EntityAttr (second parameter will be null for entities), and returns boolean (true if the corresponding entity or attribute).\r\n * @returns The tree of the entities and their attributes according to options and the filter function\r\n */\r\n MetaData.prototype.getEntitiesTree = function (opts, filterFunc) {\r\n return this.listByEntity(this.getRootEntity(), opts, filterFunc);\r\n };\r\n /**\r\n * Gets entities tree due to filter.\r\n * @param filterFunc The filter function.\r\n * Takes two parameters, Entity and EntityAttr (second parameter will be null for entities), and returns boolean (true if the corresponding entity or attribute).\r\n * @returns The tree of the entities and their attributes according to the filter function\r\n */\r\n MetaData.prototype.getEntitiesTreeWithFilter = function (filterFunc) {\r\n return this.listByEntityWithFilter(this.getRootEntity(), filterFunc);\r\n };\r\n /**\r\n * Finds full entity path by attribute\r\n * @param attrId The attribute id.\r\n * @param sep The separator.\r\n * @returns The path.\r\n */\r\n MetaData.prototype.getFullEntityPathByAttr = function (attrId, sep) {\r\n sep = sep || ' ';\r\n return this.getEntityPathByAttr(this.getRootEntity(), attrId, sep, true);\r\n };\r\n /**\r\n * Finds entity path by attribute\r\n * @param entity The entity.\r\n * @param attrId The attribute id.\r\n * @param sep The separator.\r\n * @param root The root option.\r\n * @returns The path.\r\n */\r\n MetaData.prototype.getEntityPathByAttr = function (entity, attrId, sep, root) {\r\n if (!entity)\r\n return '';\r\n sep = sep || ' ';\r\n var entityCaption = '';\r\n if (entity.caption && !root) {\r\n var entityText = __WEBPACK_IMPORTED_MODULE_0__i18n_i18n__[\"a\" /* i18n */].getText('Entities', entity.caption);\r\n entityCaption = entityText ? entityText : entity.caption;\r\n }\r\n if (entity.attributes) {\r\n var attrCount = entity.attributes.length;\r\n for (var i = 0; i < attrCount; i++) {\r\n if (entity.attributes[i].id == attrId) {\r\n return entityCaption;\r\n }\r\n }\r\n }\r\n if (entity.subEntities) {\r\n var subEntityCount = entity.subEntities.length;\r\n for (var i = 0; i < subEntityCount; i++) {\r\n var ent = entity.subEntities[i];\r\n var res = this.getEntityPathByAttr(ent, attrId, sep, false);\r\n if (res !== '') {\r\n if (entityCaption !== '')\r\n res = entityCaption + sep + res;\r\n return res;\r\n }\r\n }\r\n }\r\n return '';\r\n };\r\n /**\r\n * Gets the attribute text.\r\n * @param attr The attribute.\r\n * @param format The format.\r\n * @returns Formatted text.\r\n */\r\n MetaData.prototype.getAttributeText = function (attr, format) {\r\n var attrText = __WEBPACK_IMPORTED_MODULE_0__i18n_i18n__[\"a\" /* i18n */].getText('Attributes', attr.id);\r\n if (!attrText) {\r\n attrText = attr.caption;\r\n }\r\n if (!format) {\r\n return attrText;\r\n }\r\n var result = '';\r\n var entityPath = this.getFullEntityPathByAttr(attr.id, ' ');\r\n if (entityPath) {\r\n result = format.replace(new RegExp('{attr}', 'g'), attrText);\r\n result = result.replace(new RegExp('{entity}', 'g'), entityPath);\r\n }\r\n else {\r\n result = attrText;\r\n }\r\n return result.trim();\r\n };\r\n /**\r\n * Scans model's entity tree and calls the callback functions for each attribute and entity.\r\n * @param processAttribute The callback function which is called for each attribute in model's entity tree.\r\n * The processed attribute is passed in the first function parameter.\r\n * @param processEntity The callback function which is called for each entity in tree.\r\n * The processed entity is passed in the first function parameter.\r\n */\r\n MetaData.prototype.runThroughEntities = function (processAttribute, processEntity) {\r\n this.getRootEntity().scan(processAttribute, processEntity);\r\n };\r\n /**\r\n * Finds first attribute by filter.\r\n * @param filterFunc The filter function. Takes EntityAttr object in parameter and returns boolean\r\n */\r\n MetaData.prototype.getFirstAttributeByFilter = function (filterFunc) {\r\n var res = null;\r\n this.runThroughEntities(function (attr, opts) {\r\n if (filterFunc(attr)) {\r\n opts.stop = true;\r\n res = attr;\r\n }\r\n }, null);\r\n return res;\r\n };\r\n return MetaData;\r\n}());\r\n\r\n//# sourceMappingURL=meta_data.js.map\n\n/***/ }),\n/* 368 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return EasyDataTable; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__data_column__ = __webpack_require__(128);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__data_row__ = __webpack_require__(129);\n\r\n\r\nvar EasyDataTable = /** @class */ (function () {\r\n function EasyDataTable(options) {\r\n this._chunkSize = 1000;\r\n // object keeps number keys sorted\r\n this.chunkMap = {};\r\n this.total = 0;\r\n this.loader = null;\r\n this.needTotal = true;\r\n options = options || {};\r\n this._chunkSize = options.chunkSize || this._chunkSize;\r\n this.loader = options.loader;\r\n this._columns = new __WEBPACK_IMPORTED_MODULE_0__data_column__[\"b\" /* DataColumnList */]();\r\n if (options.columns) {\r\n for (var _i = 0, _a = options.columns; _i < _a.length; _i++) {\r\n var colDesc = _a[_i];\r\n this._columns.add(colDesc);\r\n }\r\n }\r\n if (options.rows) {\r\n for (var _b = 0, _c = options.rows; _b < _c.length; _b++) {\r\n var rowData = _c[_b];\r\n var row = this.createRow(rowData);\r\n this.addRow(row);\r\n }\r\n }\r\n }\r\n Object.defineProperty(EasyDataTable.prototype, \"columns\", {\r\n get: function () {\r\n return this._columns;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(EasyDataTable.prototype, \"chunkSize\", {\r\n get: function () {\r\n return this._chunkSize;\r\n },\r\n set: function (value) {\r\n this._chunkSize = value;\r\n this.total = 0;\r\n this.needTotal = true;\r\n this.chunkMap = {};\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n EasyDataTable.prototype.getRows = function (params) {\r\n var _this = this;\r\n var fromIndex = 0, count = this._chunkSize;\r\n if (params) {\r\n if ('page' in params) {\r\n fromIndex = params.pageSize * (params.page - 1);\r\n count = params.pageSize;\r\n }\r\n else {\r\n fromIndex = params.offset;\r\n count = params.limit;\r\n }\r\n }\r\n var endIndex = fromIndex + count; //the first index of the next page\r\n //if we don't calculate total on this request\r\n if (!this.needTotal) {\r\n if (fromIndex >= this.total) {\r\n return Promise.resolve([]);\r\n }\r\n if (endIndex > this.total) {\r\n endIndex = this.total;\r\n }\r\n }\r\n var lbChunk = Math.trunc(fromIndex / this._chunkSize);\r\n var ubChunk = Math.trunc((endIndex - 1) / this._chunkSize);\r\n var allChunksCached = true;\r\n for (var i = lbChunk; i <= ubChunk; i++) {\r\n if (!this.chunkMap[i]) {\r\n allChunksCached = false;\r\n break;\r\n }\r\n }\r\n if (allChunksCached) {\r\n var resultArr = [];\r\n for (var i = lbChunk; i <= ubChunk; i++) {\r\n resultArr = resultArr.concat(this.chunkMap[i].rows);\r\n }\r\n var firstChunkOffset = this.chunkMap[lbChunk].offset;\r\n return Promise.resolve(resultArr.slice(fromIndex - firstChunkOffset, endIndex - firstChunkOffset));\r\n }\r\n //if loader is not defined\r\n if (!this.loader) {\r\n throw \"Loader is not defined. Can't get the rows from \" + fromIndex + \" to \" + endIndex;\r\n }\r\n // we need total only for the first request\r\n var needTotal = this.needTotal;\r\n if (this.needTotal) {\r\n this.needTotal = false;\r\n }\r\n return this.loader.loadChunk({\r\n offset: lbChunk * this._chunkSize,\r\n limit: this._chunkSize * (ubChunk - lbChunk + 1),\r\n needTotal: needTotal\r\n })\r\n .then(function (result) {\r\n var chunks = result.table.getCachedChunks();\r\n if (needTotal) {\r\n _this.total = result.total;\r\n if (endIndex > _this.total) {\r\n endIndex = _this.total;\r\n }\r\n }\r\n var index = lbChunk;\r\n for (var _i = 0, chunks_1 = chunks; _i < chunks_1.length; _i++) {\r\n var chunk = chunks_1[_i];\r\n _this.chunkMap[index] = {\r\n offset: index * _this._chunkSize,\r\n rows: chunk.rows\r\n };\r\n index++;\r\n }\r\n var resultArr = [];\r\n for (var i = lbChunk; i <= ubChunk; i++) {\r\n resultArr = resultArr.concat(_this.chunkMap[i].rows);\r\n }\r\n var firstChunkOffset = _this.chunkMap[lbChunk].offset;\r\n return resultArr.slice(fromIndex - firstChunkOffset, endIndex - firstChunkOffset);\r\n });\r\n };\r\n EasyDataTable.prototype.getRow = function (index) {\r\n return this.getRows({ offset: index, limit: 1 })\r\n .then(function (rows) { return rows.length > 0 ? rows[0] : null; });\r\n };\r\n EasyDataTable.prototype.getTotal = function () {\r\n return this.total;\r\n };\r\n EasyDataTable.prototype.setTotal = function (total) {\r\n this.total = total;\r\n this.needTotal = false;\r\n this.chunkMap = {};\r\n };\r\n EasyDataTable.prototype.getCachedCount = function () {\r\n return this.getCachedRows().length;\r\n };\r\n EasyDataTable.prototype.clear = function () {\r\n this.columns.clear();\r\n this.chunkMap = {};\r\n this.total = 0;\r\n this.needTotal = true;\r\n };\r\n EasyDataTable.prototype.createRow = function (dataOrRow) {\r\n var _this = this;\r\n var dateIdx = this._columns.getDateColumnIndexes();\r\n var values = new Array(this._columns.count);\r\n var getValue = dataOrRow instanceof __WEBPACK_IMPORTED_MODULE_1__data_row__[\"a\" /* DataRow */]\r\n ? function (colId) { return dataOrRow.getValue(colId); }\r\n : function (colId) { return dataOrRow[colId]; };\r\n if (dataOrRow) {\r\n this.columns.getItems().forEach(function (column) {\r\n var value = getValue(column.id);\r\n var index = _this.columns.getIndex(column.id);\r\n values[index] = (dateIdx.indexOf(index) >= 0)\r\n ? (value ? new Date(value) : value)\r\n : value;\r\n });\r\n }\r\n return new __WEBPACK_IMPORTED_MODULE_1__data_row__[\"a\" /* DataRow */](this._columns, values);\r\n };\r\n EasyDataTable.prototype.addRow = function (rowOrValue) {\r\n var newRow;\r\n if (Array.isArray(rowOrValue)) {\r\n var dateIdx = this._columns.getDateColumnIndexes();\r\n if (dateIdx.length > 0) {\r\n for (var _i = 0, dateIdx_1 = dateIdx; _i < dateIdx_1.length; _i++) {\r\n var idx = dateIdx_1[_i];\r\n if (rowOrValue[idx]) {\r\n rowOrValue[idx] = new Date(rowOrValue[idx]);\r\n }\r\n }\r\n }\r\n newRow = new __WEBPACK_IMPORTED_MODULE_1__data_row__[\"a\" /* DataRow */](this._columns, rowOrValue);\r\n }\r\n else {\r\n newRow = this.createRow(rowOrValue);\r\n }\r\n var lastChunk = this.getLastChunk();\r\n if (!lastChunk || lastChunk.rows.length >= this._chunkSize) {\r\n lastChunk = this.createChunk();\r\n }\r\n lastChunk.rows.push(newRow);\r\n var cachedTotal = this.getCachedCount();\r\n if (cachedTotal > this.total) {\r\n this.total = cachedTotal;\r\n }\r\n return newRow;\r\n };\r\n EasyDataTable.prototype.createChunk = function (index) {\r\n if (typeof index == 'undefined') {\r\n index = this.getLastChunkIndex() + 1;\r\n }\r\n var chunk = { offset: index * this._chunkSize, rows: [] };\r\n this.chunkMap[index] = chunk;\r\n return chunk;\r\n };\r\n EasyDataTable.prototype.getLastChunkIndex = function () {\r\n var keys = Object.keys(this.chunkMap);\r\n return keys.length > 0\r\n ? parseInt(keys[keys.length - 1])\r\n : -1;\r\n };\r\n EasyDataTable.prototype.getLastChunk = function () {\r\n var index = this.getLastChunkIndex();\r\n return index > -1\r\n ? this.chunkMap[index]\r\n : null;\r\n };\r\n EasyDataTable.prototype.getCachedRows = function () {\r\n return this.getCachedChunks()\r\n .reduce(function (acc, v) { return acc.concat(v.rows); }, []);\r\n };\r\n EasyDataTable.prototype.getCachedChunks = function () {\r\n return Object.values(this.chunkMap);\r\n };\r\n return EasyDataTable;\r\n}());\r\n\r\n//# sourceMappingURL=easy_data_table.js.map\n\n/***/ }),\n/* 369 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return EventEmitter; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_easy_guid__ = __webpack_require__(130);\n\r\n/**\r\n * The representation of event emitter.\r\n */\r\nvar EventEmitter = /** @class */ (function () {\r\n /**\r\n * The default constructor.\r\n * @param source The source.\r\n */\r\n function EventEmitter(source) {\r\n this.silentMode = 0;\r\n this.events = new Array();\r\n this.source = source;\r\n }\r\n /**\r\n * Subscries to the event.\r\n * @param eventType The event type.\r\n * @param callback The callback.\r\n * @returns The subscribtion ID.\r\n */\r\n EventEmitter.prototype.subscribe = function (eventType, callback) {\r\n var event = this.getEventRecByType(eventType);\r\n var eventCallback = {\r\n id: __WEBPACK_IMPORTED_MODULE_0__utils_easy_guid__[\"a\" /* EasyGuid */].newGuid(),\r\n callback: callback\r\n };\r\n if (event) {\r\n event.eventCallbacks.push(eventCallback);\r\n }\r\n else {\r\n event = {\r\n type: eventType,\r\n eventCallbacks: new Array(eventCallback)\r\n };\r\n this.events.push(event);\r\n }\r\n return eventCallback.id;\r\n };\r\n /**\r\n * Unsubsribes from the event.\r\n * @param eventType The event type.\r\n * @param callbackId The subscribtion ID.\r\n */\r\n EventEmitter.prototype.unsubscribe = function (eventType, callbackId) {\r\n var event = this.getEventRecByType(eventType);\r\n if (event) {\r\n var index = -1;\r\n for (index = 0; index < event.eventCallbacks.length; index++) {\r\n if (event.eventCallbacks[index].id === callbackId) {\r\n break;\r\n }\r\n }\r\n if (index >= 0) {\r\n event.eventCallbacks.splice(index, 1);\r\n }\r\n }\r\n };\r\n /**\r\n * Fires the event.\r\n * @param eventType The event type.\r\n * @param data The event data.\r\n * @param postpone The postpone.\r\n * @param force To fire force. If value is `true`, ignores silent mode.\r\n */\r\n EventEmitter.prototype.fire = function (eventType, data, postpone, force) {\r\n if (postpone === void 0) { postpone = 0; }\r\n if (force === void 0) { force = false; }\r\n if (this.silentMode && !force) {\r\n return;\r\n }\r\n var eventRec = this.getEventRecByType(eventType);\r\n if (eventRec) {\r\n var eqevent_1 = {\r\n type: eventType,\r\n source: this.source,\r\n data: data\r\n };\r\n var emitAllFunc = function () {\r\n for (var _i = 0, _a = eventRec.eventCallbacks; _i < _a.length; _i++) {\r\n var callback = _a[_i];\r\n callback.callback(eqevent_1);\r\n }\r\n };\r\n if (postpone > 0) {\r\n setTimeout(emitAllFunc, postpone);\r\n }\r\n else {\r\n emitAllFunc();\r\n }\r\n }\r\n };\r\n /**\r\n * Enters to silent mode.\r\n */\r\n EventEmitter.prototype.enterSilentMode = function () {\r\n this.silentMode++;\r\n };\r\n /**\r\n * Exits from silent mode.\r\n */\r\n EventEmitter.prototype.exitSilentMode = function () {\r\n if (this.silentMode) {\r\n this.silentMode--;\r\n }\r\n };\r\n /**\r\n * Checks if emitter is in silent mode.\r\n * @return `true`, if silent mode is enable.\r\n */\r\n EventEmitter.prototype.isSilent = function () {\r\n return this.silentMode > 0;\r\n };\r\n EventEmitter.prototype.getEventRecByType = function (eventType) {\r\n for (var _i = 0, _a = this.events; _i < _a.length; _i++) {\r\n var event_1 = _a[_i];\r\n if (event_1.type == eventType) {\r\n return event_1;\r\n }\r\n }\r\n return null;\r\n };\r\n return EventEmitter;\r\n}());\r\n\r\n//# sourceMappingURL=event_emitter.js.map\n\n/***/ }),\n/* 370 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__i18n__ = __webpack_require__(39);\n\r\n__WEBPACK_IMPORTED_MODULE_0__i18n__[\"a\" /* i18n */].resetLocales();\r\n//# sourceMappingURL=load_default_locale_settings.js.map\n\n/***/ }),\n/* 371 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return eqconsts; });\nvar eqconsts;\r\n(function (eqconsts) {\r\n /**\r\n * Defines some commonly used constants\r\n */\r\n var ConstLists = /** @class */ (function () {\r\n function ConstLists() {\r\n /**\r\n * Contains macros for the special dates (like Today, First day of the month, etc)\r\n */\r\n this.SpecDateValues = [\r\n { id: '${Today}', key: 'Today', isDefault: true },\r\n { id: '${Yesterday}', key: 'Yesterday' },\r\n { id: '${Tomorrow}', key: 'Tomorrow' },\r\n { id: '${FirstDayOfMonth}', key: 'FirstDayOfMonth' },\r\n { id: '${FirstDayOfYear}', key: 'FirstDayOfYear' }\r\n ];\r\n /**\r\n * Contains macros for the special times (like Now, Noon, etc)\r\n */\r\n this.SpecTimeValues = [\r\n { id: '${Now}', key: 'Now', isDefault: true },\r\n { id: '${HourStart}', key: 'HourStart' },\r\n { id: '${Midnight}', key: 'Midnight' },\r\n { id: '${Noon}', key: 'Noon' }\r\n ];\r\n /**\r\n * Boolean values macros (true and false)\r\n */\r\n this.BooleanValues = [\r\n { id: '${false}', key: 'False' },\r\n { id: '${true}', key: 'True', isDefault: true }\r\n ];\r\n }\r\n return ConstLists;\r\n }());\r\n /**\r\n * Contains some constants (macros) with special date/time and boolean values.\r\n */\r\n eqconsts.constLists = new ConstLists();\r\n /**\r\n * Constants representing various types of relationships between conditions\r\n */\r\n eqconsts.predicateLinkTypeList = [\r\n { id: 'All', key: 'LinkTypeAll' },\r\n { id: 'Any', key: 'LinkTypeAny' },\r\n { id: 'None', key: 'LinkTypeNone' },\r\n { id: 'NotAll', key: 'LinkTypeNotAll' }\r\n ];\r\n})(eqconsts || (eqconsts = {}));\r\n//# sourceMappingURL=constants.js.map\n\n/***/ }),\n/* 372 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export GoogleDataConverter */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\n\r\n/**\r\n * Represents Google data table class\r\n */\r\nvar GoogleDataConverter = /** @class */ (function () {\r\n /**\r\n * The default constructor.\r\n * @param data The table instance or its JSON representation.\r\n */\r\n function GoogleDataConverter(data) {\r\n if (!data) {\r\n data = {\r\n cols: [],\r\n rows: []\r\n };\r\n }\r\n if (typeof data === \"string\") {\r\n this.loadFromJSON(data);\r\n }\r\n else {\r\n this.tableObj = data;\r\n }\r\n }\r\n /**\r\n * Loads data table from JSON.\r\n * @param json The JSON representation.\r\n */\r\n GoogleDataConverter.prototype.loadFromJSON = function (json) {\r\n this.tableObj = JSON.parse(json);\r\n };\r\n /**\r\n * Saves data table to JSON.\r\n * @returns The JSON representation.\r\n */\r\n GoogleDataConverter.prototype.toJSON = function () {\r\n return JSON.stringify(this.tableObj);\r\n };\r\n /**\r\n * Gets the google data table object.\r\n * @returns The data table.\r\n */\r\n GoogleDataConverter.prototype.getObject = function () {\r\n return this.tableObj;\r\n };\r\n /**\r\n * Cheсks wether the table is empty\r\n * @returns `true` if the table is empty, `false` if it is not.\r\n */\r\n GoogleDataConverter.prototype.isEmpty = function () {\r\n return this.getNumberOfColumns() == 0 || this.getNumberOfRows() == 0;\r\n };\r\n /**\r\n * Gets the number of columns\r\n * @returns The number.\r\n */\r\n GoogleDataConverter.prototype.getNumberOfColumns = function () {\r\n return this.tableObj.cols.length;\r\n };\r\n /**\r\n * Gets the column object.\r\n * @param colIndex The column index.\r\n * @returns The column object.\r\n */\r\n GoogleDataConverter.prototype.getColumnObject = function (colIndex) {\r\n return colIndex < this.tableObj.cols.length ? this.tableObj.cols[colIndex] : null;\r\n };\r\n /**\r\n * Gets the column ID.\r\n * @param colIndex The column index.\r\n * @returns The column ID.\r\n */\r\n GoogleDataConverter.prototype.getColumnId = function (colIndex) {\r\n var col = this.getColumnObject(colIndex);\r\n return col ? col.id : null;\r\n };\r\n /**\r\n * Gets the column LABEL.\r\n * @param colIndex The column index.\r\n * @returns The column ID.\r\n */\r\n GoogleDataConverter.prototype.getColumnLabel = function (colIndex) {\r\n var col = this.getColumnObject(colIndex);\r\n return col ? col.label : null;\r\n };\r\n /**\r\n * Gets the column type.\r\n * @param colIndex The column index.\r\n * @returns The column type.\r\n */\r\n GoogleDataConverter.prototype.getColumnType = function (colIndex) {\r\n var col = this.getColumnObject(colIndex);\r\n return col ? col.type : null;\r\n };\r\n /**\r\n * Gets the column properties.\r\n * @param colIndex The column index.\r\n * @returns The column properties.\r\n */\r\n GoogleDataConverter.prototype.getColumnProperties = function (colIndex) {\r\n var col = this.getColumnObject(colIndex);\r\n return col ? col.p : null;\r\n };\r\n /**\r\n * Gets the number of rows.\r\n * @returns The number.\r\n */\r\n GoogleDataConverter.prototype.getNumberOfRows = function () {\r\n return this.tableObj.rows.length;\r\n };\r\n GoogleDataConverter.prototype.convertValue = function (value, colIndex) {\r\n var colType = this.googleDataTypeToDataType(this.getColumnType(colIndex));\r\n if ([__WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Date, __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].DateTime, __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Time].includes(colType)) {\r\n return eval(\"new \" + value);\r\n }\r\n return value;\r\n };\r\n /**\r\n * Gets the value.\r\n * @param rowIndex\r\n * @param colIndex\r\n */\r\n GoogleDataConverter.prototype.getValue = function (rowIndex, colIndex) {\r\n var row = rowIndex < this.tableObj.rows.length ? this.tableObj.rows[rowIndex] : null;\r\n if (row) {\r\n var cell = colIndex < this.tableObj.cols.length ? row.c[colIndex] : null;\r\n if (cell) {\r\n return this.convertValue(cell.v, colIndex);\r\n }\r\n }\r\n return null;\r\n };\r\n GoogleDataConverter.prototype.getRow = function (rowIndex) {\r\n var _this = this;\r\n var googleRow = rowIndex < this.tableObj.rows.length ? this.tableObj.rows[rowIndex] : null;\r\n var googleCells = googleRow.c;\r\n var row = googleCells.map(function (obj, idx) { return _this.convertValue(obj.v, idx); }, this);\r\n return row;\r\n };\r\n GoogleDataConverter.prototype.convertTo = function (dataTable) {\r\n var colCount = this.getNumberOfColumns();\r\n for (var i = 0; i < colCount; i++) {\r\n dataTable.columns.add({\r\n id: this.getColumnId(i),\r\n label: this.getColumnLabel(i),\r\n type: this.googleDataTypeToDataType(this.getColumnType(i))\r\n });\r\n }\r\n var rowCount = this.getNumberOfRows();\r\n for (var i = 0; i < rowCount; i++) {\r\n dataTable.addRow(this.getRow(i));\r\n }\r\n };\r\n GoogleDataConverter.prototype.googleDataTypeToDataType = function (googleDataType) {\r\n switch (googleDataType) {\r\n case 'string':\r\n return __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].String;\r\n case 'number':\r\n return __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Float;\r\n case 'boolean':\r\n return __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Bool;\r\n case 'date':\r\n return __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Date;\r\n case 'datetime':\r\n return __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].DateTime;\r\n case 'timeofday':\r\n return __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].Time;\r\n default:\r\n return __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"c\" /* DataType */].String;\r\n }\r\n };\r\n return GoogleDataConverter;\r\n}());\r\n\r\n//# sourceMappingURL=google_data_converter.js.map\n\n/***/ }),\n/* 373 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return EqContext; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_eq_services__ = __webpack_require__(132);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__query_query_events__ = __webpack_require__(30);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__action__ = __webpack_require__(151);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__types_widget_group__ = __webpack_require__(149);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils_utils__ = __webpack_require__(40);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__eq_actions__ = __webpack_require__(150);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__eqs_eqs_exporter__ = __webpack_require__(152);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__data_eq_data_loader__ = __webpack_require__(148);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__types_expr_tag__ = __webpack_require__(21);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__query_query_column__ = __webpack_require__(64);\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * Encapsulates all information about EasyQuery components on some webpage\r\n * and provides some basic operation over those components\r\n * Each context includes the following main components:\r\n * - one data model,\r\n * - one query,\r\n * - one result set\r\n * - several UI widgets.\r\n */\r\nvar EqContext = /** @class */ (function () {\r\n function EqContext() {\r\n var _this = this;\r\n this.internalListCache = {};\r\n this.useBootstrap = false;\r\n this.loadModelOnStart = true;\r\n this.loadQueryOnStart = false;\r\n this.calcTotals = false;\r\n //----------- endpoint processing functions --------------\r\n this.endpointVarsRegex = /\\{.*?\\}/g;\r\n this._predefinedListRequestHandlers = {\r\n '_DSDE': function (params, onResult) {\r\n var data = _this.getModel().getAllDateMacros()\r\n .map(function (macro) {\r\n var macroName = macro.match(/\\${{(.*?)}}/)[1];\r\n return { id: macro, text: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText(macroName) };\r\n });\r\n onResult(data);\r\n return true;\r\n },\r\n '_DSTE': function (params, onResult) {\r\n var data = _this.getModel().getAllTimeMacros()\r\n .map(function (macro) {\r\n var macroName = macro.match(/\\${{(.*?)}}/)[1];\r\n return { id: macro, text: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText(macroName) };\r\n });\r\n onResult(data);\r\n return true;\r\n }\r\n };\r\n this._listRequestHandler = function (params, onResult) {\r\n if (params == null || !params.listName)\r\n return;\r\n var query = _this.getQuery();\r\n var newParams = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].assign({ listName: params.listName }, params.editorParams);\r\n var procParams = {};\r\n var attrPattern = /@{{(.+?)}}/;\r\n for (var prop in newParams) {\r\n if (!procParams[prop])\r\n continue;\r\n var dynamicParam = newParams[prop].match(attrPattern);\r\n if (dynamicParam) {\r\n var paramValue = query.getOneValueForAttr(dynamicParam[1]);\r\n if (!paramValue) {\r\n paramValue = '';\r\n }\r\n procParams[prop] = newParams[prop].replace(attrPattern, paramValue);\r\n }\r\n }\r\n var requestPrams = {\r\n listName: procParams.listName,\r\n editorId: params.editorId,\r\n queryParams: procParams\r\n };\r\n var list = _this.getListFromCache(params);\r\n if (list && list.length > 0) {\r\n onResult(list);\r\n return;\r\n }\r\n var processed = false;\r\n var predefinedHandler = _this._predefinedListRequestHandlers[params.editorId];\r\n if (predefinedHandler) {\r\n processed = predefinedHandler(params, onResult);\r\n }\r\n if (!processed && _this.clientListRequestHandler) {\r\n processed = _this.clientListRequestHandler(params, onResult);\r\n }\r\n if (!processed) {\r\n _this.loadValueList({\r\n params: requestPrams,\r\n success: function (data) {\r\n if (data) {\r\n _this.addListToCache(params, data);\r\n }\r\n onResult(data);\r\n },\r\n error: function (message) {\r\n onResult(null);\r\n }\r\n });\r\n }\r\n };\r\n this.baseEndpoint = 'api/easyquery';\r\n this.eqServices = new __WEBPACK_IMPORTED_MODULE_1__common_eq_services__[\"a\" /* EqServiceProvider */](this);\r\n this.widgets = new Array();\r\n this.eventEmitter = new __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"f\" /* EventEmitter */](this);\r\n this.exporters = new Map();\r\n this.endpoints = new Map();\r\n this.dataLoader = new __WEBPACK_IMPORTED_MODULE_8__data_eq_data_loader__[\"a\" /* EasyQueryDataLoader */](this);\r\n this.resultTable = new __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"d\" /* EasyDataTable */]({\r\n loader: this.dataLoader\r\n });\r\n this.resultTable.id = 'ResultTable';\r\n }\r\n EqContext.prototype.getServices = function () {\r\n return this.eqServices;\r\n };\r\n EqContext.prototype.registerExporter = function (format, resolver) {\r\n this.exporters.set(format, resolver);\r\n };\r\n EqContext.prototype.registerServerExporter = function (format, responseType) {\r\n this.registerExporter(format, function (context) {\r\n var exporter = new __WEBPACK_IMPORTED_MODULE_7__eqs_eqs_exporter__[\"a\" /* EqServerExporter */](context);\r\n exporter.setFormat(format, responseType);\r\n return exporter;\r\n });\r\n };\r\n EqContext.prototype.getExporter = function (format) {\r\n var resolver = this.exporters.get(format);\r\n if (resolver) {\r\n return resolver(this);\r\n }\r\n return null;\r\n };\r\n EqContext.prototype.getExportFormats = function () {\r\n return Array.from(this.exporters.keys());\r\n };\r\n EqContext.prototype.addDefaultExporters = function () {\r\n this.registerServerExporter('csv', '');\r\n this.registerServerExporter('excel-html', '');\r\n };\r\n EqContext.prototype.resolveEndpoint = function (endpointKey, options) {\r\n options = options || {};\r\n var result = this.endpoints.get(endpointKey);\r\n if (!result) {\r\n throw endpointKey + ' endpoint is not defined';\r\n }\r\n var matches = result.match(this.endpointVarsRegex);\r\n if (matches) {\r\n for (var _i = 0, matches_1 = matches; _i < matches_1.length; _i++) {\r\n var match = matches_1[_i];\r\n var opt = match.substring(1, match.length - 1);\r\n var optVal = options[opt];\r\n if (!optVal) {\r\n if (opt == 'modelId') {\r\n optVal = this.getModel().getId();\r\n }\r\n else if (opt == 'queryId') {\r\n optVal = this.getQuery().getId();\r\n }\r\n else {\r\n throw \"Parameter [\" + opt + \"] is not defined\";\r\n }\r\n }\r\n result = result.replace(match, optVal);\r\n }\r\n }\r\n return result;\r\n };\r\n EqContext.prototype.setEndpoint = function (key, value) {\r\n this.endpoints.set(key, value);\r\n };\r\n EqContext.prototype.setEnpointIfNotExist = function (key, value) {\r\n if (!this.endpoints.has(key))\r\n this.endpoints.set(key, value);\r\n };\r\n EqContext.prototype.setDefaultEndpoints = function (endpointBase) {\r\n this.setEnpointIfNotExist('GetModel', __WEBPACK_IMPORTED_MODULE_5__utils_utils__[\"a\" /* equtils */].combinePath(endpointBase, 'models/{modelId}'));\r\n this.setEnpointIfNotExist('GetQuery', __WEBPACK_IMPORTED_MODULE_5__utils_utils__[\"a\" /* equtils */].combinePath(endpointBase, 'models/{modelId}/queries/{queryId}'));\r\n this.setEnpointIfNotExist('SaveQuery', __WEBPACK_IMPORTED_MODULE_5__utils_utils__[\"a\" /* equtils */].combinePath(endpointBase, 'models/{modelId}/queries/{queryId}'));\r\n this.setEnpointIfNotExist('SyncQuery', __WEBPACK_IMPORTED_MODULE_5__utils_utils__[\"a\" /* equtils */].combinePath(endpointBase, 'models/{modelId}/queries/{queryId}/sync'));\r\n this.setEnpointIfNotExist('NewQuery', __WEBPACK_IMPORTED_MODULE_5__utils_utils__[\"a\" /* equtils */].combinePath(endpointBase, 'models/{modelId}/queries'));\r\n this.setEnpointIfNotExist('RemoveQuery', __WEBPACK_IMPORTED_MODULE_5__utils_utils__[\"a\" /* equtils */].combinePath(endpointBase, 'models/{modelId}/queries/{queryId}'));\r\n this.setEnpointIfNotExist('GetQueryList', __WEBPACK_IMPORTED_MODULE_5__utils_utils__[\"a\" /* equtils */].combinePath(endpointBase, 'models/{modelId}/queries'));\r\n this.setEnpointIfNotExist('FetchData', __WEBPACK_IMPORTED_MODULE_5__utils_utils__[\"a\" /* equtils */].combinePath(endpointBase, 'models/{modelId}/fetch'));\r\n this.setEnpointIfNotExist('GetValueList', __WEBPACK_IMPORTED_MODULE_5__utils_utils__[\"a\" /* equtils */].combinePath(endpointBase, 'models/{modelId}/valuelists/{listId}'));\r\n this.setEnpointIfNotExist('ExportResult', __WEBPACK_IMPORTED_MODULE_5__utils_utils__[\"a\" /* equtils */].combinePath(endpointBase, 'models/{modelId}/export/{format}'));\r\n this.setEnpointIfNotExist('GetQueryFile', __WEBPACK_IMPORTED_MODULE_5__utils_utils__[\"a\" /* equtils */].combinePath(endpointBase, 'models/{modelId}/getqueryfile/{format}'));\r\n this.setEnpointIfNotExist('UploadQueryFile', __WEBPACK_IMPORTED_MODULE_5__utils_utils__[\"a\" /* equtils */].combinePath(endpointBase, 'models/{modelId}/uploadqueryfile'));\r\n };\r\n /**\r\n * Initializes the context\r\n * @param options\r\n */\r\n EqContext.prototype.init = function (options) {\r\n var _this = this;\r\n options = options || {};\r\n if (typeof (options.chunkSize) !== 'undefined') {\r\n this.resultTable.chunkSize = options.chunkSize;\r\n }\r\n var query = this.getQuery();\r\n if (options.defaultQueryId) {\r\n query.setId(options.defaultQueryId);\r\n }\r\n if (options.listCache) {\r\n this.setExternalListCache(options.listCache);\r\n }\r\n if (options.locale) {\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].setCurrentLocale(options.locale);\r\n }\r\n if (options.localeSettings) {\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].updateLocaleSettings(options.localeSettings);\r\n }\r\n if (options.endpoint) {\r\n this.baseEndpoint = options.endpoint;\r\n console.warn('`endpoint` option is deprecated and will be ignored if you get license key from server. Use context.useEndpoint(endpoint) instead');\r\n }\r\n this.setDefaultEndpoints(this.baseEndpoint);\r\n this.loadQueryOnStart = false;\r\n if (options.loadQueryOnStart) {\r\n this.loadQueryOnStart = options.loadQueryOnStart;\r\n }\r\n this.loadModelOnStart = true;\r\n if (typeof options.loadModelOnStart !== 'undefined') {\r\n this.loadModelOnStart = options.loadModelOnStart;\r\n }\r\n if (options.handlers) {\r\n if (options.handlers.onInit) {\r\n this.addEventListener('ready', options.handlers.onInit);\r\n }\r\n if (options.handlers.afterLoadModel) {\r\n this.addEventListener('loadModel', options.handlers.afterLoadModel);\r\n }\r\n if (options.handlers.afterLoadQuery) {\r\n this.addEventListener('loadQuery', options.handlers.afterLoadQuery);\r\n }\r\n if (options.handlers.afterSyncQuery) {\r\n this.addEventListener('syncQuery', options.handlers.afterSyncQuery);\r\n }\r\n if (options.handlers.afterFetchData) {\r\n this.addEventListener('fetchData', options.handlers.afterFetchData);\r\n }\r\n if (options.handlers.afterExportResult) {\r\n this.addEventListener('exportResult', options.handlers.afterExportResult);\r\n }\r\n if (options.handlers.onProcessStart) {\r\n this.addEventListener('processStart', options.handlers.onProcessStart);\r\n }\r\n if (options.handlers.onProcessEnd) {\r\n this.addEventListener('processEnd', options.handlers.onProcessEnd);\r\n }\r\n if (options.handlers.onError) {\r\n this.addEventListener('error', options.handlers.onError);\r\n }\r\n else {\r\n this.addEventListener('error', function (context, msg) {\r\n msg.result = __WEBPACK_IMPORTED_MODULE_3__action__[\"a\" /* EqActionResult */].Error;\r\n var msgTitle = msg && msg ? msg.action + ' error' : 'Error';\r\n var msgText = msg && msg.text ? msg.text : '';\r\n if (msg.sourceError.message !== msgText) {\r\n msgText += '\\n' + msg.sourceError;\r\n }\r\n console.error(msgTitle + ': ' + msgText);\r\n });\r\n }\r\n if (options.handlers.onListRequest) {\r\n this.clientListRequestHandler = options.handlers.onListRequest;\r\n }\r\n if (options.handlers.beforeLoadModel) {\r\n this.beforeLoadModel = options.handlers.beforeLoadModel;\r\n }\r\n if (options.handlers.beforeLoadQuery) {\r\n this.beforeLoadQuery = options.handlers.beforeLoadQuery;\r\n }\r\n if (options.handlers.beforeSyncQuery) {\r\n this.beforeSyncQuery = options.handlers.beforeSyncQuery;\r\n }\r\n if (options.handlers.beforeFetchData) {\r\n this.beforeFetchData = options.handlers.beforeFetchData;\r\n }\r\n if (options.handlers.beforeExportResult) {\r\n this.beforeExportResult = options.handlers.beforeExportResult;\r\n }\r\n }\r\n this.calcTotals = options.calcTotals || false;\r\n this.initialQuery = options.initialQuery;\r\n this.defaultQueryId = options.defaultQueryId || '';\r\n this.defaultModelId = options.defaultModelId || '__default';\r\n var modelLoader = this.eqServices.getModelLoader();\r\n modelLoader.init(options);\r\n var queryStorage = this.eqServices.getQueryStorage();\r\n queryStorage.init(options);\r\n if (options.useDefaultExporters !== false) {\r\n this.addDefaultExporters();\r\n }\r\n if (options.serverExporters) {\r\n for (var _i = 0, _a = options.serverExporters; _i < _a.length; _i++) {\r\n var format = _a[_i];\r\n var responseType = format == 'csv' || format == 'excel-html' ? '' : 'arraybuffer';\r\n this.registerServerExporter(format, responseType);\r\n }\r\n }\r\n //init widgets\r\n this.widgets.forEach(function (widget) {\r\n var widgetOptions = {};\r\n if (options.widgets && options.widgets[widget.getWidgetType()]) {\r\n widgetOptions = options.widgets[widget.getWidgetType()];\r\n }\r\n widget.init(_this, widgetOptions);\r\n });\r\n if (this.loadModelOnStart) {\r\n this.loadDefaultModel();\r\n }\r\n else {\r\n this.fireEvent('ready');\r\n }\r\n };\r\n /**\r\n * Sets endpoint for all EasyQuery actions. Should be called before `init` and\r\n * `useEnterprise` methods\r\n * @param endpoint\r\n * @example\r\n * ```\r\n * view.getContext()\r\n * .useEndpoint('/api/easyquery')\r\n * .useEnterprise(function () {\r\n * view.init();\r\n * });\r\n * ```\r\n */\r\n EqContext.prototype.useEndpoint = function (endpoint) {\r\n this.baseEndpoint = endpoint;\r\n return this;\r\n };\r\n /**\r\n * Add a new widget to the context.\r\n * After that the widget will start to receive messages from other context components.\r\n * @param widget\r\n */\r\n EqContext.prototype.addWidget = function (widget) {\r\n this.widgets.push(widget);\r\n };\r\n /**\r\n * Returns all widgets with current type.\r\n * @param widgetType The widget type\r\n */\r\n EqContext.prototype.getAllWidgetsByType = function (widgetType) {\r\n return this.widgets\r\n .filter(function (widget) { return widget.getWidgetType() === widgetType; });\r\n };\r\n /**\r\n * Returns first registerd widget with current type\r\n * @param widgetType The widget type\r\n */\r\n EqContext.prototype.getWidgetByType = function (widgetType) {\r\n var widgets = this.getAllWidgetsByType(widgetType);\r\n return widgets.length > 0 ? widgets[0] : null;\r\n };\r\n /**\r\n * This method is called automatically when some change was made either in context's data model or query\r\n * @param groups\r\n */\r\n EqContext.prototype.refreshWidgets = function (groups) {\r\n if (groups === void 0) { groups = __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].All; }\r\n this.widgets.forEach(function (widget) {\r\n if (widget.belongsToGroup(groups)) {\r\n widget.refresh();\r\n }\r\n });\r\n };\r\n /**\r\n * Register a new handler for 'query changed' event\r\n * @param callback\r\n */\r\n EqContext.prototype.addQueryChangedCallback = function (callback) {\r\n this.getQuery().addChangedCallback(callback);\r\n };\r\n /**\r\n * Removes the function from the list of registerd handlers for 'query changed' event\r\n * @param callback\r\n */\r\n EqContext.prototype.removeQueryChangedCallback = function (callback) {\r\n this.getQuery().removeChangedCallback(callback);\r\n };\r\n /**\r\n * Creates a new query object using the current instance of EqServices\r\n */\r\n EqContext.prototype.createQuery = function () {\r\n return this.eqServices.createQuery();\r\n };\r\n /**\r\n * Gets the current query\r\n */\r\n EqContext.prototype.getQuery = function () {\r\n if (!this.query) {\r\n this.query = this.createQuery();\r\n }\r\n return this.query;\r\n };\r\n /**\r\n * Gets the current data model\r\n */\r\n EqContext.prototype.getModel = function () {\r\n if (!this.dataModel) {\r\n this.dataModel = this.eqServices.createDataModel();\r\n }\r\n return this.dataModel;\r\n };\r\n /**\r\n * Sets the content of the current data model\r\n */\r\n EqContext.prototype.loadModelFromData = function (modelPlainData) {\r\n this.getQuery().loadModelData(modelPlainData);\r\n this.dataModel = this.getQuery().getModel();\r\n };\r\n /**\r\n * Sets the ID of the default model\r\n * @param modelId\r\n */\r\n EqContext.prototype.setDefaultModelId = function (modelId) {\r\n this.defaultModelId = modelId;\r\n };\r\n /**\r\n * Notifies context components about starting of some long process (e.g. model loading)\r\n * This method raises onProcessStart event in the context and all its widgets\r\n * @param message\r\n * @param groups\r\n */\r\n EqContext.prototype.startProcess = function (message, groups) {\r\n this.eventEmitter.fire('processStart', message);\r\n this.widgets.forEach(function (widget) {\r\n if (widget.belongsToGroup(groups)) {\r\n widget.onProcessStart();\r\n }\r\n });\r\n };\r\n /**\r\n * Notifies all context components about the finishing of some long process\r\n * @param action\r\n * @param groups\r\n */\r\n EqContext.prototype.endProcess = function (action, groups) {\r\n this.eventEmitter.fire('processEnd', action);\r\n if (action.result === __WEBPACK_IMPORTED_MODULE_3__action__[\"a\" /* EqActionResult */].Error) {\r\n this.throwError(action);\r\n }\r\n this.widgets.forEach(function (widget) {\r\n if (widget.belongsToGroup(groups)) {\r\n widget.onProcessEnd();\r\n }\r\n });\r\n };\r\n /**\r\n * Throws the error passed in the function parameter.\r\n * If onError event handler is defined - we call that method.\r\n * Otherwise - just place the error message to the browser console.\r\n * @param error\r\n */\r\n EqContext.prototype.throwError = function (action) {\r\n action.result = __WEBPACK_IMPORTED_MODULE_3__action__[\"a\" /* EqActionResult */].Error;\r\n this.eventEmitter.fire('error', action);\r\n };\r\n /**\r\n * If `defaultModelId` property is define - this method calls `loadModel` function in the broker\r\n * to load the model with such ID.\r\n *\r\n */\r\n EqContext.prototype.loadDefaultModel = function () {\r\n var _this = this;\r\n this.loadModel({\r\n modelId: this.defaultModelId,\r\n silent: true,\r\n success: function () {\r\n _this.refreshWidgets(__WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Model);\r\n var query = _this.getQuery();\r\n _this.fireEvent('initialModelLoad');\r\n if (_this.initialQuery) {\r\n query.loadFromData(_this.initialQuery, false);\r\n }\r\n if (_this.loadQueryOnStart) {\r\n _this.loadQuery({\r\n queryId: _this.defaultQueryId,\r\n modelId: _this.defaultModelId,\r\n success: function () {\r\n _this.refreshWidgets(__WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Query);\r\n //if we load query on start - then we should call 'ready' event only after its successful loading\r\n _this.fireEvent('ready');\r\n }\r\n });\r\n }\r\n else {\r\n _this.refreshWidgets(__WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Query);\r\n _this.fireEvent('ready');\r\n }\r\n }\r\n });\r\n };\r\n /**\r\n * Clears the content of the current query\r\n */\r\n EqContext.prototype.clearQuery = function () {\r\n var query = this.getQuery();\r\n query.clear();\r\n query.fireChangedEvent({\r\n part: __WEBPACK_IMPORTED_MODULE_2__query_query_events__[\"b\" /* QueryChangePart */].All\r\n });\r\n };\r\n /**\r\n * Clears all query results (the data set and the statement, if any)\r\n */\r\n EqContext.prototype.clearResult = function () {\r\n this.resultTable.clear(); // do not set resultTable to null. Just clear\r\n this.resultStatement = null;\r\n this.resultContent = null;\r\n };\r\n /**\r\n * Sets the external 'list cache' provider - an object which implements `ExternalListCache` inteface\r\n * @param cache\r\n */\r\n EqContext.prototype.setExternalListCache = function (cache) {\r\n this.externalListCache = cache;\r\n };\r\n EqContext.prototype.getListFromCache = function (params) {\r\n var key = this.getListCacheKey(params);\r\n if (this.externalListCache) {\r\n return this.externalListCache.get(key);\r\n }\r\n else {\r\n return this.internalListCache[key];\r\n }\r\n };\r\n EqContext.prototype.getListCacheKey = function (params) {\r\n var key = params.listName == 'SQL' ? 'SQL_' + params.editorId : params.listName;\r\n if (params.queryParams) {\r\n key += '_' + Object.keys(params.queryParams).filter(function (k) { return k != 'listName'; })\r\n .map(function (k) { return params.queryParams[k]; })\r\n .join('_');\r\n }\r\n return key;\r\n };\r\n EqContext.prototype.addListToCache = function (params, list) {\r\n var key = this.getListCacheKey(params);\r\n if (this.externalListCache) {\r\n this.externalListCache.set(key, list);\r\n }\r\n else {\r\n this.internalListCache[key] = list;\r\n }\r\n };\r\n /**\r\n * Clears the current list cache.\r\n */\r\n EqContext.prototype.resetListCache = function () {\r\n if (this.externalListCache) {\r\n this.externalListCache.clear();\r\n }\r\n else {\r\n this.internalListCache = {};\r\n }\r\n };\r\n /**\r\n * Gets the handler for 'GetList' requests\r\n */\r\n EqContext.prototype.getListRequestHandler = function () {\r\n return this._listRequestHandler;\r\n };\r\n /**\r\n * Adds the translations of the EasyQuery messages for some locale\r\n * @param locale - the ISO code of the locale (like `en` or `uk`)\r\n * @param localeInfo - Locale settings and translations of EasyQuery texts and messages.\r\n * We expected an object with the struture of LocaleInfo interface here.\r\n */\r\n EqContext.prototype.addLocale = function (locale, localeInfo) {\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].addLocale(locale, localeInfo);\r\n };\r\n EqContext.prototype.addEventListener = function (eventType, handler) {\r\n var _this = this;\r\n return this.eventEmitter.subscribe(eventType, function (event) { return handler(_this, event.data); });\r\n };\r\n /**\r\n * Remove event handler for event type .\r\n * @param eventType The event type.\r\n * @param handlerId The handler id.\r\n */\r\n EqContext.prototype.removeEventListener = function (eventType, handlerId) {\r\n this.eventEmitter.unsubscribe(eventType, handlerId);\r\n };\r\n EqContext.prototype.fireEvent = function (eventType, data) {\r\n this.eventEmitter.fire(eventType, data);\r\n };\r\n EqContext.prototype.getBaseEndpoint = function () {\r\n return this.baseEndpoint;\r\n };\r\n /**\r\n * Sends a `loadValueList` requesthe server and processes the response.\r\n * @param options A map of options to pass to `loadValueList` function.\r\n */\r\n EqContext.prototype.loadValueList = function (options) {\r\n var _this = this;\r\n options = options || {};\r\n this.startProcess({\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].GetValueList,\r\n text: 'Loading values'\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Result);\r\n var valueListResolver = this.eqServices.getValueListResolver();\r\n valueListResolver.loadValueList(options)\r\n .then(function (values) {\r\n _this.endProcess({\r\n result: __WEBPACK_IMPORTED_MODULE_3__action__[\"a\" /* EqActionResult */].Success,\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].GetValueList,\r\n text: 'Values loaded'\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Result);\r\n if (options.success) {\r\n options.success(values);\r\n }\r\n })\r\n .catch(function (error) {\r\n var editorId = options && options.params ? options.params.editorId : 'undefined';\r\n var errorMessage = \"Can't load the value list for editor \" + editorId + \".\\n \" + error.message;\r\n _this.endProcess({\r\n result: __WEBPACK_IMPORTED_MODULE_3__action__[\"a\" /* EqActionResult */].Error,\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].GetValueList,\r\n text: errorMessage,\r\n sourceError: error\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Result);\r\n if (options.error) {\r\n options.error(errorMessage, 'GetValueList');\r\n }\r\n });\r\n };\r\n /**\r\n * Starts the process of the model loading.\r\n * This method can initiate a request to EasyQueryServer backend or get the model from OData or GraphQL endpoint\r\n * The content of the `options` parameter depends on concrete loader implementation.\r\n * @param options A map of options to pass to `loadModel` function (can be ommited)\r\n * @example\r\n * context.loadModel()\r\n * .then(model => {\r\n * alert(\"Model loaded!\");\r\n * });\r\n */\r\n EqContext.prototype.loadModel = function (options) {\r\n var _this = this;\r\n if (this.beforeLoadModel) {\r\n this.beforeLoadModel(this, options);\r\n }\r\n var modelId = options.modelId || '__default';\r\n var silent = options.silent || false;\r\n this.startProcess({\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].LoadModel,\r\n text: 'Loading model: ' + modelId\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Model);\r\n var modelLoader = this.eqServices.getModelLoader();\r\n return modelLoader.startModelLoading(options)\r\n .then(function (value) {\r\n if (value) {\r\n _this.loadModelFromData(value);\r\n if (_this.dataModel.isEmpty()) {\r\n console.warn(\"Empty model has been loaded. Model ID: \" + _this.dataModel.getId());\r\n }\r\n }\r\n else {\r\n console.warn('Model has not been changed.');\r\n }\r\n _this.endProcess({\r\n result: __WEBPACK_IMPORTED_MODULE_3__action__[\"a\" /* EqActionResult */].Success,\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].LoadModel,\r\n text: 'Model loaded: ' + modelId\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Model);\r\n if (!silent) {\r\n _this.clearQuery();\r\n _this.clearResult();\r\n _this.refreshWidgets();\r\n }\r\n if (options.success) {\r\n options.success(_this.getModel());\r\n }\r\n _this.fireEvent('loadModel');\r\n return _this.getModel();\r\n })\r\n .catch(function (error) {\r\n var errorMessage = \"Can't load model \" + modelId + \".\\n \" + error.message;\r\n _this.endProcess({\r\n result: __WEBPACK_IMPORTED_MODULE_3__action__[\"a\" /* EqActionResult */].Error,\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].LoadModel,\r\n text: errorMessage,\r\n sourceError: error\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Model);\r\n if (options.error) {\r\n options.error(errorMessage, \"LoadModel\");\r\n }\r\n return _this.getModel();\r\n });\r\n };\r\n EqContext.prototype.callWhenModelLoaded = function (callFunc) {\r\n var modelLoader = this.eqServices.getModelLoader();\r\n modelLoader.getModelPromise().then(function () {\r\n callFunc();\r\n });\r\n };\r\n /**\r\n * Loads the query\r\n * @param options\r\n * The content of the `options` parameter depends on `QueryStorage` implementation.\r\n * Usually it contains `success`, `error` callbacks and `queryId` property of the query to load.\r\n * @example\r\n * context.loadQuery({\r\n * queryId: \"query-id\"\r\n * });\r\n */\r\n EqContext.prototype.loadQuery = function (options) {\r\n var _this = this;\r\n options = options || {};\r\n var modelLoader = this.eqServices.getModelLoader();\r\n this.clearResult();\r\n modelLoader.getModelPromise()\r\n .then(function () {\r\n options = options || {};\r\n var queryId = options.queryId;\r\n var silent = options.silent || false;\r\n if (_this.beforeLoadQuery) {\r\n _this.beforeLoadQuery(_this, options);\r\n }\r\n _this.startProcess({\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].LoadQuery,\r\n text: \"Query loading: \" + queryId\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Query);\r\n var queryStorage = _this.eqServices.getQueryStorage();\r\n queryStorage.loadQuery(options)\r\n .then(function (data) {\r\n _this.endProcess({\r\n result: __WEBPACK_IMPORTED_MODULE_3__action__[\"a\" /* EqActionResult */].Success,\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].LoadQuery,\r\n text: 'Query loaded: ' + queryId\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Query);\r\n if (data)\r\n _this.query.loadFromData(data);\r\n _this.query.resetModified();\r\n if (!silent) {\r\n _this.query.fireChangedEvent({\r\n part: __WEBPACK_IMPORTED_MODULE_2__query_query_events__[\"b\" /* QueryChangePart */].Properties,\r\n wasModified: _this.query.isModified()\r\n });\r\n _this.refreshWidgets();\r\n }\r\n _this.fireEvent('loadQuery');\r\n if (options.success) {\r\n options.success(_this.query);\r\n }\r\n })\r\n .catch(function (error) {\r\n var query = _this.getQuery();\r\n error.message = \"Can't load query [\" + query.getId() + \"]\\n\" + (error.message || \"\");\r\n if (options.error) {\r\n options.error(error.message, __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].LoadQuery);\r\n }\r\n _this.endProcess({\r\n result: __WEBPACK_IMPORTED_MODULE_3__action__[\"a\" /* EqActionResult */].Error,\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].LoadQuery,\r\n text: error.message,\r\n sourceError: error\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Query);\r\n });\r\n })\r\n .catch(function (error) {\r\n console.error(error);\r\n });\r\n };\r\n /**\r\n * Loads the list of queries available for the current user.\r\n * @param options\r\n * The content of the `options` parameter depends on `QueryStorage` implementation.\r\n * Usually it contains `success`, `error` callbacks\r\n */\r\n EqContext.prototype.loadQueryList = function (options) {\r\n var _this = this;\r\n var modelLoader = this.eqServices.getModelLoader();\r\n modelLoader.getModelPromise()\r\n .then(function () {\r\n _this.startQueryListLoading(options);\r\n })\r\n .catch(function (error) {\r\n var errorMessage = \"Can't load the list of available queries.\\n \" + error.message;\r\n _this.throwError({\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].LoadQueryList,\r\n text: errorMessage,\r\n sourceError: error\r\n });\r\n });\r\n };\r\n EqContext.prototype.startQueryListLoading = function (options) {\r\n var _this = this;\r\n options = options || {};\r\n var queryStorage = this.eqServices.getQueryStorage();\r\n var queryListLoadingPromise = queryStorage.getQueryList(options);\r\n queryListLoadingPromise\r\n .then(function (queries) {\r\n if (options.success) {\r\n options.success(queries);\r\n }\r\n })\r\n .catch(function (error) {\r\n var errorMessage = \"Can't load the list of available queries.\\n \" + error.message;\r\n if (options.error) {\r\n options.error(errorMessage, 'LoadQueryList');\r\n }\r\n else {\r\n _this.throwError({\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].LoadQueryList,\r\n text: errorMessage,\r\n sourceError: error\r\n });\r\n }\r\n });\r\n };\r\n /**\r\n * Creates a new query and returns its content back to the client-side.\r\n * @param options\r\n * The content of the `options` parameter depends on `QueryStorage` implementation.\r\n * Usually it contains `success`, `error` callbacks and `silent` option\r\n * @example\r\n * context.newQuery({\r\n * silent: true\r\n * });\r\n */\r\n EqContext.prototype.newQuery = function (options) {\r\n var _this = this;\r\n options = options || {};\r\n var clearQuery = typeof options.clearQuery !== 'undefined' ? options.clearQuery : true;\r\n this.query.reset(clearQuery);\r\n if (options.queryId) {\r\n this.query.setId(options.queryId);\r\n }\r\n if (options.name) {\r\n this.query.setName(options.name);\r\n }\r\n var silent = options.silent || false;\r\n var useStorage = true;\r\n if (typeof options.useStorage !== 'undefined') {\r\n useStorage = options.useStorage;\r\n }\r\n var onNewQuery = function () {\r\n var query = _this.getQuery();\r\n query.isNewbie = true;\r\n if (!silent) {\r\n query.fireChangedEvent({\r\n part: __WEBPACK_IMPORTED_MODULE_2__query_query_events__[\"b\" /* QueryChangePart */].All,\r\n wasModified: query.isModified()\r\n });\r\n }\r\n };\r\n if (useStorage) {\r\n this.startProcess({\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].NewQuery,\r\n text: 'New query creation...'\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Query);\r\n var queryStorage = this.eqServices.getQueryStorage();\r\n queryStorage.newQuery(options)\r\n .then(function (queryData) {\r\n if (queryData) {\r\n _this.query.loadFromData(queryData);\r\n }\r\n _this.endProcess({\r\n result: __WEBPACK_IMPORTED_MODULE_3__action__[\"a\" /* EqActionResult */].Success,\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].NewQuery,\r\n text: 'A new query has been created'\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Query);\r\n onNewQuery();\r\n if (options.success) {\r\n options.success();\r\n }\r\n })\r\n .catch(function (error) {\r\n var errorMessage = \"Can't create a new query.\\n\" + error.message;\r\n _this.endProcess({\r\n result: __WEBPACK_IMPORTED_MODULE_3__action__[\"a\" /* EqActionResult */].Error,\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].NewQuery,\r\n text: errorMessage,\r\n sourceError: error\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Query);\r\n if (options.error) {\r\n options.error(errorMessage, \"NewQuery\");\r\n }\r\n });\r\n }\r\n else {\r\n onNewQuery();\r\n }\r\n return this.query;\r\n };\r\n /**\r\n * Saves the current query to some storage on the server-side.\r\n * @param options\r\n * The content of the `options` parameter depends on `QueryStorage` implementation.\r\n * Usually it contains `success` and `error` callbacks\r\n */\r\n EqContext.prototype.saveQuery = function (options) {\r\n var _this = this;\r\n options = options || {};\r\n var query = this.getQuery();\r\n this.startProcess({\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].SaveQuery,\r\n text: 'Query saving: ' + query.getId()\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Query);\r\n var queryStorage = this.eqServices.getQueryStorage();\r\n queryStorage.saveQuery(options)\r\n .then(function (data) {\r\n _this.endProcess({\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].SaveQuery,\r\n result: __WEBPACK_IMPORTED_MODULE_3__action__[\"a\" /* EqActionResult */].Success,\r\n text: \"Query saved: \" + query.getId()\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Query);\r\n if (data) {\r\n query.loadFromData(data);\r\n }\r\n query.resetModified();\r\n query.isNewbie = false;\r\n if (options.success) {\r\n options.success();\r\n }\r\n })\r\n .catch(function (error) {\r\n var errorMessage = \"Can't save query \" + query.getId() + \".\\n \" + error.message;\r\n _this.endProcess({\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].SaveQuery,\r\n result: __WEBPACK_IMPORTED_MODULE_3__action__[\"a\" /* EqActionResult */].Error,\r\n text: errorMessage,\r\n sourceError: error\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Query);\r\n if (options.error) {\r\n options.error(errorMessage, __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].SaveQuery);\r\n }\r\n });\r\n };\r\n /**\r\n * Removes the current query from some storage on the server-side.\r\n * @param options\r\n * The content of the `options` parameter depends on `QueryStorage` implementation.\r\n * Usually it contains `success` and `error` callbacks\r\n */\r\n EqContext.prototype.removeQuery = function (options) {\r\n var _this = this;\r\n options = options || {};\r\n var query = this.getQuery();\r\n this.startProcess({\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].RemoveQuery,\r\n text: 'Query deleting: ' + query.getId()\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Query);\r\n var queryStorage = this.eqServices.getQueryStorage();\r\n queryStorage.removeQuery(options)\r\n .then(function () {\r\n query.reset();\r\n _this.endProcess({\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].RemoveQuery,\r\n result: __WEBPACK_IMPORTED_MODULE_3__action__[\"a\" /* EqActionResult */].Success,\r\n text: \"Query deleted: \" + query.getId()\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Query);\r\n if (options.success) {\r\n options.success();\r\n }\r\n })\r\n .catch(function (error) {\r\n var errorMessage = \"Can't remove query \" + query.getId() + \".\\n \" + error.message;\r\n _this.endProcess({\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].RemoveQuery,\r\n result: __WEBPACK_IMPORTED_MODULE_3__action__[\"a\" /* EqActionResult */].Error,\r\n text: errorMessage,\r\n sourceError: error\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Query);\r\n if (options.error) {\r\n options.error(errorMessage, 'RemoveQuery');\r\n }\r\n });\r\n };\r\n /**\r\n * Syncronizes the current query.\r\n * @param options\r\n * The content of the `options` parameter depends on `QuerySyncronizer` implementation.\r\n * Usually it contains `success` and `error` callbacks\r\n */\r\n EqContext.prototype.syncQuery = function (options) {\r\n var _this = this;\r\n options = options || {};\r\n var query = this.getQuery();\r\n if (this.beforeSyncQuery) {\r\n this.beforeSyncQuery(this, options);\r\n }\r\n this.startProcess({\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].SyncQuery,\r\n text: 'Query syncing: ' + query.getId()\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Query);\r\n var querySyncrhonizer = this.eqServices.getQuerySynchronizer();\r\n querySyncrhonizer.syncQuery(options)\r\n .then(function (result) {\r\n _this.endProcess({\r\n result: __WEBPACK_IMPORTED_MODULE_3__action__[\"a\" /* EqActionResult */].Success,\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].SyncQuery,\r\n text: 'Query synced: ' + query.getId()\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Query);\r\n _this.resultStatement = result && result.statement\r\n ? result.statement\r\n : '';\r\n _this.refreshWidgets(__WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Statement);\r\n if (result) {\r\n if (result.querySaved) {\r\n var q = result.query;\r\n if (q) {\r\n query.setId(q.id);\r\n query.setName(q.name);\r\n query.setDescription(q.desc);\r\n query.extraData = q.extraData;\r\n }\r\n query.resetModified();\r\n _this.refreshWidgets(__WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].QueryStatus);\r\n }\r\n _this.fireEvent('syncQuery');\r\n if (options.success) {\r\n options.success(result);\r\n }\r\n }\r\n })\r\n .catch(function (error) {\r\n var errorMessage = \"Can't synchronize query \" + query.getId() + \".\\n \" + error.message;\r\n _this.endProcess({\r\n result: __WEBPACK_IMPORTED_MODULE_3__action__[\"a\" /* EqActionResult */].Error,\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].SyncQuery,\r\n text: errorMessage,\r\n sourceError: error\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Query);\r\n if (options.error) {\r\n options.error(errorMessage, 'SyncQuery');\r\n }\r\n });\r\n };\r\n EqContext.prototype.processQueryForTotals = function () {\r\n var cols = this.query.getUsedInTotalsColumns();\r\n cols.forEach(function (col) {\r\n if (col.sorting == __WEBPACK_IMPORTED_MODULE_10__query_query_column__[\"b\" /* SortDirection */].None) {\r\n col.sorting = __WEBPACK_IMPORTED_MODULE_10__query_query_column__[\"b\" /* SortDirection */].Ascending;\r\n }\r\n });\r\n cols = this.query.getColumns();\r\n __WEBPACK_IMPORTED_MODULE_10__query_query_column__[\"b\" /* SortDirection */];\r\n cols.forEach(function (col, index) {\r\n col.sortIndex = index;\r\n });\r\n this.query.fireChangedEvent({\r\n part: __WEBPACK_IMPORTED_MODULE_2__query_query_events__[\"b\" /* QueryChangePart */].Columns,\r\n wasModified: false\r\n });\r\n };\r\n /**\r\n * Fetches the data (usuall by executing current query) and processes the result.\r\n * @param options\r\n * The `options` parameter in addition to the options defined in ExecuteQueryOptions structure may also contain `success` and `error` callbacks.\r\n * @example\r\n * context.fetchData({ success: function(result) {\r\n * //do whatever you want with the result\r\n * }})\r\n *\r\n */\r\n EqContext.prototype.fetchData = function (options) {\r\n var _this = this;\r\n options = options || {};\r\n options.chunk = options.chunk ||\r\n {\r\n offset: 0,\r\n limit: this.resultTable.chunkSize,\r\n needTotal: true\r\n };\r\n if (!this.query.tryValidate({\r\n checkExpressions: true\r\n })) {\r\n return;\r\n }\r\n if (this.calcTotals && this.query.hasEnabledAggrColumns()) {\r\n this.processQueryForTotals();\r\n }\r\n this.fetchDataChunk(__assign({}, options, { success: function (result) {\r\n if (result.statement) {\r\n _this.resultStatement = result.statement;\r\n _this.refreshWidgets(__WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Statement);\r\n }\r\n _this.resultContent = result;\r\n if (result.resultSet) {\r\n _this.resultTable.clear();\r\n var resultSet = result.resultSet;\r\n for (var _i = 0, _a = resultSet.cols; _i < _a.length; _i++) {\r\n var col = _a[_i];\r\n _this.resultTable.columns.add(col);\r\n }\r\n _this.resultTable.setTotal(result.meta.totalRecords);\r\n for (var _b = 0, _c = resultSet.rows; _b < _c.length; _b++) {\r\n var row = _c[_b];\r\n _this.resultTable.addRow(row);\r\n }\r\n }\r\n if (options.success) {\r\n options.success(result);\r\n }\r\n } }));\r\n };\r\n EqContext.prototype.getQueryFile = function (options) {\r\n var _this = this;\r\n var query = this.getQuery();\r\n this.startProcess({\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].GetQueryFile,\r\n text: 'Getting query file: ' + query.getId()\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Query);\r\n var queryFileLoader = this.getServices().getQueryFileLoader();\r\n queryFileLoader.getQueryFile(options)\r\n .then(function () {\r\n _this.endProcess({\r\n result: __WEBPACK_IMPORTED_MODULE_3__action__[\"a\" /* EqActionResult */].Success,\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].GetQueryFile,\r\n text: 'Getting query file: ' + query.getId()\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Result);\r\n if (options.success) {\r\n options.success();\r\n }\r\n })\r\n .catch(function (error) {\r\n var errorMessage = \"Can't get file for query \" + query.getId() + \".\\n \" + error.message;\r\n _this.endProcess({\r\n result: __WEBPACK_IMPORTED_MODULE_3__action__[\"a\" /* EqActionResult */].Error,\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].GetQueryFile,\r\n text: errorMessage,\r\n sourceError: error\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Query);\r\n if (options.error) {\r\n options.error(errorMessage, 'GetQueryFile');\r\n }\r\n });\r\n };\r\n EqContext.prototype.uploadQueryFile = function (options) {\r\n var _this = this;\r\n var query = this.getQuery();\r\n this.startProcess({\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].UploadQueryFile,\r\n text: 'Uploading query file: ' + query.getId()\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Query);\r\n var queryFileLoader = this.getServices().getQueryFileLoader();\r\n queryFileLoader.uploadQueryFile(options)\r\n .then(function (data) {\r\n query.loadFromData(data);\r\n _this.refreshWidgets();\r\n _this.endProcess({\r\n result: __WEBPACK_IMPORTED_MODULE_3__action__[\"a\" /* EqActionResult */].Success,\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].UploadQueryFile,\r\n text: 'Uploading query file: ' + query.getId()\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Result);\r\n _this.fireEvent('loadQuery');\r\n if (options.success) {\r\n options.success();\r\n }\r\n })\r\n .catch(function (error) {\r\n var errorMessage = \"Can't upload a file for query \" + query.getId() + \".\\n \" + error.message;\r\n _this.endProcess({\r\n result: __WEBPACK_IMPORTED_MODULE_3__action__[\"a\" /* EqActionResult */].Error,\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].UploadQueryFile,\r\n text: errorMessage,\r\n sourceError: error\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Query);\r\n if (options.error) {\r\n options.error(errorMessage, 'UploadQueryFile');\r\n }\r\n });\r\n };\r\n EqContext.prototype.fetchDataChunk = function (options) {\r\n var _this = this;\r\n if (this.beforeFetchData) {\r\n this.beforeFetchData(this, options);\r\n }\r\n var queryId = this.getQuery().getId();\r\n this.startProcess({\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].FetchData,\r\n text: 'Fetching data for query: ' + queryId\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Result);\r\n var queryExecutor = this.eqServices.getDataFetcher();\r\n queryExecutor.fetchData(options)\r\n .then(function (result) {\r\n if (result.statement) {\r\n _this.resultStatement = result.statement;\r\n }\r\n _this.resultContent = result;\r\n if (_this.calcTotals && _this.query.hasEnabledAggrColumns()) {\r\n var calculator = _this.getServices().getTotalCalculator();\r\n calculator.calculate({\r\n maxLevel: _this.query.getColumns()\r\n .filter(function (col) { return col.expr.tag == __WEBPACK_IMPORTED_MODULE_9__types_expr_tag__[\"a\" /* ExprTag */].EntityAttribute\r\n && col.enabled; }).length\r\n });\r\n }\r\n _this.endProcess({\r\n result: __WEBPACK_IMPORTED_MODULE_3__action__[\"a\" /* EqActionResult */].Success,\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].FetchData,\r\n text: 'Data fetching finished for query: ' + queryId\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Result);\r\n _this.fireEvent('fetchData');\r\n if (options.success) {\r\n options.success(result);\r\n }\r\n })\r\n .catch(function (error) {\r\n var errorMessage = \"Data fetching error for query \" + queryId + \". \\n\" + error.message;\r\n _this.endProcess({\r\n result: __WEBPACK_IMPORTED_MODULE_3__action__[\"a\" /* EqActionResult */].Error,\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].FetchData,\r\n text: errorMessage,\r\n sourceError: error\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Result);\r\n if (options.error) {\r\n options.error(errorMessage, __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].FetchData);\r\n }\r\n });\r\n };\r\n /**\r\n * Fetches the data for a drill-down query (if defined) and processes the result.\r\n * @param options\r\n */\r\n EqContext.prototype.fetchDrillDownData = function (options) {\r\n var _this = this;\r\n options = options || {};\r\n options.chunk = options.chunk ||\r\n {\r\n offset: 0,\r\n limit: this.resultTable.chunkSize,\r\n needTotal: true\r\n };\r\n var query = options.query;\r\n var queryId = query.getId();\r\n this.startProcess({\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].FetchData,\r\n text: 'DrillDown executing: ' + queryId\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Result);\r\n var queryExecutor = this.eqServices.getDataFetcher();\r\n queryExecutor.fetchData(options)\r\n .then(function (result) {\r\n _this.endProcess({\r\n result: __WEBPACK_IMPORTED_MODULE_3__action__[\"a\" /* EqActionResult */].Success,\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].FetchData,\r\n text: 'DrillDown execution error: ' + queryId\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Result);\r\n if (options.success) {\r\n options.success(result);\r\n }\r\n })\r\n .catch(function (error) {\r\n var errorMessage = \"Drill-down data fetching error for query \" + queryId + \". \\n\" + error.message;\r\n _this.endProcess({\r\n result: __WEBPACK_IMPORTED_MODULE_3__action__[\"a\" /* EqActionResult */].Error,\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].FetchData,\r\n text: errorMessage,\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Result);\r\n if (options.error) {\r\n options.error(errorMessage, 'DrillDown');\r\n }\r\n else {\r\n _this.throwError({\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].FetchData,\r\n text: errorMessage\r\n });\r\n }\r\n });\r\n };\r\n /**\r\n * Fetches the data for defined by this context and exports them to the specified format.\r\n * @param options\r\n * The content of the `options` parameter depends on `EqExporter` implementation.\r\n * Usually it contains `format` property which defines the format of the exported data (e.g. `csv`),\r\n * and `success` and `error` callbacks\r\n * @example\r\n * context.exportResult({\r\n * format: csv\r\n * });\r\n *\r\n */\r\n EqContext.prototype.exportResult = function (options) {\r\n var _this = this;\r\n options = options || {};\r\n if (this.beforeExportResult) {\r\n this.beforeExportResult(this, options);\r\n }\r\n var format = options.format;\r\n if (format) {\r\n var exporter = this.getExporter(format);\r\n if (exporter) {\r\n var queryId_1 = this.getQuery().getId();\r\n this.startProcess({\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].ExportResult,\r\n text: 'Exporting result for query: ' + queryId_1\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Result);\r\n var localeSettings = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getLocaleSettings();\r\n options.settings = localeSettings;\r\n exporter.export(options)\r\n .then(function (result) {\r\n _this.endProcess({\r\n result: __WEBPACK_IMPORTED_MODULE_3__action__[\"a\" /* EqActionResult */].Success,\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].ExportResult,\r\n text: \"The result set for query [\" + queryId_1 + \"] has been successfully exported\"\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Result);\r\n _this.fireEvent('exportResult');\r\n if (options.success) {\r\n options.success();\r\n }\r\n })\r\n .catch(function (error) {\r\n var errorMessage = \"Error on exporting data for query \" + queryId_1 + \". \\n\" + error.message;\r\n _this.endProcess({\r\n result: __WEBPACK_IMPORTED_MODULE_3__action__[\"a\" /* EqActionResult */].Error,\r\n action: __WEBPACK_IMPORTED_MODULE_6__eq_actions__[\"a\" /* EqAction */].ExportResult,\r\n text: errorMessage,\r\n sourceError: error\r\n }, __WEBPACK_IMPORTED_MODULE_4__types_widget_group__[\"a\" /* WidgetGroup */].Result);\r\n if (options.error) {\r\n options.error(errorMessage, 'ExportResult');\r\n }\r\n });\r\n }\r\n }\r\n };\r\n EqContext.prototype.getDefaultTotalsSettings = function () {\r\n var aggr = this.getQuery().getAggregatedColumns();\r\n if (aggr.length === 0)\r\n return { calcGrandTotals: false, cols: {} };\r\n var model = this.getModel();\r\n var settings = {\r\n calcGrandTotals: true,\r\n cols: {}\r\n };\r\n var cols = this.getQuery().getUsedInTotalsColumns();\r\n var prevEntity;\r\n cols.forEach(function (col, index) {\r\n settings.cols[col.id] = {};\r\n var attr = model.getAttributeById(col.expr.value);\r\n var entity = attr.entity;\r\n if (prevEntity === entity) {\r\n settings.cols[cols[index - 1].id].calcSubTotals = false;\r\n }\r\n settings.cols[col.id].calcSubTotals = true;\r\n prevEntity = entity;\r\n });\r\n return settings;\r\n };\r\n EqContext.prototype.getTotalsSettings = function () {\r\n var settings = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].assign(this.getDefaultTotalsSettings(), this.query.innerData.totalsSettings);\r\n if (this.wereTotalsColumnsChanged(settings)) {\r\n settings.cols = this.getDefaultTotalsSettings().cols;\r\n }\r\n return settings;\r\n };\r\n EqContext.prototype.setTotalsSettings = function (settings, silent) {\r\n if (silent === void 0) { silent = false; }\r\n this.query.innerData.totalsSettings = settings;\r\n if (!silent) {\r\n this.query.fireChangedEvent({\r\n part: __WEBPACK_IMPORTED_MODULE_2__query_query_events__[\"b\" /* QueryChangePart */].Properties,\r\n wasModified: true\r\n });\r\n }\r\n };\r\n EqContext.prototype.wereTotalsColumnsChanged = function (settings) {\r\n settings = settings || this.query.innerData.totalsSettings;\r\n var cols = this.query.getUsedInTotalsColumns();\r\n var sCols = settings.cols || {};\r\n if (cols.length != Object.keys(sCols).length)\r\n return true;\r\n for (var _i = 0, cols_1 = cols; _i < cols_1.length; _i++) {\r\n var col = cols_1[_i];\r\n if (typeof sCols[col.id] === 'undefined')\r\n return true;\r\n }\r\n var aggrs = this.query.getAggregatedColumns();\r\n if (aggrs.length === 0)\r\n return true;\r\n return false;\r\n };\r\n return EqContext;\r\n}());\r\n\r\n//# sourceMappingURL=context.js.map\n\n/***/ }),\n/* 374 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Widget; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\n\r\n/**\r\n * Represents a widget - a visual element with \"knows\" how to render itself.\r\n * Some widgets just display some information from the context (like the generated SQL or the result set).\r\n * Others - allow user to interact with them to define query conditions or columns.\r\n */\r\nvar Widget = /** @class */ (function () {\r\n /**\r\n Initializes a new instance of the `Widget` class\r\n * @param slot - an HTML element in which we should place our widget.\r\n */\r\n function Widget(slot) {\r\n this.slot = slot;\r\n this._id = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].generateId(this.getWidgetType());\r\n }\r\n Object.defineProperty(Widget.prototype, \"id\", {\r\n get: function () {\r\n return this._id;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Initializes the widget and assign it to some context\r\n * @param context\r\n * @param options\r\n */\r\n Widget.prototype.init = function (context, options) {\r\n this.context = context;\r\n };\r\n /**\r\n * Returns current context (the one this widget belongs to)\r\n */\r\n Widget.prototype.getContext = function () {\r\n return this.context;\r\n };\r\n /**\r\n * Refreshes the widget's content\r\n */\r\n Widget.prototype.refresh = function () {\r\n this.refreshCore();\r\n };\r\n /**\r\n * This function is called from `refresh` function.\r\n * It does nothing in the base `Widget` class\r\n * but can be overridden in derived classes\r\n * to implement the functionality specific for a particular widget\r\n */\r\n Widget.prototype.refreshCore = function () {\r\n };\r\n /**\r\n * This function is called on the start of some process this widget participates in.\r\n * For example, some widgets can show a spinner or a progress bar\r\n * at the beginning of some long process (e.g. model loading).\r\n */\r\n Widget.prototype.onProcessStart = function () {\r\n this.onProcessStartCore();\r\n };\r\n /**\r\n * This function is called from `onProcessStart` function.\r\n * It does nothing in the base `Widget` class\r\n * but can be overridden in derived classes\r\n * to implement the functionality specific for a particular widget.\r\n */\r\n Widget.prototype.onProcessStartCore = function () {\r\n };\r\n /**\r\n * This function is called on the end of some process this widget participates in.\r\n * For example, some widgets should be updated on model loading\r\n * or after the execution of the current query\r\n */\r\n Widget.prototype.onProcessEnd = function () {\r\n this.onProcessEndCore();\r\n };\r\n /**\r\n * This function is called from `onProcessEnd` function.\r\n * It does nothing in the base `Widget` class\r\n * but can be overridden in derived classes\r\n * to implement the functionality specific for a particular widget.\r\n */\r\n Widget.prototype.onProcessEndCore = function () {\r\n };\r\n /**\r\n * Returns `true` if the widget belongs to one of the groups specified in the parameter\r\n * @param groups\r\n */\r\n Widget.prototype.belongsToGroup = function (groups) {\r\n if (typeof groups != 'undefined' && groups != null) {\r\n if ((groups & this.group) === 0)\r\n return false;\r\n }\r\n return true;\r\n };\r\n Widget.prototype.destroy = function () {\r\n this.destroyCore();\r\n };\r\n Widget.prototype.destroyCore = function () {\r\n };\r\n return Widget;\r\n}());\r\n\r\n//# sourceMappingURL=widget.js.map\n\n/***/ }),\n/* 375 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export versionInfo */\nvar EqVersionInfo = /** @class */ (function () {\r\n function EqVersionInfo(major, minor, update) {\r\n this.major = major;\r\n this.minor = minor;\r\n this.update = update;\r\n }\r\n EqVersionInfo.prototype.toString = function () {\r\n return this.major + \".\" + this.minor + \".\" + this.update;\r\n };\r\n return EqVersionInfo;\r\n}());\r\nvar versionInfo = new EqVersionInfo(6, 2, 0);\r\n//# sourceMappingURL=version_info.js.map\n\n/***/ }),\n/* 376 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\n\r\nfunction addEasyQueryCoreTexts() {\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].updateDefaultTexts({\r\n NewQueryName: '[New query]',\r\n //DateTime macroses\r\n Today: 'Today',\r\n Yesterday: 'Yesterday',\r\n Tomorrow: 'Tomorrow',\r\n FirstDayOfMonth: 'First day of the month',\r\n LastDayOfMonth: 'Last day of the month',\r\n FirstDayOfWeek: 'First day of the week',\r\n FirstDayOfYear: 'First day of the year',\r\n FirstDayOfNextWeek: 'First day of the next week',\r\n FirstDayOfNextMonth: 'First day of the next month',\r\n FirstDayOfNextYear: 'First day of the next year',\r\n Now: 'Now',\r\n HourStart: 'This hour start',\r\n Midnight: 'Midnight',\r\n Noon: 'Noon',\r\n Entities: {},\r\n Attributes: {},\r\n Operators: {},\r\n AggreateFunctions: {}\r\n });\r\n}\r\naddEasyQueryCoreTexts();\r\n//# sourceMappingURL=text_resources.js.map\n\n/***/ }),\n/* 377 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return EasyGrid; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_drag_manager__ = __webpack_require__(153);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__ = __webpack_require__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_ui_utils__ = __webpack_require__(31);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__easy_grid_columns__ = __webpack_require__(66);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__easy_grid_cell_renderer__ = __webpack_require__(67);\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar DEFAULT_ROW_HEIGHT = 36;\r\nvar DEFAULT_ROW_COUNT = 15;\r\nvar EasyGrid = /** @class */ (function () {\r\n function EasyGrid(options) {\r\n this.cssPrefix = \"keg\";\r\n this.pagination = { page: 1, pageSize: 30, total: 0 };\r\n this.paginationOptions = {\r\n maxButtonCount: 10,\r\n useBootstrap: false //true\r\n };\r\n this.defaultDataGridOptions = {\r\n slot: null,\r\n dataTable: null,\r\n fixHeightOnFirstRender: false,\r\n syncGridColumns: true,\r\n useRowNumeration: true,\r\n allowDragDrop: false,\r\n totals: {\r\n calcGrandTotals: false,\r\n calculator: null\r\n },\r\n paging: {\r\n enabled: true,\r\n pageSize: 30\r\n },\r\n addColumns: false,\r\n viewportRowsCount: null,\r\n showActiveRow: true\r\n };\r\n this.rowsOnPagePromise = null;\r\n this.containerInitialHeight = 0;\r\n this.firstRender = true;\r\n this.prevRowTotals = null;\r\n this.landingIndex = -1;\r\n this.landingSlot = Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])('div')\r\n .addClass(this.cssPrefix + \"-col-landing-slot\")\r\n .addChildElement(Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])('div')\r\n .toDOM())\r\n .toDOM();\r\n this._activeRowIndex = -1;\r\n if (options && options.paging) {\r\n options.paging = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].assign(this.defaultDataGridOptions.paging, options.paging);\r\n }\r\n this.options = __assign({}, this.defaultDataGridOptions, options);\r\n if (!this.options.slot)\r\n throw Error('\"slot\" parameter is required to initialize EasyDataGrid');\r\n if (!this.options.dataTable)\r\n throw Error('\"dataTable\" parameter is required to initialize EasyDataGrid');\r\n this.dataTable = options.dataTable;\r\n this.eventEmitter = new __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"f\" /* EventEmitter */](this);\r\n this.cellRendererStore = new __WEBPACK_IMPORTED_MODULE_5__easy_grid_cell_renderer__[\"b\" /* GridCellRendererStore */](options);\r\n this.columns = new __WEBPACK_IMPORTED_MODULE_4__easy_grid_columns__[\"b\" /* GridColumnList */](this.dataTable.columns, this);\r\n this.setSlot(this.options.slot);\r\n this.init(this.options);\r\n }\r\n EasyGrid.prototype.setSlot = function (slot) {\r\n if (typeof slot === 'string') {\r\n if (slot.length) {\r\n if (slot[0] === '#') {\r\n this.slot = document.getElementById(slot.substring(1));\r\n }\r\n else if (slot[0] === '.') {\r\n var result = document.getElementsByClassName(slot.substring(1));\r\n if (result.length)\r\n this.slot = result[0];\r\n }\r\n else {\r\n throw Error('Unrecognized slot parameter ' +\r\n '(Must be id, class or HTMLElement): ' + slot);\r\n }\r\n }\r\n }\r\n else {\r\n this.slot = slot;\r\n }\r\n };\r\n EasyGrid.prototype.init = function (options) {\r\n var _this = this;\r\n if (options.onInit) {\r\n this.addEventListener('init', options.onInit);\r\n }\r\n if (options.onRowClick) {\r\n this.addEventListener('rowClick', options.onRowClick);\r\n }\r\n if (options.onRowDbClick) {\r\n this.addEventListener('rowDbClick', options.onRowDbClick);\r\n }\r\n if (options.onAddColumnClick) {\r\n this.addEventListener('addColumnClick', options.onAddColumnClick);\r\n }\r\n if (options.onColumnChanged) {\r\n this.addEventListener('columnChanged', options.onColumnChanged);\r\n }\r\n if (options.onColumnDeleted) {\r\n this.addEventListener('columnDeleted', options.onColumnDeleted);\r\n }\r\n if (options.onColumnMoved) {\r\n this.addEventListener('columnMoved', options.onColumnMoved);\r\n }\r\n if (options.onPageChanged) {\r\n this.addEventListener('pageChanged', options.onPageChanged);\r\n }\r\n if (options.onActiveRowChanged) {\r\n this.addEventListener('activeRowChanged', options.onActiveRowChanged);\r\n }\r\n this.addEventListener('pageChanged', function (ev) { return _this.activeRowIndex = -1; });\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"m\" /* utils */].assignDeep(this.paginationOptions, options.pagination);\r\n this.pagination.pageSize = this.options.paging.pageSize\r\n || this.pagination.pageSize;\r\n if (this.options.allowDragDrop) {\r\n __WEBPACK_IMPORTED_MODULE_1__utils_drag_manager__[\"b\" /* eqDragManager */].registerDropContainer({\r\n element: this.slot,\r\n scopes: [\"gridColumnMove\"],\r\n onDragEnter: function (_, ev) {\r\n _this.slot.classList.add(__WEBPACK_IMPORTED_MODULE_3__utils_ui_utils__[\"d\" /* eqCssPrefix */] + \"-drophover\");\r\n _this.showLandingSlot(ev.pageX, ev.pageY);\r\n },\r\n onDragOver: function (_, ev) {\r\n _this.showLandingSlot(ev.pageX, ev.pageY);\r\n },\r\n onDragLeave: function (_, ev) {\r\n ev.dropEffect = __WEBPACK_IMPORTED_MODULE_1__utils_drag_manager__[\"a\" /* DropEffect */].Forbid;\r\n _this.slot.classList.remove(__WEBPACK_IMPORTED_MODULE_3__utils_ui_utils__[\"d\" /* eqCssPrefix */] + \"-drophover\");\r\n _this.hideLandingSlot();\r\n },\r\n onDrop: function (_, ev) {\r\n _this.dataTable.columns.move(ev.data.column, _this.landingIndex);\r\n _this.refresh();\r\n _this.fireEvent({\r\n type: 'columnMoved',\r\n columnId: ev.data.column.id,\r\n newIndex: _this.landingIndex\r\n });\r\n }\r\n });\r\n }\r\n this.refresh();\r\n this.fireEvent('init');\r\n };\r\n EasyGrid.prototype.fireEvent = function (event) {\r\n if (typeof event === \"string\") {\r\n this.eventEmitter.fire(event);\r\n }\r\n else {\r\n this.eventEmitter.fire(event.type, event);\r\n }\r\n };\r\n EasyGrid.prototype.setData = function (data) {\r\n this.dataTable = data;\r\n this.clear();\r\n this.refresh();\r\n };\r\n EasyGrid.prototype.getData = function () {\r\n return this.dataTable;\r\n };\r\n EasyGrid.prototype.getColumns = function () {\r\n return this.columns;\r\n };\r\n EasyGrid.prototype.destroy = function () {\r\n this.slot.innerHTML = \"\";\r\n };\r\n EasyGrid.prototype.refresh = function () {\r\n this.clearDOM();\r\n this.render();\r\n };\r\n EasyGrid.prototype.clearDOM = function () {\r\n this.slot.innerHTML = '';\r\n };\r\n EasyGrid.prototype.clear = function () {\r\n this.pagination.page = 1;\r\n this.clearDOM();\r\n };\r\n EasyGrid.prototype.render = function () {\r\n var _this = this;\r\n if (!this.hasData() && !this.options.addColumns)\r\n return;\r\n this.containerInitialHeight = this.slot.clientHeight;\r\n this.rootDiv = document.createElement('div');\r\n this.rootDiv.style.width = '100%';\r\n this.rootDiv.classList.add(this.cssPrefix + \"-root\");\r\n this.columns.sync(this.dataTable.columns, this.options.useRowNumeration);\r\n this.renderHeader();\r\n this.rootDiv.appendChild(this.headerDiv);\r\n this.renderBody();\r\n this.rootDiv.appendChild(this.bodyDiv);\r\n this.renderFooter();\r\n this.rootDiv.appendChild(this.footerDiv);\r\n var gridContainer = document.createElement('div');\r\n gridContainer.classList.add(this.cssPrefix + \"-container\");\r\n gridContainer.appendChild(this.rootDiv);\r\n this.slot.appendChild(gridContainer);\r\n if (this.rowsOnPagePromise) {\r\n this.rowsOnPagePromise\r\n .then(function () { return _this.updateHeight(); })\r\n .then(function () {\r\n _this.firstRender = false;\r\n _this.rowsOnPagePromise = null;\r\n });\r\n }\r\n else {\r\n setTimeout(function () {\r\n _this.updateHeight();\r\n _this.firstRender = false;\r\n }, 100);\r\n }\r\n };\r\n EasyGrid.prototype.updateHeight = function () {\r\n var _this = this;\r\n return new Promise(function (resolve) {\r\n if (_this.options.viewportRowsCount) {\r\n var firstRow = _this.bodyCellContainerDiv.firstElementChild;\r\n var rowHeight = firstRow ? firstRow.offsetHeight : DEFAULT_ROW_HEIGHT;\r\n var rowCount = _this.options.viewportRowsCount; // || DEFAULT_ROW_COUNT;\r\n var bodyHeight_1 = rowHeight * rowCount;\r\n Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])(_this.bodyDiv)\r\n .setStyle('height', bodyHeight_1 + \"px\");\r\n setTimeout(function () {\r\n var sbHeight = _this.bodyViewportDiv.offsetHeight - _this.bodyViewportDiv.clientHeight;\r\n bodyHeight_1 = bodyHeight_1 + sbHeight;\r\n Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])(_this.bodyDiv)\r\n .setStyle('height', bodyHeight_1 + \"px\");\r\n resolve();\r\n }, 100);\r\n return;\r\n }\r\n else if (_this.containerInitialHeight > 0) {\r\n // const bodyHeight = this.containerInitialHeight - this.headerDiv.offsetHeight - this.footerDiv.offsetHeight;\r\n // domel(this.bodyDiv)\r\n // .setStyle('height', `${bodyHeight}px`);\r\n }\r\n resolve();\r\n })\r\n .then(function () {\r\n if (_this.options.fixHeightOnFirstRender && _this.firstRender) {\r\n _this.slot.style.height = _this.slot.offsetHeight + \"px\";\r\n }\r\n });\r\n };\r\n EasyGrid.prototype.renderHeader = function () {\r\n var _this = this;\r\n this.headerDiv = Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])('div')\r\n .addClass(this.cssPrefix + \"-header\")\r\n .toDOM();\r\n this.headerViewportDiv = Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])('div', this.headerDiv)\r\n .addClass(this.cssPrefix + \"-header-viewport\")\r\n .toDOM();\r\n this.headerCellContainerDiv = Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])('div', this.headerViewportDiv)\r\n .addClass(this.cssPrefix + \"-header-cell-container\")\r\n .toDOM();\r\n this.headerRowDiv = Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])('div', this.headerCellContainerDiv)\r\n .addClass(this.cssPrefix + \"-header-row\")\r\n .toDOM();\r\n this.columns.getItems().forEach(function (column, index) {\r\n if (!column.isVisible) {\r\n return;\r\n }\r\n var hd = _this.renderColumnHeader(column, index);\r\n _this.headerRowDiv.appendChild(hd);\r\n if (column.isRowNum) {\r\n Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])(hd)\r\n .addChildElement(_this.renderAddColumnButton());\r\n }\r\n });\r\n var containerWidth = this.columns.getItems().map(function (column) { return column.width; }).reduce(function (sum, current) { return sum + current; });\r\n Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])(this.headerCellContainerDiv)\r\n .setStyle('width', containerWidth + \"px\");\r\n };\r\n EasyGrid.prototype.hasData = function () {\r\n return this.dataTable.columns.count > 0;\r\n };\r\n EasyGrid.prototype.renderColumnHeader = function (column, index) {\r\n var _this = this;\r\n var colBuilder = Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])('div')\r\n .addClass(this.cssPrefix + \"-header-cell\")\r\n .data('col-idx', \"\" + (index + 1))\r\n .setStyle('width', column.width + \"px\");\r\n if (column.dataColumn) {\r\n colBuilder\r\n .data('col-id', \"\" + column.dataColumn.id);\r\n }\r\n var colDiv = colBuilder.toDOM();\r\n Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])('div', colDiv)\r\n .addClass(this.cssPrefix + \"-header-cell-resize\");\r\n if (!column.isRowNum) {\r\n Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])('div', colDiv)\r\n .addClass(this.cssPrefix + \"-header-cell-label\")\r\n .text(column.label);\r\n }\r\n if (this.options.allowDragDrop) {\r\n __WEBPACK_IMPORTED_MODULE_1__utils_drag_manager__[\"b\" /* eqDragManager */].registerDraggableItem({\r\n element: colDiv,\r\n scope: \"gridColumnMove\",\r\n data: { column: column },\r\n renderer: function (dragImage) {\r\n dragImage.innerHTML = '';\r\n var attrLabel = document.createElement('div');\r\n attrLabel.innerText = column.label;\r\n dragImage.classList.add(_this.cssPrefix + \"-sortable-helper\");\r\n dragImage.appendChild(attrLabel);\r\n },\r\n onDragStart: function (ev) {\r\n ev.dropEffect = __WEBPACK_IMPORTED_MODULE_1__utils_drag_manager__[\"a\" /* DropEffect */].Allow;\r\n }\r\n });\r\n }\r\n return colDiv;\r\n };\r\n EasyGrid.prototype.renderBody = function () {\r\n var _this = this;\r\n this.bodyDiv = Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])('div')\r\n .addClass(this.cssPrefix + \"-body\")\r\n .toDOM();\r\n this.bodyViewportDiv = Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])('div', this.bodyDiv)\r\n .addClass(this.cssPrefix + \"-body-viewport\")\r\n .attr('tabIndex', '0')\r\n .toDOM();\r\n this.bodyCellContainerDiv = Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])('div', this.bodyViewportDiv)\r\n .addClass(this.cssPrefix + \"-cell-container\")\r\n .toDOM();\r\n if (this.dataTable) {\r\n this.showProgress();\r\n this.rowsOnPagePromise = this.getRowsToRender()\r\n .then(function (rows) {\r\n _this.hideProgress();\r\n //prevent double rendering (bad solution, we have to figure out how to avoid this behavior properly)\r\n _this.bodyCellContainerDiv.innerHTML = '';\r\n _this.prevRowTotals = null;\r\n if (rows.length) {\r\n var calcTotals_1 = _this.calcTotals();\r\n var keyCols_1 = _this.getTotalsKeyCols();\r\n rows.forEach(function (row, index) {\r\n if (calcTotals_1)\r\n _this.updateTotalsState(keyCols_1, row);\r\n var tr = _this.renderRow(row, index);\r\n _this.bodyCellContainerDiv.appendChild(tr);\r\n });\r\n var showGrandTotalsOnEachPage = _this.options.totals && _this.options.totals.showGrandTotalsOnEachPage;\r\n if (calcTotals_1 && (_this.isLastPage() || showGrandTotalsOnEachPage)) {\r\n var row = new __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"b\" /* DataRow */](_this.dataTable.columns, new Array(_this.dataTable.columns.count));\r\n _this.updateTotalsState(keyCols_1, row, true);\r\n }\r\n }\r\n var containerWidth = _this.columns.getItems()\r\n .map(function (column) { return column.width; }).reduce(function (sum, current) { return sum + current; });\r\n Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])(_this.bodyCellContainerDiv)\r\n .setStyle('width', containerWidth + \"px\");\r\n return rows.length;\r\n })\r\n .catch(function (error) { console.error(error); return 0; });\r\n }\r\n this.bodyViewportDiv.addEventListener('scroll', function (ev) {\r\n Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])(_this.headerViewportDiv)\r\n .setStyle('margin-left', \"-\" + _this.bodyViewportDiv.scrollLeft + \"px\");\r\n });\r\n this.bodyViewportDiv.addEventListener('keydown', this.onVieportKeydown.bind(this));\r\n };\r\n EasyGrid.prototype.isLastPage = function () {\r\n return this.pagination.page * this.pagination.pageSize >= this.pagination.total;\r\n };\r\n EasyGrid.prototype.calcTotals = function () {\r\n return this.options.totals\r\n && (this.options.totals.calcGrandTotals || this.calcSubTotalsCols())\r\n && this.dataTable.columns.getItems()\r\n .filter(function (col) { return col.isAggr; }).length > 0;\r\n };\r\n EasyGrid.prototype.calcSubTotalsCols = function () {\r\n return this.options.totals.cols && Object.values(this.options.totals.cols)\r\n .map(function (val) { return val.calcSubTotals; })\r\n .reduce(function (prev, value) {\r\n return prev || value;\r\n }, false);\r\n };\r\n EasyGrid.prototype.getTotalsKeyCols = function () {\r\n var keyCols = this.dataTable.columns.getItems()\r\n .filter(function (col) { return !col.isAggr; });\r\n keyCols.pop();\r\n return keyCols;\r\n };\r\n EasyGrid.prototype.updateTotalsState = function (keyCols, newRow, isLast) {\r\n if (isLast === void 0) { isLast = false; }\r\n if (this.prevRowTotals && this.calcSubTotalsCols()) {\r\n var changeLevel = -1;\r\n for (var i = 0; i < keyCols.length; i++) {\r\n var col = keyCols[i];\r\n if (this.prevRowTotals.getValue(col.id) !== newRow.getValue(col.id)) {\r\n changeLevel = i;\r\n break;\r\n }\r\n }\r\n if (changeLevel != -1) {\r\n var totalsOpts = this.options.totals;\r\n for (var i = keyCols.length; i > changeLevel; i--) {\r\n var col = keyCols[i - 1];\r\n var totalColOpts = totalsOpts.cols ? totalsOpts.cols[col.id] : null;\r\n if (!totalColOpts || !totalColOpts.calcSubTotals)\r\n continue;\r\n var row = new __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"b\" /* DataRow */](this.dataTable.columns, this.prevRowTotals.toArray());\r\n var tr = this.renderTotalsRow(i, row);\r\n this.bodyCellContainerDiv.appendChild(tr);\r\n }\r\n }\r\n }\r\n if (isLast && this.options.totals.calcGrandTotals) {\r\n var tr = this.renderTotalsRow(0, newRow);\r\n this.bodyCellContainerDiv.appendChild(tr);\r\n }\r\n this.prevRowTotals = newRow;\r\n };\r\n EasyGrid.prototype.renderTotalsRow = function (level, row) {\r\n var _this = this;\r\n var rowBuilder = Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])('div')\r\n .addClass(this.cssPrefix + \"-row\")\r\n .addClass(this.cssPrefix + \"-row-totals\")\r\n .addClass(this.cssPrefix + \"-totals-lv\" + level)\r\n .data('totals-level', \"\" + level)\r\n .attr('tabindex', '-1');\r\n var rowElement = rowBuilder.toDOM();\r\n this.columns.getItems().forEach(function (column, index) {\r\n if (!column.isVisible) {\r\n return;\r\n }\r\n var colIndex = column.isRowNum ? -1 : _this.dataTable.columns.getIndex(column.dataColumn.id);\r\n var val = (colIndex == level || level == 0 && colIndex == 0) ? _this.getTotalsTitle(level) : '';\r\n if (colIndex == _this.dataTable.columns.count - 1) {\r\n val = 'Calculating...';\r\n }\r\n rowElement.appendChild(_this.renderCell(column, colIndex, val, rowElement));\r\n });\r\n var totals = this.options.totals.calculator.getTotals();\r\n totals.fillTotals(level, row)\r\n .then(function () {\r\n rowElement.innerHTML = '';\r\n _this.columns.getItems().forEach(function (column, index) {\r\n if (!column.isVisible) {\r\n return;\r\n }\r\n var colIndex = column.isRowNum ? -1 : _this.dataTable.columns.getIndex(column.dataColumn.id);\r\n var val = (colIndex == level || level == 0 && colIndex == 0) ? _this.getTotalsTitle(level) : '';\r\n if (!column.isRowNum && column.dataColumn.isAggr) {\r\n val = row.getValue(colIndex);\r\n }\r\n rowElement.appendChild(_this.renderCell(column, colIndex, val, rowElement));\r\n });\r\n })\r\n .catch(function (error) { return console.error(error); });\r\n return rowElement;\r\n };\r\n EasyGrid.prototype.getTotalsTitle = function (level) {\r\n return (level) ? 'Sub totals: ' : 'Grand totals: ';\r\n };\r\n EasyGrid.prototype.onVieportKeydown = function (ev) {\r\n if (this.options.showActiveRow) {\r\n var rowCount = this.bodyCellContainerDiv.querySelectorAll(\".\" + this.cssPrefix + \"-row\").length;\r\n var newValue = void 0;\r\n switch (ev.key) {\r\n case 'ArrowLeft':\r\n break;\r\n case 'ArrowRight':\r\n break;\r\n case 'ArrowUp':\r\n ev.preventDefault();\r\n newValue = this.activeRowIndex < 0 || this.activeRowIndex >= rowCount ? rowCount - 1 : this.activeRowIndex - 1;\r\n this.activeRowIndex = newValue >= 0 ? newValue : 0;\r\n break;\r\n case 'ArrowDown':\r\n ev.preventDefault();\r\n newValue = this.activeRowIndex < 0 || this.activeRowIndex >= rowCount ? 0 : this.activeRowIndex + 1;\r\n this.activeRowIndex = newValue < rowCount ? newValue : rowCount - 1;\r\n break;\r\n }\r\n }\r\n };\r\n EasyGrid.prototype.ensureRowVisibility = function (rowOrIndex) {\r\n var row = typeof rowOrIndex === 'number'\r\n ? this.getDataRow(rowOrIndex)\r\n : rowOrIndex;\r\n if (row) {\r\n var rowRect = row.getBoundingClientRect();\r\n var viewportRect = this.bodyViewportDiv.getBoundingClientRect();\r\n var rowTop = rowRect.top - viewportRect.top;\r\n var rowBottom = rowRect.bottom - viewportRect.top;\r\n var viewportHeight = this.bodyViewportDiv.clientHeight;\r\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\r\n if (rowTop > 0 &&\r\n rowBottom <= viewportHeight &&\r\n rowRect.top > 0 &&\r\n rowRect.bottom < windowHeight) {\r\n return;\r\n }\r\n if (rowTop < 0) {\r\n this.bodyViewportDiv.scrollTop = this.bodyViewportDiv.scrollTop + rowTop;\r\n }\r\n else if (rowBottom > viewportHeight) {\r\n this.bodyViewportDiv.scrollTop = this.bodyViewportDiv.scrollTop + rowBottom - viewportHeight;\r\n }\r\n rowRect = row.getBoundingClientRect();\r\n if (rowRect.top < 0) {\r\n document.documentElement.scrollTop = document.documentElement.scrollTop + rowRect.top;\r\n }\r\n else if (rowRect.bottom > windowHeight) {\r\n document.documentElement.scrollTop = document.documentElement.scrollTop + rowRect.bottom - windowHeight;\r\n }\r\n }\r\n };\r\n EasyGrid.prototype.getRowsToRender = function () {\r\n if (this.options.paging.enabled === false) {\r\n return Promise.resolve(this.dataTable.getCachedRows());\r\n }\r\n return this.dataTable.getRows({\r\n page: this.pagination.page,\r\n pageSize: this.pagination.pageSize\r\n })\r\n .catch(function (error) {\r\n console.error(error);\r\n return [];\r\n });\r\n };\r\n EasyGrid.prototype.renderFooter = function () {\r\n this.footerDiv = Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])('div')\r\n .addClass(this.cssPrefix + \"-footer\")\r\n .toDOM();\r\n this.footerPaginateDiv = this.renderPageNavigator();\r\n this.footerDiv.appendChild(this.footerPaginateDiv);\r\n var pageInfoBlock = this.renderPageInfoBlock();\r\n this.footerDiv.appendChild(pageInfoBlock);\r\n };\r\n EasyGrid.prototype.renderPageInfoBlock = function () {\r\n var _this = this;\r\n var pageInfoDiv = Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])('div')\r\n .addClass(this.cssPrefix + \"-page-info\")\r\n .toDOM();\r\n if (this.rowsOnPagePromise) {\r\n this.rowsOnPagePromise.then(function (count) {\r\n var fistPageRecordNum = count ? (_this.pagination.page - 1) * _this.pagination.pageSize + 1 : 0;\r\n var lastPageRecordNum = count ? fistPageRecordNum + count - 1 : 0;\r\n var total = _this.dataTable.getTotal();\r\n pageInfoDiv.innerHTML = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('GridPageInfo')\r\n .replace('{FirstPageRecordNum}', \"\" + fistPageRecordNum.toString() + \"\")\r\n .replace('{LastPageRecordNum}', \"\" + lastPageRecordNum.toString() + \"\")\r\n .replace('{Total}', \"\" + total.toString() + \"\");\r\n });\r\n }\r\n return pageInfoDiv;\r\n };\r\n EasyGrid.prototype.showProgress = function () {\r\n };\r\n EasyGrid.prototype.hideProgress = function () {\r\n };\r\n EasyGrid.prototype.getLocalIndexByGlobal = function (index) {\r\n if (this.pagination) {\r\n return index % this.pagination.pageSize;\r\n }\r\n else {\r\n return index;\r\n }\r\n };\r\n EasyGrid.prototype.getGlobalIndexByLocal = function (index) {\r\n if (this.pagination) {\r\n return (this.pagination.page - 1) * this.pagination.pageSize + index;\r\n }\r\n else {\r\n return index;\r\n }\r\n };\r\n EasyGrid.prototype.renderRow = function (row, index) {\r\n var _this = this;\r\n var indexGlobal = this.getGlobalIndexByLocal(index);\r\n var rowBuilder = Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])('div')\r\n .addClass(this.cssPrefix + \"-row\")\r\n .addClass(this.cssPrefix + \"-row-\" + (index % 2 == 1 ? 'odd' : 'even'))\r\n .data('row-idx', \"\" + indexGlobal)\r\n .attr('tabindex', '-1')\r\n .on('click', function (ev) {\r\n _this.activeRowIndex = index;\r\n _this.fireEvent({\r\n type: 'rowClick',\r\n row: row,\r\n rowIndex: index,\r\n sourceEvent: ev\r\n });\r\n })\r\n .on('dblclick', function (ev) {\r\n _this.fireEvent({\r\n type: 'rowDbClick',\r\n row: row,\r\n rowIndex: index,\r\n sourceEvent: ev\r\n });\r\n });\r\n if (index == 0) {\r\n rowBuilder.addClass(this.cssPrefix + \"-row-first\");\r\n }\r\n var rowElement = rowBuilder.toDOM();\r\n if (this.options.showActiveRow && index == this.activeRowIndex) {\r\n rowBuilder.addClass(this.cssPrefix + \"-row-active\");\r\n }\r\n this.columns.getItems().forEach(function (column) {\r\n if (!column.isVisible) {\r\n return;\r\n }\r\n var colindex = column.isRowNum ? -1 : _this.dataTable.columns.getIndex(column.dataColumn.id);\r\n var val = column.isRowNum ? indexGlobal + 1 : row.getValue(colindex);\r\n rowElement.appendChild(_this.renderCell(column, colindex, val, rowElement));\r\n });\r\n return rowElement;\r\n };\r\n EasyGrid.prototype.renderCell = function (column, colIndex, value, rowElement) {\r\n var builder = Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])('div')\r\n .addClass(this.cssPrefix + \"-cell\")\r\n .data('col-idx', \"\" + colIndex)\r\n .attr('tabindex', '-1')\r\n .setStyle('width', column.width + \"px\");\r\n if (column.align == __WEBPACK_IMPORTED_MODULE_4__easy_grid_columns__[\"a\" /* GridColumnAlign */].LEFT) {\r\n builder.addClass(this.cssPrefix + \"-cell-align-left\");\r\n }\r\n else if (column.align == __WEBPACK_IMPORTED_MODULE_4__easy_grid_columns__[\"a\" /* GridColumnAlign */].RIGHT) {\r\n builder.addClass(this.cssPrefix + \"-cell-align-right\");\r\n }\r\n else if (column.align == __WEBPACK_IMPORTED_MODULE_4__easy_grid_columns__[\"a\" /* GridColumnAlign */].CENTER) {\r\n builder.addClass(this.cssPrefix + \"-cell-align-center\");\r\n }\r\n if (column.cellRenderer) {\r\n column.cellRenderer(value, column, builder.toDOM(), rowElement);\r\n }\r\n return builder.toDOM();\r\n };\r\n EasyGrid.prototype.renderPageNavigator = function () {\r\n var _this = this;\r\n var paginateDiv = document.createElement('div');\r\n paginateDiv.className = this.cssPrefix + \"-pagination-wrapper\";\r\n this.pagination.total = this.dataTable.getTotal();\r\n if (this.options.paging && this.options.paging.enabled\r\n && this.pagination.total > this.pagination.pageSize) {\r\n var prefix = this.paginationOptions.useBootstrap ? '' : this.cssPrefix + \"-\";\r\n paginateDiv.innerHTML = \"\";\r\n var pageIndex = this.pagination.page || 1;\r\n var pageCount = Math.ceil(this.pagination.total / this.pagination.pageSize) || 1;\r\n var buttonClickHandler = function (ev) {\r\n var element = ev.target;\r\n if (element.hasAttribute('data-page')) {\r\n var page = parseInt(element.getAttribute('data-page'));\r\n _this.pagination.page = page;\r\n _this.fireEvent({ type: \"pageChanged\", page: page });\r\n _this.refresh();\r\n _this.bodyViewportDiv.focus();\r\n }\r\n };\r\n var maxButtonCount = this.paginationOptions.maxButtonCount || 10;\r\n var zeroBasedIndex = pageIndex - 1;\r\n var firstPageIndex = zeroBasedIndex - (zeroBasedIndex % maxButtonCount) + 1;\r\n var lastPageIndex = firstPageIndex + maxButtonCount - 1;\r\n if (lastPageIndex > pageCount) {\r\n lastPageIndex = pageCount;\r\n }\r\n var ul = document.createElement('ul');\r\n ul.className = prefix + \"pagination\";\r\n var li = document.createElement('li');\r\n li.className = prefix + \"page-item\";\r\n var a = document.createElement('span');\r\n a.setAttribute(\"aria-hidden\", 'true');\r\n a.className = prefix + \"page-link\";\r\n if (firstPageIndex == 1) {\r\n li.className += \" disabled\";\r\n }\r\n else {\r\n if (this.paginationOptions.useBootstrap) {\r\n a = document.createElement('a');\r\n a.setAttribute('href', 'javascript:void(0)');\r\n a.setAttribute(\"data-page\", \"\" + (firstPageIndex - 1));\r\n }\r\n else {\r\n var newA = document.createElement('a');\r\n newA.setAttribute('href', 'javascript:void(0)');\r\n newA.setAttribute(\"data-page\", \"\" + (firstPageIndex - 1));\r\n a = newA;\r\n }\r\n a.className = prefix + \"page-link\";\r\n a.addEventListener(\"click\", buttonClickHandler);\r\n }\r\n a.innerHTML = \"«\";\r\n li.appendChild(a);\r\n ul.appendChild(li);\r\n for (var i = firstPageIndex; i <= lastPageIndex; i++) {\r\n li = document.createElement('li');\r\n li.className = prefix + \"page-item\";\r\n if (i == pageIndex)\r\n li.className += \" active\";\r\n a = document.createElement('a');\r\n a.setAttribute('href', 'javascript:void(0)');\r\n a.innerHTML = i.toString();\r\n a.setAttribute('data-page', i.toString());\r\n a.className = prefix + \"page-link\";\r\n a.addEventListener(\"click\", buttonClickHandler);\r\n li.appendChild(a);\r\n ul.appendChild(li);\r\n }\r\n li = document.createElement('li');\r\n li.className = prefix + \"page-item\";\r\n a = document.createElement(\"span\");\r\n a.setAttribute('aria-hidden', 'true');\r\n a.className = prefix + \"page-link\";\r\n if (lastPageIndex == pageCount) {\r\n li.className += \" disabled\";\r\n }\r\n else {\r\n if (this.paginationOptions.useBootstrap) {\r\n a = document.createElement('a');\r\n a.setAttribute('href', 'javascript:void(0)');\r\n a.setAttribute(\"data-page\", \"\" + (lastPageIndex + 1));\r\n }\r\n else {\r\n var newA = document.createElement('a');\r\n newA.setAttribute('href', 'javascript:void(0)');\r\n newA.setAttribute(\"data-page\", \"\" + (lastPageIndex + 1));\r\n a = newA;\r\n }\r\n a.className = prefix + \"page-link\";\r\n a.addEventListener(\"click\", buttonClickHandler);\r\n }\r\n a.innerHTML = \"»\";\r\n li.appendChild(a);\r\n ul.appendChild(li);\r\n paginateDiv.appendChild(ul);\r\n }\r\n return paginateDiv;\r\n };\r\n EasyGrid.prototype.addEventListener = function (eventType, handler) {\r\n return this.eventEmitter.subscribe(eventType, function (event) { return handler(event.data); });\r\n };\r\n EasyGrid.prototype.removeEventListener = function (eventType, handlerId) {\r\n this.eventEmitter.unsubscribe(eventType, handlerId);\r\n };\r\n EasyGrid.prototype.renderAddColumnButton = function () {\r\n var _this = this;\r\n if (this.options.addColumns) {\r\n return Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])('div')\r\n .addClass(this.cssPrefix + \"-addrow\")\r\n .title(this.options.addColumnsTitle || 'Add column')\r\n .addChild('a', function (builder) { return builder\r\n .attr('href', 'javascript:void(0)')\r\n .on('click', function (e) {\r\n e.preventDefault();\r\n _this.fireEvent({\r\n type: 'addColumnClick',\r\n sourceEvent: e\r\n });\r\n }); })\r\n .toDOM();\r\n }\r\n return Object(__WEBPACK_IMPORTED_MODULE_2__utils_dom_elem_builder__[\"b\" /* domel */])('span')\r\n .addText('#')\r\n .toDOM();\r\n };\r\n EasyGrid.prototype.showLandingSlot = function (pageX, pageY) {\r\n var colElems = this.headerRowDiv.querySelectorAll(\"[class*=\" + this.cssPrefix + \"-table-col]\");\r\n var cols = [];\r\n for (var i = 1; i < colElems.length; i++) {\r\n var rowElem = colElems[i];\r\n if (rowElem.style.display === 'none')\r\n continue;\r\n cols.push(rowElem);\r\n }\r\n if (cols.length === 0) {\r\n this.landingIndex = 0;\r\n this.headerRowDiv.appendChild(this.landingSlot);\r\n return;\r\n }\r\n var landingPos = Object(__WEBPACK_IMPORTED_MODULE_3__utils_ui_utils__[\"e\" /* getElementAbsolutePos */])(this.landingSlot);\r\n if (pageX >= landingPos.x && pageX <= landingPos.x + this.landingSlot.offsetWidth) {\r\n return;\r\n }\r\n var newLandingIndex = this.landingIndex;\r\n for (var _i = 0, cols_1 = cols; _i < cols_1.length; _i++) {\r\n var col = cols_1[_i];\r\n var colPos = Object(__WEBPACK_IMPORTED_MODULE_3__utils_ui_utils__[\"e\" /* getElementAbsolutePos */])(col);\r\n var width = col.offsetWidth;\r\n if (pageX > colPos.x && pageX < colPos.x + width) {\r\n // -1 as we don't need to count add button here\r\n newLandingIndex = parseInt(col.getAttribute('data-col-idx')) - 1;\r\n }\r\n }\r\n if (newLandingIndex != this.landingIndex) {\r\n this.landingIndex = newLandingIndex;\r\n if (this.landingIndex < cols.length) {\r\n this.headerRowDiv.insertBefore(this.landingSlot, cols[this.landingIndex]);\r\n }\r\n else {\r\n this.headerRowDiv.appendChild(this.landingSlot);\r\n }\r\n }\r\n };\r\n EasyGrid.prototype.hideLandingSlot = function () {\r\n var _this = this;\r\n this.landingIndex = -1;\r\n setTimeout(function () {\r\n if (_this.landingSlot.parentElement) {\r\n _this.landingSlot.parentElement.removeChild(_this.landingSlot);\r\n }\r\n }, 10);\r\n };\r\n Object.defineProperty(EasyGrid.prototype, \"activeRowIndex\", {\r\n get: function () {\r\n return this._activeRowIndex;\r\n },\r\n set: function (value) {\r\n if (value !== this._activeRowIndex) {\r\n var oldValue = this._activeRowIndex;\r\n this._activeRowIndex = value;\r\n this.updateActiveRow();\r\n this.fireEvent({\r\n type: 'activeRowChanged',\r\n oldValue: oldValue,\r\n newValue: this.activeRowIndex,\r\n rowIndex: this.getGlobalIndexByLocal(this.activeRowIndex)\r\n });\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n EasyGrid.prototype.updateActiveRow = function () {\r\n var _this = this;\r\n if (this.options.showActiveRow) {\r\n var rows = this.bodyCellContainerDiv.querySelectorAll(\"[class*=\" + this.cssPrefix + \"-row-active]\");\r\n rows.forEach(function (el) { el.classList.remove(_this.cssPrefix + \"-row-active\"); });\r\n var activeRow = this.getActiveRow();\r\n if (activeRow) {\r\n activeRow.classList.add(this.cssPrefix + \"-row-active\");\r\n this.ensureRowVisibility(this.activeRowIndex);\r\n }\r\n }\r\n };\r\n EasyGrid.prototype.getActiveRow = function () {\r\n return this.getDataRow(this.activeRowIndex);\r\n };\r\n EasyGrid.prototype.getDataRow = function (index) {\r\n var rows = Array.from(this.bodyCellContainerDiv.querySelectorAll(\".\" + this.cssPrefix + \"-row:not(.\" + this.cssPrefix + \"-row-totals)\"));\r\n if (index >= 0 && index < rows.length)\r\n return rows[index];\r\n return null;\r\n };\r\n EasyGrid.prototype.focus = function () {\r\n this.bodyViewportDiv.focus();\r\n };\r\n return EasyGrid;\r\n}());\r\n\r\n//# sourceMappingURL=easy_grid.js.map\n\n/***/ }),\n/* 378 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return DefaultDateTimePicker; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_dom_elem_builder__ = __webpack_require__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__date_time_picker__ = __webpack_require__(157);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__default_calendar__ = __webpack_require__(158);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__default_time_picker__ = __webpack_require__(159);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils_ui_utils__ = __webpack_require__(31);\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar DefaultDateTimePicker = /** @class */ (function (_super) {\r\n __extends(DefaultDateTimePicker, _super);\r\n function DefaultDateTimePicker() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DefaultDateTimePicker.prototype.render = function () {\r\n var _this = this;\r\n var sb = Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom_elem_builder__[\"b\" /* domel */])('div', document.body)\r\n .addClass(\"\" + this.cssPrefix)\r\n .attr('tabIndex', '0')\r\n .setStyle('position', 'absolute')\r\n .setStyle('top', '-1000px')\r\n .setStyle('left', '-1000px')\r\n .on('keydown', function (ev) {\r\n if (ev.keyCode === 27) { // ESC is pressed\r\n _this.cancel();\r\n }\r\n else if (ev.keyCode === 13) { // Enter is pressed\r\n _this.apply(_this.getDateTime());\r\n }\r\n return false;\r\n });\r\n if (this.options.zIndex) {\r\n sb.setStyle('z-index', \"\" + this.options.zIndex);\r\n }\r\n this.slot = sb.toDOM();\r\n _super.prototype.render.call(this);\r\n this.renderButtons();\r\n this.globalMouseDownHandler = function (e) {\r\n var event = window.event || e;\r\n var o = event.srcElement || event.target;\r\n var isOutside = !_this.slot.contains(event.target);\r\n if (isOutside) {\r\n document.removeEventListener('mousedown', _this.globalMouseDownHandler, true);\r\n _this.cancel();\r\n }\r\n return true;\r\n };\r\n };\r\n DefaultDateTimePicker.prototype.renderButtons = function () {\r\n var _this = this;\r\n var builder = Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom_elem_builder__[\"b\" /* domel */])('div', this.slot)\r\n .addClass(this.cssPrefix + \"-buttons\")\r\n .addChild('button', function (b) { return _this.nowButton = b\r\n .addClass(_this.cssPrefix + \"-button \" + _this.cssPrefix + \"-button-now\")\r\n .text(__WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('ButtonNow'))\r\n .on('click', function () {\r\n _this.setDateTime(new Date());\r\n _this.dateTimeChanged();\r\n return false;\r\n })\r\n .toDOM(); });\r\n if (this.options.showTimePicker || !this.options.oneClickDateSelection) {\r\n builder.addChild('button', function (b) { return _this.submitButton = b\r\n .addClass(_this.cssPrefix + \"-button \" + _this.cssPrefix + \"-button-apply\")\r\n .text(__WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('ButtonApply'))\r\n .on('click', function () {\r\n _this.apply(_this.getDateTime());\r\n return false;\r\n })\r\n .toDOM(); });\r\n }\r\n builder.addChild('button', function (b) { return _this.submitButton = b\r\n .addClass(_this.cssPrefix + \"-button \" + _this.cssPrefix + \"-button-cancel\")\r\n .text(__WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('ButtonCancel'))\r\n .on('click', function () {\r\n _this.cancel();\r\n return false;\r\n })\r\n .toDOM(); });\r\n };\r\n DefaultDateTimePicker.prototype.createCalendar = function (options) {\r\n this.calendarSlot =\r\n Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom_elem_builder__[\"b\" /* domel */])('div', this.slot)\r\n .addClass(this.cssPrefix + \"-cal\")\r\n .toDOM();\r\n return new __WEBPACK_IMPORTED_MODULE_3__default_calendar__[\"a\" /* DefaultCalendar */](this.calendarSlot, options);\r\n };\r\n DefaultDateTimePicker.prototype.createTimePicker = function (options) {\r\n this.timePickerSlot =\r\n Object(__WEBPACK_IMPORTED_MODULE_1__utils_dom_elem_builder__[\"b\" /* domel */])('div', this.slot)\r\n .addClass(this.cssPrefix + \"-tp\")\r\n .toDOM();\r\n return new __WEBPACK_IMPORTED_MODULE_4__default_time_picker__[\"a\" /* DefaultTimePicker */](this.timePickerSlot, options);\r\n };\r\n DefaultDateTimePicker.prototype.show = function (anchor) {\r\n var _this = this;\r\n if (this.options.showDateTimeInput) {\r\n if (this.options.beforeShow) {\r\n this.options.beforeShow();\r\n }\r\n var anchorPos = Object(__WEBPACK_IMPORTED_MODULE_5__utils_ui_utils__[\"e\" /* getElementAbsolutePos */])(anchor || document.body);\r\n var parentPos = Object(__WEBPACK_IMPORTED_MODULE_5__utils_ui_utils__[\"e\" /* getElementAbsolutePos */])(anchor ? anchor.parentElement || anchor : document.body);\r\n this.slot.style.top = parentPos.y + 'px';\r\n this.slot.style.left = anchorPos.x + 'px';\r\n }\r\n else {\r\n _super.prototype.show.call(this, anchor);\r\n this.slot.focus();\r\n }\r\n setTimeout(function () {\r\n document.addEventListener('mousedown', _this.globalMouseDownHandler, true);\r\n }, 1);\r\n };\r\n return DefaultDateTimePicker;\r\n}(__WEBPACK_IMPORTED_MODULE_2__date_time_picker__[\"a\" /* DateTimePicker */]));\r\n\r\n//# sourceMappingURL=default_date_time_picker.js.map\n\n/***/ }),\n/* 379 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\n\r\nfunction addEasyDataUITexts() {\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].updateDefaultTexts({\r\n GridPageInfo: '{FirstPageRecordNum} - {LastPageRecordNum} of {Total} records',\r\n ButtonOK: \"OK\",\r\n ButtonCancel: \"Cancel\",\r\n ButtonApply: 'Apply',\r\n ButtonNow: 'Now'\r\n });\r\n}\r\naddEasyDataUITexts();\r\n//# sourceMappingURL=text_resources.js.map\n\n/***/ }),\n/* 380 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return DisplayFormatParser; });\nvar DisplayFormatParser = /** @class */ (function () {\r\n function DisplayFormatParser() {\r\n this.formatStr = '';\r\n this.pos = 0;\r\n this.token = 'text';\r\n this.tokenText = '';\r\n }\r\n DisplayFormatParser.prototype.start = function (s) {\r\n this.formatStr = s;\r\n this.pos = 0;\r\n this.tokenText = '';\r\n };\r\n DisplayFormatParser.prototype.skipSpaces = function () {\r\n while (this.pos < this.formatStr.length && this.formatStr.charAt(this.pos) === ' ')\r\n this.pos++;\r\n };\r\n DisplayFormatParser.prototype.getToken = function () {\r\n return this.token;\r\n };\r\n DisplayFormatParser.prototype.getTokenText = function () {\r\n return this.tokenText;\r\n };\r\n DisplayFormatParser.prototype.next = function () {\r\n this.skipSpaces();\r\n if (this.pos >= this.formatStr.length)\r\n return false;\r\n var npos = 0;\r\n if (this.formatStr.charAt(this.pos) === '{') {\r\n npos = this.formatStr.indexOf('}', this.pos);\r\n if (npos < 0)\r\n return false;\r\n this.tokenText = this.formatStr.substring(this.pos, npos + 1);\r\n if (this.tokenText.indexOf('{expr') === 0 || this.tokenText.indexOf('{attr') === 0) {\r\n this.token = 'expression';\r\n }\r\n this.pos = npos + 1;\r\n }\r\n else if (this.formatStr.charAt(this.pos) === '[' && this.pos < this.formatStr.length - 1 && this.formatStr.charAt(this.pos + 1) === '[') {\r\n this.pos += 2;\r\n npos = this.formatStr.indexOf(']]', this.pos);\r\n this.token = 'function';\r\n this.tokenText = this.formatStr.substring(this.pos, npos);\r\n this.pos = npos + 2;\r\n }\r\n else {\r\n this.token = 'text';\r\n var npos1 = this.formatStr.indexOf('{', this.pos);\r\n if (npos1 < 0)\r\n npos1 = this.formatStr.length;\r\n var npos2 = this.formatStr.indexOf('[[', this.pos);\r\n if (npos2 < 0)\r\n npos2 = this.formatStr.length;\r\n npos = Math.min(npos1, npos2);\r\n this.tokenText = this.formatStr.substring(this.pos, npos).trim();\r\n this.pos = npos;\r\n }\r\n return true;\r\n };\r\n return DisplayFormatParser;\r\n}());\r\n\r\n//# sourceMappingURL=display_format_parser.js.map\n\n/***/ }),\n/* 381 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ColumnRendererSB; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__easyquery_core__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__easydata_ui__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_utils__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_browser_utils__ = __webpack_require__(9);\n\r\n\r\n\r\n\r\n\r\nvar ColumnRendererSB = /** @class */ (function () {\r\n function ColumnRendererSB(bar, column, slot) {\r\n this.functionMenu = null;\r\n this.isMouseOverBlock = false;\r\n this.keepShowingButtons = false;\r\n this.bar = bar;\r\n this.column = column;\r\n this.element = slot;\r\n }\r\n Object.defineProperty(ColumnRendererSB.prototype, \"cssPrefix\", {\r\n get: function () {\r\n return 'eqjs-sb';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ColumnRendererSB.prototype.render = function () {\r\n this.baseAttr = this.getAttribute();\r\n var builder = Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div');\r\n builder.data('id', this.column.id);\r\n if (this.element) {\r\n //to remove all event listeners\r\n this.element.parentNode\r\n .replaceChild(builder.toDOM(), this.element);\r\n }\r\n this.element = builder.toDOM();\r\n builder\r\n .addClass(this.getClassesToAdd())\r\n .addClass(__WEBPACK_IMPORTED_MODULE_4__utils_browser_utils__[\"a\" /* browserUtils */].getMobileCssClass())\r\n .addChildElement(this.renderCaptionBlock());\r\n if (this.isEditable()) {\r\n builder\r\n .addChildElement(this.renderSortingButton());\r\n }\r\n return this.element;\r\n };\r\n ColumnRendererSB.prototype.fireColumnChanged = function () {\r\n this.column.fireChangedEvent();\r\n };\r\n ColumnRendererSB.prototype.refresh = function () {\r\n this.render();\r\n };\r\n ColumnRendererSB.prototype.getAttribute = function () {\r\n var model = this.bar.getContext().getModel();\r\n return model.getAttributeById(this.column.expr.value);\r\n };\r\n ColumnRendererSB.prototype.isEditable = function () {\r\n return this.column.enabled && !this.column.isReadOnly();\r\n };\r\n ColumnRendererSB.prototype.renderCaptionBlock = function () {\r\n var _this = this;\r\n if (!this.column.caption || this.column.caption == '') {\r\n this.column.caption = this.getDefaultCaption();\r\n }\r\n function getArrow(sd) {\r\n switch (sd) {\r\n case __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"r\" /* SortDirection */].Ascending:\r\n return ' ↑';\r\n case __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"r\" /* SortDirection */].Descending:\r\n return ' ↓';\r\n default:\r\n return '';\r\n }\r\n }\r\n var text = this.column.caption;\r\n if (!this.isEditable()) {\r\n text += getArrow(this.column.sorting);\r\n }\r\n return Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div')\r\n .addClass(this.cssPrefix + \"-colelement\", this.cssPrefix + \"-captionelement\")\r\n .addClass(__WEBPACK_IMPORTED_MODULE_4__utils_browser_utils__[\"a\" /* browserUtils */].getMobileCssClass())\r\n .addChild('div', function (b) { return b\r\n .title(_this.column.caption)\r\n .text(text); })\r\n .toDOM();\r\n };\r\n ColumnRendererSB.prototype.renderSortingButton = function () {\r\n var _this = this;\r\n var sortButtonCssClass = __WEBPACK_IMPORTED_MODULE_3__utils_utils__[\"b\" /* eqCssPrefix */] + \"-column-sortbutton\";\r\n var sortButtonDirectionCssClass = sortButtonCssClass;\r\n switch (this.column.sorting) {\r\n case __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"r\" /* SortDirection */].None:\r\n sortButtonDirectionCssClass = sortButtonCssClass + \"-none\";\r\n break;\r\n case __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"r\" /* SortDirection */].Ascending:\r\n sortButtonDirectionCssClass = sortButtonCssClass + \"-asc\";\r\n break;\r\n case __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"r\" /* SortDirection */].Descending:\r\n sortButtonDirectionCssClass = sortButtonCssClass + \"-desc\";\r\n break;\r\n }\r\n var builder = Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div')\r\n .addClass(this.cssPrefix + \"-colelement\", this.cssPrefix + \"-sortimage-placeholder\")\r\n .addClass(__WEBPACK_IMPORTED_MODULE_4__utils_browser_utils__[\"a\" /* browserUtils */].getMobileCssClass())\r\n .addChild('div', function (builder) { return builder\r\n .addClass(_this.cssPrefix + \"-img-sorting\", sortButtonDirectionCssClass)\r\n .title(__WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('ButtonSorting')); })\r\n .on('touchstart click', function (ev) { return _this.buttonSortingClickHandler(ev, builder.toDOM()); });\r\n return builder.toDOM();\r\n };\r\n ColumnRendererSB.prototype.buttonSortingClickHandler = function (ev, anchor) {\r\n var _this = this;\r\n ev.stopPropagation();\r\n this.keepShowingButtons = true;\r\n var menu = this.bar.sortMenu;\r\n menu.showMenu({\r\n anchor: anchor,\r\n selectedIds: null,\r\n itemSelectedCallback: function (data, items) {\r\n var strToSortDirection = function (str) {\r\n if (str == 'None') {\r\n return __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"r\" /* SortDirection */].None;\r\n }\r\n else if (str == \"Ascending\") {\r\n return __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"r\" /* SortDirection */].Ascending;\r\n }\r\n else if (str == \"Descending\") {\r\n return __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"r\" /* SortDirection */].Descending;\r\n }\r\n };\r\n if (data.id == 'None' || data.id == \"Ascending\" || data.id == \"Descending\") {\r\n var query = _this.bar.getContext().getQuery();\r\n if (_this.column.isJustSorted() && data.id == 'None') {\r\n query.removeColumn(_this.column, _this.bar);\r\n query.fireColumnsChangedEvent(__WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"o\" /* QueryChangeAction */].Delete, _this.column, true);\r\n }\r\n else {\r\n _this.column.sorting = strToSortDirection(data.id);\r\n _this.column.sortIndex = query.getColumnSortIndex(_this.column);\r\n _this.fireColumnChanged();\r\n }\r\n }\r\n },\r\n menuClosedCallback: function () {\r\n _this.keepShowingButtons = false;\r\n }\r\n });\r\n return false;\r\n };\r\n ColumnRendererSB.prototype.getDefaultCaption = function () {\r\n return this.getDefaultTitleText(this.baseAttr);\r\n };\r\n ColumnRendererSB.prototype.getDefaultTitleText = function (attr) {\r\n var format = this.bar.options.titleElementFormat || this.bar.options.attrElementFormat;\r\n var model = this.bar.getContext().getModel();\r\n return model.getAttributeText(attr, format);\r\n };\r\n ColumnRendererSB.prototype.getClassesToAdd = function () {\r\n return this.cssPrefix + \"-row \" + this.cssPrefix + \"-row-column-entattr\";\r\n };\r\n ColumnRendererSB.prototype.getUIS = function () {\r\n return this.bar\r\n .getContext().getModel()\r\n .checkAttrProperty(this.column.expr.value, \"useInSorting\");\r\n };\r\n return ColumnRendererSB;\r\n}());\r\n\r\n//# sourceMappingURL=column_renderer.js.map\n\n/***/ }),\n/* 382 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return BindToParentColumnExpressionRenderer; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easyquery_core__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__list_expression_renderer__ = __webpack_require__(44);\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\n\r\nvar BindToParentColumnExpressionRenderer = /** @class */ (function (_super) {\r\n __extends(BindToParentColumnExpressionRenderer, _super);\r\n function BindToParentColumnExpressionRenderer(panel, expression, editor, slot) {\r\n var _this = _super.call(this, panel, expression, editor, slot) || this;\r\n _this.expression.tag = __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"k\" /* ExprTag */].ParentColumn;\r\n return _this;\r\n }\r\n BindToParentColumnExpressionRenderer.prototype.fillMenuItemsList = function (onComplete) {\r\n var query = this.panel.getQuery().getParentQuery();\r\n var parent = this.expression.getParent();\r\n var attrDataType = parent.expressions[0].dataType;\r\n this.menuItemsList = query\r\n .getColumns()\r\n .filter(function (col) { return col.expr.dataType == attrDataType; })\r\n .map(function (col) {\r\n return { id: col.id, text: col.caption };\r\n });\r\n if (onComplete) {\r\n onComplete();\r\n }\r\n };\r\n return BindToParentColumnExpressionRenderer;\r\n}(__WEBPACK_IMPORTED_MODULE_1__list_expression_renderer__[\"a\" /* CustomListExpressionRenderer */]));\r\n\r\n//# sourceMappingURL=bind_to_parent_column_expression_renderer.js.map\n\n/***/ }),\n/* 383 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export ManageDrillDownWidget */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easyquery_core__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__easydata_core__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__easydata_ui__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__columns_bar__ = __webpack_require__(68);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__query_panel__ = __webpack_require__(32);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils_utils__ = __webpack_require__(12);\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar ManageDrillDownWidget = /** @class */ (function (_super) {\r\n __extends(ManageDrillDownWidget, _super);\r\n function ManageDrillDownWidget(slot) {\r\n var _this = _super.call(this, slot) || this;\r\n _this.clickHandler = function () { return _this.openDialog(); };\r\n _this.columnsBar = null;\r\n _this.queryPanel = null;\r\n _this.ddQuery = null;\r\n _this.cssPrefix = __WEBPACK_IMPORTED_MODULE_5__utils_utils__[\"b\" /* eqCssPrefix */];\r\n _this.group = __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"u\" /* WidgetGroup */].None;\r\n return _this;\r\n }\r\n ManageDrillDownWidget.prototype.getWidgetType = function () {\r\n return 'manageDrillDown';\r\n };\r\n ManageDrillDownWidget.prototype.init = function (context, options) {\r\n _super.prototype.init.call(this, context, options);\r\n this.options = options;\r\n this.refresh();\r\n this.slot.addEventListener('click', this.clickHandler);\r\n };\r\n ManageDrillDownWidget.prototype.destroyCore = function () {\r\n this.slot.removeEventListener('click', this.clickHandler);\r\n };\r\n ManageDrillDownWidget.prototype.openDialog = function () {\r\n var _this = this;\r\n var dialogService = this.context.getServices().getDialogService();\r\n var query = this.context.getQuery();\r\n var model = this.context.getModel();\r\n var dialogBody = Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div')\r\n .addClass(this.cssPrefix + \"-manage-drilldown\")\r\n .addChildElement(this.renderColumnsBarBlock())\r\n .addChildElement(this.renderQueryPanelBlock())\r\n .toDOM();\r\n var op = model.addOrUpdateOperator({\r\n id: 'BindToParentColumn',\r\n caption: 'is bound to',\r\n format: '{expr1} [[is bound to]] {expr2}',\r\n paramCount: 2,\r\n kind: __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"d\" /* DataKind */].ParentColumn,\r\n appliedTypes: [__WEBPACK_IMPORTED_MODULE_1__easydata_core__[\"c\" /* DataType */].String, __WEBPACK_IMPORTED_MODULE_1__easydata_core__[\"c\" /* DataType */].Bool, __WEBPACK_IMPORTED_MODULE_1__easydata_core__[\"c\" /* DataType */].Float, __WEBPACK_IMPORTED_MODULE_1__easydata_core__[\"c\" /* DataType */].Int32, __WEBPACK_IMPORTED_MODULE_1__easydata_core__[\"c\" /* DataType */].Int64, __WEBPACK_IMPORTED_MODULE_1__easydata_core__[\"c\" /* DataType */].Word]\r\n });\r\n op.defaultOperand.dataType = __WEBPACK_IMPORTED_MODULE_1__easydata_core__[\"c\" /* DataType */].String;\r\n op.defaultOperand.kind = __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"d\" /* DataKind */].ParentColumn;\r\n model.runThroughEntities(function (attr) {\r\n var opIdx = attr.operators.indexOf(op.id);\r\n if (opIdx > 0) {\r\n __WEBPACK_IMPORTED_MODULE_1__easydata_core__[\"m\" /* utils */].moveArrayItem(attr.operators, opIdx, 0);\r\n }\r\n }, null);\r\n this.ddQuery = new __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"n\" /* Query */](model, null, {\r\n parent: query\r\n });\r\n var dds = this.context.getQuery().getDrillDowns();\r\n if (dds.length) {\r\n var dd = dds[0];\r\n this.ddQuery.loadFromData(dd.toJSONData());\r\n }\r\n dialogService.open({\r\n title: 'Manage Drill Down',\r\n body: dialogBody,\r\n cancelable: true,\r\n closable: false,\r\n beforeOpen: function () {\r\n var columnsBarSlot = dialogBody.getElementsByClassName(_this.cssPrefix + \"-columnsbar-slot\")[0];\r\n _this.columnsBar = new __WEBPACK_IMPORTED_MODULE_3__columns_bar__[\"a\" /* ColumnsBar */](columnsBarSlot, _this.ddQuery);\r\n _this.columnsBar.init(_this.context, _this.options.columnsBar);\r\n var queryPanelSlot = dialogBody.getElementsByClassName(_this.cssPrefix + \"-querypanel-slot\")[0];\r\n _this.queryPanel = new __WEBPACK_IMPORTED_MODULE_4__query_panel__[\"a\" /* QueryPanel */](queryPanelSlot, _this.ddQuery);\r\n _this.queryPanel.init(_this.context, _this.options.queryPanel);\r\n _this.columnsBar.refresh();\r\n _this.queryPanel.refresh();\r\n },\r\n onSubmit: function () {\r\n return _this.submitDialog();\r\n },\r\n onDestroy: function () {\r\n _this.destroyDialog();\r\n }\r\n });\r\n };\r\n ManageDrillDownWidget.prototype.renderQueryPanelBlock = function () {\r\n var _this = this;\r\n return Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div')\r\n .addClass(this.cssPrefix + \"-querypanel-block\")\r\n .addChild('div', function (b) { return b\r\n .addClass(_this.cssPrefix + \"-querypanel-caption\"); })\r\n .addChild('div', function (b) { return b\r\n .addClass(_this.cssPrefix + \"-querypanel-slot\"); })\r\n .toDOM();\r\n };\r\n ManageDrillDownWidget.prototype.renderColumnsBarBlock = function () {\r\n var _this = this;\r\n return Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div')\r\n .addClass(this.cssPrefix + \"-columnsbar-block\")\r\n .addChild('div', function (b) { return b\r\n .addClass(_this.cssPrefix + \"-columnsbar-caption\"); })\r\n .addChild('div', function (b) { return b\r\n .addClass(_this.cssPrefix + \"-columnsbar-slot\"); })\r\n .toDOM();\r\n };\r\n ManageDrillDownWidget.prototype.submitDialog = function () {\r\n if (this.ddQuery.tryValidate({\r\n checkExpressions: true\r\n })) {\r\n var dds = this.context.getQuery().getDrillDowns();\r\n if (dds.length) {\r\n dds[0].loadFromData(this.ddQuery.toJSONData());\r\n this.context.getQuery().fireChangedEvent();\r\n }\r\n else {\r\n if (!this.ddQuery.isEmpty()) {\r\n var dd = this.context.getQuery().addDrillDown();\r\n dd.loadFromData(this.ddQuery.toJSONData());\r\n this.context.getQuery().fireChangedEvent();\r\n }\r\n }\r\n return true;\r\n }\r\n return false;\r\n };\r\n ManageDrillDownWidget.prototype.destroyDialog = function () {\r\n var model = this.context.getModel();\r\n model.removeOperator('BindToParentColumn', true);\r\n this.ddQuery = null;\r\n this.columnsBar && this.columnsBar.destroy();\r\n this.columnsBar = null;\r\n this.queryPanel && this.queryPanel.destroy();\r\n this.queryPanel = null;\r\n };\r\n return ManageDrillDownWidget;\r\n}(__WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"t\" /* Widget */]));\r\n\r\n//# sourceMappingURL=manage_drilldown_widget.js.map\n\n/***/ }),\n/* 384 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return FacetContainer; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easyquery_core__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__types_facet_type__ = __webpack_require__(26);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__facets_chart_facet__ = __webpack_require__(185);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__facets_pivot_table_facet__ = __webpack_require__(187);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__facets_datatable_facet__ = __webpack_require__(188);\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\n\r\n\r\n\r\n\r\nvar FacetContainer = /** @class */ (function (_super) {\r\n __extends(FacetContainer, _super);\r\n function FacetContainer(slot) {\r\n var _this = _super.call(this, slot) || this;\r\n _this.facets = [];\r\n _this.options = {};\r\n _this.group = __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"u\" /* WidgetGroup */].Result;\r\n return _this;\r\n }\r\n FacetContainer.prototype.destroyCore = function () {\r\n for (var _i = 0, _a = this.facets; _i < _a.length; _i++) {\r\n var facet = _a[_i];\r\n facet.destroy();\r\n }\r\n this.clear();\r\n };\r\n FacetContainer.prototype.createFacetTab = function (type) {\r\n var options = this.options[type];\r\n switch (type) {\r\n case __WEBPACK_IMPORTED_MODULE_1__types_facet_type__[\"a\" /* FacetType */].Chart:\r\n return new __WEBPACK_IMPORTED_MODULE_2__facets_chart_facet__[\"a\" /* ChartFacet */](this, options);\r\n case __WEBPACK_IMPORTED_MODULE_1__types_facet_type__[\"a\" /* FacetType */].PivotTable:\r\n return new __WEBPACK_IMPORTED_MODULE_3__facets_pivot_table_facet__[\"a\" /* PivotTableFacet */](this, options);\r\n default:\r\n return new __WEBPACK_IMPORTED_MODULE_4__facets_datatable_facet__[\"a\" /* DataTableFacet */](this, options);\r\n }\r\n };\r\n FacetContainer.prototype.getQuery = function () {\r\n return this.getContext().getQuery();\r\n };\r\n return FacetContainer;\r\n}(__WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"t\" /* Widget */]));\r\n\r\n//# sourceMappingURL=facet_container.js.map\n\n/***/ }),\n/* 385 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return LocaleWidget; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__easyquery_core__ = __webpack_require__(7);\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\n\r\nvar LocaleWidget = /** @class */ (function (_super) {\r\n __extends(LocaleWidget, _super);\r\n /**\r\n * The default constructor.\r\n * @param slot The html element.\r\n */\r\n function LocaleWidget(slot) {\r\n var _this = _super.call(this, slot) || this;\r\n _this.changeLocale = function () {\r\n var newLocale = _this.selectEl.value;\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].setCurrentLocale(newLocale);\r\n _this.context.refreshWidgets(__WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"u\" /* WidgetGroup */].All);\r\n };\r\n _this.group = __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"u\" /* WidgetGroup */].None;\r\n return _this;\r\n }\r\n LocaleWidget.prototype.init = function (context, options) {\r\n _super.prototype.init.call(this, context, options);\r\n this.clear();\r\n this.render();\r\n };\r\n LocaleWidget.prototype.getWidgetType = function () {\r\n return 'changeLocale';\r\n };\r\n LocaleWidget.prototype.render = function () {\r\n var locales = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getLocales();\r\n if (locales.length > 1) {\r\n this.selectEl = document.createElement('select');\r\n for (var _i = 0, locales_1 = locales; _i < locales_1.length; _i++) {\r\n var locale = locales_1[_i];\r\n var optionEl = document.createElement('option');\r\n optionEl.value = locale.locale;\r\n optionEl.innerHTML = this.displayLocaleName(locale);\r\n this.selectEl.appendChild(optionEl);\r\n }\r\n this.selectEl.value = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getCurrentLocale();\r\n this.selectEl.classList.add('eqv-select');\r\n this.selectEl.addEventListener('change', this.changeLocale);\r\n this.slot.appendChild(this.selectEl);\r\n }\r\n };\r\n LocaleWidget.prototype.displayLocaleName = function (locale) {\r\n if (locale.englishName && locale.displayName) {\r\n return locale.englishName + \" - \" + locale.displayName;\r\n }\r\n else if (locale.englishName) {\r\n return locale.englishName;\r\n }\r\n else if (locale.displayName) {\r\n return locale.displayName;\r\n }\r\n return locale.locale;\r\n };\r\n LocaleWidget.prototype.clear = function () {\r\n this.slot.innerHTML = \"\";\r\n };\r\n LocaleWidget.prototype.destroyCore = function () {\r\n this.clear();\r\n };\r\n return LocaleWidget;\r\n}(__WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"t\" /* Widget */]));\r\n\r\n//# sourceMappingURL=locale_widget.js.map\n\n/***/ }),\n/* 386 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QueryNameWidget; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easyquery_core__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_browser_utils__ = __webpack_require__(9);\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\n\r\n/**\r\n * The widget responsed for rendering the name of the current query.\r\n */\r\nvar QueryNameWidget = /** @class */ (function (_super) {\r\n __extends(QueryNameWidget, _super);\r\n /**\r\n * The default constructor.\r\n * @param slot The HTML element where our widget should be placed.\r\n */\r\n function QueryNameWidget(slot) {\r\n var _this = _super.call(this, slot) || this;\r\n _this.queryEventCallbackId = null;\r\n _this.group = __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"u\" /* WidgetGroup */].Query | __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"u\" /* WidgetGroup */].QueryStatus;\r\n return _this;\r\n }\r\n QueryNameWidget.prototype.init = function (context, options) {\r\n _super.prototype.init.call(this, context, options);\r\n this.destroyCore();\r\n this.attachQueryObserver();\r\n };\r\n Object.defineProperty(QueryNameWidget.prototype, \"cssPrefix\", {\r\n get: function () {\r\n return 'eqjs-query-name';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n QueryNameWidget.prototype.getWidgetType = function () {\r\n return 'queryName';\r\n };\r\n /**\r\n * Refresh widget implementation\r\n */\r\n QueryNameWidget.prototype.refreshCore = function () {\r\n this.render();\r\n };\r\n QueryNameWidget.prototype.render = function () {\r\n this.slot.classList.add(\"\" + this.cssPrefix);\r\n var mobClass = __WEBPACK_IMPORTED_MODULE_1__utils_browser_utils__[\"a\" /* browserUtils */].getMobileCssClass();\r\n if (mobClass) {\r\n this.slot.classList.add(mobClass);\r\n }\r\n if (!this.nameSlot) {\r\n this.nameSlot = document.createElement('div');\r\n this.nameSlot.classList.add(this.cssPrefix + \"-text\");\r\n this.nameSlot.classList.add(this.cssPrefix + \"-theme\");\r\n this.slot.appendChild(this.nameSlot);\r\n }\r\n if (!this.asteriskSlot) {\r\n this.asteriskSlot = document.createElement('span');\r\n this.asteriskSlot.innerHTML = \"*\";\r\n this.asteriskSlot.classList.add(this.cssPrefix + \"-asterisk\");\r\n this.slot.appendChild(this.asteriskSlot);\r\n }\r\n if (!this.tooltipSlot) {\r\n this.tooltipSlot = document.createElement('span');\r\n this.tooltipSlot.classList.add(this.cssPrefix + \"-tooltip\");\r\n this.tooltipSlot.classList.add(this.cssPrefix + \"-theme\");\r\n this.slot.appendChild(this.tooltipSlot);\r\n }\r\n // Update\r\n var queryName = this.context.getQuery().getName();\r\n this.nameSlot.textContent = queryName;\r\n this.tooltipSlot.textContent = queryName;\r\n this.asteriskSlot.style.visibility = this.context.getQuery().isModified() ? \"visible\" : \"hidden\";\r\n };\r\n QueryNameWidget.prototype.clear = function () {\r\n this.slot.innerHTML = \"\";\r\n this.nameSlot = null;\r\n this.tooltipSlot = null;\r\n this.asteriskSlot = null;\r\n };\r\n QueryNameWidget.prototype.attachQueryObserver = function () {\r\n var _this = this;\r\n var query = this.context.getQuery();\r\n this.queryEventCallbackId = query.addChangedCallback(function (event) {\r\n _this.refreshCore();\r\n });\r\n };\r\n QueryNameWidget.prototype.detachQueryObserver = function () {\r\n if (this.queryEventCallbackId) {\r\n var query = this.context.getQuery();\r\n query.removeChangedCallback(this.queryEventCallbackId);\r\n }\r\n };\r\n QueryNameWidget.prototype.destroyCore = function () {\r\n this.clear();\r\n this.detachQueryObserver();\r\n };\r\n return QueryNameWidget;\r\n}(__WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"t\" /* Widget */]));\r\n\r\n//# sourceMappingURL=queryname_widget.js.map\n\n/***/ }),\n/* 387 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return AdvancedSearchView; });\n/* unused harmony export AdvancedSearchViewJQuery */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__easyquery_core__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__easydata_ui__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_popup_menu__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_browser_utils__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__views_view__ = __webpack_require__(47);\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * The EasyQuery client-side view that represents the UI for advanced search page\r\n */\r\nvar AdvancedSearchView = /** @class */ (function (_super) {\r\n __extends(AdvancedSearchView, _super);\r\n function AdvancedSearchView() {\r\n var _this = _super.call(this) || this;\r\n _this.exportButtons = [];\r\n // Name of the class to add to disabled elements.\r\n _this.disabledClass = \"eqjs-disabled\";\r\n _this.dropdownContainerClass = \"eqv-dropdown-container\";\r\n _this.dropdownButtonClass = \"eqv-drop-button\";\r\n _this.dropdownContentClass = \"eqv-dropdown-content\";\r\n _this.dropdownShowClass = \"eqv-dropdown-show\";\r\n _this._querySaveTemplate = \"
\\n
\\n \\n \\n
\\n
\";\r\n _this.queryListMenu = null;\r\n _this.fetchDataButtonClickHandler = _this.fetchDataButtonClick.bind(_this);\r\n _this.clearQueryButtonClickHandler = _this.clearQueryButtonClick.bind(_this);\r\n _this.newQueryButtonClickHandler = _this.newQueryButtonClick.bind(_this);\r\n _this.loadQueryButtonClickHandler = _this.loadQueryButtonClick.bind(_this);\r\n _this.saveQueryButtonClickHandler = _this.saveQueryButtonClick.bind(_this);\r\n _this.copyQueryButtonClickHandler = _this.copyQueryButtonClick.bind(_this);\r\n _this.removeQueryButtonClickHandler = _this.removeQueryButtonClick.bind(_this);\r\n _this.storageButtonClickHandler = _this.storageDropButtonClick.bind(_this);\r\n _this.saveQueryToFileButtonClickHandler = _this.saveQueryToFileButtonClick.bind(_this);\r\n _this.loadQueryFromFileButtonClickHandler = _this.loadQueryFromFileButtonClick.bind(_this);\r\n var self = _this;\r\n _this.exportButtonClickHandler = function (e) {\r\n if (!this.classList.contains(self.disabledClass)) {\r\n var format = this.getAttribute(\"data-format\");\r\n self.getContext().exportResult({ format: format });\r\n }\r\n };\r\n _this.queryChangedHandler = function (ev) {\r\n var eventData = ev.data;\r\n if (_this.resultOptions.clearResultOnQueryChange) {\r\n _this.context.clearResult();\r\n _this.context.refreshWidgets(__WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"u\" /* WidgetGroup */].Result);\r\n }\r\n _this.disableExportButtons();\r\n if (_this.resultCountSlot) {\r\n _this.resultCountSlot.style.display = \"none\";\r\n }\r\n if (_this.options.syncQueryOnChange) {\r\n _this.syncQuery();\r\n }\r\n // if (this.options.executeQueryOnChange) {\r\n // console.warn('`options.executeQueryOnChange` is deprecated. Use fetchDataOnChange instead');\r\n // this.options.fetchDataOnChange = true;\r\n // }\r\n if (_this.options.fetchDataOnChange) {\r\n if (!eventData || (eventData.part != __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"p\" /* QueryChangePart */].ExtraData\r\n && eventData.part != __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"p\" /* QueryChangePart */].Facets)) {\r\n _this.fetchData();\r\n }\r\n }\r\n };\r\n _this.outsideClickHandler = function (event) {\r\n var currentContent = null;\r\n if (event.target.matches(\".\" + _this.dropdownButtonClass)) {\r\n currentContent = event.target.parentElement.querySelector(\".\" + _this.dropdownContentClass);\r\n }\r\n else if (event.target.matches(\".\" + _this.dropdownButtonClass + \" > span\")) {\r\n currentContent = event.target.parentElement.parentElement.querySelector(\".\" + _this.dropdownContentClass);\r\n }\r\n var dropdowns = _this.resolveElementsByClassName(_this.dropdownContentClass);\r\n for (var i = 0; i < dropdowns.length; i++) {\r\n var openDropdown = dropdowns[i];\r\n if (currentContent != openDropdown) {\r\n if (openDropdown.classList.contains(_this.dropdownShowClass)) {\r\n openDropdown.classList.remove(_this.dropdownShowClass);\r\n }\r\n }\r\n }\r\n };\r\n return _this;\r\n }\r\n AdvancedSearchView.prototype.refreshQueryList = function () {\r\n var _this = this;\r\n if (this.queryListPanel) {\r\n this.queryListPanel.innerHTML = '';\r\n this.context.loadQueryList({\r\n success: function (data) {\r\n var b = Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('ul', _this.queryListPanel)\r\n .addClass('list-group list-group-flush');\r\n data.map(function (item) {\r\n b.addChild('li', function (b) {\r\n b.addClass('list-group-item')\r\n .setStyle('cursor', 'pointer')\r\n .data('id', item.id)\r\n .text(item.name)\r\n .on('click', function () {\r\n _this.checkIfQueryModified(function () { return _this.loadQuery(item.id); });\r\n });\r\n });\r\n });\r\n }\r\n });\r\n }\r\n };\r\n AdvancedSearchView.prototype.initOptions = function (options) {\r\n this.options = _super.prototype.initOptions.call(this, options);\r\n if (typeof (this.options.syncQueryOnChange) == 'undefined') {\r\n this.options.syncQueryOnChange = true;\r\n }\r\n var query = this.context.getQuery();\r\n query.addChangedCallback(this.queryChangedHandler);\r\n // hide any dropdown menu when user clicks somewhere\r\n window.addEventListener('click', this.outsideClickHandler);\r\n return this.options;\r\n };\r\n AdvancedSearchView.prototype.initWidgets = function (options) {\r\n var _this = this;\r\n _super.prototype.initWidgets.call(this, options);\r\n var exportClass = \"eqjs-export\";\r\n var queryContentInputId = \"QueryContentJson\";\r\n var clearQueryButtonId = \"ClearQueryButton\";\r\n var newQueryButtonId = \"NewQueryButton\";\r\n var loadQueryButtonId = \"LoadQueryButton\";\r\n var saveQueryButtonId = \"SaveQueryButton\";\r\n var copyQueryButtonId = \"CopyQueryButton\";\r\n var removeQueryButtonId = \"RemoveQueryButton\";\r\n var storageButtonId = \"StorageDropButton\";\r\n var fetchDataButtonId = \"FetchDataButton\";\r\n var loadQueryFromFileButtonId = \"LoadQueryFromFileButton\";\r\n var saveQueryToFileButtonId = \"SaveQueryToFileButton\";\r\n var queryListPanelId = \"QueryListPanel\";\r\n if (options.slots) {\r\n queryContentInputId = options.slots.queryContentInput || queryContentInputId;\r\n fetchDataButtonId = options.slots.fetchDataButton || fetchDataButtonId;\r\n clearQueryButtonId = options.slots.clearQueryButton || clearQueryButtonId;\r\n newQueryButtonId = options.slots.newQueryButton || newQueryButtonId;\r\n loadQueryButtonId = options.slots.loadQueryButton || loadQueryButtonId;\r\n saveQueryButtonId = options.slots.saveQueryButton || saveQueryButtonId;\r\n copyQueryButtonId = options.slots.copyQueryButton || copyQueryButtonId;\r\n removeQueryButtonId = options.slots.removeQueryButton || removeQueryButtonId;\r\n storageButtonId = options.slots.storageButton || storageButtonId;\r\n exportClass = options.slots.exportClass || exportClass;\r\n loadQueryFromFileButtonId = options.slots.loadQueryFromFileButton || loadQueryFromFileButtonId;\r\n saveQueryToFileButtonId = options.slots.saveQueryToFileButton || saveQueryToFileButtonId;\r\n queryListPanelId = options.slots.queryListPanel || queryListPanelId;\r\n }\r\n this.exportButtons = this.domRoots.reduce(function (elems, root) {\r\n return elems.concat(Array.from(root.querySelectorAll(\".\" + exportClass)));\r\n }, []);\r\n if (!options.enableExport) {\r\n this.hideExportButtons();\r\n }\r\n this.disableExportButtons();\r\n //Add event listener for export buttons\r\n var self = this;\r\n this.exportButtons.forEach(function (button) {\r\n button.addEventListener('click', _this.exportButtonClickHandler);\r\n });\r\n if (!this.fetchDataButton) {\r\n this.fetchDataButton = this.resolveElement(fetchDataButtonId);\r\n if (!this.fetchDataButton) {\r\n this.fetchDataButton = this.resolveElement('ExecuteQueryButton'); //deprecated, should be removed on the next major update\r\n }\r\n if (this.fetchDataButton) {\r\n this.fetchDataButton.addEventListener('click', this.fetchDataButtonClickHandler);\r\n }\r\n }\r\n if (!this.clearQueryButton) {\r\n this.clearQueryButton = this.resolveElement(clearQueryButtonId);\r\n if (this.clearQueryButton) {\r\n this.clearQueryButton.addEventListener('click', this.clearQueryButtonClickHandler);\r\n }\r\n }\r\n if (!this.newQueryButton) {\r\n this.newQueryButton = this.resolveElement(newQueryButtonId);\r\n if (this.newQueryButton) {\r\n this.newQueryButton.addEventListener('click', this.newQueryButtonClickHandler);\r\n }\r\n }\r\n if (!this.loadQueryButton) {\r\n this.loadQueryButton = this.resolveElement(loadQueryButtonId);\r\n if (this.loadQueryButton) {\r\n this.loadQueryButton.addEventListener('click', this.loadQueryButtonClickHandler);\r\n }\r\n }\r\n if (!this.saveQueryButton) {\r\n this.saveQueryButton = this.resolveElement(saveQueryButtonId);\r\n if (this.saveQueryButton) {\r\n this.saveQueryButton.addEventListener('click', this.saveQueryButtonClickHandler);\r\n }\r\n }\r\n if (!this.copyQueryButton) {\r\n this.copyQueryButton = this.resolveElement(copyQueryButtonId);\r\n if (this.copyQueryButton) {\r\n this.copyQueryButton.addEventListener('click', this.copyQueryButtonClickHandler);\r\n }\r\n }\r\n if (!this.removeQueryButton) {\r\n this.removeQueryButton = this.resolveElement(removeQueryButtonId);\r\n if (this.removeQueryButton) {\r\n this.removeQueryButton.addEventListener('click', this.removeQueryButtonClickHandler);\r\n }\r\n }\r\n if (!this.storageDropButton) {\r\n this.storageDropButton = this.resolveElement(storageButtonId);\r\n if (this.storageDropButton) {\r\n this.storageDropButton.addEventListener('click', this.storageButtonClickHandler);\r\n }\r\n }\r\n if (!this.saveQueryToFileButton) {\r\n this.saveQueryToFileButton = this.resolveElement(saveQueryToFileButtonId);\r\n if (this.saveQueryToFileButton) {\r\n this.saveQueryToFileButton.addEventListener('click', this.saveQueryToFileButtonClickHandler);\r\n }\r\n }\r\n if (!this.queryListPanel) {\r\n this.queryListPanel = this.resolveElement(queryListPanelId);\r\n //For backward compatibility. Remove on the next update\r\n if (!this.queryListPanel) {\r\n this.queryListPanel = this.resolveElement('QueryListSlot');\r\n }\r\n if (this.queryListPanel) {\r\n this.context.addEventListener('ready', function () {\r\n _this.refreshQueryList();\r\n });\r\n }\r\n }\r\n if (!this.loadQueryFromFileButton) {\r\n this.loadQueryFromFileButton = this.resolveElement(loadQueryFromFileButtonId);\r\n if (this.loadQueryFromFileButton) {\r\n this.loadQueryFromFileInput = document.createElement('input');\r\n this.loadQueryFromFileInput.type = 'file';\r\n this.loadQueryFromFileInput.accept = options.queryFileExtensions;\r\n this.loadQueryFromFileInput.style.display = 'none';\r\n document.body.appendChild(this.loadQueryFromFileInput);\r\n this.loadQueryFromFileInput.addEventListener('change', this.loadQueryFromFileInputSelect.bind(this));\r\n this.loadQueryFromFileButton.addEventListener('click', this.loadQueryFromFileButtonClickHandler);\r\n }\r\n }\r\n };\r\n /**\r\n * Sends current query to the backend.\r\n */\r\n AdvancedSearchView.prototype.syncQuery = function () {\r\n var _this = this;\r\n this.context.syncQuery({\r\n success: function (responseData) {\r\n if (responseData.statement) {\r\n _this.context.refreshWidgets(__WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"u\" /* WidgetGroup */].Statement);\r\n }\r\n }\r\n });\r\n };\r\n /**\r\n * Disables export buttons.\r\n */\r\n AdvancedSearchView.prototype.disableExportButtons = function () {\r\n var _this = this;\r\n this.exportButtons.forEach(function (button) {\r\n button.disabled = true;\r\n if (!button.classList.contains(_this.disabledClass)) {\r\n button.classList.add(_this.disabledClass);\r\n }\r\n });\r\n };\r\n /**\r\n * Enables export buttons.\r\n */\r\n AdvancedSearchView.prototype.enableExportButtons = function () {\r\n var _this = this;\r\n this.exportButtons.forEach(function (button) {\r\n button.disabled = false;\r\n if (button.classList.contains(_this.disabledClass)) {\r\n button.classList.remove(_this.disabledClass);\r\n }\r\n });\r\n };\r\n /**\r\n * Hides export buttons.\r\n */\r\n AdvancedSearchView.prototype.hideExportButtons = function () {\r\n this.exportButtons.forEach(function (button) {\r\n button.style.display = \"none\";\r\n });\r\n };\r\n AdvancedSearchView.prototype.clearQueryButtonClick = function () {\r\n this.context.clearQuery();\r\n this.context.refreshWidgets(__WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"u\" /* WidgetGroup */].Statement);\r\n };\r\n AdvancedSearchView.prototype.createNewQuery = function (options) {\r\n return this.context.newQuery(options);\r\n };\r\n AdvancedSearchView.prototype.loadQuery = function (queryId) {\r\n if (!queryId)\r\n return;\r\n this.context.loadQuery({\r\n queryId: queryId,\r\n silent: false\r\n });\r\n };\r\n AdvancedSearchView.prototype.saveQuery = function (success, error) {\r\n var _this = this;\r\n this.context.saveQuery({\r\n success: function () {\r\n if (success)\r\n success();\r\n _this.context.getQuery().fireChangedEvent({\r\n part: __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"p\" /* QueryChangePart */].Properties,\r\n wasModified: false\r\n });\r\n _this.refreshQueryList();\r\n },\r\n error: error\r\n });\r\n };\r\n AdvancedSearchView.prototype.saveCurrentQuery = function (copyQuery, callback) {\r\n var _this = this;\r\n if (copyQuery === void 0) { copyQuery = false; }\r\n var query = this.context.getQuery();\r\n if (query.isNewbie || copyQuery) {\r\n this.showSaveQueryDialog(function (result) { return new Promise(function (resolve) {\r\n if (!result)\r\n return;\r\n query.regenerateId();\r\n query.setName(result);\r\n query.fireChangedEvent({\r\n part: __WEBPACK_IMPORTED_MODULE_1__easyquery_core__[\"p\" /* QueryChangePart */].Properties,\r\n wasModified: true\r\n });\r\n _this.saveQuery(function () { resolve({ success: true }); callback; }, function (error) { return resolve({ success: false, message: error }); });\r\n }); });\r\n }\r\n else {\r\n this.saveQuery(callback);\r\n }\r\n };\r\n AdvancedSearchView.prototype.checkIfQueryModified = function (callback) {\r\n var _this = this;\r\n if (this.context.getQuery().isModified()\r\n && !this.options.disableConfirmationOnQueryChange) {\r\n this.showQueryChangedDialog(function (result) {\r\n if (result) {\r\n _this.saveCurrentQuery(false, callback);\r\n }\r\n else {\r\n callback();\r\n }\r\n });\r\n }\r\n else {\r\n callback();\r\n }\r\n };\r\n AdvancedSearchView.prototype.removeCurrentQuery = function () {\r\n var _this = this;\r\n this.context.removeQuery({\r\n success: function () {\r\n _this.createNewQuery({\r\n useStorage: false\r\n });\r\n if (_this.resultCountSlot) {\r\n _this.resultCountSlot.style.display = \"none\";\r\n }\r\n _this.context.clearResult();\r\n _this.refreshQueryList();\r\n }\r\n });\r\n };\r\n // ------------------ Dialog wrappers ---------------------\r\n AdvancedSearchView.prototype.showNewQueryDialog = function (callback) {\r\n var ds = this.context.getServices().getDialogService();\r\n var defVal = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('NewQueryDefName');\r\n var dlg = ds.open({\r\n title: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('NewQueryTitle'),\r\n body: this._querySaveTemplate,\r\n submitable: true,\r\n closable: true,\r\n cancelable: true,\r\n submitOnEnter: true,\r\n arrangeParents: false,\r\n beforeOpen: function () {\r\n var input = document.getElementById(\"kdlg-dialog-form-input\");\r\n if (defVal) {\r\n input.value = defVal;\r\n }\r\n var content = document.getElementById('kdlg-dialog-form-content');\r\n content.innerHTML = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('NewQueryContent');\r\n input.focus();\r\n },\r\n onSubmit: function () {\r\n var input = document.getElementById(\"kdlg-dialog-form-input\");\r\n var value = input.value;\r\n if (value && value.replace(/\\s/g, '').length > 0) {\r\n if (!callback)\r\n return true;\r\n dlg.disableButtons();\r\n var header_1 = dlg.getRootElement().querySelector('header');\r\n var processEl_1 = Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div', header_1)\r\n .addClass('eqjs-process-bar local')\r\n .toDOM();\r\n callback(value)\r\n .then(function (result) {\r\n header_1.removeChild(processEl_1);\r\n dlg.enableButtons();\r\n if (result.success) {\r\n dlg.close();\r\n }\r\n else {\r\n dlg.showAlert(result.message, 'error');\r\n }\r\n });\r\n }\r\n return false;\r\n }\r\n });\r\n };\r\n AdvancedSearchView.prototype.showQueryChangedDialog = function (callback) {\r\n var ds = this.context.getServices().getDialogService();\r\n ds.openConfirm(__WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('QueryChangedTitle'), __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('QueryChangedContent'), callback);\r\n };\r\n AdvancedSearchView.prototype.showSaveQueryDialog = function (callback) {\r\n var ds = this.context.getServices().getDialogService();\r\n var query = this.context.getQuery();\r\n var newQueryName = query.isNewbie\r\n ? query.getName()\r\n : __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('SaveQueryDefName').replace('{queryName}', query.getName());\r\n var dlg = ds.open({\r\n title: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('SaveQueryTitle'),\r\n body: this._querySaveTemplate,\r\n submitable: true,\r\n closable: true,\r\n cancelable: true,\r\n submitOnEnter: true,\r\n arrangeParents: false,\r\n beforeOpen: function () {\r\n var input = document.getElementById(\"kdlg-dialog-form-input\");\r\n input.value = newQueryName;\r\n var content = document.getElementById('kdlg-dialog-form-content');\r\n content.innerHTML = __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('SaveQueryContent');\r\n input.focus();\r\n },\r\n onSubmit: function () {\r\n var input = document.getElementById(\"kdlg-dialog-form-input\");\r\n var value = input.value;\r\n if (value && value.replace(/\\s/g, '').length > 0) {\r\n if (!callback)\r\n return true;\r\n dlg.disableButtons();\r\n var header_2 = dlg.getRootElement().querySelector('header');\r\n var processEl_2 = Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div', header_2)\r\n .addClass('eqjs-process-bar local')\r\n .toDOM();\r\n callback(value)\r\n .then(function (result) {\r\n dlg.enableButtons();\r\n header_2.removeChild(processEl_2);\r\n if (result.success) {\r\n dlg.close();\r\n }\r\n else {\r\n dlg.showAlert(result.message, 'error');\r\n }\r\n });\r\n }\r\n return false;\r\n }\r\n });\r\n };\r\n AdvancedSearchView.prototype.showRemoveQueryDialog = function (callback) {\r\n var ds = this.context.getServices().getDialogService();\r\n var query = this.context.getQuery();\r\n ds.openConfirm(__WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('RemoveQueryTitle'), __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('RemoveQueryContent').replace('{queryName}', query.getName()), callback);\r\n };\r\n AdvancedSearchView.prototype.showSaveQueryToFileDialog = function (callback) {\r\n var ds = this.getContext().getServices().getDialogService();\r\n var query = this.context.getQuery();\r\n var body = this.renderSaveToFileDialogBody(query.getName());\r\n var dlg = ds.open({\r\n title: __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('SaveQueryToFileDlgTitle'),\r\n body: body,\r\n onSubmit: function () {\r\n var fileNameInput = body.querySelector('#kdlgFileNameInput');\r\n var fileName = fileNameInput ? fileNameInput.value : \"Query\";\r\n var formatSelector = body.querySelector('#kdlgFileFormatSelector');\r\n var format = formatSelector ? formatSelector.value : 'json';\r\n if (callback) {\r\n dlg.disableButtons();\r\n var header_3 = dlg.getRootElement().querySelector('header');\r\n var processEl_3 = Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div', header_3)\r\n .addClass('eqjs-process-bar local')\r\n .toDOM();\r\n callback(fileName, format)\r\n .then(function (result) {\r\n dlg.enableButtons();\r\n header_3.removeChild(processEl_3);\r\n if (result.success) {\r\n dlg.close();\r\n }\r\n else {\r\n dlg.showAlert(result.message, 'error');\r\n }\r\n });\r\n return false;\r\n }\r\n return true;\r\n }\r\n });\r\n };\r\n AdvancedSearchView.prototype.renderSaveToFileDialogBody = function (name, format) {\r\n if (format === void 0) { format = \"json\"; }\r\n var isIE = __WEBPACK_IMPORTED_MODULE_4__utils_browser_utils__[\"a\" /* browserUtils */].IsIE();\r\n var fieldsClass = isIE\r\n ? 'kfrm-fields-ie col-ie-1-4 label-align-right'\r\n : 'kfrm-fields col-a-1 label-align-right';\r\n var horizClass = isIE\r\n ? 'kfrm-fields-ie is-horizontal'\r\n : 'kfrm-fields is-horizontal';\r\n return Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div')\r\n .addClass('kfrm-form')\r\n .addChild('div', function (b) {\r\n b.addClass(fieldsClass)\r\n .addChild('label', function (b) { return b\r\n .attr('for', 'file_name')\r\n .addText(__WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].getText('FileNameLabel')); })\r\n .addChild('div', function (b) { return b\r\n .addClass(horizClass)\r\n .addChild('input', function (b) { return b\r\n .id('kdlgFileNameInput')\r\n .name('file_name')\r\n .type('text')\r\n .attr('value', name); })\r\n .addChild('label', function (b) { return b\r\n .addText('.'); })\r\n .addChild('div', function (b) { return b\r\n .addClass('kfrm-select')\r\n .addChild('select', function (b) { return b\r\n .id('kdlgFileFormatSelector')\r\n .addClass('kdlg-form-control')\r\n .addOption({\r\n value: 'xml',\r\n selected: 'xml' === format\r\n })\r\n .addOption({\r\n value: 'json',\r\n selected: 'json' === format\r\n }); }); }); });\r\n })\r\n .toDOM();\r\n };\r\n // ------------------ Query management buttons handler ---------------------\r\n AdvancedSearchView.prototype.newQueryButtonClick = function () {\r\n var _this = this;\r\n this.checkIfQueryModified(function () {\r\n _this.createNewQuery();\r\n });\r\n };\r\n AdvancedSearchView.prototype.saveQueryToFileButtonClick = function () {\r\n var _this = this;\r\n this.showSaveQueryToFileDialog(function (fileName, format) { return new Promise(function (resolve) {\r\n _this.context.getQueryFile({\r\n fileName: fileName,\r\n format: format,\r\n success: function () { return resolve({ success: true }); },\r\n error: function (error) { return resolve({ success: false, message: error }); }\r\n });\r\n }); });\r\n };\r\n AdvancedSearchView.prototype.loadQueryFromFileButtonClick = function () {\r\n var _this = this;\r\n this.checkIfQueryModified(function () {\r\n _this.showLoadQueryFromFileDialog();\r\n });\r\n };\r\n AdvancedSearchView.prototype.showLoadQueryFromFileDialog = function () {\r\n this.loadQueryFromFileInput.click();\r\n };\r\n AdvancedSearchView.prototype.loadQueryFromFileInputSelect = function () {\r\n var _this = this;\r\n var files = this.loadQueryFromFileInput.files;\r\n var file = files.item(0);\r\n var data = new FormData();\r\n data.append(file.name, file);\r\n this.loadQueryFromFileInput.value = \"\";\r\n this.context.uploadQueryFile({\r\n data: data,\r\n success: function () {\r\n _this.syncQuery();\r\n _this.refreshQueryList();\r\n }\r\n });\r\n };\r\n AdvancedSearchView.prototype.loadQueryButtonClick = function () {\r\n var _this = this;\r\n this.context.loadQueryList({\r\n success: function (data) {\r\n _this.fillLoadQueryButtonMenu(data);\r\n _this.queryListMenu.showMenu({\r\n anchor: _this.loadQueryButton,\r\n adjustHeight: false,\r\n itemSelectedCallback: function (data) {\r\n _this.checkIfQueryModified(function () { return _this.loadQuery(data.id); });\r\n }\r\n });\r\n }\r\n });\r\n };\r\n AdvancedSearchView.prototype.fillLoadQueryButtonMenu = function (queryList) {\r\n var query = this.getContext().getQuery();\r\n this.queryListMenu = new __WEBPACK_IMPORTED_MODULE_3__utils_popup_menu__[\"a\" /* PopupMenu */]({\r\n items: queryList.map(function (item) { return ({ id: item.id, text: item.name }); }),\r\n selectedIds: query.getId()\r\n });\r\n };\r\n AdvancedSearchView.prototype.saveQueryButtonClick = function () {\r\n this.saveCurrentQuery();\r\n };\r\n AdvancedSearchView.prototype.copyQueryButtonClick = function () {\r\n this.saveCurrentQuery(true);\r\n };\r\n AdvancedSearchView.prototype.removeQueryButtonClick = function () {\r\n var _this = this;\r\n this.showRemoveQueryDialog(function (result) {\r\n if (result) {\r\n _this.removeCurrentQuery();\r\n }\r\n });\r\n };\r\n AdvancedSearchView.prototype.storageDropButtonClick = function () {\r\n var _this = this;\r\n var container = this.storageDropButton.parentElement;\r\n var content = container.querySelector(\".\" + this.dropdownContentClass);\r\n if (content) {\r\n window.setTimeout(function () { return content.classList.toggle(_this.dropdownShowClass); }, 100);\r\n }\r\n };\r\n AdvancedSearchView.prototype.fetchDataButtonClick = function () {\r\n this.fetchData();\r\n };\r\n AdvancedSearchView.prototype.detach = function () {\r\n var _this = this;\r\n this.enableExportButtons();\r\n this.exportButtons.forEach(function (button) {\r\n button.removeEventListener('click', _this.exportButtonClickHandler);\r\n });\r\n this.exportButtons = [];\r\n if (this.fetchDataButton) {\r\n this.fetchDataButton.removeEventListener('click', this.fetchDataButtonClickHandler);\r\n this.fetchDataButton = null;\r\n }\r\n if (this.clearQueryButton) {\r\n this.clearQueryButton.removeEventListener('click', this.clearQueryButtonClickHandler);\r\n this.clearQueryButton = null;\r\n }\r\n if (this.newQueryButton) {\r\n this.newQueryButton.removeEventListener('click', this.newQueryButtonClickHandler);\r\n this.newQueryButton = null;\r\n }\r\n if (this.loadQueryButton) {\r\n this.loadQueryButton.removeEventListener('click', this.loadQueryButtonClickHandler);\r\n this.loadQueryButton = null;\r\n }\r\n if (this.saveQueryButton) {\r\n this.saveQueryButton.removeEventListener('click', this.saveQueryButtonClickHandler);\r\n this.saveQueryButton = null;\r\n }\r\n if (this.copyQueryButton) {\r\n this.copyQueryButton.removeEventListener('click', this.copyQueryButtonClickHandler);\r\n this.copyQueryButton = null;\r\n }\r\n if (this.removeQueryButton) {\r\n this.removeQueryButton.removeEventListener('click', this.removeQueryButtonClickHandler);\r\n this.removeQueryButton = null;\r\n }\r\n if (this.storageDropButton) {\r\n this.storageDropButton.removeEventListener('click', this.storageButtonClickHandler);\r\n this.storageDropButton = null;\r\n }\r\n if (this.saveQueryToFileButton) {\r\n this.saveQueryToFileButton.removeEventListener('click', this.saveQueryToFileButtonClickHandler);\r\n this.saveQueryToFileButton = null;\r\n }\r\n if (this.queryListPanel) {\r\n this.queryListPanel = null;\r\n }\r\n if (this.loadQueryFromFileButton) {\r\n if (this.loadQueryFromFileInput) {\r\n document.body.removeChild(this.loadQueryFromFileInput);\r\n }\r\n this.loadQueryFromFileButton.removeEventListener('click', this.loadQueryFromFileButtonClickHandler);\r\n this.loadQueryFromFileButton = null;\r\n }\r\n _super.prototype.detach.call(this);\r\n };\r\n return AdvancedSearchView;\r\n}(__WEBPACK_IMPORTED_MODULE_5__views_view__[\"a\" /* View */]));\r\n\r\n//left for backward compatibility\r\nvar AdvancedSearchViewJQuery = /** @class */ (function (_super) {\r\n __extends(AdvancedSearchViewJQuery, _super);\r\n function AdvancedSearchViewJQuery() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return AdvancedSearchViewJQuery;\r\n}(AdvancedSearchView));\r\n\r\n//# sourceMappingURL=adv_search_view.js.map\n\n/***/ }),\n/* 388 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export HtmlDataFilterView */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__widgets_eq_result_html_grid__ = __webpack_require__(180);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__data_filter_view__ = __webpack_require__(191);\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\n\r\n/**\r\n * The EasyQuery client-side view that represents the UI for data filtering page\r\n */\r\nvar HtmlDataFilterView = /** @class */ (function (_super) {\r\n __extends(HtmlDataFilterView, _super);\r\n function HtmlDataFilterView() {\r\n return _super.call(this) || this;\r\n }\r\n /**\r\n * Creates the widget that represents Grid Widget.\r\n * @param slot The HTMLElement to place the created widget in.\r\n * @returns the created Widget object.\r\n */\r\n HtmlDataFilterView.prototype.createResultGridWidget = function (element) {\r\n return new __WEBPACK_IMPORTED_MODULE_0__widgets_eq_result_html_grid__[\"a\" /* EqHtmlGrid */](element);\r\n };\r\n /**\r\n * Obsolete. Left for backward compatibility.\r\n * Use fetchData() instead\r\n */\r\n HtmlDataFilterView.prototype.applyQueryFilter = function () {\r\n console.warn('applyQueryFilter is obsolete. Use fetchData instead');\r\n this.fetchData();\r\n };\r\n return HtmlDataFilterView;\r\n}(__WEBPACK_IMPORTED_MODULE_1__data_filter_view__[\"a\" /* DataFilterView */]));\r\n\r\n//# sourceMappingURL=html_data_filter_view.js.map\n\n/***/ }),\n/* 389 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export ReportView */\n/* unused harmony export ReportViewJQuery */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easyquery_core__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__easydata_core__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__easydata_ui__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_browser_utils__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__view__ = __webpack_require__(47);\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * The view that represents the \"ad-hoc reporting\" scenario\r\n */\r\nvar ReportView = /** @class */ (function (_super) {\r\n __extends(ReportView, _super);\r\n function ReportView() {\r\n var _this = _super.call(this) || this;\r\n _this.reports = [];\r\n _this.reportCache = [];\r\n _this.exportButtons = [];\r\n _this.exportClass = \"eqjs-export\";\r\n _this.disabledClass = \"eqjs-disabled\";\r\n _this.enableExport = false;\r\n _this.useReportCache = true;\r\n _this._reportSaveTemplate = \"
\\n
\\n \\n \\n
\\n
\";\r\n var self = _this;\r\n _this.exportButtonClickHandler = function (e) {\r\n if (!this.classList.contains(self.disabledClass)) {\r\n var format = this.getAttribute(\"data-format\");\r\n self.getContext().exportResult({ format: format });\r\n }\r\n };\r\n _this.clearReportButtonClickHandler = _this.clearReportButtonClick.bind(_this);\r\n _this.newReportButtonClickHandler = _this.newReportButtonClick.bind(_this);\r\n _this.loadReportButtonClickHandler = _this.loadReportButtonClick.bind(_this);\r\n _this.saveReportButtonClickHandler = _this.saveReportButtonClick.bind(_this);\r\n _this.removeReportButtonClickHandler = _this.removeReportButtonClick.bind(_this);\r\n _this.updateReportButtonClickHandler = _this.updateReportButtonClick.bind(_this);\r\n __WEBPACK_IMPORTED_MODULE_3__utils_browser_utils__[\"a\" /* browserUtils */].onMobileModeChanged(function (_) {\r\n document.location.reload();\r\n });\r\n return _this;\r\n }\r\n ReportView.prototype.initOptions = function (options) {\r\n var _this = this;\r\n options = _super.prototype.initOptions.call(this, options);\r\n if (typeof (options.syncReportOnChange) === \"undefined\") {\r\n options.syncReportOnChange = true;\r\n }\r\n if (typeof (options.syncQueryOnChange) == \"undefined\") {\r\n options.syncQueryOnChange = options.syncReportOnChange;\r\n }\r\n if (typeof (options.useReportCache) !== \"undefined\") {\r\n this.useReportCache = options.useReportCache;\r\n }\r\n this.defaultReportId = options.defaultReportId;\r\n var query = this.context.getQuery();\r\n query.addChangedCallback(function (event) {\r\n var eventData = event.data;\r\n if (eventData) {\r\n if (eventData.changeType == \"query.switched\") {\r\n _this.context.refreshWidgets(__WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"u\" /* WidgetGroup */].Query);\r\n }\r\n else {\r\n _this.disableExportButtons();\r\n if (_this.resultCountSlot) {\r\n _this.resultCountSlot.style.display = \"none\";\r\n }\r\n }\r\n }\r\n if (options.syncQueryOnChange) {\r\n var needSync = eventData && eventData.changeType != \"query.switched\" && !eventData.noSync;\r\n if (needSync) {\r\n _this.syncReport();\r\n }\r\n }\r\n //clear dataset result on query change\r\n if (_this.resultOptions.clearResultOnQueryChange) {\r\n if (!eventData\r\n || eventData.changeType == \"query.switched\"\r\n || eventData.part == __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"p\" /* QueryChangePart */].ExtraData\r\n || eventData.part == __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"p\" /* QueryChangePart */].Facets) {\r\n return;\r\n }\r\n _this.context.clearResult();\r\n _this.context.refreshWidgets(__WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"u\" /* WidgetGroup */].Result);\r\n }\r\n });\r\n return options;\r\n };\r\n ReportView.prototype.initDone = function () {\r\n var _this = this;\r\n _super.prototype.initDone.call(this);\r\n window.setTimeout(function () {\r\n _this.context.loadQueryList({\r\n success: function (data) {\r\n if (Array.isArray(data)) {\r\n _this.reports = data;\r\n var exists = _this.reports.filter(function (r) { return r.id == _this.defaultReportId; }).length > 0;\r\n if (exists) {\r\n _this.renderReportList({ reportId: _this.defaultReportId });\r\n }\r\n else {\r\n _this.renderReportList();\r\n }\r\n }\r\n }\r\n });\r\n }, 100);\r\n };\r\n ReportView.prototype.initWidgets = function (options) {\r\n var _this = this;\r\n _super.prototype.initWidgets.call(this, options);\r\n var clearReportButton = \"ClearReportButton\";\r\n var newReportButton = \"NewReportButton\";\r\n var loadReportButton = \"LoadReportButton\";\r\n var saveReportButton = \"SaveReportButton\";\r\n var removeReportButton = \"RemoveReportButton\";\r\n var updateReportButton = \"UpdateReportButton\";\r\n var resultCountSpan = \"ResultCount\";\r\n var exportButtons = \"ResultExportButtons\";\r\n var exportClass = this.exportClass;\r\n if (options.slots) {\r\n resultCountSpan = options.slots.resultCountSpan || resultCountSpan;\r\n exportButtons = options.slots.exportButtons || exportButtons;\r\n clearReportButton = options.slots.clearReportButton || clearReportButton;\r\n newReportButton = options.slots.newReportButton || newReportButton;\r\n loadReportButton = options.slots.loadReportButton || loadReportButton;\r\n saveReportButton = options.slots.saveReportButton || saveReportButton;\r\n removeReportButton = options.slots.removeReportButton || removeReportButton;\r\n updateReportButton = options.slots.updateReportButton || updateReportButton;\r\n exportClass = options.slots.exportClass || exportClass;\r\n }\r\n this.exportButtons = this.domRoots.reduce(function (elems, root) {\r\n return elems.concat(Array.from(root.querySelectorAll(\".\" + exportClass)));\r\n }, []);\r\n this.enableExport = options.enableExport;\r\n if (this.enableExport) {\r\n //Add event listener for export buttons\r\n this.exportButtons.forEach(function (button) {\r\n button.addEventListener('click', _this.exportButtonClickHandler);\r\n });\r\n }\r\n else {\r\n this.hideExportButtons();\r\n }\r\n this.exportButtonsContainer = this.resolveElement(exportButtons);\r\n if (!this.clearReportButton) {\r\n this.clearReportButton = this.resolveElement(clearReportButton);\r\n if (this.clearReportButton) {\r\n this.clearReportButton.addEventListener('click', this.clearReportButtonClickHandler);\r\n }\r\n }\r\n if (!this.newReportButton) {\r\n this.newReportButton = this.resolveElement(newReportButton);\r\n if (this.newReportButton) {\r\n this.newReportButton.addEventListener('click', this.newReportButtonClickHandler);\r\n }\r\n }\r\n if (!this.loadReportButton) {\r\n this.loadReportButton = this.resolveElement(loadReportButton);\r\n if (this.loadReportButton) {\r\n this.loadReportButton.addEventListener('click', this.loadReportButtonClickHandler);\r\n }\r\n }\r\n if (!this.saveReportButton) {\r\n this.saveReportButton = this.resolveElement(saveReportButton);\r\n if (this.saveReportButton) {\r\n this.saveReportButton.addEventListener('click', this.saveReportButtonClickHandler);\r\n }\r\n }\r\n if (!this.removeReportButton) {\r\n this.removeReportButton = this.resolveElement(removeReportButton);\r\n if (this.removeReportButton) {\r\n this.removeReportButton.addEventListener('click', this.removeReportButtonClickHandler);\r\n }\r\n }\r\n if (!this.updateReportButton) {\r\n this.updateReportButton = this.resolveElement(updateReportButton);\r\n if (this.updateReportButton) {\r\n this.updateReportButton.addEventListener('click', this.updateReportButtonClickHandler);\r\n }\r\n }\r\n this.reportListSlot = document.getElementById('ReportList');\r\n this.resultCountSlot = this.resolveElement(resultCountSpan);\r\n };\r\n /**\r\n * Creates a new report.\r\n */\r\n ReportView.prototype.newReport = function () {\r\n var _this = this;\r\n var ds = this.context.getServices().getDialogService();\r\n var dlg = ds.open({\r\n title: __WEBPACK_IMPORTED_MODULE_1__easydata_core__[\"l\" /* i18n */].getText('NewReportDlgTitle'),\r\n body: this._reportSaveTemplate,\r\n submitable: true,\r\n closable: true,\r\n cancelable: true,\r\n submitOnEnter: true,\r\n arrangeParents: false,\r\n beforeOpen: function () {\r\n var input = document.getElementById(\"kdlg-dialog-form-input\");\r\n input.value = __WEBPACK_IMPORTED_MODULE_1__easydata_core__[\"l\" /* i18n */].getText('NewReportDefName');\r\n var content = document.getElementById('kdlg-dialog-form-content');\r\n content.innerHTML = __WEBPACK_IMPORTED_MODULE_1__easydata_core__[\"l\" /* i18n */].getText('SaveReportDlgLabel');\r\n input.focus();\r\n },\r\n onSubmit: function () {\r\n var input = document.getElementById(\"kdlg-dialog-form-input\");\r\n var value = input.value;\r\n if (value && value.replace(/\\s/g, '').length > 0) {\r\n dlg.clearAlert();\r\n dlg.disableButtons();\r\n var header_1 = dlg.getRootElement().querySelector('header');\r\n var processEl_1 = Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div', header_1)\r\n .addClass('eqjs-process-bar local')\r\n .toDOM();\r\n var query = _this.context.getQuery();\r\n query.reset();\r\n _this.context.newQuery({\r\n name: value,\r\n success: function () {\r\n dlg.close();\r\n var query = _this.context.getQuery();\r\n var reportId = query.getId();\r\n _this.insertIntoReportList({ id: reportId, name: query.getName() });\r\n _this.renderReportList({ reportId: reportId });\r\n },\r\n error: function (error) {\r\n header_1.removeChild(processEl_1);\r\n dlg.enableButtons();\r\n dlg.showAlert(error, 'error');\r\n }\r\n });\r\n }\r\n return false;\r\n }\r\n });\r\n };\r\n /**\r\n * Loads report by ID.\r\n * @param reportId The ID of the report to load.\r\n */\r\n ReportView.prototype.loadReport = function (reportId) {\r\n var _this = this;\r\n if (!reportId) {\r\n throw 'Empty report ID!';\r\n }\r\n var reportToLoad = this.findReportById(reportId);\r\n if (!reportToLoad)\r\n return;\r\n var self = this;\r\n var query = self.context.getQuery();\r\n var reportLoaded = function () {\r\n _this.renderReportProps();\r\n query.fireChangedEvent({\r\n part: __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"p\" /* QueryChangePart */].All,\r\n noSync: true,\r\n changeType: 'query.switched'\r\n });\r\n _this.fetchData();\r\n };\r\n var reportContent = this.useReportCache ? this.getReportContentFromCache(reportToLoad) : null;\r\n if (reportContent) {\r\n query.clear();\r\n query.loadFromJson(reportContent);\r\n reportLoaded();\r\n }\r\n else {\r\n this.context.loadQuery({\r\n queryId: reportId,\r\n silent: true,\r\n success: function () {\r\n _this.saveReportContentInCache(reportToLoad, query.toJSON());\r\n reportLoaded();\r\n }\r\n });\r\n }\r\n this.setActiveReport(reportId);\r\n };\r\n /**\r\n * Shows the dialog to save the report with new name.\r\n */\r\n ReportView.prototype.saveCurrentReportAs = function () {\r\n var _this = this;\r\n var query = this.context.getQuery();\r\n var ds = this.context.getServices().getDialogService();\r\n var dlg = ds.open({\r\n title: __WEBPACK_IMPORTED_MODULE_1__easydata_core__[\"l\" /* i18n */].getText('SaveReportDlgTitle'),\r\n body: this._reportSaveTemplate,\r\n submitable: true,\r\n closable: true,\r\n cancelable: true,\r\n submitOnEnter: true,\r\n arrangeParents: false,\r\n beforeOpen: function () {\r\n var input = document.getElementById(\"kdlg-dialog-form-input\");\r\n input.value = query.getName();\r\n var content = document.getElementById('kdlg-dialog-form-content');\r\n content.innerHTML = __WEBPACK_IMPORTED_MODULE_1__easydata_core__[\"l\" /* i18n */].getText('SaveReportDlgLabel');\r\n input.focus();\r\n },\r\n onSubmit: function () {\r\n var input = document.getElementById(\"kdlg-dialog-form-input\");\r\n var value = input.value;\r\n if (value && value.replace(/\\s/g, '').length > 0) {\r\n query.setId(__WEBPACK_IMPORTED_MODULE_1__easydata_core__[\"m\" /* utils */].generateId(value.replace(/\\s/g, '')));\r\n dlg.clearAlert();\r\n dlg.disableButtons();\r\n var header_2 = dlg.getRootElement().querySelector('header');\r\n var processEl_2 = Object(__WEBPACK_IMPORTED_MODULE_2__easydata_ui__[\"i\" /* domel */])('div', header_2)\r\n .addClass('eqjs-process-bar local')\r\n .toDOM();\r\n _this.context.newQuery({\r\n clearQuery: false,\r\n name: value,\r\n success: function () {\r\n dlg.close();\r\n _this.context.refreshWidgets(__WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"u\" /* WidgetGroup */].Query);\r\n var savedQuery = _this.context.getQuery();\r\n var reportId = savedQuery.getId();\r\n _this.fetchData();\r\n _this.insertIntoReportList({ id: reportId, name: query.getName() });\r\n _this.renderReportList({ reportId: reportId });\r\n _this.setActiveReport(reportId);\r\n _this.renderReportProps();\r\n },\r\n error: function (error) {\r\n header_2.removeChild(processEl_2);\r\n dlg.enableButtons();\r\n dlg.showAlert(error, 'error');\r\n }\r\n });\r\n }\r\n return false;\r\n }\r\n });\r\n };\r\n /**\r\n * Removes current report.\r\n */\r\n ReportView.prototype.removeCurrentReport = function () {\r\n var _this = this;\r\n var report = this.context.getQuery();\r\n var ds = this.context.getServices().getDialogService();\r\n ds.openConfirm(__WEBPACK_IMPORTED_MODULE_1__easydata_core__[\"l\" /* i18n */].getText('RemoveReportDlgTitle'), __WEBPACK_IMPORTED_MODULE_1__easydata_core__[\"l\" /* i18n */].getText('RemoveReportContent').replace('{reportName}', report.getName()))\r\n .then(function (result) {\r\n if (result) {\r\n var reportId_1 = report.getId();\r\n _this.context.removeQuery({\r\n queryId: reportId_1,\r\n success: function () {\r\n var index = _this.removeFromReportList(reportId_1);\r\n _this.renderReportList({ reportIndex: index });\r\n }\r\n });\r\n }\r\n });\r\n };\r\n /**\r\n * Sends current report's query to back-end.\r\n */\r\n ReportView.prototype.syncReport = function () {\r\n var _this = this;\r\n if (this.useReportCache) {\r\n var query = this.context.getQuery();\r\n var currentReport = this.findReportById(query.getId());\r\n if (currentReport) {\r\n currentReport.lastUpdated = Date.now();\r\n this.saveReportContentInCache(currentReport, query.toJSON());\r\n }\r\n }\r\n this.context.syncQuery({\r\n success: function (responseData) {\r\n if (responseData.query)\r\n _this.context.refreshWidgets(__WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"u\" /* WidgetGroup */].Query);\r\n if (responseData.statement)\r\n _this.context.refreshWidgets(__WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"u\" /* WidgetGroup */].Statement);\r\n }\r\n });\r\n };\r\n /**\r\n * Sets active report.\r\n * @param reportId The ID of the report to make active.\r\n */\r\n ReportView.prototype.setActiveReport = function (reportId) {\r\n var rlItems = this.reportListSlot.querySelectorAll('li');\r\n for (var i = 0; i < rlItems.length; i++) {\r\n var item = rlItems[i];\r\n item.classList.remove('active');\r\n var rid = item.getAttribute('data-rid');\r\n if (rid === reportId) {\r\n item.classList.add('active');\r\n }\r\n }\r\n ;\r\n };\r\n /**\r\n * Renders current report.\r\n */\r\n ReportView.prototype.renderReportProps = function () {\r\n var query = this.context.getQuery();\r\n var titleElem = document.getElementById('ReportTitle');\r\n titleElem.innerHTML = query.getName();\r\n var columnsPanel = document.querySelector('.columns-bar');\r\n if (columnsPanel) {\r\n columnsPanel.innerHTML = 'Columns:';\r\n var columns = query.getColumns();\r\n for (var _i = 0, columns_1 = columns; _i < columns_1.length; _i++) {\r\n var column = columns_1[_i];\r\n columnsPanel.innerHTML += '' + column.caption + ' ';\r\n }\r\n }\r\n };\r\n /**\r\n * Renders the list of reports.\r\n * @param options The options. In particular, `options.reportIndex` defines which report should be active.\r\n */\r\n ReportView.prototype.renderReportList = function (options) {\r\n this.renderReportPanels();\r\n if (!this.reportListSlot.matches('li')) {\r\n this.reportListSlot.innerHTML = \"\";\r\n options = options || { reportId: (this.reports.length > 0 ? this.reports[0].id : null) };\r\n var ul = document.createElement('ul');\r\n ul.className = 'list-group list-group-flush';\r\n this.reportListSlot.appendChild(ul);\r\n for (var _i = 0, _a = this.reports; _i < _a.length; _i++) {\r\n var report = _a[_i];\r\n this.renderReportItemInList(report, ul);\r\n }\r\n if (options.reportId) {\r\n this.loadReport(options.reportId);\r\n }\r\n if (typeof (options.reportIndex) !== \"undefined\") {\r\n var idx = options.reportIndex;\r\n if (idx >= this.reports.length)\r\n idx = this.reports.length - 1;\r\n if (idx < 0 && this.reports.length > 0)\r\n idx = 0;\r\n if (idx >= 0)\r\n this.loadReport(this.reports[idx].id);\r\n }\r\n }\r\n };\r\n ReportView.prototype.detach = function () {\r\n var _this = this;\r\n if (this.exportButtonsContainer) {\r\n this.showExportButtons();\r\n this.exportButtons.forEach(function (button) {\r\n button.removeEventListener('click', _this.exportButtonClickHandler);\r\n });\r\n this.exportButtons = [];\r\n this.exportButtonsContainer = null;\r\n }\r\n if (this.clearReportButton) {\r\n this.clearReportButton.removeEventListener('click', this.clearReportButtonClickHandler);\r\n this.clearReportButton = null;\r\n }\r\n if (this.newReportButton) {\r\n this.newReportButton.removeEventListener('click', this.newReportButtonClickHandler);\r\n this.newReportButton = null;\r\n }\r\n if (!this.loadReportButton) {\r\n this.loadReportButton.removeEventListener('click', this.loadReportButtonClickHandler);\r\n this.loadReportButton = null;\r\n }\r\n if (this.saveReportButton) {\r\n this.saveReportButton.addEventListener('click', this.saveReportButtonClickHandler);\r\n this.saveReportButton = null;\r\n }\r\n if (!this.removeReportButton) {\r\n this.removeReportButton.removeEventListener('click', this.removeReportButtonClickHandler);\r\n this.removeReportButton = null;\r\n }\r\n if (this.updateReportButton) {\r\n this.updateReportButton.removeEventListener('click', this.updateReportButtonClickHandler);\r\n this.removeReportButton = null;\r\n }\r\n if (this.reportListSlot) {\r\n this.reportListSlot.innerHTML = '';\r\n this.reportListSlot = null;\r\n }\r\n if (this.resultCountSlot) {\r\n this.resultCountSlot.innerHTML = '';\r\n this.resultCountSlot = null;\r\n }\r\n _super.prototype.detach.call(this);\r\n };\r\n /**\r\n * Renders a single item in the list of reports.\r\n * @param report The [[Report]] object to render.\r\n * @param ul The [[HTMLUListElement]] to add the item to.\r\n */\r\n ReportView.prototype.renderReportItemInList = function (report, ul) {\r\n if (!ul) {\r\n ul = this.reportListSlot.querySelector(\"ul\");\r\n }\r\n var reportName = report.name || report.description || \"\";\r\n var li = document.createElement('li');\r\n li.className = \"list-group-item\";\r\n li.style.cursor = 'pointer';\r\n li.setAttribute('data-rid', report.id);\r\n li.innerText = reportName;\r\n var self = this;\r\n li.addEventListener('click', function (e) {\r\n var target = e.target;\r\n var rid = target.getAttribute('data-rid');\r\n self.loadReport(rid);\r\n self.setActiveReport(rid);\r\n });\r\n ul.appendChild(li);\r\n };\r\n /**\r\n * Renders report panels.\r\n */\r\n ReportView.prototype.renderReportPanels = function () {\r\n var reportsContainer = document.getElementById(\"ReportsContainer\");\r\n var noReportPanel = document.getElementById(\"NoReportPanel\");\r\n if (this.reports.length > 0) {\r\n this.hideElement(noReportPanel);\r\n this.showElement(reportsContainer);\r\n }\r\n else {\r\n this.hideElement(reportsContainer);\r\n this.showElement(noReportPanel);\r\n }\r\n };\r\n //TODO: Move these two functions to @easydata/ui\r\n ReportView.prototype.hideElement = function (element) {\r\n if (element) {\r\n element.style.visibility = 'hidden';\r\n }\r\n };\r\n ReportView.prototype.showElement = function (element) {\r\n if (element) {\r\n element.style.removeProperty('visibility');\r\n }\r\n };\r\n /**\r\n * Inserts the report to the list of reports.\r\n * @param report The [[Report]] object to be inserted.\r\n */\r\n ReportView.prototype.insertIntoReportList = function (report) {\r\n this.reports.push(report);\r\n };\r\n /**\r\n * Removes the report from the list of reports.\r\n * @param reportId The ID of the report to be removed.\r\n * @returns the index of removed report.\r\n */\r\n ReportView.prototype.removeFromReportList = function (reportId) {\r\n var index = this.indexOfReportById(reportId);\r\n if (index >= 0)\r\n this.reports.splice(index, 1);\r\n return index;\r\n };\r\n ReportView.prototype.indexOfReportById = function (reportId) {\r\n for (var i = 0; i < this.reports.length; i++) {\r\n if (this.reports[i].id === reportId)\r\n return i;\r\n }\r\n return -1;\r\n };\r\n /**\r\n * The handler of the \"Clear\" button click.\r\n */\r\n ReportView.prototype.clearReportButtonClick = function () {\r\n this.clearErrors();\r\n this.context.clearQuery();\r\n };\r\n /**\r\n * The handler of the \"Update\" button click.\r\n */\r\n ReportView.prototype.updateReportButtonClick = function () {\r\n this.fetchData();\r\n };\r\n /**\r\n * The handler of the \"Save\" button click.\r\n */\r\n ReportView.prototype.saveReportButtonClick = function () {\r\n this.saveCurrentReportAs();\r\n };\r\n /**\r\n * The handler of the \"Load\" button click.\r\n */\r\n ReportView.prototype.loadReportButtonClick = function () {\r\n this.loadReport(\"LastQuery\");\r\n };\r\n /**\r\n * The handler of the \"Remove\" button click.\r\n */\r\n ReportView.prototype.removeReportButtonClick = function () {\r\n this.removeCurrentReport();\r\n };\r\n /**\r\n * The handler of the \"New\" button click.\r\n */\r\n ReportView.prototype.newReportButtonClick = function () {\r\n this.newReport();\r\n };\r\n /**\r\n * The handler of errors.\r\n * @param error The error object.\r\n */\r\n ReportView.prototype.errorHandler = function (error) {\r\n };\r\n /**\r\n * Clears the errors.\r\n */\r\n ReportView.prototype.clearErrors = function () {\r\n };\r\n /**\r\n * Disables export buttons.\r\n */\r\n ReportView.prototype.disableExportButtons = function () {\r\n this.hideExportButtons();\r\n };\r\n /**\r\n * Enables export buttons.\r\n */\r\n ReportView.prototype.enableExportButtons = function () {\r\n this.showExportButtons();\r\n };\r\n /**\r\n * Hides export buttons.\r\n */\r\n ReportView.prototype.hideExportButtons = function () {\r\n if (this.exportButtonsContainer) {\r\n this.exportButtonsContainer.style.display = \"none\";\r\n }\r\n };\r\n /**\r\n * Shows export buttons.\r\n */\r\n ReportView.prototype.showExportButtons = function () {\r\n if (this.exportButtonsContainer) {\r\n this.exportButtonsContainer.style.display = \"initial\";\r\n }\r\n };\r\n /**\r\n * Saves reports content to the cache.\r\n * @param report The report.\r\n * @param content The content (Query serialized into JSON).\r\n */\r\n ReportView.prototype.saveReportContentInCache = function (report, content) {\r\n var item = this.findReportCacheItem(report.id);\r\n if (!item) {\r\n item = { id: report.id };\r\n this.reportCache.push(item);\r\n }\r\n item.lastUpdated = report.lastUpdated;\r\n item.content = content;\r\n };\r\n /**\r\n * Gets the report content from cache.\r\n * @param report The report.\r\n * @returns Content of the report (Query in JSOn string)\r\n */\r\n ReportView.prototype.getReportContentFromCache = function (report) {\r\n var item = this.findReportCacheItem(report.id);\r\n if (item && item.lastUpdated === report.lastUpdated) {\r\n return item.content;\r\n }\r\n return null;\r\n };\r\n ReportView.prototype.findReportById = function (id) {\r\n for (var _i = 0, _a = this.reports; _i < _a.length; _i++) {\r\n var item = _a[_i];\r\n if (item.id === id) {\r\n return item;\r\n }\r\n }\r\n return null;\r\n };\r\n ReportView.prototype.findReportCacheItem = function (id) {\r\n for (var _i = 0, _a = this.reportCache; _i < _a.length; _i++) {\r\n var item = _a[_i];\r\n if (item.id === id) {\r\n return item;\r\n }\r\n }\r\n return null;\r\n };\r\n return ReportView;\r\n}(__WEBPACK_IMPORTED_MODULE_4__view__[\"a\" /* View */]));\r\n\r\n//left for backward compatibility\r\nvar ReportViewJQuery = /** @class */ (function (_super) {\r\n __extends(ReportViewJQuery, _super);\r\n function ReportViewJQuery() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return ReportViewJQuery;\r\n}(ReportView));\r\n\r\n//# sourceMappingURL=report_view.js.map\n\n/***/ }),\n/* 390 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easydata_core__ = __webpack_require__(3);\n\r\nfunction addOldEasyQueryUIMapper() {\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].addMapper(function (info) {\r\n if (!info && !info.texts)\r\n return;\r\n for (var prop in info.texts) {\r\n switch (prop) {\r\n case 'PredicateTitle':\r\n info.texts['ConditionGroupTitle'] = info.texts[prop];\r\n break;\r\n case 'RootPredicateTitle':\r\n info.texts['RootConditionGroupTitle'] = info.texts[prop];\r\n break;\r\n case 'ErrIncorrectPredicateTitleFormat':\r\n info.texts['ErrIncorrectGroupTitleFormat'] = info.texts[prop];\r\n break;\r\n case 'ButtonAddPredicate':\r\n info.texts['ButtonAddGroup'] = info.texts[prop];\r\n break;\r\n case 'ButtonDelete':\r\n info.texts['CmdDelete'] = info.texts[prop];\r\n break;\r\n case 'ButtonClear':\r\n info.texts['CmdClear'] = info.texts[prop];\r\n break;\r\n case 'ButtonEnable':\r\n info.texts['CmdToggleEnable'] = info.texts[prop];\r\n break;\r\n case 'ButtonAddCondition':\r\n info.texts['CmdAddCondition'] = info.texts[prop];\r\n break;\r\n case 'ButtonAddGroup':\r\n info.texts['CmdAddCondGroup'] = info.texts[prop];\r\n break;\r\n default:\r\n //do nothing\r\n break;\r\n }\r\n }\r\n });\r\n}\r\nfunction addEasyQueryUITexts() {\r\n __WEBPACK_IMPORTED_MODULE_0__easydata_core__[\"l\" /* i18n */].updateDefaultTexts({\r\n AltMenuAttribute: 'Attribute',\r\n AltMenuConstantExpression: 'Constant expression',\r\n ButtonApply: 'Apply',\r\n ButtonCancel: 'Cancel',\r\n ButtonClose: 'Close',\r\n ButtonNext: 'Next',\r\n ButtonPrev: 'Prev',\r\n ButtonNow: 'Now',\r\n ButtonOK: 'OK',\r\n MenuEnable: 'Enabled',\r\n MenuParameterization: 'Parameterized',\r\n MenuJoinCond: 'Use in JOIN',\r\n CmdClear: 'Clear',\r\n CmdDelete: 'Delete',\r\n CmdToggleEnable: 'Toggle enable',\r\n CmdAddCondition: 'Add condition',\r\n CmdAddCondGroup: 'Add group of conditions',\r\n ButtonSelectAll: 'Select all',\r\n ButtonDeselectAll: 'Clear selection',\r\n ButtonAddColumns: 'Add column(s)',\r\n ButtonAddConditions: 'Add condition(s)',\r\n CmdClickToAddCondition: '[Add new condition]',\r\n CmdDeleteRow: 'Delete this row',\r\n ErrIncorrectGroupTitleFormat: 'Incorrect condition group title format',\r\n ErrNotNumber: ' is not a number',\r\n ErrIncorrectInteger: 'Incorrect integer value',\r\n ErrIncorrectNumberList: 'Incorrect list format',\r\n False: 'False',\r\n LinkTypeAll: 'all',\r\n LinkTypeAny: 'any',\r\n LinkTypeNone: 'none',\r\n LinkTypeNotAll: 'not all',\r\n ConjAll: 'and',\r\n ConjAny: 'or',\r\n ConjNotAll: 'and',\r\n ConjNone: 'or',\r\n MsgApplySelection: '[Apply selection]',\r\n MsgAs: 'as',\r\n MsgEmptyList: '(empty list)',\r\n MsgEmptyListValue: '[select value]',\r\n MsgEmptyScalarValue: '[enter value]',\r\n MsgSubQueryValue: '[edit sub-query]',\r\n MsgEmptyAttrValue: '[select attribute]',\r\n MsgEmptyOperator: '[Unrecognized operator]',\r\n MsgEmptyCustomSql: '[enter SQL expression]',\r\n MsgCustomSql: '[Custom SQL]',\r\n MsgNoResult: 'No result',\r\n MsgResultCount: '{0} records found',\r\n MsgOf: 'of',\r\n ConditionGroupTitle: '{lt} of the following apply',\r\n RootConditionGroupTitle: 'Select records where {lt} of the following apply',\r\n StrAddConditions: 'Add conditions',\r\n SubQueryDialogTitle: 'Edit sub-query',\r\n SubQueryColumnTitle: 'Column:',\r\n SubQueryEmptyColumn: '[select column]',\r\n SubQueryQueryPanelCaption: 'Conditions',\r\n True: 'True',\r\n ButtonSorting: 'Sorting',\r\n ButtonToAggr: 'Change to aggregate column',\r\n ButtonToSimple: 'Change to simple column',\r\n CmdAscending: 'Ascending',\r\n CmdClickToAddColumn: '[Add new column]',\r\n CmdDeleteColumn: 'Delete column',\r\n CmdDeleteSorting: 'Delete sorting',\r\n CmdDescending: 'Descending',\r\n CmdGroupSort: 'Sorting',\r\n CmdNotSorted: 'Not sorted',\r\n ColTypeAggrFunc: 'Aggregate function',\r\n ColTypeCompound: 'Calculated',\r\n ColTypeGroup: 'Column type',\r\n ColTypeSimple: 'Simple column',\r\n HeaderExpression: 'Expression',\r\n HeaderSorting: 'Sorting',\r\n HeaderTitle: 'Title',\r\n SortHeaderColumn: 'Column',\r\n SortHeaderSorting: 'Sorting',\r\n StrAddColumns: 'Add columns',\r\n CustomExpression: 'Custom Expression',\r\n CmdMoveToStart: 'Move to start',\r\n CmdMoveRight: 'Move right',\r\n CmdMoveLeft: 'Move left',\r\n CmdMoveToEnd: 'Move to the end',\r\n CmdMoveUp: 'Move up',\r\n CmdMoveDown: 'Move down',\r\n ButtonMenu: 'Show menu',\r\n CmdToSimple: 'Not aggregated',\r\n CmdMoveToFirst: 'Move to the first',\r\n CmdMoveToPrev: 'Move to the previous',\r\n CmdMoveToNext: 'Move to the next',\r\n CmdMoveToLast: 'Move to the last',\r\n CmdHiddenColumn: 'Hidden',\r\n RowButtonTitle: 'Click to see the available options',\r\n EntityToggle: 'Toggle entity',\r\n //FilterBar\r\n StrNoFilterDefined: 'No filter defined',\r\n StrNoFilterClickToAdd: 'No filter defined. Click to add a new condition',\r\n //Time picker\r\n HintHours: 'Hours',\r\n HintMinutes: 'Minutes',\r\n //advanced search view texts\r\n RemoveQueryTitle: 'Confirmation',\r\n RemoveQueryContent: 'Remove query [{queryName}]?',\r\n NewQueryTitle: 'New query',\r\n NewQueryContent: 'New query name: ',\r\n NewQueryDefName: 'New query',\r\n SaveQueryTitle: 'Save query',\r\n SaveQueryContent: 'Query name: ',\r\n SaveQueryDefName: '{queryName} copy',\r\n QueryChangedTitle: 'Confirmation',\r\n QueryChangedContent: 'The query was changed. Do you want to save it first?',\r\n UpdateQuerySelector: '[click here to load the query]',\r\n FileNameLabel: 'File name: ',\r\n SaveQueryToFileDlgTitle: 'Save query to file',\r\n //report view texts\r\n NewReportDefName: 'New report',\r\n NewReportDlgTitle: 'New report',\r\n SaveReportDlgTitle: 'Save report',\r\n SaveReportDlgLabel: 'Report name:',\r\n RemoveReportDlgTitle: 'Remove report',\r\n RemoveReportContent: 'Are you shure you want to remove report \\'{reportName}\\'?',\r\n //facets\r\n Facets: {\r\n TotalRecordsLabel: 'Total records:',\r\n AddMenuItems: {\r\n Chart: 'Chart',\r\n Pivot: 'Pivot table',\r\n DataTable: 'Data table'\r\n },\r\n LoadDataDlgTitle: 'Downloading data',\r\n LoadDataDlgContent: 'Records loaded: {loadedRecs}/{totalRecs}',\r\n RefreshBtnTitle: 'Refresh',\r\n ExportBtnTitle: 'Export',\r\n MaximizeBtnTitle: 'Maximize',\r\n RestoreBtnTitle: 'Restore Down',\r\n RemoveFacetDlgTitle: 'Remove facet',\r\n RemoveFacetDlgContent: \"Are you sure, that you want to delete {facetTitle} tab?\",\r\n DefaultDlgTitle: 'Setup facet',\r\n DefaultFacetTitle: '',\r\n NewFacetTitle: 'New Facet',\r\n TabNameLabel: 'Tab name',\r\n ErrQueryChanged: 'FAILED TO DISPLAY. QUERY WAS CHANGED',\r\n ErrNotEnoughData: \"We can't display the graph because not all data for this query is loaded. \\n The total number of records: {totalRecs}, currently loaded: {cachedRecs}. \\n You can [download the result]. Please note: this may take some time and consume a lot of memory.\",\r\n Chart: {\r\n FacetTitle: 'Chart',\r\n DlgTitle: 'Chart settings',\r\n DataColumnSelectorLabel: 'Data column',\r\n LabelColumnSelectorLabel: 'Label column',\r\n ChartTypeSelectorLabel: 'Chart type',\r\n ShowLegendLabel: 'Show legend (if available)'\r\n },\r\n Pivot: {\r\n FacetTitle: 'Pivot table',\r\n DlgTitle: 'Pivot settings',\r\n SwipeBtnTitle: 'Swipe column and row fields',\r\n ColumnFieldSelectorLabel: 'Column field',\r\n RowFieldSelectorLabel: 'Row field',\r\n CellDataSelectorLabel: 'Cell data',\r\n TotalsRowLabel: 'Totals row',\r\n TotalsColLabel: 'Totals column',\r\n TotalGridLabel: 'Total'\r\n },\r\n DataTable: {\r\n FacetTitle: 'Result table',\r\n DlgTitle: 'Table facet settings'\r\n }\r\n },\r\n TotalsDlgLabel: 'Totals',\r\n GrandTotalsLabel: 'Grand totals',\r\n TotalsDlgTitle: 'Select totals',\r\n //formats\r\n ExportDlgTitle: 'Export result',\r\n ExportDlgFmtLabel: 'Format',\r\n 'csv': 'CSV',\r\n 'excel': 'Excel',\r\n 'pdf': 'PDF',\r\n 'excel-html': 'HTML (Excel-compatible)'\r\n });\r\n}\r\naddOldEasyQueryUIMapper();\r\naddEasyQueryUITexts();\r\n//# sourceMappingURL=text_resources.js.map\n\n/***/ }),\n/* 391 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easyquery_core__ = __webpack_require__(7);\n\r\n__WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"h\" /* EqServiceProvider */].prototype.registerDialogServiceResolver = function (resolver) {\r\n this['dialogServiceResolver'] = resolver;\r\n};\r\n__WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"h\" /* EqServiceProvider */].prototype.getDialogService = function () {\r\n if (!this['dialogService']) {\r\n if (!this['dialogServiceResolver']) {\r\n throw 'DialogServiceResolver is not defined';\r\n }\r\n this['dialogService'] = this['dialogServiceResolver']();\r\n }\r\n return this['dialogService'];\r\n};\r\n//# sourceMappingURL=extensions.js.map\n\n/***/ }),\n/* 392 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__extensions__ = __webpack_require__(393);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__data_eqs_totals_calculator__ = __webpack_require__(196);\n/* unused harmony reexport namespace */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__query_query_ex__ = __webpack_require__(77);\n/* unused harmony reexport namespace */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__query_query_column_ex__ = __webpack_require__(193);\n/* unused harmony reexport namespace */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__query_condition_ex__ = __webpack_require__(192);\n/* unused harmony reexport namespace */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__dm_model_ex__ = __webpack_require__(195);\n/* unused harmony reexport namespace */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__main_eqs_query_storage__ = __webpack_require__(194);\n/* unused harmony reexport namespace */\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n//# sourceMappingURL=public_api.js.map\n\n/***/ }),\n/* 393 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__easyquery_core__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__query_query_ex__ = __webpack_require__(77);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__main_eqs_query_storage__ = __webpack_require__(194);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__dm_model_ex__ = __webpack_require__(195);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_lcv__ = __webpack_require__(34);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__data_eqs_totals_calculator__ = __webpack_require__(196);\n\r\n\r\n\r\n\r\n\r\n\r\n__WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"f\" /* EqContext */].prototype.setLicenseKeyEndpoint = function (endpoint) {\r\n console.warn('This method is deprecated and will be ignored. Starting version 7.0.0 endpoint set for EasyQuery actions will be used via adding \\'./easyquery/lck\\'');\r\n};\r\n__WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"f\" /* EqContext */].prototype.useEnterprise = function (keyOrInitCallback) {\r\n var _this = this;\r\n var func = function (key) {\r\n __WEBPACK_IMPORTED_MODULE_4__utils_lcv__[\"a\" /* lcv */].ck(key);\r\n if (__WEBPACK_IMPORTED_MODULE_4__utils_lcv__[\"a\" /* lcv */].__kt) {\r\n var services = _this.getServices();\r\n services.registerDataModelResolver(function (context) { return new __WEBPACK_IMPORTED_MODULE_3__dm_model_ex__[\"a\" /* DataModelEx */](); });\r\n services.registerQueryResolver(function (context) { return new __WEBPACK_IMPORTED_MODULE_1__query_query_ex__[\"a\" /* QueryEx */](context.getModel()); });\r\n services.registerQueryStorageResolver(function (context) { return new __WEBPACK_IMPORTED_MODULE_2__main_eqs_query_storage__[\"a\" /* EqServerQueryStorage */](context); });\r\n services.registerTotalCalculator(function (context) { return new __WEBPACK_IMPORTED_MODULE_5__data_eqs_totals_calculator__[\"a\" /* EqTotalsCalculator */](context); });\r\n if (__WEBPACK_IMPORTED_MODULE_4__utils_lcv__[\"a\" /* lcv */].__kt === 1) {\r\n console.warn('EasyQuery.JS is working in TRIAL MODE! Please order a license to get a proper product key (https://korzh.com/eq).');\r\n createTrialWM();\r\n setTimeout(function () {\r\n showTrialWM();\r\n setTimeout(hideTrialWM, 6000);\r\n }, 3000);\r\n }\r\n }\r\n else {\r\n console.error(\"INVALID KEY! EasyQuery.JS is working in Community edition mode! Please contact the vendor (https://korzh.com/support) to resolve this issue\");\r\n }\r\n };\r\n if (typeof (keyOrInitCallback) === \"string\") {\r\n func(keyOrInitCallback);\r\n }\r\n else if (typeof (keyOrInitCallback) === \"function\") {\r\n var http = this.getServices().getHttpClient();\r\n var url = __WEBPACK_IMPORTED_MODULE_0__easyquery_core__[\"w\" /* equtils */].combinePath(this.getBaseEndpoint(), 'lck');\r\n http.get(url)\r\n .then(function (result) { func(result.split(\"\").reverse().join(\"\")); keyOrInitCallback(); })\r\n .catch(function (error) { return console.error(error); });\r\n }\r\n else {\r\n throw new Error(\"Wrong type of 'keyOrInitCallback' parameter. It must be a string with a license key or a callback function.\");\r\n }\r\n};\r\nvar trialDiv;\r\nfunction createTrialWM() {\r\n // we can rewrite it using shadow dom\r\n // to make it impossible to hide using JS :)\r\n trialDiv = document.createElement(\"div\");\r\n trialDiv.style.position = \"fixed\";\r\n trialDiv.style.bottom = \"0\";\r\n trialDiv.style.right = \"-400px\";\r\n trialDiv.style.width = \"400px\";\r\n trialDiv.style.height = \"100px\";\r\n trialDiv.style.color = \"grey\";\r\n trialDiv.style.textAlign = \"center\";\r\n trialDiv.style.opacity = \"0.7\";\r\n trialDiv.style.font = \"bold 1em Trebuchet MS, Tahoma, Verdana, Geneva, Arial, Helvetica, sans-serif\";\r\n trialDiv.style.transition = \"right 3s ease-out\";\r\n var header = document.createElement(\"div\");\r\n var eq = document.createElement(\"span\");\r\n eq.innerText = \"EasyQuery\";\r\n eq.style.color = \"#3A94D4\";\r\n eq.style.lineHeight = \"50px\";\r\n header.appendChild(eq);\r\n var korzh = document.createElement(\"span\");\r\n korzh.innerText = \"by Korzh.com\";\r\n korzh.style.marginLeft = \"10px\";\r\n header.appendChild(korzh);\r\n trialDiv.appendChild(header);\r\n var trialOnly = document.createElement(\"div\");\r\n trialOnly.innerText = \"FOR TRIAL USE ONLY\";\r\n trialOnly.style.fontSize = \"1.2em\";\r\n trialOnly.style.fontWeight = \"1000\";\r\n trialDiv.appendChild(trialOnly);\r\n document.body.appendChild(trialDiv);\r\n}\r\nfunction showTrialWM() {\r\n if (trialDiv) {\r\n trialDiv.style.right = \"0\";\r\n }\r\n}\r\nfunction hideTrialWM() {\r\n if (trialDiv) {\r\n trialDiv.style.right = \"-400px\";\r\n setTimeout(function () {\r\n trialDiv.parentNode.removeChild(trialDiv);\r\n }, 5000);\r\n }\r\n}\r\n//# sourceMappingURL=extensions.js.map\n\n/***/ }),\n/* 394 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\nvar AdhocUI=function AdhocUI(){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{className:\"eqjs-process-bar\",id:\"ProcessBar\"}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{id:\"main\"},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{className:\"eqv-header\"}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{id:\"eqv-content\"},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{className:\"eqv-header-panel\"},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{className:\"eqv-entities-block\"},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"hr\",{className:\"eqv-entities-hr eqv-hr\"}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{className:\"eqv-entities-title\"},\"Data\"),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{className:\"eqv-entities-panel-container\"},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{id:\"EntitiesPanel\"}))),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{className:\"eqv-central-block\"},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{className:\"eqv-columns-block\"},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"hr\",{className:\"eqv-columns-hr eqv-hr\"}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{className:\"eqv-columns-title\"},\"Columns\"),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{className:\"eqv-columns-panel-container\"},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{id:\"ColumnsPanel\"}))),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{className:\"eqv-conditions-block\"},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"hr\",{className:\"eqv-conditions-hr eqv-hr\"}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{className:\"eqv-conditions-title\"},\"Conditions\"),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{className:\"eqv-query-panel-container\"},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{id:\"QueryPanel\"})))),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{className:\"eqv-menu-block\"},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"hr\",{className:\"eqv-menu-hr eqv-hr\"}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{className:\"eqv-menu-title\"},\"Menu\"),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{className:\"eqv-menu-content\"},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{id:\"QueryNameLabel\"}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{id:\"ClearQueryButton\",className:\"eqv-button eqv-clear-button\"},\"Clear query\"),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{\"class\":\"eqv-dropdown-container\"},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"a\",{id:\"LoadQueryButton\",href:\"javascript::void(0)\",\"class\":\"eqv-button eqv-drop-button\"},\"Load \",__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"span\",{style:{float:'right'}},\"\\u25BC\")),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{\"class\":\"eqv-dropdown-content\"})),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{\"class\":\"eqv-dropdown-container\"},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"a\",{id:\"StorageDropButton\",\"class\":\"eqv-button eqv-drop-button\"},\"Storage \",__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"span\",{style:{float:'right'}},\"\\u25BC\")),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{\"class\":\"eqv-dropdown-content\"},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"a\",{id:\"NewQueryButton\",href:\"javascript::void(0)\"},\"New query\"),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"a\",{id:\"SaveQueryButton\",href:\"javascript::void(0)\"},\"Save query\"),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"a\",{id:\"CopyQueryButton\",href:\"javascript::void(0)\"},\"Save query as...\"),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"a\",{id:\"RemoveQueryButton\",href:\"javascript::void(0)\"},\"Remove query\"))),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{id:\"ExecuteQueryButton\",className:\"eqv-button eqv-execute-button\"},\"Execute\"),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",null,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"p\",null))))),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{className:\"eqv-bottom-panel\"},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{className:\"eqv-result-panel\",style:{width:'100%'}},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"hr\",{className:\"eqv-result-panel-hr eqv-hr\"}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{className:\"eqv-result-panel-title\"},\"Result\",__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"span\",{id:\"ResultCount\",style:{display:'none',marginLeft:20,fontSize:'small'}}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"span\",{className:\"eqv-export-buttons\"},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"a\",{className:\"eqjs-export\",href:\"javascript:void(0)\",\"data-format\":\"csv\"},\"Export to CSV\"))),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{id:\"ResultPanel\",className:\"eqv-result-panel-content\"}),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{className:\"eqv-result-panel-content-padding\"})))),__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{id:\"eqv-footer\"},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"div\",{className:\"power-by\"},\"Powered by \",__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\"a\",{href:\"https://www.kineticiq.com\",target:\"_blank\"},\"Kinetic IQ\")))));};/* harmony default export */ __webpack_exports__[\"a\"] = (AdhocUI);\n\n/***/ }),\n/* 395 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = register;\n/* unused harmony export unregister */\n// In production, we register a service worker to serve assets from local cache.\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\nvar isLocalhost=Boolean(window.location.hostname==='localhost'||// [::1] is the IPv6 localhost address.\nwindow.location.hostname==='[::1]'||// 127.0.0.1/8 is considered localhost for IPv4.\nwindow.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));function register(){if(\"production\"==='production'&&'serviceWorker'in navigator){// The URL constructor is available in all browsers that support SW.\nvar publicUrl=new URL(\"\",window.location);if(publicUrl.origin!==window.location.origin){// Our service worker won't work if PUBLIC_URL is on a different origin\n// from what our page is served on. This might happen if a CDN is used to\n// serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\nreturn;}window.addEventListener('load',function(){var swUrl=\"\"+'/service-worker.js';if(isLocalhost){// This is running on localhost. Lets check if a service worker still exists or not.\ncheckValidServiceWorker(swUrl);}else{// Is not local host. Just register service worker\nregisterValidSW(swUrl);}});}}function registerValidSW(swUrl){navigator.serviceWorker.register(swUrl).then(function(registration){registration.onupdatefound=function(){var installingWorker=registration.installing;installingWorker.onstatechange=function(){if(installingWorker.state==='installed'){if(navigator.serviceWorker.controller){// At this point, the old content will have been purged and\n// the fresh content will have been added to the cache.\n// It's the perfect time to display a \"New content is\n// available; please refresh.\" message in your web app.\nconsole.log('New content is available; please refresh.');}else{// At this point, everything has been precached.\n// It's the perfect time to display a\n// \"Content is cached for offline use.\" message.\nconsole.log('Content is cached for offline use.');}}};};}).catch(function(error){console.error('Error during service worker registration:',error);});}function checkValidServiceWorker(swUrl){// Check if the service worker can be found. If it can't reload the page.\nfetch(swUrl).then(function(response){// Ensure service worker exists, and that we really are getting a JS file.\nif(response.status===404||response.headers.get('content-type').indexOf('javascript')===-1){// No service worker found. Probably a different app. Reload the page.\nnavigator.serviceWorker.ready.then(function(registration){registration.unregister().then(function(){window.location.reload();});});}else{// Service worker found. Proceed as normal.\nregisterValidSW(swUrl);}}).catch(function(){console.log('No internet connection found. App is running in offline mode.');});}function unregister(){if('serviceWorker'in navigator){navigator.serviceWorker.ready.then(function(registration){registration.unregister();});}}\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// static/js/main.d657becd.js"," \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, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\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 \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 197);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 5af54dec4b6c4c244613","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react/index.js\n// module id = 0\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/prop-types/index.js\n// module id = 1\n// module chunks = 0","import PropTypes from 'prop-types'; // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/js/src/modal.js#L436-L443\n\nexport function getScrollbarWidth() {\n var scrollDiv = document.createElement('div'); // .modal-scrollbar-measure styles // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/scss/_modal.scss#L106-L113\n\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n}\nexport function setScrollbarWidth(padding) {\n document.body.style.paddingRight = padding > 0 ? padding + \"px\" : null;\n}\nexport function isBodyOverflowing() {\n return document.body.clientWidth < window.innerWidth;\n}\nexport function getOriginalBodyPadding() {\n var style = window.getComputedStyle(document.body, null);\n return parseInt(style && style.getPropertyValue('padding-right') || 0, 10);\n}\nexport function conditionallyUpdateScrollbar() {\n var scrollbarWidth = getScrollbarWidth(); // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.6/js/src/modal.js#L433\n\n var fixedContent = document.querySelectorAll('.fixed-top, .fixed-bottom, .is-fixed, .sticky-top')[0];\n var bodyPadding = fixedContent ? parseInt(fixedContent.style.paddingRight || 0, 10) : 0;\n\n if (isBodyOverflowing()) {\n setScrollbarWidth(bodyPadding + scrollbarWidth);\n }\n}\nvar globalCssModule;\nexport function setGlobalCssModule(cssModule) {\n globalCssModule = cssModule;\n}\nexport function mapToCssModules(className, cssModule) {\n if (className === void 0) {\n className = '';\n }\n\n if (cssModule === void 0) {\n cssModule = globalCssModule;\n }\n\n if (!cssModule) return className;\n return className.split(' ').map(function (c) {\n return cssModule[c] || c;\n }).join(' ');\n}\n/**\n * Returns a new object with the key/value pairs from `obj` that are not in the array `omitKeys`.\n */\n\nexport function omit(obj, omitKeys) {\n var result = {};\n Object.keys(obj).forEach(function (key) {\n if (omitKeys.indexOf(key) === -1) {\n result[key] = obj[key];\n }\n });\n return result;\n}\n/**\n * Returns a filtered copy of an object with only the specified keys.\n */\n\nexport function pick(obj, keys) {\n var pickKeys = Array.isArray(keys) ? keys : [keys];\n var length = pickKeys.length;\n var key;\n var result = {};\n\n while (length > 0) {\n length -= 1;\n key = pickKeys[length];\n result[key] = obj[key];\n }\n\n return result;\n}\nvar warned = {};\nexport function warnOnce(message) {\n if (!warned[message]) {\n /* istanbul ignore else */\n if (typeof console !== 'undefined') {\n console.error(message); // eslint-disable-line no-console\n }\n\n warned[message] = true;\n }\n}\nexport function deprecated(propType, explanation) {\n return function validate(props, propName, componentName) {\n if (props[propName] !== null && typeof props[propName] !== 'undefined') {\n warnOnce(\"\\\"\" + propName + \"\\\" property of \\\"\" + componentName + \"\\\" has been deprecated.\\n\" + explanation);\n }\n\n for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n rest[_key - 3] = arguments[_key];\n }\n\n return propType.apply(void 0, [props, propName, componentName].concat(rest));\n };\n} // Shim Element if needed (e.g. in Node environment)\n\nvar Element = typeof window === 'object' && window.Element || function () {};\n\nexport function DOMElement(props, propName, componentName) {\n if (!(props[propName] instanceof Element)) {\n return new Error('Invalid prop `' + propName + '` supplied to `' + componentName + '`. Expected prop to be an instance of Element. Validation failed.');\n }\n}\nexport var targetPropType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, DOMElement, PropTypes.shape({\n current: PropTypes.any\n})]);\nexport var tagPropType = PropTypes.oneOfType([PropTypes.func, PropTypes.string, PropTypes.shape({\n $$typeof: PropTypes.symbol,\n render: PropTypes.func\n}), PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.string, PropTypes.shape({\n $$typeof: PropTypes.symbol,\n render: PropTypes.func\n})]))]);\n/* eslint key-spacing: [\"error\", { afterColon: true, align: \"value\" }] */\n// These are all setup to match what is in the bootstrap _variables.scss\n// https://github.com/twbs/bootstrap/blob/v4-dev/scss/_variables.scss\n\nexport var TransitionTimeouts = {\n Fade: 150,\n // $transition-fade\n Collapse: 350,\n // $transition-collapse\n Modal: 300,\n // $modal-transition\n Carousel: 600 // $carousel-transition\n\n}; // Duplicated Transition.propType keys to ensure that Reactstrap builds\n// for distribution properly exclude these keys for nested child HTML attributes\n// since `react-transition-group` removes propTypes in production builds.\n\nexport var TransitionPropTypeKeys = ['in', 'mountOnEnter', 'unmountOnExit', 'appear', 'enter', 'exit', 'timeout', 'onEnter', 'onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited'];\nexport var TransitionStatuses = {\n ENTERING: 'entering',\n ENTERED: 'entered',\n EXITING: 'exiting',\n EXITED: 'exited'\n};\nexport var keyCodes = {\n esc: 27,\n space: 32,\n enter: 13,\n tab: 9,\n up: 38,\n down: 40,\n home: 36,\n end: 35,\n n: 78,\n p: 80\n};\nexport var PopperPlacements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\nexport var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexport function isReactRefObj(target) {\n if (target && typeof target === 'object') {\n return 'current' in target;\n }\n\n return false;\n}\n\nfunction getTag(value) {\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n\n return Object.prototype.toString.call(value);\n}\n\nexport function toNumber(value) {\n var type = typeof value;\n var NAN = 0 / 0;\n\n if (type === 'number') {\n return value;\n }\n\n if (type === 'symbol' || type === 'object' && getTag(value) === '[object Symbol]') {\n return NAN;\n }\n\n if (isObject(value)) {\n var other = typeof value.valueOf === 'function' ? value.valueOf() : value;\n value = isObject(other) ? \"\" + other : other;\n }\n\n if (type !== 'string') {\n return value === 0 ? value : +value;\n }\n\n value = value.replace(/^\\s+|\\s+$/g, '');\n var isBinary = /^0b[01]+$/i.test(value);\n return isBinary || /^0o[0-7]+$/i.test(value) ? parseInt(value.slice(2), isBinary ? 2 : 8) : /^[-+]0x[0-9a-f]+$/i.test(value) ? NAN : +value;\n}\nexport function isObject(value) {\n var type = typeof value;\n return value != null && (type === 'object' || type === 'function');\n}\nexport function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n\n var tag = getTag(value);\n return tag === '[object Function]' || tag === '[object AsyncFunction]' || tag === '[object GeneratorFunction]' || tag === '[object Proxy]';\n}\nexport function findDOMElements(target) {\n if (isReactRefObj(target)) {\n return target.current;\n }\n\n if (isFunction(target)) {\n return target();\n }\n\n if (typeof target === 'string' && canUseDOM) {\n var selection = document.querySelectorAll(target);\n\n if (!selection.length) {\n selection = document.querySelectorAll(\"#\" + target);\n }\n\n if (!selection.length) {\n throw new Error(\"The target '\" + target + \"' could not be identified in the dom, tip: check spelling\");\n }\n\n return selection;\n }\n\n return target;\n}\nexport function isArrayOrNodeList(els) {\n if (els === null) {\n return false;\n }\n\n return Array.isArray(els) || canUseDOM && typeof els.length === 'number';\n}\nexport function getTarget(target, allElements) {\n var els = findDOMElements(target);\n\n if (allElements) {\n if (isArrayOrNodeList(els)) {\n return els;\n }\n\n if (els === null) {\n return [];\n }\n\n return [els];\n } else {\n if (isArrayOrNodeList(els)) {\n return els[0];\n }\n\n return els;\n }\n}\nexport var defaultToggleEvents = ['touchstart', 'click'];\nexport function addMultipleEventListeners(_els, handler, _events, useCapture) {\n var els = _els;\n\n if (!isArrayOrNodeList(els)) {\n els = [els];\n }\n\n var events = _events;\n\n if (typeof events === 'string') {\n events = events.split(/\\s+/);\n }\n\n if (!isArrayOrNodeList(els) || typeof handler !== 'function' || !Array.isArray(events)) {\n throw new Error(\"\\n The first argument of this function must be DOM node or an array on DOM nodes or NodeList.\\n The second must be a function.\\n The third is a string or an array of strings that represents DOM events\\n \");\n }\n\n Array.prototype.forEach.call(events, function (event) {\n Array.prototype.forEach.call(els, function (el) {\n el.addEventListener(event, handler, useCapture);\n });\n });\n return function removeEvents() {\n Array.prototype.forEach.call(events, function (event) {\n Array.prototype.forEach.call(els, function (el) {\n el.removeEventListener(event, handler, useCapture);\n });\n });\n };\n}\nexport var focusableElements = ['a[href]', 'area[href]', 'input:not([disabled]):not([type=hidden])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', 'object', 'embed', '[tabindex]:not(.modal)', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/utils.js\n// module id = 2\n// module chunks = 0","//types\r\nexport * from './types/data_type';\r\nexport * from './types/entity_attr_kind';\r\nexport * from './types/editor_tag';\r\n//http\r\nexport * from './http/http_method';\r\nexport * from './http/http_request';\r\nexport * from './http/http_client';\r\n//meta data\r\nexport * from './meta/meta_data';\r\nexport * from './meta/meta_entity';\r\nexport * from './meta/value_editor';\r\nexport * from './data/data_column';\r\nexport * from './data/data_row';\r\nexport * from './data/easy_data_table';\r\n//event\r\nexport * from './event/event_emitter';\r\n//i18n\r\nexport * from './i18n/i18n';\r\n//utils\r\nexport * from './utils/easy_guid';\r\nexport * from './utils/string_utils';\r\nexport * from './utils/utils';\r\nimport './i18n/load_default_locale_settings';\r\nif (typeof Object.values !== 'function') {\r\n Object.values = function (obj) {\r\n return Object.keys(obj).map(function (key) { return obj[key]; });\r\n };\r\n}\r\nif (typeof Math.trunc !== 'function') {\r\n Math.trunc = function (x) {\r\n if (isNaN(x)) {\r\n return NaN;\r\n }\r\n if (x > 0) {\r\n return Math.floor(x);\r\n }\r\n return Math.ceil(x);\r\n };\r\n}\r\n//# sourceMappingURL=public_api.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easydata/core/dist/lib/public_api.js\n// module id = 3\n// module chunks = 0","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/node_modules/@babel/runtime/helpers/esm/extends.js\n// module id = 4\n// module chunks = 0","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/classnames/index.js\n// module id = 5\n// module chunks = 0","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js\n// module id = 6\n// module chunks = 0","export * from './utils/utils';\r\nexport * from './utils/constants';\r\nexport * from './common/eq_services';\r\nexport * from './common/tree';\r\nexport * from './data/eq_data_loader';\r\nexport * from './data/google_data_converter';\r\nexport * from './data/eq_totals_container';\r\nexport * from './types/data_kind';\r\nexport * from './types/link_type';\r\nexport * from './types/cond_tag';\r\nexport * from './types/cond_part';\r\nexport * from './types/expr_tag';\r\nexport * from './types/eq_editor_tag';\r\nexport * from './types/widget_group';\r\nexport * from './dm/aggr_function';\r\nexport * from './dm/data_model';\r\nexport * from './dm/entity';\r\nexport * from './dm/operator';\r\nexport * from './dm/value_editor';\r\nexport * from './main/eq_actions';\r\nexport * from './main/model_loader';\r\nexport * from './main/query_storage';\r\nexport * from './main/context';\r\nexport * from './main/widget';\r\nexport * from './main/action';\r\nexport * from './query/query_column';\r\nexport * from './query/condition';\r\nexport * from './query/expression';\r\nexport * from './query/query';\r\nexport * from './query/query_events';\r\nexport * from './eqs/eqs_exporter';\r\nexport * from './eqs/eqs_model_loader';\r\nexport * from './eqs/eqs_data_fetcher';\r\nexport * from './eqs/eqs_query_synchronizer';\r\nexport * from './eqs/eqs_value_list_resolver';\r\nexport * from './eqs/eqs_query_file_loader';\r\nexport * from './utils/format_parser';\r\nexport * from './utils/version_info';\r\n//for backward compatibility\r\nexport { i18n } from '@easydata/core';\r\nimport './i18n/text_resources';\r\n//# sourceMappingURL=public_api.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/core/dist/lib/public_api.js\n// module id = 7\n// module chunks = 0","// grid\r\nexport * from './grid/easy_grid';\r\nexport * from './grid/easy_grid_columns';\r\nexport * from './grid/easy_grid_cell_renderer';\r\n//datetimepicker\r\nexport * from './datetimepicker/calendar';\r\nexport * from './datetimepicker/date_time_picker';\r\nexport * from './datetimepicker/default_calendar';\r\nexport * from './datetimepicker/default_date_time_picker';\r\nexport * from './datetimepicker/default_time_picker';\r\nexport * from './datetimepicker/time_picker';\r\n// utils\r\nexport * from './utils/browser_utils';\r\nexport * from './utils/dom_elem_builder';\r\nexport * from './utils/drag_manager';\r\nexport * from './utils/mask';\r\nexport * from './utils/ui-utils';\r\n//dialogs\r\nexport * from './dialogs/default_dialog_service';\r\nimport './i18n/text_resources';\r\nimport { DefaultDialogService } from './dialogs/default_dialog_service';\r\n// export dialogs to use outside of context as global\r\nvar dialogs = new DefaultDialogService();\r\nexport { dialogs };\r\n//# sourceMappingURL=public_api.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easydata/ui/dist/lib/public_api.js\n// module id = 8\n// module chunks = 0","import { eqCssMobile } from './utils';\r\nexport var browserUtils;\r\n(function (browserUtils) {\r\n var _isFirefox = null;\r\n var _isIE = null;\r\n function IsIE() {\r\n return eval('/*@cc_on!@*/false || !!document.documentMode');\r\n // if (_isIE === null) {\r\n // const ua = navigator.userAgent;\r\n // /* MSIE used to detect old browsers and Trident used to newer ones*/\r\n // _isIE = ua.indexOf(\"MSIE \") > -1 || ua.indexOf(\"Trident/\") > -1;\r\n // }\r\n // return _isIE;\r\n }\r\n browserUtils.IsIE = IsIE;\r\n function IsFirefox() {\r\n if (_isFirefox === null) {\r\n var ua = navigator.userAgent;\r\n _isFirefox = ua.toLowerCase().indexOf('firefox') > -1;\r\n }\r\n return _isFirefox;\r\n }\r\n browserUtils.IsFirefox = IsFirefox;\r\n var _detectedIsMobileMode = false;\r\n var _isMobileMode = undefined;\r\n var detectIsMobileMode = function () {\r\n var oldValue = isMobileMode();\r\n _detectedIsMobileMode = window.matchMedia('only screen and (max-width: 840px)').matches\r\n || window.matchMedia('only screen and (max-height: 420px)').matches;\r\n var newValue = isMobileMode();\r\n if (newValue !== oldValue && mobileModeChangeHandler) {\r\n mobileModeChangeHandler(newValue);\r\n }\r\n };\r\n detectIsMobileMode();\r\n window.addEventListener('resize', function () { return detectIsMobileMode(); });\r\n function isMobileMode() {\r\n if (_isMobileMode !== undefined) {\r\n return _isMobileMode;\r\n }\r\n else {\r\n return _detectedIsMobileMode;\r\n }\r\n }\r\n browserUtils.isMobileMode = isMobileMode;\r\n function setIsMobileMode(value) {\r\n var oldValue = isMobileMode();\r\n _isMobileMode = value;\r\n var newValue = isMobileMode();\r\n if (newValue !== oldValue && mobileModeChangeHandler) {\r\n mobileModeChangeHandler(newValue);\r\n }\r\n }\r\n browserUtils.setIsMobileMode = setIsMobileMode;\r\n var mobileModeChangeHandler;\r\n function onMobileModeChanged(callback) {\r\n mobileModeChangeHandler = callback;\r\n }\r\n browserUtils.onMobileModeChanged = onMobileModeChanged;\r\n function getMobileCssClass() {\r\n return isMobileMode() ? eqCssMobile : null;\r\n }\r\n browserUtils.getMobileCssClass = getMobileCssClass;\r\n})(browserUtils || (browserUtils = {}));\r\n//# sourceMappingURL=browser_utils.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/utils/browser_utils.js\n// module id = 9\n// module chunks = 0","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js\n// module id = 10\n// module chunks = 0","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\n// module id = 11\n// module chunks = 0","import { domel } from '@easydata/ui';\r\nexport function getViewportSize() {\r\n var width = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);\r\n var height = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);\r\n return {\r\n width: width,\r\n height: height\r\n };\r\n}\r\nexport function findHighestZIndex(elem) {\r\n var highest = 0;\r\n while (elem !== null) {\r\n var zindex = document.defaultView.getComputedStyle(elem, null)\r\n .getPropertyValue(\"z-index\");\r\n if (zindex != 'auto') {\r\n var numZIndex = parseInt(zindex);\r\n if (numZIndex > highest) {\r\n highest = numZIndex;\r\n }\r\n }\r\n elem = elem.parentElement;\r\n }\r\n return highest;\r\n}\r\n// simetimes setting focus in the main thread doesn't work correctly (in Firefox). So we need to 'hack' it.\r\nexport function safeFocus(element) {\r\n setTimeout(function (_) {\r\n if (element) {\r\n element.focus();\r\n }\r\n }, 100);\r\n}\r\nexport var eqCssPrefix = 'eqjs';\r\nexport var eqCssMobile = 'eqjs-mobile';\r\nexport function makeElementMaximizable(element) {\r\n domel(element)\r\n .addClass(eqCssPrefix + \"-maximizable\")\r\n .addChild('div', function (b) {\r\n b.addClass(eqCssPrefix + \"-max-button\")\r\n .on('click', function (e) {\r\n e.preventDefault();\r\n domel(element)\r\n .toggleClass(eqCssPrefix + \"-maximized\");\r\n });\r\n });\r\n}\r\n//# sourceMappingURL=utils.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/utils/utils.js\n// module id = 12\n// module chunks = 0","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/utils.js\n// module id = 13\n// module chunks = 0","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/node_modules/@babel/runtime/helpers/esm/defineProperty.js\n// module id = 14\n// module chunks = 0","import { i18n } from '@easydata/core';\r\nimport { utils as dataUtils } from '@easydata/core';\r\nimport { domel } from '@easydata/ui';\r\nimport { getElementAbsolutePos, getScrollPos, getWinSize, getViewportSize } from '@easydata/ui';\r\nimport { browserUtils } from './browser_utils';\r\nimport { findHighestZIndex } from './utils';\r\nvar MenuLevel = /** @class */ (function () {\r\n function MenuLevel(options) {\r\n this.isFilteringMode = false;\r\n this.showSelected = false;\r\n //menu, items, levelIndex\r\n this.parentMenu = options.menu || null;\r\n this.parentLevel = options.parent || null;\r\n this.parentElement = options.container || document.body;\r\n this.levelIndex = options.levelIndex || 0;\r\n this.levelDiv = null;\r\n this.domWriteItemsId = options.domWriteItemsId || false;\r\n this.menuId = options.menuId || '';\r\n this.itemRenderedCallback = options.itemRenderedCallback || null;\r\n //we need to define special \"apply\" item for this level\r\n this._applyItem = { id: null, text: null, itemDiv: null };\r\n this.items = options.items || [];\r\n this.activeItem = null;\r\n this.selectedItem = null;\r\n this.initialized = false;\r\n this.showSelected = options.showSelected;\r\n this.updated = 0;\r\n this.renderContent();\r\n }\r\n Object.defineProperty(MenuLevel.prototype, \"applyItem\", {\r\n get: function () {\r\n return this._applyItem;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(MenuLevel.prototype, \"cssPrefix\", {\r\n get: function () {\r\n return 'eqjs-menu';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n MenuLevel.prototype.getItems = function () {\r\n return this.items;\r\n };\r\n MenuLevel.prototype.setItems = function (items) {\r\n this.items = items;\r\n };\r\n MenuLevel.prototype.renderContent = function () {\r\n var _this = this;\r\n if (!this.items) {\r\n return;\r\n }\r\n var self = this;\r\n //define internal variables used in this function\r\n var itemBgColor = this.parentMenu.style.colors.bgON || \"white\";\r\n var itemFgColor = this.parentMenu.style.colors.fgON || \"black\";\r\n var itemOverBgColor = this.parentMenu.style.colors.bgOVER || \"LightSteelBlue\";\r\n var itemFontFamily = this.parentMenu.style.itemStyle.fontFamily || \"\";\r\n var itemFontSize = this.parentMenu.style.itemStyle.fontSize || \"14px\";\r\n var multiselect = this.parentMenu.options.multiselect;\r\n var isSubQuery = this.parentMenu.options.isSubQuery;\r\n //add base DIV element which is also used to show the shadow\r\n var baseDivBuilder = domel('div')\r\n .addClass(browserUtils.getMobileCssClass());\r\n if (this.parentMenu.options.useDefaultStyles) {\r\n baseDivBuilder\r\n .setStyle('backgroundColor', itemBgColor)\r\n .setStyle('border', '1px solid')\r\n .setStyle('borderColor', itemBgColor)\r\n .setStyle('backgroundColor', this.parentMenu.style.colors.border)\r\n .setStyle('margin', '-2px 2px 2px -2px')\r\n .setStyle('width', 'auto')\r\n .setStyle('height', 'auto');\r\n }\r\n baseDivBuilder\r\n .setStyle('z-index', this.parentMenu.zIndex)\r\n .setStyle('position', 'absolute')\r\n .setStyle('display', 'none');\r\n var baseDiv = baseDivBuilder.toDOM();\r\n baseDiv['menuLevel'] = this;\r\n var applyItem = this._applyItem;\r\n //if multiselect option is on - then we should add special \"apply\" item\r\n if (multiselect && this.levelIndex === 0 && this.parentMenu.options.hideButtons !== true) {\r\n var applyDiv = document.createElement(\"div\");\r\n applyDiv.classList.add(this.cssPrefix + \"-applyDiv\");\r\n applyDiv['menuItem'] = applyItem;\r\n this.applyBtn = document.createElement('button');\r\n if (this.parentMenu.options.useDefaultStyles) {\r\n applyDiv.style.borderBottom = '1px solid';\r\n applyDiv.style.padding = '5px';\r\n applyDiv.style.marginBottom = '5px';\r\n this.applyBtn.style.padding = '0 5px';\r\n this.applyBtn.style.cursor = \"pointer\";\r\n }\r\n var applyTextNode = document.createTextNode(this.parentMenu.options.buttons.submit);\r\n this.applyBtn.appendChild(applyTextNode);\r\n applyDiv.appendChild(this.applyBtn);\r\n //cancel btn\r\n var cancelBtn = document.createElement('button');\r\n cancelBtn.classList.add(this.cssPrefix + \"-cancel\");\r\n if (this.parentMenu.options.useDefaultStyles) {\r\n cancelBtn.style.padding = '0 5px';\r\n cancelBtn.style.cursor = 'pointer';\r\n cancelBtn.style.marginLeft = '15px';\r\n }\r\n var cancelText = document.createTextNode(this.parentMenu.options.buttons.cancel);\r\n cancelBtn.appendChild(cancelText);\r\n applyDiv.appendChild(cancelBtn);\r\n baseDiv.appendChild(applyDiv);\r\n applyItem.itemDiv = applyDiv;\r\n this.applyBtn.addEventListener('click', function () {\r\n _this.submit(_this._applyItem);\r\n });\r\n cancelBtn.addEventListener('click', function () {\r\n _this.parentMenu.hideMenu();\r\n });\r\n }\r\n // if too many items - then we add a special \"search\" item\r\n // or there is an options to show always\r\n if (this.parentLevel == null\r\n && (this.parentMenu.options.searchBoxAlwaysShown || this.items.length >= this.parentMenu.options.showSearchBoxAfter)) {\r\n var searchDivBuilder = domel('div')\r\n .addClass(this.cssPrefix + \"-searchDiv\");\r\n if (this.parentMenu.options.useDefaultStyles) {\r\n searchDivBuilder\r\n .setStyle('border-bottom', '1px solid #666')\r\n .setStyle('background-color', itemBgColor)\r\n .setStyle('border-color', this.parentMenu.style.colors.border);\r\n if (itemFontFamily != \"\") {\r\n searchDivBuilder.setStyle('font-family', itemFontFamily);\r\n }\r\n searchDivBuilder\r\n .setStyle('font-size', itemFontSize)\r\n .setStyle('color', itemFgColor)\r\n .setStyle('cursor', 'pointer')\r\n .setStyle('text-align', 'left')\r\n .setStyle('padding', '5px');\r\n }\r\n var searchEditBoxBuilder = domel('input')\r\n .id('searchBox')\r\n .name('searchBox')\r\n .type('text')\r\n .size(16)\r\n .addClass(this.cssPrefix + \"-searchBox\")\r\n .on('input', function (ev) {\r\n _this.deactivateItem(_this.activeItem);\r\n _this.renderItems(_this.searchBox.value);\r\n })\r\n .on('keydown', function (ev) {\r\n var keyCode = ev.keyCode;\r\n switch (keyCode) {\r\n case 13: //enter\r\n if (_this.activeItem) {\r\n _this.activeItem.itemDiv.click();\r\n }\r\n break;\r\n case 38: // up\r\n _this.moveActiveItemUp();\r\n break;\r\n case 40: // down\r\n _this.moveActiveItemDown();\r\n break;\r\n case 39: // right\r\n if (!_this.searchBox.value) {\r\n _this.openSubLevel(_this.activeItem);\r\n }\r\n break;\r\n }\r\n });\r\n if (this.parentMenu.options.useDefaultStyles) {\r\n searchEditBoxBuilder\r\n .setStyle('font-family', 'monospace')\r\n .setStyle('font-size', '8pt')\r\n .setStyle('width', '100%');\r\n }\r\n if (isSubQuery) {\r\n searchEditBoxBuilder.addClass('eqjs-dialog');\r\n }\r\n this.searchBox = searchEditBoxBuilder.toDOM();\r\n this.searchDiv = searchDivBuilder.toDOM();\r\n this.searchDiv.appendChild(this.searchBox);\r\n baseDiv.appendChild(this.searchDiv);\r\n }\r\n var scrollDiv = document.createElement(\"div\");\r\n scrollDiv.tabIndex = 1;\r\n domel(scrollDiv)\r\n .addClass(this.cssPrefix + \"-scrollDiv\")\r\n .addClass(browserUtils.getMobileCssClass());\r\n scrollDiv.style.overflowX = \"hidden\";\r\n scrollDiv.style.overflowY = \"auto\";\r\n scrollDiv.style.position = \"relative\";\r\n baseDiv.appendChild(scrollDiv);\r\n this.levelDiv = baseDiv;\r\n this.scrollDiv = scrollDiv;\r\n if (this.menuId) {\r\n this.levelDiv.id = this.menuId;\r\n }\r\n if (this.parentLevel) {\r\n this.levelDiv.style.zIndex\r\n = this.parentLevel.levelDiv.style.zIndex;\r\n }\r\n this.renderItems();\r\n var scrollDivKeyDownHandler = function (event) {\r\n switch (event.which) {\r\n case 13: // enter\r\n if (_this.parentMenu.options.multiselect) {\r\n _this.parentMenu.getRootLevel().applyBtn.click();\r\n }\r\n else {\r\n if (_this.activeItem) {\r\n _this.activeItem.itemDiv.click();\r\n }\r\n }\r\n break;\r\n case 32: // space\r\n if (_this.activeItem) {\r\n _this.activeItem.itemDiv.click();\r\n }\r\n break;\r\n case 37: // left\r\n if (_this.parentLevel && !_this.isFilteringMode) {\r\n _this.deactivateItem(_this.activeItem);\r\n _this.parentLevel.focus();\r\n }\r\n break;\r\n case 39: // right\r\n _this.openSubLevel(_this.activeItem);\r\n break;\r\n case 38: // up\r\n _this.moveActiveItemUp();\r\n break;\r\n case 40: // down\r\n _this.moveActiveItemDown();\r\n break;\r\n default: return; // exit this handler for other keys\r\n }\r\n event.preventDefault(); // prevent the default action (scroll / move caret) \r\n };\r\n scrollDiv.addEventListener(\"keydown\", scrollDivKeyDownHandler);\r\n if (browserUtils.isMobileMode()) {\r\n this.closeDiv =\r\n domel('div', baseDiv)\r\n .addClass('eqjs-menu-close-btn')\r\n .addText(i18n.getText('ButtonClose'))\r\n .on('click', function () {\r\n _this.parentMenu.hideMenu();\r\n })\r\n .toDOM();\r\n }\r\n };\r\n MenuLevel.prototype.moveActiveItemDown = function () {\r\n var items = this.isFilteringMode ? this.filteredItems : this.items;\r\n if (this.activeItem) {\r\n var idx = items.indexOf(this.activeItem);\r\n if (idx < items.length - 1) {\r\n this.activateItem(items[idx + 1], false);\r\n }\r\n }\r\n else {\r\n this.activateItem(items[0], false);\r\n }\r\n };\r\n MenuLevel.prototype.moveActiveItemUp = function () {\r\n var items = this.isFilteringMode ? this.filteredItems : this.items;\r\n if (this.activeItem) {\r\n var idx = items.indexOf(this.activeItem);\r\n if (idx > 0) {\r\n this.activateItem(items[idx - 1], false);\r\n }\r\n }\r\n else {\r\n this.activateItem(items[items.length - 1], false);\r\n }\r\n };\r\n MenuLevel.prototype.openSubLevel = function (menuItem) {\r\n if (menuItem && menuItem.items && !this.isFilteringMode) {\r\n this.showSubLevel(menuItem);\r\n menuItem.subLevel.activateItem(menuItem.subLevel.items[0]);\r\n }\r\n };\r\n MenuLevel.prototype.focusScrollDiv = function () {\r\n this.scrollDiv.focus();\r\n };\r\n MenuLevel.prototype.turnCheckboxes = function (items) {\r\n //turn checkboxes on for selected items\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (item.itemCheckbox)\r\n item.itemCheckbox.checked = this.isItemSelected(item);\r\n if (item.items) {\r\n this.turnCheckboxes(item.items);\r\n }\r\n }\r\n };\r\n MenuLevel.prototype.isItemSelected = function (item) {\r\n if (item.items) {\r\n for (var i = 0; i < item.items.length; i++) {\r\n if (this.isItemSelected(item.items[i])) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n else {\r\n return item.selected;\r\n }\r\n };\r\n MenuLevel.prototype.setItemSelected = function (item, value) {\r\n if (item.items) {\r\n for (var i = 0; i < item.items.length; i++) {\r\n this.setItemSelected(item.items[i], value);\r\n }\r\n }\r\n else {\r\n item.selected = value;\r\n }\r\n };\r\n MenuLevel.prototype.submitItems = function (items, selectedItems) {\r\n for (var j = 0; j < items.length; j++) {\r\n if (items[j].items) {\r\n this.submitItems(items[j].items, selectedItems);\r\n }\r\n else {\r\n if (items[j].selected) {\r\n selectedItems.push(items[j]);\r\n }\r\n }\r\n }\r\n };\r\n MenuLevel.prototype.allSubitemsAreFiltered = function (items, filterCallback) {\r\n for (var i = 0; i < items.length; i++) {\r\n if (filterCallback(items[i]))\r\n return false;\r\n }\r\n return true;\r\n };\r\n MenuLevel.prototype.isItemDiv = function (element) {\r\n return element['menuItem'] ? true : false;\r\n };\r\n MenuLevel.prototype.isLevelDiv = function (element) {\r\n return element['menuLevel'] ? true : false;\r\n };\r\n MenuLevel.prototype.getMenuItem = function (element) {\r\n var el = element;\r\n while (!this.isItemDiv(el)) {\r\n if (this.isLevelDiv(el)) {\r\n throw \"Can't get menu item\";\r\n }\r\n el = el.parentElement;\r\n }\r\n return el['menuItem'];\r\n };\r\n MenuLevel.prototype.renderItemsWithoutFilter = function () {\r\n var _this = this;\r\n this.isFilteringMode = false;\r\n var scrollDiv = this.scrollDiv;\r\n var multiselect = this.parentMenu.options.multiselect;\r\n var activateOnMouseOver = this.parentMenu.options.activateOnMouseOver;\r\n var itemFgColor = this.parentMenu.style.colors.fgON || 'black';\r\n var itemOverBgColor = this.parentMenu.style.colors.bgOVER || 'LightSteelBlue';\r\n var itemFontSize = this.parentMenu.style.itemStyle.fontSize || '14px';\r\n var itemFilterCallback = this.parentMenu.getItemFilterCallback();\r\n scrollDiv.innerHTML = \"\";\r\n for (var i = 0; i < this.items.length; i++) {\r\n var item = this.items[i];\r\n if (!item || !item.text)\r\n continue;\r\n if (itemFilterCallback) {\r\n if (!itemFilterCallback(item))\r\n continue;\r\n if (item.items && this.allSubitemsAreFiltered(item.items, itemFilterCallback))\r\n continue;\r\n }\r\n item.data = function (propName) {\r\n return _this[propName];\r\n };\r\n if (typeof (item.selected) == \"undefined\") {\r\n item.selected = false;\r\n }\r\n if (item.selected && this.selectedItem == null) {\r\n this.selectedItem = item;\r\n }\r\n var itemDiv = document.createElement(\"div\");\r\n domel(itemDiv)\r\n .addClass(this.cssPrefix + \"-itemDiv\")\r\n .addClass(browserUtils.getMobileCssClass());\r\n if (item.selected && this.showSelected && !multiselect) {\r\n itemDiv.classList.add(this.cssPrefix + \"-selected\");\r\n }\r\n ;\r\n if (this.domWriteItemsId && this.menuId) {\r\n itemDiv.id = 'item-' + this.menuId + '-' + item.id;\r\n }\r\n scrollDiv.appendChild(itemDiv);\r\n itemDiv['menuItem'] = item;\r\n itemDiv['menuLevel'] = this;\r\n item.itemDiv = itemDiv;\r\n if (this.parentMenu.options.useDefaultStyles) {\r\n itemDiv.style.fontSize = itemFontSize;\r\n itemDiv.style.color = itemFgColor;\r\n itemDiv.style.paddingLeft = \"15px\";\r\n itemDiv.style.paddingRight = \"6px\";\r\n itemDiv.style.cursor = \"pointer\";\r\n }\r\n if (item.text == '---') {\r\n itemDiv.appendChild(document.createElement('hr'));\r\n }\r\n else {\r\n if (multiselect) {\r\n var cb = document.createElement(\"input\");\r\n cb.type = \"checkbox\";\r\n cb.id = \"cb\" + item.id;\r\n cb.checked = this.isItemSelected(item);\r\n cb.defaultChecked = this.isItemSelected(item);\r\n itemDiv.appendChild(cb);\r\n item.itemCheckbox = cb;\r\n if (this.parentMenu.options.useDefaultStyles) {\r\n cb.style.margin = \"4px 10px 0 0\";\r\n cb.style.verticalAlign = \"top\";\r\n }\r\n }\r\n var itemText = document.createTextNode(item.text);\r\n itemDiv.appendChild(itemText);\r\n if (item.items && item.items.length > 0) {\r\n itemDiv.classList.add(this.cssPrefix + \"-itemDiv-hasChildren\");\r\n var arrowSpan = document.createElement('span');\r\n arrowSpan.classList.add(this.cssPrefix + \"-itemDiv-arrow\");\r\n itemDiv.appendChild(arrowSpan);\r\n var arrowText = document.createTextNode('>');\r\n arrowSpan.appendChild(arrowText);\r\n }\r\n var itemClickHandler = function (ev) {\r\n var menuItem = _this.getMenuItem(ev.target);\r\n if (multiselect) {\r\n if (!menuItem.items || ev.target == menuItem.itemCheckbox) {\r\n var itemSelected = _this.isItemSelected(menuItem);\r\n _this.setItemSelected(menuItem, !itemSelected);\r\n menuItem.itemCheckbox.checked = !itemSelected;\r\n _this.parentMenu.refreshCheckboxes();\r\n }\r\n else {\r\n _this.activateItem(menuItem);\r\n }\r\n }\r\n else {\r\n _this.activateItem(menuItem);\r\n _this.submit(menuItem);\r\n }\r\n return false;\r\n };\r\n itemDiv.removeEventListener(\"click\", itemClickHandler);\r\n itemDiv.addEventListener('click', itemClickHandler);\r\n itemDiv.addEventListener('mouseenter', function (ev) {\r\n var item = _this.getMenuItem(ev.target);\r\n _this.parentMenu.isCursorInside = true;\r\n if (activateOnMouseOver) {\r\n _this.activateItem(item);\r\n }\r\n });\r\n itemDiv.addEventListener('mouseleave', function (ev) {\r\n var item = _this.getMenuItem(ev.target);\r\n _this.parentMenu.isCursorInside = false;\r\n setTimeout(function () {\r\n if (!_this.parentMenu.isCursorInside) {\r\n if (activateOnMouseOver && item == _this.activeItem && !item.subLevel) {\r\n _this.deactivateItem(item);\r\n }\r\n }\r\n }, 200);\r\n });\r\n }\r\n if (this.itemRenderedCallback) {\r\n this.itemRenderedCallback(this.menuId, itemDiv);\r\n }\r\n }\r\n };\r\n MenuLevel.prototype.renderItemsWithFilter = function (filter) {\r\n this.isFilteringMode = true;\r\n var scrollDiv = this.scrollDiv;\r\n scrollDiv.innerHTML = \"\";\r\n var filterSections = filter.split('>');\r\n var pureFilterTexts = filterSections.map(function (section) { return section.replace(/\\*/g, ''); });\r\n var items = this.filterItems(this.items, filterSections);\r\n this.filteredItems = [];\r\n for (var i = 0; i < items.length; i++) {\r\n this.renderItemWithFilter(items[i], pureFilterTexts, 0);\r\n }\r\n };\r\n MenuLevel.prototype.matchesFilter = function (text, regexp) {\r\n if (text && regexp) {\r\n return regexp.test(text);\r\n }\r\n else {\r\n return true;\r\n }\r\n };\r\n MenuLevel.prototype.filterItems = function (items, filterSections) {\r\n var resultItems = [];\r\n var filter = filterSections.length > 0 ? filterSections[0] : '';\r\n var restFilterSections = filterSections.length > 1 ? filterSections.slice(1) : filterSections;\r\n var filterRegexp = filter ? new RegExp(filter.replace(/\\*/g, '.+?'), 'i') : null;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (item.items) {\r\n var groupItem = dataUtils.assign({}, item);\r\n var groupItemMatches = this.matchesFilter(item.text, filterRegexp);\r\n //if we have only one filter section (or an empty filter)\r\n if (filterSections.length < 2) {\r\n //if current group item matches the filter -> show all sub-items\r\n if (groupItemMatches && filterSections.length < 2) {\r\n groupItem.items = dataUtils.createArrayFrom(item.items);\r\n }\r\n else {\r\n groupItem.items = this.filterItems(item.items, restFilterSections);\r\n }\r\n }\r\n //if we have more than 1 filter section and there is a match -> filter sub-items as well\r\n else if (groupItemMatches) {\r\n groupItem.items = this.filterItems(item.items, restFilterSections);\r\n }\r\n //otherwise we skip this group at all\r\n else {\r\n groupItem.items = [];\r\n }\r\n if (groupItem.items.length > 0) {\r\n resultItems.push(groupItem);\r\n }\r\n }\r\n else {\r\n if (this.matchesFilter(item.text, filterRegexp)) {\r\n resultItems.push(item);\r\n }\r\n }\r\n }\r\n return resultItems;\r\n };\r\n MenuLevel.prototype.renderItemWithFilter = function (item, filterTexts, level) {\r\n var _this = this;\r\n var scrollDiv = this.scrollDiv;\r\n var levelFilterText = level < filterTexts.length ? filterTexts[level] : filterTexts[filterTexts.length - 1];\r\n var multiselect = this.parentMenu.options.multiselect;\r\n var activateOnMouseOver = this.parentMenu.options.activateOnMouseOver;\r\n var itemFgColor = this.parentMenu.style.colors.fgON || 'black';\r\n var itemOverBgColor = this.parentMenu.style.colors.bgOVER || 'LightSteelBlue';\r\n var itemFontSize = this.parentMenu.style.itemStyle.fontSize || '14px';\r\n var itemFilterCallback = this.parentMenu.getItemFilterCallback();\r\n if (!item || !item.text)\r\n return;\r\n if (itemFilterCallback) {\r\n if (!itemFilterCallback(item))\r\n return;\r\n if (item.items && this.allSubitemsAreFiltered(item.items, itemFilterCallback))\r\n return;\r\n }\r\n item.data = function (propName) {\r\n return this[propName];\r\n };\r\n if (typeof (item.selected) == \"undefined\") {\r\n item.selected = false;\r\n }\r\n if (item.selected && this.selectedItem == null) {\r\n this.selectedItem = item;\r\n }\r\n var itemDiv = document.createElement(\"div\");\r\n domel(itemDiv)\r\n .addClass(this.cssPrefix + \"-itemDiv\")\r\n .addClass(browserUtils.getMobileCssClass());\r\n itemDiv.style.marginLeft = level * 10 + \"px\";\r\n if (item.selected && !multiselect) {\r\n itemDiv.classList.add(this.cssPrefix + \"-selected\");\r\n }\r\n ;\r\n if (this.domWriteItemsId && this.menuId) {\r\n itemDiv.id = 'item-' + this.menuId + '-' + item.id;\r\n }\r\n scrollDiv.appendChild(itemDiv);\r\n itemDiv['menuItem'] = item;\r\n itemDiv['menuLevel'] = this;\r\n item.itemDiv = itemDiv;\r\n if (this.parentMenu.options.useDefaultStyles) {\r\n itemDiv.style.fontSize = itemFontSize;\r\n itemDiv.style.color = itemFgColor;\r\n itemDiv.style.paddingLeft = \"15px\";\r\n itemDiv.style.paddingRight = \"6px\";\r\n itemDiv.style.cursor = \"pointer\";\r\n }\r\n if (item.text == '---') {\r\n itemDiv.appendChild(document.createElement('hr'));\r\n }\r\n else {\r\n if (multiselect) {\r\n var cb = document.createElement(\"input\");\r\n cb.type = \"checkbox\";\r\n cb.id = \"cb\" + item.id;\r\n cb.checked = this.isItemSelected(item);\r\n cb.defaultChecked = this.isItemSelected(item);\r\n itemDiv.appendChild(cb);\r\n item.itemCheckbox = cb;\r\n if (this.parentMenu.options.useDefaultStyles) {\r\n cb.style.margin = \"4px 10px 0 0\";\r\n cb.style.verticalAlign = \"top\";\r\n }\r\n }\r\n var itemText = document.createElement('span');\r\n itemText.innerHTML = this.highlightText(item.text, levelFilterText);\r\n itemDiv.appendChild(itemText);\r\n if (item.items && item.items.length > 0) {\r\n itemDiv.classList.add(this.cssPrefix + \"-itemDiv-filter-hasChildren\");\r\n }\r\n else {\r\n this.filteredItems.push(item);\r\n var itemClickHandler = function (event) {\r\n if (multiselect) {\r\n if (!item.items || event.target == item.itemCheckbox) {\r\n var itemSelected = _this.isItemSelected(item);\r\n _this.setItemSelected(item, !itemSelected);\r\n item.itemCheckbox.checked = !itemSelected;\r\n _this.parentMenu.refreshCheckboxes();\r\n }\r\n else {\r\n _this.activateItem(item);\r\n }\r\n }\r\n else {\r\n _this.activateItem(item);\r\n _this.submit(item);\r\n }\r\n return false;\r\n };\r\n itemDiv.removeEventListener(\"click\", itemClickHandler);\r\n itemDiv.addEventListener('click', itemClickHandler);\r\n itemDiv.addEventListener('mouseenter', function (ev) {\r\n ;\r\n _this.parentMenu.isCursorInside = true;\r\n if (activateOnMouseOver) {\r\n _this.activateItem(item);\r\n }\r\n });\r\n itemDiv.addEventListener('mouseleave', function (ev) {\r\n _this.parentMenu.isCursorInside = false;\r\n setTimeout(function () {\r\n if (!_this.parentMenu.isCursorInside) {\r\n if (activateOnMouseOver && item == _this.activeItem && !item.subLevel) {\r\n _this.deactivateItem(item);\r\n }\r\n }\r\n }, 200);\r\n });\r\n }\r\n }\r\n if (item.items) {\r\n for (var i = 0; i < item.items.length; i++) {\r\n this.renderItemWithFilter(item.items[i], filterTexts, level + 1);\r\n }\r\n }\r\n if (this.itemRenderedCallback) {\r\n this.itemRenderedCallback(this.menuId, itemDiv);\r\n }\r\n };\r\n MenuLevel.prototype.highlightText = function (content, text) {\r\n if (text && text.length > 0) {\r\n var lowerText = text.toLowerCase();\r\n var lowerContent = content.toLowerCase();\r\n var insertValue1 = \"\";\r\n var insertValue2 = \"\";\r\n var startIndex = lowerContent.indexOf(lowerText);\r\n if (startIndex >= 0) {\r\n var pos = 0;\r\n var value = content;\r\n var indexInMas = [];\r\n while (true) {\r\n var index = lowerContent.indexOf(lowerText, pos);\r\n if (index >= 0) {\r\n indexInMas.push(index);\r\n pos = index + text.length;\r\n }\r\n else {\r\n pos++;\r\n }\r\n if (pos >= value.length - 1) {\r\n break;\r\n }\r\n }\r\n if (indexInMas.length > 0) {\r\n content = '';\r\n for (var i = 0; i < indexInMas.length; i++) {\r\n if (i === 0) {\r\n content += value.substring(0, indexInMas[i]);\r\n }\r\n content += insertValue1 + value.substring(indexInMas[i], indexInMas[i] + text.length) + insertValue2;\r\n if (i < indexInMas.length - 1) {\r\n content += value.substring(indexInMas[i] + text.length, indexInMas[i + 1]);\r\n }\r\n else {\r\n content += value.substring(indexInMas[i] + text.length);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return content;\r\n };\r\n MenuLevel.prototype.renderItems = function (filter) {\r\n if (!filter && !browserUtils.isMobileMode()) {\r\n this.renderItemsWithoutFilter();\r\n }\r\n else {\r\n filter = filter || '';\r\n this.renderItemsWithFilter(filter.toLowerCase());\r\n }\r\n };\r\n MenuLevel.prototype.activateItem = function (menuItem, openSubLevel) {\r\n if (openSubLevel === void 0) { openSubLevel = true; }\r\n if (this.activeItem != null) {\r\n this.deactivateItem(this.activeItem);\r\n }\r\n this.activeItem = menuItem;\r\n var rowElement = menuItem.itemDiv;\r\n rowElement.classList.add('active');\r\n if (this.parentMenu.options.useDefaultStyles) {\r\n var itemBgColor = this.parentMenu.style.colors.bgON;\r\n var itemFgColor = this.parentMenu.style.colors.fgON;\r\n var itemOverBgColor = this.parentMenu.style.colors.bgOVER;\r\n var itemOverFgColor = this.parentMenu.style.colors.fgOVER || \"\";\r\n var itemClass = this.parentMenu.style.itemClass || \"\";\r\n var itemClassOver = this.parentMenu.style.itemClassOver || \"\";\r\n if (itemClassOver != \"\") {\r\n rowElement.style.backgroundColor = \"\";\r\n rowElement.style.color = \"\";\r\n }\r\n else {\r\n rowElement.style.backgroundColor = itemOverBgColor;\r\n rowElement.style.color = itemOverFgColor;\r\n }\r\n }\r\n if (menuItem.items && !this.isFilteringMode && openSubLevel) {\r\n this.showSubLevel(menuItem);\r\n }\r\n };\r\n MenuLevel.prototype.deactivateItem = function (menuItem) {\r\n if (!menuItem)\r\n return;\r\n var rowElement = menuItem.itemDiv;\r\n rowElement.classList.remove('active');\r\n if (this.parentMenu.options.useDefaultStyles) {\r\n var itemBgColor = this.parentMenu.style.colors.bgON;\r\n var itemFgColor = this.parentMenu.style.colors.fgON;\r\n var itemClass = this.parentMenu.style.itemClass || \"\";\r\n if (itemClass != \"\") {\r\n rowElement.style.backgroundColor = \"\";\r\n rowElement.style.color = \"\";\r\n }\r\n else {\r\n rowElement.style.backgroundColor = itemBgColor;\r\n rowElement.style.color = itemFgColor;\r\n }\r\n }\r\n if (menuItem.subLevel) {\r\n menuItem.subLevel.hide();\r\n }\r\n this.activeItem = null;\r\n };\r\n MenuLevel.prototype.showSubLevel = function (menuItem) {\r\n if (!menuItem.subLevel) {\r\n var levelId = '';\r\n if (this.menuId) {\r\n levelId = this.menuId + \"-\" + menuItem.id;\r\n }\r\n menuItem.subLevel = new MenuLevel({\r\n showSelected: this.showSelected,\r\n menu: this.parentMenu,\r\n parent: this,\r\n container: this.parentElement,\r\n items: menuItem.items,\r\n levelIndex: this.levelIndex + 1,\r\n domWriteItemsId: this.domWriteItemsId,\r\n menuId: levelId,\r\n itemRenderedCallback: this.itemRenderedCallback\r\n });\r\n }\r\n var pos = getElementAbsolutePos(menuItem.itemDiv);\r\n var scroll = getScrollPos();\r\n var winSize = getWinSize();\r\n //show menu to the side that have more space available\r\n var leftSpace = pos.x - scroll.left;\r\n var rightSpace = winSize.width - leftSpace - menuItem.itemDiv.offsetWidth;\r\n pos.x += menuItem.itemDiv.offsetParent.offsetWidth;\r\n pos.y += 1;\r\n menuItem.subLevel.showAt(pos.x, pos.y, true, true);\r\n menuItem.subLevel.levelDiv.style.width = '';\r\n menuItem.subLevel.levelDiv.style.right = '';\r\n if ((rightSpace >= menuItem.subLevel.levelDiv.offsetWidth) || (rightSpace >= leftSpace)) { //show level to the right\r\n if (rightSpace < menuItem.subLevel.levelDiv.offsetWidth) {\r\n menuItem.subLevel.levelDiv.style.right = -scroll.left + 'px';\r\n }\r\n }\r\n else { //show level to the left\r\n if (leftSpace < menuItem.subLevel.levelDiv.offsetWidth) {\r\n menuItem.subLevel.levelDiv.style.left = scroll.left + 4 + 'px';\r\n }\r\n else {\r\n menuItem.subLevel.levelDiv.style.left = '';\r\n }\r\n menuItem.subLevel.levelDiv.style.right = getViewportSize().width - pos.x + menuItem.itemDiv.offsetWidth - 6 + 'px';\r\n }\r\n menuItem.subLevel.levelDiv.style.visibility = 'visible';\r\n menuItem.subLevel.focus();\r\n };\r\n MenuLevel.prototype.adjustTopPos = function (top) {\r\n var winSize = getWinSize();\r\n var levelBottom = top - getScrollPos().top + this.levelDiv.offsetHeight;\r\n var res = top;\r\n if (levelBottom > winSize.height - 5) {\r\n res -= levelBottom - winSize.height + 5;\r\n if (res < getScrollPos().top) {\r\n res = getScrollPos().top + 10;\r\n }\r\n }\r\n return res;\r\n };\r\n MenuLevel.prototype.showAt = function (x, y, adjustTopPos, hidden) {\r\n if (!this.items) {\r\n return;\r\n }\r\n this.initLevelDiv();\r\n //crocodile\r\n this.turnCheckboxes(this.items);\r\n this.renderItems();\r\n var levelStyle = this.levelDiv.style;\r\n if (hidden) {\r\n this.levelDiv.style.visibility = 'hidden';\r\n }\r\n levelStyle.display = 'block';\r\n levelStyle.left = x + 'px';\r\n levelStyle.top = y + 'px';\r\n this.scrollDiv.style.width = \"auto\";\r\n this.scrollDiv.style.height = \"auto\";\r\n //adjusting level top position\r\n if (adjustTopPos) {\r\n y = this.adjustTopPos(y);\r\n levelStyle.top = y + 'px';\r\n }\r\n //setting minimal level width if it is defined\r\n var minItemWidth = this.parentMenu.minItemWidth;\r\n if (minItemWidth > 0 && this.scrollDiv.offsetWidth < minItemWidth) {\r\n for (var i = 0; i < this.items.length; i++) {\r\n this.items[i].itemDiv.style.width = minItemWidth + \"px\";\r\n }\r\n }\r\n var maxItemWidth = this.parentMenu.maxItemWidth;\r\n if (maxItemWidth > 0 && this.scrollDiv.offsetWidth > maxItemWidth) {\r\n for (var i = 0; i < this.items.length; i++) {\r\n this.items[i].itemDiv.style.width = maxItemWidth + \"px\";\r\n this.items[i].itemDiv.style.overflowX = \"hidden\";\r\n }\r\n }\r\n var winSize = getWinSize();\r\n //adjustinng maximum height of the menu level if it does not fit to browser window\r\n var maxHeight = winSize.height - (y - getScrollPos().top) - 15; //document.documentElement.scrollTop\r\n if (this.parentMenu.maxHeight > 0 && maxHeight > this.parentMenu.maxHeight) {\r\n maxHeight = this.parentMenu.maxHeight;\r\n }\r\n if (this._applyItem != null && this._applyItem.itemDiv != null) {\r\n maxHeight -= this._applyItem.itemDiv.offsetHeight + 5;\r\n }\r\n if (this.searchDiv != null) {\r\n maxHeight -= this.searchDiv.offsetHeight;\r\n }\r\n if (this.closeDiv != null) {\r\n maxHeight -= this.closeDiv.offsetHeight;\r\n }\r\n if (this.levelDiv.offsetHeight > maxHeight) {\r\n var newHeight = maxHeight;\r\n if (newHeight < 50) {\r\n newHeight = 50;\r\n }\r\n this.scrollDiv.style.height = newHeight + \"px\";\r\n }\r\n else {\r\n this.scrollDiv.style.height = \"auto\";\r\n }\r\n this.activeItem = null;\r\n };\r\n MenuLevel.prototype.focus = function () {\r\n var _this = this;\r\n window.setTimeout(function () {\r\n _this.scrollDiv.focus();\r\n if (_this.searchBox != null) {\r\n if (_this.parentMenu.options.searchBoxAutoFocus) {\r\n _this.searchBox.focus();\r\n }\r\n _this.searchBox.value = \"\";\r\n }\r\n }, 100);\r\n };\r\n MenuLevel.prototype.hide = function () {\r\n if (this.activeItem !== null) {\r\n if (this.activeItem.subLevel) {\r\n this.activeItem.subLevel.hide();\r\n }\r\n }\r\n if (this.levelDiv) {\r\n var levelStyle = this.levelDiv.style;\r\n levelStyle.display = 'none';\r\n if (this.initialized) {\r\n this.parentElement.removeChild(this.levelDiv);\r\n this.initialized = false;\r\n }\r\n }\r\n };\r\n MenuLevel.prototype.initLevelDiv = function () {\r\n if (!this.initialized) {\r\n this.parentElement.appendChild(this.levelDiv);\r\n domel(this.levelDiv)\r\n .addClass(this.cssPrefix + \"-levelDiv\")\r\n .addClass(browserUtils.getMobileCssClass());\r\n this.initialized = true;\r\n }\r\n };\r\n MenuLevel.prototype.submit = function (menuItem) {\r\n if (menuItem != null) {\r\n if (!menuItem.items) {\r\n this.parentMenu.hideMenu();\r\n var selectedItems = [];\r\n if (menuItem == this._applyItem) {\r\n this.submitItems(this.items, selectedItems);\r\n }\r\n this.parentMenu.submitMenu(menuItem, selectedItems);\r\n }\r\n }\r\n };\r\n MenuLevel.prototype.remove = function () {\r\n //remove old level elements\r\n for (var i = 0; i < this.items.length; i++) {\r\n var item = this.items[i];\r\n if (item.subLevel) {\r\n item.subLevel.remove();\r\n }\r\n }\r\n if (this.levelDiv) {\r\n this.levelDiv.innerHTML = \"\";\r\n var parentNode = this.levelDiv.parentNode;\r\n if (parentNode != null) {\r\n parentNode.removeChild(this.levelDiv);\r\n }\r\n }\r\n this.levelDiv = null;\r\n };\r\n MenuLevel.prototype.update = function (newItems) {\r\n this.remove();\r\n //create new level\r\n this.items = newItems;\r\n this.activeItem = null;\r\n this.selectedItem = null;\r\n this._applyItem.itemDiv = null;\r\n this.initialized = false;\r\n this.updated++;\r\n this.renderContent();\r\n };\r\n MenuLevel.prototype.refreshCheckboxes = function () {\r\n for (var i = 0; i < this.items.length; i++) {\r\n var item = this.items[i];\r\n if (item.itemCheckbox) {\r\n item.itemCheckbox.checked = this.isItemSelected(item);\r\n }\r\n if (item.subLevel) {\r\n item.subLevel.refreshCheckboxes();\r\n }\r\n }\r\n };\r\n MenuLevel.prototype.refreshItems = function () {\r\n for (var i = 0; i < this.items.length; i++) {\r\n var item = this.items[i];\r\n if (item.itemDiv) {\r\n if (item.hidden) {\r\n item.itemDiv.style.display = \"none\";\r\n }\r\n else {\r\n item.itemDiv.style.display = \"block\";\r\n }\r\n }\r\n if (item.subLevel) {\r\n item.subLevel.refreshItems();\r\n }\r\n }\r\n };\r\n MenuLevel.prototype.findItem = function (searchedText) {\r\n var txt = searchedText.toLowerCase();\r\n for (var i = 0; i < this.items.length; i++) {\r\n var item = this.items[i];\r\n if (item.text.toLowerCase().indexOf(txt) == 0) {\r\n return item;\r\n }\r\n }\r\n return null;\r\n };\r\n return MenuLevel;\r\n}());\r\nvar PopupMenu = /** @class */ (function () {\r\n function PopupMenu(options) {\r\n var _this = this;\r\n this.isCursorInside = false;\r\n this.mouseIsOverBlock = false;\r\n this.mouseIsOverLink = false;\r\n this.toId = null;\r\n this.active = false;\r\n this.ancorFocused = null;\r\n this.options = {\r\n items: [],\r\n buttons: {\r\n submit: i18n.getText('ButtonApply'),\r\n cancel: i18n.getText('ButtonCancel')\r\n },\r\n itemFilterCallback: null,\r\n useDefaultStyles: false,\r\n multiselect: false,\r\n adjustHeight: true,\r\n showSearchBoxAfter: 30,\r\n activateOnMouseOver: true,\r\n container: document.body,\r\n domWriteItemsId: false,\r\n itemRenderedCallback: null\r\n };\r\n if (options) {\r\n dataUtils.assignDeep(this.options, options);\r\n }\r\n if (this.options.hideButtons) {\r\n this.options.submitOnBlur = true;\r\n }\r\n this.menuId = PopupMenu.lastMenuID++;\r\n this.updateProps();\r\n this.rootLevel = new MenuLevel({\r\n menu: this,\r\n items: this.options.items,\r\n levelIndex: 0,\r\n container: this.options.container,\r\n domWriteItemsId: this.options.domWriteItemsId,\r\n menuId: this.options.id,\r\n itemRenderedCallback: this.options.itemRenderedCallback,\r\n showSelected: this.options.showSelected,\r\n });\r\n this.rootLevel.levelDiv.classList.add(this.cssPrefix + \"-rootLevel\");\r\n if (this.options.zIndex)\r\n this.rootLevel.levelDiv.style.zIndex = \"\" + this.options.zIndex;\r\n this.menuKeyUpHandler = function (e) {\r\n if (e.which == 27) {\r\n _this.hideMenu();\r\n e.stopImmediatePropagation();\r\n }\r\n };\r\n this.globalMouseDownHandler = function (e) {\r\n if (!_this.active)\r\n return true;\r\n var event = window.event || e;\r\n var o = event.srcElement || event.target;\r\n var isOutside = true;\r\n while (o) {\r\n if (o.tagName && o.tagName.toLowerCase() == 'div') {\r\n // it is added in renderContent of MenuLevel class\r\n if (o.menuLevel) {\r\n if (o.menuLevel.parentMenu == _this) {\r\n isOutside = false;\r\n break;\r\n }\r\n }\r\n }\r\n o = o.parentNode || o.parentElement;\r\n }\r\n if (isOutside) {\r\n if (_this.options.submitOnBlur) {\r\n _this.rootLevel.submit(_this.rootLevel.applyItem);\r\n }\r\n _this.hideMenu();\r\n }\r\n return true;\r\n };\r\n this.render();\r\n }\r\n Object.defineProperty(PopupMenu.prototype, \"cssPrefix\", {\r\n get: function () {\r\n return 'eqjs-menu';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n PopupMenu.prototype.getItems = function () {\r\n return this.rootLevel.getItems();\r\n };\r\n PopupMenu.prototype.updateProps = function () {\r\n this.style = {};\r\n this.style.colors = { border: \"#666666\", shadow: \"#888888\", bgON: \"white\", fgON: \"black\", bgOVER: \"#B6BDD2\", fgOVER: \"black\" };\r\n this.style.itemStyle = { fontSize: \"14px\" };\r\n this.minItemWidth = 0;\r\n this.maxItemWidth = 0;\r\n this.maxHeight = 0;\r\n this.zIndex = \"\" + this.options.zIndex;\r\n this.commandTemplate = \"\";\r\n this.args = [];\r\n this.active = false;\r\n };\r\n PopupMenu.prototype.render = function () {\r\n };\r\n PopupMenu.prototype.clearItemsMenuProps = function (items) {\r\n if (!items)\r\n return;\r\n for (var i = 0; i < items.length; i++) {\r\n this.clearItemMenuProps(items[i]);\r\n }\r\n };\r\n PopupMenu.prototype.clearItemMenuProps = function (item) {\r\n //don't clear properties they belong this menu\r\n if (item.subLevel && item.subLevel.parentMenu == this)\r\n return;\r\n if (item.subLevel) {\r\n item.subLevel.remove();\r\n item.subLevel = null;\r\n }\r\n if (item.itemDiv) {\r\n item.itemDiv = null;\r\n }\r\n if (item.items) {\r\n this.clearItemsMenuProps(item.items);\r\n }\r\n };\r\n PopupMenu.prototype.setSelectedItems = function (items, selectedIds) {\r\n var itemsLength = items ? items.length : 0;\r\n for (var i = 0; i < itemsLength; i++) {\r\n var item = items[i];\r\n if (item.items) {\r\n this.setSelectedItems(item.items, selectedIds);\r\n }\r\n else {\r\n item.selected = selectedIds.indexOf(item.id) >= 0;\r\n }\r\n }\r\n };\r\n PopupMenu.prototype.getRootLevel = function () {\r\n return this.rootLevel;\r\n };\r\n PopupMenu.prototype.getItemFilterCallback = function () {\r\n return this.itemFilterCallback;\r\n };\r\n PopupMenu.prototype.showMenu = function (options) {\r\n this.ancorFocused = options.anchor == document.activeElement ? options.anchor : null;\r\n this.clearItemsMenuProps(this.options.items);\r\n this.itemSelectedCallback = options.itemSelectedCallback || null;\r\n this.menuClosedCallback = options.menuClosedCallback || null;\r\n this.itemFilterCallback = options.itemFilterCallback || null;\r\n if (options.items) {\r\n this.options.items = options.items;\r\n this.rootLevel.setItems(options.items);\r\n }\r\n if (options.onMenuItemSelected) {\r\n this.options.onMenuItemSelected = options.onMenuItemSelected;\r\n }\r\n var selectedIds = options.selectedIds || null;\r\n if (selectedIds) {\r\n if (typeof selectedIds === \"string\") {\r\n selectedIds = selectedIds.split(\",\");\r\n }\r\n }\r\n else {\r\n selectedIds = [];\r\n }\r\n this.active = true;\r\n this.setSelectedItems(this.options.items, selectedIds);\r\n if (browserUtils.isMobileMode()) {\r\n this.rootLevel.showAt(0, 0, true, true);\r\n this.rootLevel.levelDiv.style.top = '0px';\r\n this.rootLevel.levelDiv.style.bottom = '0px';\r\n this.rootLevel.levelDiv.style.right = '0px';\r\n this.rootLevel.levelDiv.style.position = 'fixed';\r\n this.rootLevel.levelDiv.style.fontSize = '20px';\r\n }\r\n else {\r\n var anchor = options.anchor || document.documentElement;\r\n var srcPos = getElementAbsolutePos(anchor);\r\n var anchorHeight = anchor.offsetHeight;\r\n var anchorWidth = anchor.offsetHeight;\r\n var pos = {\r\n x: srcPos.x,\r\n y: srcPos.y + anchorHeight + 2\r\n };\r\n var scroll_1 = getScrollPos();\r\n var winSize = getWinSize();\r\n //show menu to the side that have more space available\r\n var leftSpace = pos.x + anchorWidth - scroll_1.left;\r\n var rightSpace = winSize.width - leftSpace + anchorWidth;\r\n pos.x += 2;\r\n this.rootLevel.showAt(pos.x, pos.y, true, true);\r\n this.rootLevel.levelDiv.style.width = '';\r\n this.rootLevel.levelDiv.style.right = '';\r\n if (!this.rootLevel.levelDiv.style.zIndex) {\r\n // z-index is at least 10000 and more if anchor has bigger\r\n this.rootLevel.levelDiv.style.zIndex = \"\" + Math.max(10000, findHighestZIndex(anchor) + 1);\r\n }\r\n if ((rightSpace >= this.rootLevel.levelDiv.offsetWidth) || (rightSpace >= leftSpace)) {\r\n //show level to the right\r\n if (rightSpace < this.rootLevel.levelDiv.offsetWidth) {\r\n this.rootLevel.levelDiv.style.right = -scroll_1.left + 'px';\r\n }\r\n }\r\n else {\r\n //show level to the left\r\n if (leftSpace < this.rootLevel.levelDiv.offsetWidth) {\r\n this.rootLevel.levelDiv.style.left = scroll_1.left + 4 + 'px';\r\n }\r\n else {\r\n this.rootLevel.levelDiv.style.left = '';\r\n }\r\n this.rootLevel.levelDiv.style.right = getViewportSize().width - pos.x - anchorWidth + 'px';\r\n }\r\n this.rootLevel.levelDiv.style.fontSize = '14px';\r\n }\r\n this.rootLevel.levelDiv.style.visibility = 'visible';\r\n this.rootLevel.focus();\r\n document.addEventListener('keyup', this.menuKeyUpHandler);\r\n document.addEventListener('mousedown', this.globalMouseDownHandler, true);\r\n };\r\n PopupMenu.prototype.hideMenu = function () {\r\n document.removeEventListener('mousedown', this.globalMouseDownHandler, true);\r\n document.removeEventListener('keyup', this.menuKeyUpHandler);\r\n this.rootLevel.hide();\r\n if (this.ancorFocused) {\r\n this.ancorFocused.focus();\r\n }\r\n if (this.menuClosedCallback) {\r\n this.menuClosedCallback();\r\n }\r\n };\r\n PopupMenu.prototype.submitMenu = function (menuItem, selectedItems) {\r\n if (this.itemSelectedCallback) {\r\n this.itemSelectedCallback(menuItem, selectedItems);\r\n }\r\n };\r\n PopupMenu.prototype.knockMenuStyle = function (menu) {\r\n menu.removeAttribute('style');\r\n var ul = menu.querySelectorAll('ul').item(0);\r\n var hasUlStyle = ul && ul.style ? true : false;\r\n if (hasUlStyle !== false) {\r\n ul.setAttribute('style', '');\r\n }\r\n };\r\n PopupMenu.prototype.refreshItems = function () {\r\n this.rootLevel.refreshItems();\r\n };\r\n PopupMenu.prototype.refreshCheckboxes = function () {\r\n this.rootLevel.refreshCheckboxes();\r\n };\r\n PopupMenu.lastMenuID = 0;\r\n return PopupMenu;\r\n}());\r\nexport { PopupMenu };\r\n//# sourceMappingURL=popup_menu.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/utils/popup_menu.js\n// module id = 15\n// module chunks = 0","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/warning/warning.js\n// module id = 16\n// module chunks = 0","/**\r\n * Represents parts of Query Panel which can be editable\r\n */\r\nexport var QPEditablePart;\r\n(function (QPEditablePart) {\r\n QPEditablePart[QPEditablePart[\"None\"] = 0] = \"None\";\r\n QPEditablePart[QPEditablePart[\"Value\"] = 1] = \"Value\";\r\n QPEditablePart[QPEditablePart[\"Attribute\"] = 2] = \"Attribute\";\r\n QPEditablePart[QPEditablePart[\"Operator\"] = 4] = \"Operator\";\r\n QPEditablePart[QPEditablePart[\"Addition\"] = 8] = \"Addition\";\r\n QPEditablePart[QPEditablePart[\"Removal\"] = 16] = \"Removal\";\r\n QPEditablePart[QPEditablePart[\"All\"] = 255] = \"All\";\r\n QPEditablePart[QPEditablePart[\"NoAddition\"] = -9] = \"NoAddition\";\r\n QPEditablePart[QPEditablePart[\"NoRemoval\"] = -17] = \"NoRemoval\";\r\n QPEditablePart[QPEditablePart[\"FixedConditionList\"] = 5] = \"FixedConditionList\";\r\n})(QPEditablePart || (QPEditablePart = {}));\r\n//# sourceMappingURL=qp_editable_part.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/types/qp_editable_part.js\n// module id = 17\n// module chunks = 0","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { mask } from './mask';\r\nvar DomElementBuilder = /** @class */ (function () {\r\n function DomElementBuilder(tag, parent) {\r\n if (typeof tag === \"string\") {\r\n this.element = document.createElement(tag);\r\n }\r\n else {\r\n this.element = tag;\r\n }\r\n if (parent && this.element.parentElement !== parent) {\r\n parent.appendChild(this.element);\r\n }\r\n }\r\n DomElementBuilder.prototype.addChild = function (tag, childBuilder) {\r\n var builder = domel(tag, this.element);\r\n if (childBuilder) {\r\n childBuilder(builder);\r\n }\r\n return this;\r\n };\r\n DomElementBuilder.prototype.addChildElement = function (element) {\r\n if (element) {\r\n this.element.appendChild(element);\r\n }\r\n return this;\r\n };\r\n DomElementBuilder.prototype.attr = function (attrId, attrValue) {\r\n this.element.setAttribute(attrId, attrValue);\r\n return this;\r\n };\r\n DomElementBuilder.prototype.id = function (value) {\r\n return this.attr(\"id\", value);\r\n };\r\n DomElementBuilder.prototype.title = function (value) {\r\n return this.attr('title', value);\r\n };\r\n DomElementBuilder.prototype.data = function (dataId, dataValue) {\r\n if (dataValue === void 0) { dataValue = null; }\r\n if (dataValue === null) {\r\n this.element.removeAttribute('data-' + dataId);\r\n return this;\r\n }\r\n else {\r\n return this.attr('data-' + dataId, dataValue);\r\n }\r\n };\r\n DomElementBuilder.prototype.show = function () {\r\n return this.removeStyle('display');\r\n };\r\n DomElementBuilder.prototype.hide = function (toHide) {\r\n if (toHide === void 0) { toHide = true; }\r\n return (toHide) ? this.setStyle('display', 'none') : this;\r\n };\r\n DomElementBuilder.prototype.visible = function (isVisible) {\r\n if (isVisible === void 0) { isVisible = true; }\r\n return isVisible ? this.setStyle('visibility', 'visible') : this.setStyle('visibility', 'hidden');\r\n };\r\n DomElementBuilder.prototype.isVisible = function () {\r\n return !!(this.element.offsetWidth || this.element.offsetHeight || this.element.getClientRects().length);\r\n };\r\n DomElementBuilder.prototype.addClass = function (className) {\r\n var classNames = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n classNames[_i - 1] = arguments[_i];\r\n }\r\n if (className) {\r\n var fullList = className.trim().split(\" \").concat(classNames);\r\n for (var i = 0; i < fullList.length; i++)\r\n this.element.classList.add(fullList[i]);\r\n }\r\n return this;\r\n };\r\n DomElementBuilder.prototype.removeClass = function (className) {\r\n var classNames = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n classNames[_i - 1] = arguments[_i];\r\n }\r\n if (className) {\r\n var fullList = className.trim().split(\" \").concat(classNames);\r\n for (var i = 0; i < fullList.length; i++)\r\n this.element.classList.remove(fullList[i]);\r\n }\r\n return this;\r\n };\r\n DomElementBuilder.prototype.toggleClass = function (className, force) {\r\n if (force === void 0) { force = undefined; }\r\n if (className) {\r\n this.element.classList.toggle(className, force);\r\n }\r\n return this;\r\n };\r\n DomElementBuilder.prototype.on = function (eventType, listener) {\r\n var eventTypes = eventType.split(' ');\r\n for (var i = 0; i < eventTypes.length; i++) {\r\n this.element.addEventListener(eventTypes[i], listener);\r\n }\r\n return this;\r\n };\r\n DomElementBuilder.prototype.off = function (eventType, listener) {\r\n var eventTypes = eventType.split(' ');\r\n for (var i = 0; i < eventTypes.length; i++) {\r\n this.element.removeEventListener(eventTypes[i], listener);\r\n }\r\n return this;\r\n };\r\n DomElementBuilder.prototype.setStyle = function (styleId, styleValue) {\r\n this.element.style.setProperty(styleId, styleValue);\r\n return this;\r\n };\r\n DomElementBuilder.prototype.removeStyle = function (styleId) {\r\n this.element.style.removeProperty(styleId);\r\n return this;\r\n };\r\n DomElementBuilder.prototype.text = function (text) {\r\n this.element.innerText = text;\r\n return this;\r\n };\r\n DomElementBuilder.prototype.html = function (html) {\r\n this.element.innerHTML = html;\r\n return this;\r\n };\r\n DomElementBuilder.prototype.clear = function () {\r\n var oldElem = this.element;\r\n this.element = document.createElement(this.element.tagName);\r\n oldElem.replaceWith(this.element);\r\n };\r\n DomElementBuilder.prototype.addText = function (text) {\r\n var textEl = document.createTextNode(text);\r\n this.element.appendChild(textEl);\r\n return this;\r\n };\r\n DomElementBuilder.prototype.addHtml = function (html) {\r\n this.element.innerHTML += html;\r\n return this;\r\n };\r\n DomElementBuilder.prototype.toDOM = function () {\r\n return this.element;\r\n };\r\n DomElementBuilder.prototype.appendTo = function (parent) {\r\n if (parent) {\r\n parent.appendChild(this.element);\r\n }\r\n return this;\r\n };\r\n return DomElementBuilder;\r\n}());\r\nexport { DomElementBuilder };\r\nvar DomInputElementBuilder = /** @class */ (function (_super) {\r\n __extends(DomInputElementBuilder, _super);\r\n function DomInputElementBuilder(element, parent) {\r\n var _this = this;\r\n if (element) {\r\n _this = _super.call(this, element, parent) || this;\r\n }\r\n else {\r\n _this = _super.call(this, \"input\", parent) || this;\r\n }\r\n return _this;\r\n }\r\n DomInputElementBuilder.prototype.name = function (value) {\r\n this.element.name = value;\r\n return this;\r\n };\r\n DomInputElementBuilder.prototype.type = function (value) {\r\n this.element.type = value;\r\n return this;\r\n };\r\n DomInputElementBuilder.prototype.size = function (value) {\r\n this.element.size = value;\r\n return this;\r\n };\r\n DomInputElementBuilder.prototype.value = function (value) {\r\n if (value instanceof Date) {\r\n this.element.valueAsDate = value;\r\n }\r\n else if (typeof value === \"number\") {\r\n this.element.valueAsNumber = value;\r\n }\r\n else {\r\n this.element.value = value;\r\n }\r\n return this;\r\n };\r\n DomInputElementBuilder.prototype.mask = function (maskPattern) {\r\n mask(this.element, maskPattern);\r\n return this;\r\n };\r\n return DomInputElementBuilder;\r\n}(DomElementBuilder));\r\nexport { DomInputElementBuilder };\r\nvar DomSelectElementBuilder = /** @class */ (function (_super) {\r\n __extends(DomSelectElementBuilder, _super);\r\n function DomSelectElementBuilder(element, parent) {\r\n var _this = this;\r\n if (element) {\r\n _this = _super.call(this, element, parent) || this;\r\n }\r\n else {\r\n _this = _super.call(this, \"select\", parent) || this;\r\n }\r\n return _this;\r\n }\r\n DomSelectElementBuilder.prototype.addOption = function (value) {\r\n var option = document.createElement('option');\r\n if (typeof value === \"string\") {\r\n option.value = value;\r\n option.innerHTML = value;\r\n }\r\n else {\r\n option.value = value.value;\r\n option.innerHTML = value.title || value.value;\r\n option.selected = value.selected || false;\r\n }\r\n this.element.appendChild(option);\r\n return this;\r\n };\r\n return DomSelectElementBuilder;\r\n}(DomElementBuilder));\r\nexport { DomSelectElementBuilder };\r\nexport function domel(tag, parent) {\r\n if (tag === \"div\" || tag instanceof HTMLDivElement) {\r\n return new DomElementBuilder(tag, parent);\r\n }\r\n if (tag === \"span\" || tag instanceof HTMLSpanElement) {\r\n return new DomElementBuilder(tag, parent);\r\n }\r\n else if (tag === \"a\" || tag instanceof HTMLAnchorElement) {\r\n return new DomElementBuilder(tag, parent);\r\n }\r\n else if (tag === \"button\" || tag instanceof HTMLButtonElement) {\r\n return new DomElementBuilder(tag, parent);\r\n }\r\n else if (tag === \"img\" || tag instanceof HTMLImageElement) {\r\n return new DomElementBuilder(tag, parent);\r\n }\r\n else if (tag === \"input\" || tag instanceof HTMLInputElement) {\r\n return new DomInputElementBuilder(tag instanceof HTMLInputElement ? tag : null, parent);\r\n }\r\n else if (tag === \"select\" || tag instanceof HTMLSelectElement) {\r\n return new DomSelectElementBuilder(tag instanceof HTMLSelectElement ? tag : null, parent);\r\n }\r\n return new DomElementBuilder(tag, parent);\r\n}\r\n//# sourceMappingURL=dom_elem_builder.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easydata/ui/dist/lib/utils/dom_elem_builder.js\n// module id = 18\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/invariant/browser.js\n// module id = 19\n// module chunks = 0","/** Represents the common types of the data. */\r\nexport var DataType;\r\n(function (DataType) {\r\n /** Unknown type value*/\r\n DataType[DataType[\"Unknown\"] = 0] = \"Unknown\";\r\n /** String value*/\r\n DataType[DataType[\"String\"] = 1] = \"String\";\r\n /** 8-bit integer value */\r\n DataType[DataType[\"Byte\"] = 2] = \"Byte\";\r\n /** 16-bit integer value */\r\n DataType[DataType[\"Word\"] = 3] = \"Word\";\r\n /** 32-bit integer value */\r\n DataType[DataType[\"Int32\"] = 4] = \"Int32\";\r\n /** 64-bit integer value */\r\n DataType[DataType[\"Int64\"] = 5] = \"Int64\";\r\n /** Boolean value */\r\n DataType[DataType[\"Bool\"] = 6] = \"Bool\";\r\n /** Floating-point numeric value */\r\n DataType[DataType[\"Float\"] = 7] = \"Float\";\r\n /** Money value */\r\n DataType[DataType[\"Currency\"] = 8] = \"Currency\";\r\n /** Binary-coded decimal value */\r\n DataType[DataType[\"BCD\"] = 9] = \"BCD\";\r\n /** Date value */\r\n DataType[DataType[\"Date\"] = 10] = \"Date\";\r\n /** Time value */\r\n DataType[DataType[\"Time\"] = 11] = \"Time\";\r\n /** Date and time value */\r\n DataType[DataType[\"DateTime\"] = 12] = \"DateTime\";\r\n /** Autoincrement 32-bit integer value */\r\n DataType[DataType[\"Autoinc\"] = 13] = \"Autoinc\";\r\n /** MEMO value (text with unlimited length) */\r\n DataType[DataType[\"Memo\"] = 14] = \"Memo\";\r\n /** BLOB value (any data with unlimited length) */\r\n DataType[DataType[\"Blob\"] = 15] = \"Blob\";\r\n /** Fixed character value */\r\n DataType[DataType[\"FixedChar\"] = 16] = \"FixedChar\";\r\n /** The unique identifier */\r\n DataType[DataType[\"Guid\"] = 17] = \"Guid\";\r\n /*-------- Spatial data types ----------*/\r\n /** Any geometry data */\r\n DataType[DataType[\"Geometry\"] = 18] = \"Geometry\";\r\n /** Any data that represents some geography objects */\r\n DataType[DataType[\"Geography\"] = 19] = \"Geography\";\r\n})(DataType || (DataType = {}));\r\n//# sourceMappingURL=data_type.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easydata/core/dist/lib/types/data_type.js\n// module id = 20\n// module chunks = 0","/** Contains several constant definitions for expressions tag */\r\nexport var ExprTag;\r\n(function (ExprTag) {\r\n /** Unknown expression */\r\n ExprTag[ExprTag[\"Unknown\"] = 0] = \"Unknown\";\r\n /** Constant expression */\r\n ExprTag[ExprTag[\"Constant\"] = 1] = \"Constant\";\r\n /** Entity attributre expression */\r\n ExprTag[ExprTag[\"EntityAttribute\"] = 2] = \"EntityAttribute\";\r\n /** Parent entity attribute expression */\r\n ExprTag[ExprTag[\"ParentEntityAttribute\"] = 3] = \"ParentEntityAttribute\";\r\n /** Agrregate function expression */\r\n ExprTag[ExprTag[\"AggregateFunction\"] = 4] = \"AggregateFunction\";\r\n /** Parent column expression */\r\n ExprTag[ExprTag[\"ParentColumn\"] = 5] = \"ParentColumn\";\r\n /** Query expression */\r\n ExprTag[ExprTag[\"Query\"] = 11] = \"Query\";\r\n /** Custom sql expression */\r\n ExprTag[ExprTag[\"CustomSql\"] = 21] = \"CustomSql\";\r\n})(ExprTag || (ExprTag = {}));\r\n//# sourceMappingURL=expr_tag.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/core/dist/lib/types/expr_tag.js\n// module id = 21\n// module chunks = 0","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-dom/index.js\n// module id = 22\n// module chunks = 0","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/esm/history.js\n// module id = 23\n// module chunks = 0","import * as strf from './string_utils';\r\nimport { DataType } from '../types/data_type';\r\nimport { i18n } from '../i18n/i18n';\r\nexport var utils;\r\n(function (utils) {\r\n function getAllDataTypes() {\r\n return Object.values(DataType);\r\n }\r\n utils.getAllDataTypes = getAllDataTypes;\r\n function getDateDataTypes() {\r\n return [DataType.Time, DataType.Date, DataType.DateTime];\r\n }\r\n utils.getDateDataTypes = getDateDataTypes;\r\n function getStringDataTypes() {\r\n return [DataType.String, DataType.Memo];\r\n }\r\n utils.getStringDataTypes = getStringDataTypes;\r\n var _numericTypes = [DataType.Byte, DataType.Word, DataType.Int32,\r\n DataType.Int64, DataType.Float, DataType.Currency];\r\n var _intTypes = [DataType.Byte, DataType.Word, DataType.Int32, DataType.Int64];\r\n //-------------- object functions -------------------\r\n /**\r\n * Copy the content of all objests passed in `args` parameters into `target`\r\n * and returns the result\r\n * NB: This function copies only the first level properties.\r\n * For a deep copy please use `assignDeep`\r\n * @param target - the target object\r\n * @param args - an array of the source objects\r\n */\r\n function assign(target) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n for (var i = 0; i < args.length; i++) {\r\n var source = args[i];\r\n if (source) {\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n }\r\n return target;\r\n }\r\n utils.assign = assign;\r\n /**\r\n * Copy the content of all objests passed in `args` parameters into `target`\r\n * and returns the result\r\n * NB: This function make a deep copy -\r\n * so `assignDeep` will be called recursively for all object properties\r\n * on the first level.\r\n * @param target - the target object\r\n * @param sources - an array of the source objects\r\n */\r\n function assignDeep(target) {\r\n var sources = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n sources[_i - 1] = arguments[_i];\r\n }\r\n return assignDeepCore(new WeakMap(), target, sources);\r\n }\r\n utils.assignDeep = assignDeep;\r\n function assignDeepCore(hashSet, target, sources) {\r\n if (!target) {\r\n target = {};\r\n }\r\n for (var _i = 0, sources_1 = sources; _i < sources_1.length; _i++) {\r\n var source = sources_1[_i];\r\n if (source) {\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n var sourceVal = source[key];\r\n if (sourceVal !== null && typeof sourceVal === 'object') {\r\n if (hashSet.has(sourceVal)) {\r\n target[key] = hashSet.get(sourceVal);\r\n }\r\n else {\r\n if (Array.isArray(sourceVal)) {\r\n target[key] = createArrayFrom(sourceVal);\r\n hashSet.set(sourceVal, target[key]);\r\n }\r\n else {\r\n if (typeof target[key] == 'undefined') {\r\n target[key] = Object.create(Object.getPrototypeOf(sourceVal));\r\n }\r\n hashSet.set(sourceVal, target[key]);\r\n assignDeepCore(hashSet, target[key], [sourceVal]);\r\n }\r\n }\r\n }\r\n else {\r\n target[key] = sourceVal;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return target;\r\n }\r\n function getIfDefined(value, defaultValue) {\r\n return (typeof value !== 'undefined') ? value : defaultValue;\r\n }\r\n utils.getIfDefined = getIfDefined;\r\n function IsDefinedAndNotNull(value) {\r\n return typeof value !== 'undefined' && value !== null;\r\n }\r\n utils.IsDefinedAndNotNull = IsDefinedAndNotNull;\r\n function copyArrayTo(collection1, collection2) {\r\n var len1 = collection1.length;\r\n var len2 = collection2.length;\r\n for (var i = 0; i < len1 && i < len2; i++) {\r\n collection2[i] = collection1[i];\r\n }\r\n }\r\n utils.copyArrayTo = copyArrayTo;\r\n function createArrayFrom(collection) {\r\n var result = [];\r\n for (var _i = 0, collection_1 = collection; _i < collection_1.length; _i++) {\r\n var item = collection_1[_i];\r\n result.push(item);\r\n }\r\n return result;\r\n }\r\n utils.createArrayFrom = createArrayFrom;\r\n /**\r\n * Searches an array of the objects which implement ItemWithId by ID\r\n * Returs the found object or null.\r\n * @param array\r\n * @param id\r\n */\r\n function findItemById(array, id) {\r\n var arrLength = array.length;\r\n for (var idx = 0; idx < arrLength; idx++) {\r\n if (array[idx].id === id)\r\n return array[idx];\r\n }\r\n return null;\r\n }\r\n utils.findItemById = findItemById;\r\n function findItemIndexById(array, id) {\r\n var arrLength = array.length;\r\n for (var idx = 0; idx < arrLength; idx++) {\r\n if (array[idx].id === id)\r\n return idx;\r\n }\r\n return -1;\r\n }\r\n utils.findItemIndexById = findItemIndexById;\r\n /**\r\n * Searches an array of the objects which implement ItemWithId by ID\r\n * Returs the index of the found element, or -1 if nothing was found.\r\n * @param array\r\n * @param id\r\n */\r\n function indexOfArrayItem(arr, item) {\r\n if (arr.indexOf) {\r\n return arr.indexOf(item);\r\n }\r\n else {\r\n var len = arr.length;\r\n for (var i = 0; i < len; i++) {\r\n if (item == arr[i]) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n }\r\n }\r\n utils.indexOfArrayItem = indexOfArrayItem;\r\n /**\r\n * Moves an item in some array to a new position\r\n * @param array\r\n * @param index1\r\n * @param index2\r\n */\r\n function moveArrayItem(array, index1, index2) {\r\n if (index1 >= array.length) {\r\n throw 'Index out of bounds: ' + index1;\r\n }\r\n if (index2 >= array.length) {\r\n index2 = array.length - 1;\r\n }\r\n var item = array.splice(index1, 1)[0];\r\n array.splice(index2, 0, item);\r\n }\r\n utils.moveArrayItem = moveArrayItem;\r\n /**\r\n * Searches for a particular item in the array are removes that item if found.\r\n * @param arr\r\n * @param value\r\n */\r\n function removeArrayItem(arr, value) {\r\n var index = arr.indexOf(value);\r\n if (index != -1) {\r\n return arr.splice(index, 1)[0];\r\n }\r\n }\r\n utils.removeArrayItem = removeArrayItem;\r\n function insertArrayItem(arr, index, value) {\r\n arr.splice(index, 0, value);\r\n }\r\n utils.insertArrayItem = insertArrayItem;\r\n function fillArray(arr, value, start, end) {\r\n if (start === void 0) { start = 0; }\r\n var len = arr.length >>> 0;\r\n var relativeStart = start >> 0;\r\n var k = relativeStart < 0 ?\r\n Math.max(len + relativeStart, 0) :\r\n Math.min(relativeStart, len);\r\n var relativeEnd = end === undefined ?\r\n len : end >> 0;\r\n var final = relativeEnd < 0 ?\r\n Math.max(len + relativeEnd, 0) :\r\n Math.min(relativeEnd, len);\r\n while (k < final) {\r\n arr[k] = value;\r\n k++;\r\n }\r\n return arr;\r\n }\r\n utils.fillArray = fillArray;\r\n //------------ DOM utils ------------\r\n /**\r\n * Calculates the shift on which we need to move our element horizontally\r\n * to find current window\r\n * @param absLeft\r\n * @param width\r\n */\r\n function shiftToFitWindow(absLeft, width) {\r\n var body = document.getElementsByTagName('body')[0];\r\n var winWidth = window.innerWidth || document.documentElement.clientWidth || body.clientWidth;\r\n var absRight = absLeft + width;\r\n var shift = 0;\r\n if (absRight > winWidth) {\r\n shift = winWidth - absRight - 10;\r\n if (absLeft + shift < 0) {\r\n shift = 10 - absLeft;\r\n }\r\n }\r\n return shift;\r\n }\r\n utils.shiftToFitWindow = shiftToFitWindow;\r\n /**\r\n * Returns `true` if the value passed in the parameter is an object\r\n * @param val\r\n */\r\n function isObject(val) {\r\n if (val === null) {\r\n return false;\r\n }\r\n return ((typeof val === 'function') || (typeof val === 'object'));\r\n }\r\n utils.isObject = isObject;\r\n /**\r\n * Returns `true` if the `DataType` value passed in the parameter\r\n * represents some numeric type\r\n * @param dtype\r\n */\r\n function isNumericType(dtype) {\r\n var index = _numericTypes.indexOf(dtype);\r\n return (index >= 0);\r\n }\r\n utils.isNumericType = isNumericType;\r\n /**\r\n * Returns `true` if the `DataType` value passed in the parameter\r\n * represents some numeric type\r\n * @param dtype\r\n */\r\n function isIntType(dtype) {\r\n var index = _intTypes.indexOf(dtype);\r\n return (index >= 0);\r\n }\r\n utils.isIntType = isIntType;\r\n /**\r\n * Returns `true` if the value passed in the parameter is an a numeric value\r\n * @param val\r\n */\r\n function isNumeric(val) {\r\n return !isNaN(parseFloat(val)) && isFinite(val);\r\n }\r\n utils.isNumeric = isNumeric;\r\n /**\r\n * Returns `true` if two data types passed in parameters\r\n * are compatible - so it's safe to copy the values between\r\n * two expressions with these two types\r\n * @param type1\r\n * @param type2\r\n */\r\n function areCompatibleDataTypes(type1, type2) {\r\n return typeof type1 == \"undefined\" || typeof type2 == \"undefined\" || type1 == DataType.Unknown || type2 == DataType.Unknown\r\n || (type1 == type2) || (type1 == DataType.Date && type2 == DataType.DateTime)\r\n || (type1 == DataType.DateTime && type2 == DataType.Date);\r\n }\r\n utils.areCompatibleDataTypes = areCompatibleDataTypes;\r\n /**\r\n * Returns `true` if the property with named `propName`\r\n * in the object `obj` has some value\r\n * @param obj\r\n * @param propName\r\n */\r\n function isPropSet(obj, propName) {\r\n return obj[propName] || obj[propName.toLowerCase()] || obj[propName.toUpperCase()];\r\n }\r\n utils.isPropSet = isPropSet;\r\n //-------------- ID generator -----------\r\n var prefixIdLen = 4;\r\n var symbols = \"0123456789abcdefghijklmnopqrstuvwxyz\";\r\n var magicTicks = 636712160627685350;\r\n /**\r\n * Generates an unique ID\r\n */\r\n function generateId(prefix) {\r\n if (!prefix) {\r\n prefix = 'easy';\r\n }\r\n var prfx = (prefix.length > prefixIdLen) ? squeezeMoniker(prefix, prefixIdLen) : prefix;\r\n if (prfx && prfx.length > 0) {\r\n prfx += \"-\";\r\n }\r\n //adding 2 random symbols\r\n var randValue = strf.repeatString(\"\", 2);\r\n ;\r\n var maxSymbolIndex = symbols.length - 1;\r\n randValue = replaceAtString(randValue, 0, symbols[getRandomInt(0, maxSymbolIndex)]);\r\n randValue = replaceAtString(randValue, 1, symbols[getRandomInt(0, maxSymbolIndex)]);\r\n //generating main ID part (64-base representation of the current value of the time ticks)\r\n var ticksNum64 = intToNum36(getNowTicks() - magicTicks);\r\n return prfx + randValue + ticksNum64;\r\n }\r\n utils.generateId = generateId;\r\n function intToNum36(value) {\r\n var targetBase = 36;\r\n var i = 14;\r\n var buffer = strf.repeatString(\"\", i);\r\n var rest = value;\r\n do {\r\n buffer = replaceAtString(buffer, i--, symbols[rest % targetBase]);\r\n rest = Math.floor(rest /= targetBase);\r\n } while (rest > 0);\r\n return strf.reverseString(buffer.trim());\r\n }\r\n function squeezeMoniker(str, maxlen) {\r\n var parts = str.split('-');\r\n var pml = 1;\r\n var ptt = maxlen;\r\n if (parts.length < maxlen) {\r\n pml = maxlen / parts.length;\r\n ptt = parts.length;\r\n }\r\n var result = \"\";\r\n for (var i = 0; i < ptt; i++) {\r\n result += squeeze(parts[i], pml);\r\n }\r\n return result;\r\n }\r\n function squeeze(str, maxlen) {\r\n var len = str.length;\r\n if (len > maxlen) {\r\n var step = len / maxlen;\r\n var result = \"\";\r\n result += str[0];\r\n var nextIndex = step;\r\n var ch = void 0;\r\n for (var i = 1; i < len; i++) {\r\n ch = str[i];\r\n if (i + 1 > nextIndex) {\r\n result += ch;\r\n nextIndex += step;\r\n }\r\n }\r\n return result;\r\n }\r\n else {\r\n return str;\r\n }\r\n }\r\n function replaceAtString(str, index, value) {\r\n return str.substr(0, index) + value + str.substr(index + value.length);\r\n }\r\n function getRandomInt(min, max) {\r\n return Math.floor(Math.random() * (max - min)) + min;\r\n }\r\n function getNowTicks() {\r\n return (621355968e9 + (new Date()).getTime() * 1e4);\r\n }\r\n function safeParseInt(str) {\r\n var isnum = /^\\d+$/.test(str);\r\n if (!isnum)\r\n throw \"Is not a valid number\";\r\n return parseInt(str);\r\n }\r\n function getDaysInMonth(month, year) {\r\n return new Date(year, month + 1, 0).getDate();\r\n }\r\n // ------------- date/time functions -------------------\r\n // TO DO: improve to process all datetime cases\r\n function strToDateTime(value, format) {\r\n if (!value || value.length == 0)\r\n return new Date();\r\n var normalized = value.replace(/[^a-zA-Z0-9_]/g, '-');\r\n var normalizedFormat = format.replace(/[^a-zA-Z0-9_]/g, '-');\r\n var formatItems = normalizedFormat.split('-');\r\n var dateItems = normalized.split('-');\r\n var monthIndex = formatItems.indexOf(\"MM\");\r\n var dayIndex = formatItems.indexOf(\"dd\");\r\n var yearIndex = formatItems.indexOf(\"yyyy\");\r\n var hourIndex = formatItems.indexOf(\"HH\");\r\n var minutesIndex = formatItems.indexOf(\"mm\");\r\n var secondsIndex = formatItems.indexOf(\"ss\");\r\n var today = new Date();\r\n try {\r\n var year = yearIndex > -1 && yearIndex < dateItems.length ? safeParseInt(dateItems[yearIndex]) : today.getFullYear();\r\n var month = monthIndex > -1 && monthIndex < dateItems.length ? safeParseInt(dateItems[monthIndex]) - 1 : today.getMonth() - 1;\r\n if (month > 11)\r\n throw '';\r\n var day = dayIndex > -1 && dayIndex < dateItems.length ? safeParseInt(dateItems[dayIndex]) : today.getDate();\r\n if (day > getDaysInMonth(month, year))\r\n throw '';\r\n var hour = hourIndex > -1 && hourIndex < dateItems.length ? safeParseInt(dateItems[hourIndex]) : 0;\r\n if (hour > 23)\r\n throw '';\r\n var minute = minutesIndex > -1 && minutesIndex < dateItems.length ? safeParseInt(dateItems[minutesIndex]) : 0;\r\n if (minute > 59)\r\n throw '';\r\n var second = secondsIndex > -1 && secondsIndex < dateItems.length ? safeParseInt(dateItems[secondsIndex]) : 0;\r\n if (second > 59)\r\n throw '';\r\n return new Date(year, month, day, hour, minute, second);\r\n }\r\n catch (_a) {\r\n throw \"Is not a valid date time.\";\r\n }\r\n }\r\n utils.strToDateTime = strToDateTime;\r\n var DT_FORMAT_RGEX = /\\[([^\\]]+)]|y{4}|M{1,4}|d{1,2}|H{1,2}|h{1,2}|m{2}|s{2}|t{2}/g;\r\n /**\r\n * Returns string representation of the date/time value according to the custom format (second parameter)\r\n * The format is compatible with the one used in .NET: https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings\r\n * @param date\r\n * @param format\r\n */\r\n function dateTimeToStr(date, format) {\r\n var year = date.getFullYear();\r\n var month = date.getMonth() + 1;\r\n var day = date.getDate();\r\n var hour = date.getHours();\r\n var minute = date.getMinutes();\r\n var second = date.getSeconds();\r\n var hour12 = hour % 12 || 12; //the remainder of the division by 12. Or 12 if it's 0\r\n var isPm = hour > 11;\r\n var matches = {\r\n yyyy: year.toString(),\r\n MMMM: i18n.getLongMonthName(month),\r\n MMM: i18n.getShortMonthName(month),\r\n MM: (month < 10) ? '0' + month : month.toString(),\r\n M: month.toString(),\r\n dd: (day < 10) ? '0' + day : day.toString(),\r\n d: day.toString(),\r\n HH: (hour < 10) ? '0' + hour : hour.toString(),\r\n H: hour.toString(),\r\n hh: (hour12 < 10) ? '0' + hour12 : hour12.toString(),\r\n h: hour12.toString(),\r\n tt: isPm ? 'PM' : 'AM',\r\n mm: (minute < 10) ? '0' + minute : minute.toString(),\r\n ss: (second < 10) ? '0' + second : second.toString()\r\n };\r\n return format.replace(DT_FORMAT_RGEX, function (match, $1) {\r\n return $1 || matches[match];\r\n });\r\n }\r\n utils.dateTimeToStr = dateTimeToStr;\r\n /**\r\n * Converts a numeric value to the string taking into the account the decimal separator\r\n * @param value - the number to convert\r\n * @param decimalSeparator - the symbol that represents decimal separator. If not specified the function gets the one from the current locale settings.\r\n */\r\n function numberToStr(number, decimalSeparator) {\r\n decimalSeparator = decimalSeparator || i18n.getLocaleSettings().decimalSeparator;\r\n return number.toString().replace('.', decimalSeparator);\r\n }\r\n utils.numberToStr = numberToStr;\r\n})(utils || (utils = {}));\r\n//# sourceMappingURL=utils.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easydata/core/dist/lib/utils/utils.js\n// module id = 24\n// module chunks = 0","/** Represents expression kinds.*/\r\nexport var DataKind;\r\n(function (DataKind) {\r\n /** Represents one value of some type: one constant or one attribute (field).*/\r\n DataKind[DataKind[\"Scalar\"] = 0] = \"Scalar\";\r\n /** The same as Scalar but represents only one constant value of some type.*/\r\n DataKind[DataKind[\"Const\"] = 1] = \"Const\";\r\n /** The same as Scalar but represents only one attribute.*/\r\n DataKind[DataKind[\"Attribute\"] = 2] = \"Attribute\";\r\n /** Represents a list of scalar values. */\r\n DataKind[DataKind[\"List\"] = 4] = \"List\";\r\n /** Special expression kind which represents a sub query.*/\r\n DataKind[DataKind[\"Query\"] = 5] = \"Query\";\r\n /** Special expression kind which represents a binding to parent column.*/\r\n DataKind[DataKind[\"ParentColumn\"] = 6] = \"ParentColumn\";\r\n})(DataKind || (DataKind = {}));\r\n//# sourceMappingURL=data_kind.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/core/dist/lib/types/data_kind.js\n// module id = 25\n// module chunks = 0","export var FacetType;\r\n(function (FacetType) {\r\n FacetType[\"DataGrid\"] = \"DATA_GRID\";\r\n FacetType[\"Chart\"] = \"CHART\";\r\n FacetType[\"PivotTable\"] = \"PIVOT_TABLE\";\r\n})(FacetType || (FacetType = {}));\r\n//# sourceMappingURL=facet_type.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/types/facet_type.js\n// module id = 26\n// module chunks = 0","import React from 'react';\n/**\n * DropdownContext\n * {\n * toggle: PropTypes.func.isRequired,\n * isOpen: PropTypes.bool.isRequired,\n * direction: PropTypes.oneOf(['up', 'down', 'left', 'right']).isRequired,\n * inNavbar: PropTypes.bool.isRequired,\n * disabled: PropTypes.bool\n * }\n */\n\nexport var DropdownContext = /*#__PURE__*/React.createContext({});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/DropdownContext.js\n// module id = 27\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Transition } from 'react-transition-group';\nimport { mapToCssModules, omit, pick, TransitionPropTypeKeys, TransitionTimeouts, tagPropType } from './utils';\n\nvar propTypes = _objectSpread(_objectSpread({}, Transition.propTypes), {}, {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n tag: tagPropType,\n baseClass: PropTypes.string,\n baseClassActive: PropTypes.string,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.string, PropTypes.func])\n});\n\nvar defaultProps = _objectSpread(_objectSpread({}, Transition.defaultProps), {}, {\n tag: 'div',\n baseClass: 'fade',\n baseClassActive: 'show',\n timeout: TransitionTimeouts.Fade,\n appear: true,\n enter: true,\n exit: true,\n in: true\n});\n\nfunction Fade(props) {\n var Tag = props.tag,\n baseClass = props.baseClass,\n baseClassActive = props.baseClassActive,\n className = props.className,\n cssModule = props.cssModule,\n children = props.children,\n innerRef = props.innerRef,\n otherProps = _objectWithoutPropertiesLoose(props, [\"tag\", \"baseClass\", \"baseClassActive\", \"className\", \"cssModule\", \"children\", \"innerRef\"]);\n\n var transitionProps = pick(otherProps, TransitionPropTypeKeys);\n var childProps = omit(otherProps, TransitionPropTypeKeys);\n return /*#__PURE__*/React.createElement(Transition, transitionProps, function (status) {\n var isActive = status === 'entered';\n var classes = mapToCssModules(classNames(className, baseClass, isActive && baseClassActive), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({\n className: classes\n }, childProps, {\n ref: innerRef\n }), children);\n });\n}\n\nFade.propTypes = propTypes;\nFade.defaultProps = defaultProps;\nexport default Fade;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/Fade.js\n// module id = 28\n// module chunks = 0","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { EventEmitter, utils as dataUtils } from '@easydata/core';\r\nimport { i18n } from '@easydata/core';\r\nimport { equtils } from '../utils/utils';\r\nimport { DataModel } from '../dm/data_model';\r\nimport { Expression } from './expression';\r\nimport { QueryColumn, SortDirection } from './query_column';\r\nimport { Condition } from './condition';\r\nimport { DataKind } from '../types/data_kind';\r\nimport { LinkType } from '../types/link_type';\r\nimport { ExprTag } from '../types/expr_tag';\r\nimport { CondTag } from '../types/cond_tag';\r\nimport { QueryChangePart } from './query_events';\r\n/**\r\n * The error that appears when the query is not valid\r\n */\r\nvar InvalidQueryError = /** @class */ (function (_super) {\r\n __extends(InvalidQueryError, _super);\r\n /**\r\n * Creates an instance of error type.\r\n * @param message The error message\r\n */\r\n function InvalidQueryError(message) {\r\n var _this = _super.call(this, message) || this;\r\n if (Error.captureStackTrace) {\r\n Error.captureStackTrace(_this, InvalidQueryError);\r\n }\r\n _this.name = 'InvalidQueryError';\r\n return _this;\r\n }\r\n return InvalidQueryError;\r\n}(Error));\r\nexport { InvalidQueryError };\r\n/**\r\n * Represents Query.\r\n */\r\nvar Query = /** @class */ (function () {\r\n /**\r\n * The default constructor.\r\n * @param model The data model.\r\n * @param data JSON representation object.\r\n * @param options The options.\r\n * @throws {InvalidQueryError} The error throws when query is not valid.\r\n */\r\n function Query(model, data, options) {\r\n /**\r\n * Contains user-defined extra data for current query.\r\n */\r\n this.extraData = {};\r\n this.innerData = {};\r\n this.isNewbie = true;\r\n this._isModified = false;\r\n this.parentQuery = null;\r\n this.drillDowns = [];\r\n this.eventEmitter = new EventEmitter(this);\r\n this.root = new Condition(this, CondTag.Group);\r\n this.extraConditions = new Condition(this, CondTag.Group);\r\n this.columns = new Array();\r\n this.justsorted = new Array();\r\n if (!this.id) {\r\n this.regenerateId();\r\n }\r\n this.setDefaultName();\r\n this.description = \"\";\r\n this.modelId = \"\";\r\n this.modelName = \"\";\r\n this.model = (model) ? model : new DataModel();\r\n if (data) {\r\n this.loadFromData(data);\r\n }\r\n this.attributeExprTag = (options) ? options.attrTag || ExprTag.EntityAttribute : ExprTag.EntityAttribute;\r\n this.clientListRequestHandler = (options) ? options.clientListRequestHandler : new Array();\r\n this.serverListRequestHandler = (options) ? options.serverListRequestHandler : new Array();\r\n this.timezoneOffset = (new Date()).getTimezoneOffset();\r\n if (options) {\r\n this.parentQuery = options.parent;\r\n }\r\n }\r\n Query.prototype.isModified = function () {\r\n return this._isModified;\r\n };\r\n Query.prototype.resetModified = function () {\r\n this._isModified = false;\r\n };\r\n Query.prototype.isEx = function () {\r\n return false;\r\n };\r\n /**\r\n * Resets the query: clears all its conditions and columns, regenerate the ID and sets the default name.\r\n * @param silent Indicates whether we need to avoid firing the QueryChanged event.\r\n */\r\n Query.prototype.reset = function (clearQuery) {\r\n if (clearQuery === void 0) { clearQuery = true; }\r\n if (clearQuery) {\r\n this.clear();\r\n }\r\n this.regenerateId();\r\n this.setDefaultName();\r\n this._isModified = false;\r\n this.isNewbie = true;\r\n };\r\n Query.prototype.hasEnabledAggrColumns = function () {\r\n return this.columns.filter(function (col) { return col.enabled\r\n && col.expr.tag === ExprTag.AggregateFunction; }).length > 0;\r\n };\r\n Query.prototype.setDefaultName = function () {\r\n this.setName(i18n.getText('NewQueryName'));\r\n return this.getName();\r\n };\r\n /**\r\n * Validates wether the query corresponds to the model.\r\n * @param options Validate options.\r\n * @throws {InvalidQueryError} If query is not valid.\r\n */\r\n Query.prototype.validate = function (options) {\r\n options = options || {};\r\n var entityAttrNotExistError = \"EntityAttribute isn't declared in the model: \";\r\n var wrongExprTag = \"The expression has wrond tag: \";\r\n if (!this.model) {\r\n throw new InvalidQueryError(\"Model is not declared\");\r\n }\r\n if (this.columns) {\r\n for (var _i = 0, _a = this.columns; _i < _a.length; _i++) {\r\n var column = _a[_i];\r\n if (column.expr.tag == ExprTag.EntityAttribute\r\n || column.expr.tag === ExprTag.ParentEntityAttribute) {\r\n var attr = this.model.getAttributeById(column.expr.value);\r\n if (!attr) {\r\n throw new InvalidQueryError(entityAttrNotExistError + column.expr.value);\r\n }\r\n }\r\n else if (column.expr.tag === ExprTag.AggregateFunction) {\r\n var attr = this.model.getAttributeById(column.expr.args[0].value);\r\n if (!attr) {\r\n throw new InvalidQueryError(entityAttrNotExistError + column.expr.args[0].value);\r\n }\r\n }\r\n else if (column.expr.tag !== ExprTag.CustomSql) {\r\n throw new InvalidQueryError(wrongExprTag + column.expr.tag);\r\n }\r\n }\r\n }\r\n if (this.root && this.root.getConditions()) {\r\n this.validateConditionGroup(this.root, options);\r\n }\r\n };\r\n Query.prototype.getAggregatedColumns = function () {\r\n return this.getColumns().filter(function (col) { return col.enabled\r\n && col.expr.tag === ExprTag.AggregateFunction; });\r\n };\r\n /**\r\n * Validates wether the query corresponds to the model.\r\n * @param options Validate options.\r\n * @returns `true` if it is valid, otherwise `false`\r\n */\r\n Query.prototype.tryValidate = function (options) {\r\n try {\r\n this.validate(options);\r\n return true;\r\n }\r\n catch (e) {\r\n if (e.name == 'InvalidQueryError') {\r\n return false;\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n };\r\n Query.prototype.validateConditionGroup = function (curCond, options) {\r\n if (curCond.isGroup()) {\r\n for (var _i = 0, _a = curCond.getConditions(); _i < _a.length; _i++) {\r\n var condition = _a[_i];\r\n if (!condition.enabled)\r\n continue;\r\n this.validateConditionGroup(condition, options);\r\n }\r\n }\r\n else if (curCond.expressions[0].tag === ExprTag.EntityAttribute) {\r\n var attrId = curCond.expressions[0].value;\r\n var attr = this.model.getAttributeById(attrId);\r\n if (!attr) {\r\n throw new InvalidQueryError(\"EntityAttribute isn't declared in the model: \" + attrId);\r\n }\r\n if (!options.checkExpressions)\r\n return;\r\n for (var i = 1; i < curCond.expressions.length; i++) {\r\n var expr = curCond.expressions[i];\r\n if (expr.tag !== ExprTag.Constant)\r\n continue;\r\n //validate number exprs\r\n if (dataUtils.isNumericType(expr.dataType)) {\r\n if (!expr.value.length) {\r\n throw new InvalidQueryError(\"Expression constant is empty in condition: \" + curCond.id);\r\n }\r\n var values = [];\r\n if (expr.kind === DataKind.List) {\r\n values = expr.value.split(/\\s*,\\s*/);\r\n }\r\n else {\r\n values = [expr.value];\r\n }\r\n for (var _b = 0, values_1 = values; _b < values_1.length; _b++) {\r\n var value = values_1[_b];\r\n var parsedVal = +value;\r\n if (isNaN(parsedVal)) {\r\n throw new InvalidQueryError(\"Expression constant is NaN in condition:\" + curCond.id);\r\n }\r\n if (dataUtils.isIntType(expr.dataType) && parsedVal != parseInt(value, 10)) {\r\n throw new InvalidQueryError(\"Expression constant is wrong interger in condition: \" + curCond.id);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Sets data to the query.\r\n * @param data JSON representation object or JSON string\r\n * @param changeStatus Indicate whether we should change the \"isModified\" status (by default == `true`)\r\n */\r\n Query.prototype.loadFromDataOrJson = function (data, changeStatus) {\r\n if (changeStatus === void 0) { changeStatus = true; }\r\n if (data) {\r\n if (typeof data === \"string\") {\r\n this.loadFromJson(data, changeStatus);\r\n }\r\n else {\r\n this.loadFromData(data, changeStatus);\r\n }\r\n }\r\n };\r\n /**\r\n * Loads query from JSON.\r\n * @param json The JSON string.\r\n * @throws {InvalidQueryError} The error throws when query is not valid.\r\n */\r\n Query.prototype.loadFromJson = function (json, changeStatus) {\r\n if (changeStatus === void 0) { changeStatus = true; }\r\n var data = JSON.parse(json);\r\n this.loadFromData(data, changeStatus);\r\n };\r\n /**\r\n * Loads query from data representation.\r\n * @param data\r\n * @param changeStatus\r\n * @throws {InvalidQueryError} The error throws when query is not valid.\r\n */\r\n Query.prototype.loadFromData = function (data, changeStatus) {\r\n if (changeStatus === void 0) { changeStatus = true; }\r\n var noErrors = false;\r\n this.clear();\r\n this.clearDrillDowns();\r\n if (data) {\r\n this.id = data.id;\r\n this.root.loadFromData(this.model, data.root);\r\n if (data.root && data.root.conds) {\r\n for (var i = 0; i < data.root.conds.length; i++) {\r\n var condData = data.root.conds[i];\r\n if (condData.conds && !this.isEx()) {\r\n console.error(\"Community version doesn't support working with groups.\");\r\n continue;\r\n }\r\n var cond = this.createCondition();\r\n cond.loadFromData(this.model, condData);\r\n this.root.addCondition(cond);\r\n }\r\n }\r\n this.name = data.name;\r\n this.description = data.desc;\r\n this.justsorted = [];\r\n if (data.justsortcols) {\r\n for (var i = 0; i < data.justsortcols.length; i++) {\r\n var newCol = this.createColumn(true);\r\n newCol.loadFromData(this.model, data.justsortcols[i]);\r\n this.justsorted.push(newCol);\r\n }\r\n }\r\n if (data.cols) {\r\n for (var i = 0; i < data.cols.length; i++) {\r\n var newCol = this.createColumn();\r\n newCol.loadFromData(this.model, data.cols[i]);\r\n this.columns.push(newCol);\r\n }\r\n }\r\n if (data.extraData) {\r\n this.extraData = data.extraData;\r\n }\r\n this.innerData = data.innerData || this.innerData;\r\n if (data.dds && data.dds.length) {\r\n for (var _i = 0, _a = data.dds; _i < _a.length; _i++) {\r\n var dd = _a[_i];\r\n var query = this.addDrillDown();\r\n query.loadFromData(dd);\r\n }\r\n }\r\n }\r\n noErrors = true;\r\n if (noErrors) {\r\n if (changeStatus) {\r\n this.isNewbie = false;\r\n this._isModified = false;\r\n }\r\n }\r\n this.validate();\r\n };\r\n /**\r\n *\r\n */\r\n Query.prototype.addDrillDown = function () {\r\n var query = this.model.createQuery();\r\n query.parentQuery = this;\r\n this.drillDowns.push(query);\r\n return query;\r\n };\r\n Query.prototype.getDrillDowns = function () {\r\n return this.drillDowns;\r\n };\r\n Query.prototype.getParentQuery = function () {\r\n return this.parentQuery;\r\n };\r\n /**\r\n *\r\n */\r\n Query.prototype.findColumnById = function (colId) {\r\n for (var _i = 0, _a = this.columns; _i < _a.length; _i++) {\r\n var col = _a[_i];\r\n if (col.id === colId)\r\n return col;\r\n }\r\n return null;\r\n };\r\n /**\r\n * Gets DataModel object associated with this query.\r\n * @retruns The data model.\r\n */\r\n Query.prototype.getModel = function () {\r\n return this.model;\r\n };\r\n /**\r\n * Sets DataModel object associated with this query.\r\n * @param model The data model.\r\n */\r\n Query.prototype.setModel = function (model) {\r\n this.model = model;\r\n };\r\n /**\r\n * Loads data model.\r\n * @param model JSON representation object or JSON string.\r\n */\r\n Query.prototype.loadModelData = function (model) {\r\n this.model.setData(model);\r\n };\r\n /**\r\n * Returns JSON representation of this query.\r\n * @retruns JSON string.\r\n */\r\n Query.prototype.toJSON = function () {\r\n return JSON.stringify(this.toJSONData());\r\n };\r\n /**\r\n * Returns JSON representation of this query.\r\n * @retruns JSON representation object.\r\n */\r\n Query.prototype.toJSONData = function () {\r\n var _this = this;\r\n var obj = {\r\n modelId: this.model ? this.model.getId() : null,\r\n modelName: this.model ? this.model.getName() : null\r\n };\r\n obj.id = this.id;\r\n obj.name = this.name;\r\n if (this.description) {\r\n obj.desc = this.description;\r\n }\r\n obj.cols = [];\r\n for (var i = 0; i < this.columns.length; i++) {\r\n obj.cols.push(this.columns[i].saveToData());\r\n }\r\n obj.justsortcols = [];\r\n for (var i = 0; i < this.justsorted.length; i++) {\r\n obj.justsortcols.push(this.justsorted[i].saveToData());\r\n }\r\n if (this.extraData) {\r\n obj.extraData = this.extraData;\r\n }\r\n if (this.innerData) {\r\n obj.innerData = this.innerData;\r\n }\r\n var rootCondToData = function (condGroup) {\r\n var result = condGroup.saveToData();\r\n result.conds = [];\r\n var conditions = condGroup.getConditions();\r\n for (var i = 0; i < conditions.length; i++) {\r\n if (conditions[i].isGroup() && !_this.isEx()) {\r\n console.error(\"Community version doesn't support working with groups.\");\r\n continue;\r\n }\r\n result.conds.push(conditions[i].saveToData());\r\n }\r\n return result;\r\n };\r\n obj.root = rootCondToData(this.root);\r\n obj.extraConds = rootCondToData(this.extraConditions);\r\n if (this.drillDowns.length > 0) {\r\n obj.dds = [];\r\n for (var _i = 0, _a = this.drillDowns; _i < _a.length; _i++) {\r\n var dd = _a[_i];\r\n obj.dds.push(dd.toJSONData());\r\n }\r\n }\r\n obj.timezoneOffset = this.timezoneOffset;\r\n obj.locale = i18n.getCurrentLocale();\r\n return obj;\r\n };\r\n /**\r\n * Checks wether query does not contains any condtion.\r\n * @retruns `true` if query does not contain any condition, otherwise `false`.\r\n */\r\n Query.prototype.isEmptyConditions = function () {\r\n return this.root.isEmpty();\r\n };\r\n /**\r\n * Checks wether query does not contains any column.\r\n * @retruns `true` if query does not contain any column, otherwise `false`.\r\n */\r\n Query.prototype.isEmptyColumns = function () {\r\n return !this.columns || this.columns.length === 0;\r\n };\r\n /**\r\n * Checks wether query does not contains any column and any condition.\r\n * @retruns `true` if query does not contain any column and any condition, otherwise `false`.\r\n */\r\n Query.prototype.isEmpty = function () {\r\n return this.isEmptyColumns() && this.isEmptyConditions();\r\n };\r\n /**\r\n * Clears the query (all conditions, columns, extraData, etc).\r\n */\r\n Query.prototype.clear = function () {\r\n this.clearColumns();\r\n this.clearConditions();\r\n this.clearExtraConditions();\r\n this.innerData = {};\r\n this.extraData = {};\r\n };\r\n /**\r\n * Clears all columns in query\r\n */\r\n Query.prototype.clearColumns = function () {\r\n this.columns = [];\r\n this.justsorted = [];\r\n };\r\n /**\r\n * Clears all conditions in query.\r\n */\r\n Query.prototype.clearConditions = function () {\r\n this.root.clearConditions();\r\n this.root.linkType = LinkType.All;\r\n this.root.enabled = true;\r\n };\r\n /**\r\n * Clears all extra conditions in query\r\n */\r\n Query.prototype.clearExtraConditions = function () {\r\n this.extraConditions.clearConditions();\r\n };\r\n /**\r\n * Clears all drill downs\r\n */\r\n Query.prototype.clearDrillDowns = function () {\r\n this.drillDowns = [];\r\n };\r\n /**\r\n * Gets query ID.\r\n * @returns The ID>\r\n */\r\n Query.prototype.getId = function () {\r\n return this.id;\r\n };\r\n /**\r\n * Sets query ID.\r\n * @param id New Query ID.\r\n */\r\n Query.prototype.setId = function (id) {\r\n this.id = id;\r\n };\r\n /**\r\n * Regenerates current query ID.\r\n * @param id New Query ID.\r\n */\r\n Query.prototype.regenerateId = function () {\r\n this.id = dataUtils.generateId(\"quer\");\r\n };\r\n /**\r\n * Gets name of the query.\r\n * @retruns The name.\r\n */\r\n Query.prototype.getName = function () {\r\n return this.name;\r\n };\r\n /**\r\n * Sets name of the query\r\n * @param name New name.\r\n */\r\n Query.prototype.setName = function (name) {\r\n this.name = name;\r\n };\r\n /**\r\n * Gets description of the query.\r\n * @retruns The description.\r\n */\r\n Query.prototype.getDescription = function () {\r\n return this.description;\r\n };\r\n /**\r\n * Sets description of the query\r\n * @param description New description.\r\n */\r\n Query.prototype.setDescription = function (description) {\r\n this.description = description;\r\n };\r\n /**\r\n * Get array of columns.\r\n * @retruns Columns.\r\n */\r\n Query.prototype.getColumns = function () {\r\n return this.columns;\r\n };\r\n /**\r\n * Gets array of columns that are used as keys\r\n * for totals.\r\n */\r\n Query.prototype.getUsedInTotalsColumns = function () {\r\n var aggrs = this.getAggregatedColumns();\r\n if (aggrs.length === 0)\r\n return [];\r\n var cols = this.getColumns()\r\n .filter(function (col) { return col.enabled && col.expr.tag === ExprTag.EntityAttribute; });\r\n if (cols.length)\r\n cols.pop();\r\n return cols;\r\n };\r\n /**\r\n * Get array of columns used only in sorting.\r\n * @retruns Columns.\r\n */\r\n Query.prototype.getJustSortedColumns = function () {\r\n return this.justsorted;\r\n };\r\n /**\r\n * Gets array of columns used in sorting\r\n * @retruns Columns\r\n */\r\n Query.prototype.getSortedColumns = function () {\r\n var sortedCols = new Array();\r\n var cols = this.getColumns()\r\n .concat(this.getJustSortedColumns());\r\n for (var i = 0; i < cols.length; i++) {\r\n var col = cols[i];\r\n if (col.sortIndex >= 0) {\r\n sortedCols.push(col);\r\n }\r\n }\r\n sortedCols.sort(function (col1, col2) {\r\n return col1.sortIndex - col2.sortIndex;\r\n });\r\n return sortedCols;\r\n };\r\n /**\r\n * Gets Colummn sorting index.\r\n * @param col The column.\r\n * @retruns The index.\r\n */\r\n Query.prototype.getColumnSortIndex = function (col) {\r\n if (col.sorting != SortDirection.None) {\r\n if (col.sortIndex < 0) {\r\n var cols = this.getColumns()\r\n .concat(this.getJustSortedColumns());\r\n return dataUtils.indexOfArrayItem(cols, col);\r\n }\r\n else {\r\n return col.sortIndex;\r\n }\r\n }\r\n return -1;\r\n };\r\n Query.prototype.createColumn = function (justsorted) {\r\n if (justsorted === void 0) { justsorted = false; }\r\n return new QueryColumn(this, justsorted);\r\n };\r\n Query.prototype.getColumnById = function (id) {\r\n return dataUtils.findItemById(this.columns, id);\r\n };\r\n /**\r\n * Adds a new column with specified parameters\r\n * @param desriptor The descriptor of the new column. Can contain different parameters like:\r\n * `attribute` - a reference to a EntityAttr object,\r\n * `attributeId` - an ID of the entity attribute we need (if we don't indicate `attribute`),\r\n * `index`, sorting`, 'sortIndex` and other\r\n *\r\n * @param author The author of this operation. This parameter is used in EasyQuery widgets only to indicate which of the initiates the change.\r\n * @retruns The column.\r\n * @example\r\n * query.addColumn({\r\n * attributeId: 'Customers.CompanyName',\r\n * sortIndex: SortDirection.Ascending\r\n * }});\r\n */\r\n Query.prototype.addColumn = function (descriptor, author) {\r\n var columns = (descriptor.justsorted)\r\n ? this.justsorted\r\n : this.columns;\r\n var newColumn;\r\n if (descriptor.column) {\r\n newColumn = descriptor.column;\r\n }\r\n else {\r\n newColumn = this.createColumn(descriptor.justsorted);\r\n var attr = void 0;\r\n if (descriptor.attribute) {\r\n attr = descriptor.attribute;\r\n }\r\n else if (descriptor.attributeId) {\r\n attr = this.model.getAttributeById(descriptor.attributeId);\r\n if (!attr) {\r\n throw new Error(\"Incorrect attribute id (\" + descriptor.attributeId + \"): addColumn\");\r\n }\r\n }\r\n else {\r\n throw new Error(\"Not enought data: addColumn\");\r\n }\r\n if (descriptor.aggrFuncId && descriptor.cusomtSql) {\r\n console.warn(\"Column cannot be created using aggrFuncId and customSql at the same time. \" +\r\n \"cusomSql will be used.\");\r\n }\r\n if (descriptor.cusomtSql) {\r\n newColumn.caption = 'Custom SQL Column';\r\n newColumn.expr.tag = ExprTag.CustomSql;\r\n newColumn.expr.baseAttrId = attr.id;\r\n newColumn.expr.sql = descriptor.cusomtSql;\r\n }\r\n else if (descriptor.aggrFuncId) {\r\n newColumn.caption = attr.caption + ' '\r\n + this.model.getAggrFunctionCaption(descriptor.aggrFuncId);\r\n newColumn.expr.tag = ExprTag.AggregateFunction;\r\n newColumn.expr.func = descriptor.aggrFuncId;\r\n newColumn.expr.distinct = false;\r\n var arg = new Expression(newColumn);\r\n arg.setValue(attr.id, true);\r\n arg.tag = ExprTag.EntityAttribute;\r\n newColumn.expr.args.push(arg);\r\n ;\r\n }\r\n else {\r\n newColumn.caption = attr.caption;\r\n newColumn.expr.setValue(attr.id, true);\r\n newColumn.expr.tag = ExprTag.EntityAttribute;\r\n }\r\n newColumn.caption = descriptor.caption || newColumn.caption;\r\n newColumn.sorting = descriptor.sorting || SortDirection.None;\r\n newColumn.sortIndex = descriptor.sortIndex || -1;\r\n newColumn.enabled = dataUtils.getIfDefined(descriptor.enabled, true);\r\n newColumn.setReadOnly(dataUtils.getIfDefined(descriptor.readonly, false));\r\n }\r\n if (descriptor.index && descriptor.index >= 0 && descriptor.index < columns.length) {\r\n columns.splice(descriptor.index, 0, newColumn);\r\n }\r\n else {\r\n columns.push(newColumn);\r\n }\r\n return newColumn;\r\n };\r\n /**\r\n * Adds a new column with specified index.\r\n * @param column The column or array of columns\r\n * @param index The index of new column\r\n * @param author The author.\r\n * @example\r\n * const column = new Column();\r\n * column.caption = \"Company name\";\r\n *\r\n * query.addColumn(column, 1)\r\n */\r\n Query.prototype.addColumnObj = function (column, index, author) {\r\n var columns = this.columns;\r\n if (typeof column.length == \"undefined\") {\r\n if (typeof index == \"number\") {\r\n columns.splice(index, 0, column);\r\n }\r\n else {\r\n columns.push(column);\r\n }\r\n }\r\n else {\r\n if (typeof index == \"number\") {\r\n columns.push.apply(columns, [index, 0].concat(column));\r\n }\r\n else {\r\n columns.push.apply(columns, [].concat(column));\r\n }\r\n }\r\n };\r\n /**\r\n * Changes column to Aggregate function, custom expression or simple column.\r\n * @param column The column to change.\r\n * @param tag New column expression tag.\r\n * @param args The arguments (Contains aggregate function id)\r\n */\r\n Query.prototype.changeColumnType = function (column, tag, args) {\r\n if (column.isJustSorted())\r\n return;\r\n args = args || {};\r\n if (tag === ExprTag.AggregateFunction) {\r\n if (!args.funcId)\r\n throw Error(\"'funcId' argument is not defined\");\r\n if (column.expr.tag == ExprTag.AggregateFunction) {\r\n column.expr.func = args.funcId;\r\n return;\r\n }\r\n var exprValue = column.expr.value;\r\n column.caption = '';\r\n var expr = new Expression(column);\r\n expr.tag = ExprTag.AggregateFunction;\r\n expr.func = args.funcId;\r\n expr.distinct = false;\r\n var arg = new Expression(column);\r\n //arg.id = exprValue;\r\n arg.setValue(exprValue, true);\r\n arg.tag = ExprTag.EntityAttribute;\r\n expr.args.push(arg);\r\n column.expr = expr;\r\n }\r\n else if (tag === ExprTag.CustomSql) {\r\n var attrId = (column.expr.tag == ExprTag.AggregateFunction)\r\n ? column.expr.args[0].value\r\n : column.expr.value;\r\n column.caption = '';\r\n var sqlText = '';\r\n if (this.model) {\r\n sqlText = this.model.getAttributeById(attrId).expr;\r\n }\r\n var customSqlExpr = new Expression(column);\r\n customSqlExpr.tag = ExprTag.CustomSql;\r\n customSqlExpr.sql = sqlText;\r\n customSqlExpr.baseAttrId = attrId;\r\n column.expr = customSqlExpr;\r\n }\r\n else if (tag === ExprTag.EntityAttribute) {\r\n if (column.expr.tag === ExprTag.EntityAttribute\r\n || column.expr.tag === ExprTag.ParentEntityAttribute) {\r\n return;\r\n }\r\n var exprId = (column.expr.tag === ExprTag.CustomSql)\r\n ? column.expr.baseAttrId\r\n : column.expr.args[0].value;\r\n column.caption = '';\r\n var expr = new Expression(column);\r\n expr.tag = ExprTag.EntityAttribute;\r\n //expr.id = exprId;\r\n expr.setValue(exprId, true);\r\n column.expr = expr;\r\n }\r\n };\r\n /**\r\n * Moves the column with specified index to another position.\r\n * @param index1 The index of the column that should be moved.\r\n * @param index2 The index of the position the column should be moved to\r\n * @param author The author\r\n */\r\n Query.prototype.moveColumn = function (index1, index2) {\r\n var columns = this.getColumns();\r\n dataUtils.moveArrayItem(columns, index1, index2);\r\n };\r\n /**\r\n * Removes the column.\r\n * @param column The column to be removed.\r\n * @param author The author\r\n */\r\n Query.prototype.removeColumn = function (column, author) {\r\n var columns = (column.isJustSorted())\r\n ? this.getJustSortedColumns()\r\n : this.getColumns();\r\n dataUtils.removeArrayItem(columns, column);\r\n };\r\n /**\r\n * Adds a condition group - a group of simple conditions (predicates) linked by AND or OR\r\n * @param descriptor The descriptor of the new condition group.\r\n * @returns The new search condition.\r\n */\r\n Query.prototype.addConditionGroup = function (descriptor, addChildCondition) {\r\n if (addChildCondition === void 0) { addChildCondition = true; }\r\n console.error(\"Community version doesn't support working with groups.\");\r\n return null;\r\n };\r\n Query.prototype.addExtraConditionGroup = function (descriptor, addChildCondition) {\r\n if (addChildCondition === void 0) { addChildCondition = true; }\r\n console.error(\"Community version doesn't support working with groups.\");\r\n return null;\r\n };\r\n Query.prototype.createCondition = function (tag) {\r\n if (tag === void 0) { tag = CondTag.Simple; }\r\n return new Condition(this, tag);\r\n };\r\n /**\r\n * Adds a new simple condition (a predicate)\r\n * @param descriptor The descriptor which defines different parameters of the new condition\r\n * @returns The new condition.\r\n */\r\n Query.prototype.addSimpleCondition = function (descriptor) {\r\n var parent = descriptor.parent || this.getRootCondition();\r\n var model = this.getModel();\r\n if (!model)\r\n return null;\r\n if (!descriptor.attribute && !descriptor.attributeId) {\r\n throw new Error(\"Either `attribute` or `attributeId` parameter must have a value\");\r\n }\r\n if (!descriptor.attribute) {\r\n descriptor.attribute = model.getAttributeById(descriptor.attributeId);\r\n if (!descriptor.attribute) {\r\n throw new Error(\"Could not find this attribute: \" + descriptor.attributeId);\r\n }\r\n }\r\n if (!descriptor.operator && descriptor.operatorId) {\r\n descriptor.operator = model.getOperatorById(descriptor.operatorId);\r\n }\r\n if (!descriptor.operator) {\r\n descriptor.operator = model.getDefaultOperatorForAttr(descriptor.attribute);\r\n }\r\n var cond = this.createSimpleConditionObject(descriptor.attribute, descriptor.operator, descriptor.value);\r\n parent.addCondition(cond);\r\n cond.enabled = dataUtils.getIfDefined(descriptor.enabled, true);\r\n cond.setReadOnly(dataUtils.getIfDefined(descriptor.readonly, false));\r\n return cond;\r\n };\r\n Query.prototype.addSimpleExtraCondition = function (descriptor) {\r\n descriptor.parent = descriptor.parent || this.extraConditions;\r\n return this.addSimpleCondition(descriptor);\r\n };\r\n Query.prototype.createSimpleConditionObject = function (attr, operator, inputValues) {\r\n if (!attr || !attr.useInConditions) {\r\n var attrCaption = attr ? attr.caption : 'NULL';\r\n throw \"Can't add a condition with such attribute: \" + attrCaption;\r\n }\r\n var cond = this.createCondition(CondTag.Simple);\r\n cond.setOperatorId(operator.id, true);\r\n var attrExpr = new Expression(cond);\r\n attrExpr.setValue(attr.id, true);\r\n attrExpr.tag = this.attributeExprTag;\r\n attrExpr.kind = DataKind.Attribute;\r\n attrExpr.dataType = attr.dataType;\r\n cond.expressions.push(attrExpr);\r\n var model = this.getModel();\r\n var valCount = operator.paramCount;\r\n var values = dataUtils.fillArray(new Array(valCount - 1), null);\r\n if (inputValues !== null && typeof inputValues !== \"undefined\") {\r\n if (Array.isArray(inputValues)) {\r\n dataUtils.copyArrayTo(inputValues, values);\r\n }\r\n else if (valCount > 0) {\r\n values[0] = inputValues;\r\n }\r\n }\r\n var valLength = values.length;\r\n for (var i = 0; i < valLength; i++) {\r\n var operand = model.getOperand(attr, operator, i + 1);\r\n cond.addExpressionByOperand(operand, values[i]);\r\n }\r\n return cond;\r\n };\r\n /**\r\n * Removes several columns passed as array.\r\n * @param columnsToRemove The list of columns to be removed.\r\n * @param author The author.\r\n */\r\n Query.prototype.removeColumns = function (columnsToRemove, author) {\r\n var justSortedColumns = columnsToRemove.filter(function (c) { return c.isJustSorted(); });\r\n var columns = columnsToRemove.filter(function (c) { return !c.isJustSorted(); });\r\n function removeFromArray(arr, arrToRemove) {\r\n var ctrLen = arrToRemove.length;\r\n for (var i = 0; i < ctrLen; i++) {\r\n var index = arr.indexOf(arrToRemove[i]);\r\n if (index >= 0) {\r\n arr.splice(index, 1);\r\n }\r\n }\r\n }\r\n if (columns.length > 0) {\r\n removeFromArray(this.getColumns(), columns);\r\n }\r\n if (justSortedColumns.length > 0) {\r\n removeFromArray(this.getJustSortedColumns(), justSortedColumns);\r\n }\r\n };\r\n /**\r\n * Fires process event.\r\n * @param data The data.\r\n */\r\n Query.prototype.fireProcessEvent = function (data) {\r\n this.eventEmitter.fire('query.process', data);\r\n };\r\n Query.prototype.fireChangedEvent = function (params, postpone, wasModified) {\r\n params = params || { part: QueryChangePart.All };\r\n if (typeof (postpone) != 'undefined' || typeof (wasModified) != 'undefined') {\r\n params.postpone = postpone || 0;\r\n params.wasModified = wasModified;\r\n console.warn('Method with \\'postpone\\' and \\'wasModified\\' args is deprecated. Pass params in data object');\r\n }\r\n this._isModified = typeof (params.wasModified) != 'undefined'\r\n ? params.wasModified\r\n : true;\r\n var eventData = params || {\r\n part: QueryChangePart.All\r\n };\r\n this.eventEmitter.fire('query.change', eventData, params.postpone || 0);\r\n };\r\n Query.prototype.fireColumnsChangedEvent = function (action, column, justsorted) {\r\n if (justsorted === void 0) { justsorted = false; }\r\n this.fireChangedEvent({\r\n part: (justsorted)\r\n ? QueryChangePart.SortingColumns\r\n : QueryChangePart.Columns,\r\n action: action,\r\n changee: column\r\n });\r\n };\r\n Query.prototype.fireConditionsChangedEvent = function (action, condition) {\r\n this.fireChangedEvent({\r\n part: QueryChangePart.Conditions,\r\n action: action,\r\n changee: condition\r\n });\r\n };\r\n /**\r\n * Runs through condition with this callback.\r\n * @param processCondition The function to process condition.\r\n */\r\n Query.prototype.runThroughConditions = function (processCondition) {\r\n var processGroup = function (predicate) {\r\n for (var i = 0; i < predicate.getConditions().length; i++) {\r\n var cond = predicate.getConditions()[i];\r\n if (cond.isGroup()) {\r\n processGroup(cond);\r\n }\r\n else {\r\n if (processCondition)\r\n processCondition(cond);\r\n }\r\n }\r\n };\r\n processGroup(this.getRootCondition());\r\n };\r\n /**\r\n * Gets one value for the attribute\r\n * @param attrId The attribute ID.\r\n * @retruns The value.\r\n */\r\n Query.prototype.getOneValueForAttr = function (attrId) {\r\n var res = null;\r\n this.runThroughConditions(function (cond) {\r\n if (cond.enabled) {\r\n var expr = cond.expressions[0];\r\n var opid = cond.getOperatorId();\r\n if (expr.value == attrId && cond.expressions[1] &&\r\n (opid == \"Equal\" || opid == \"InList\" || opid == \"StartsWith\")) {\r\n res = cond.expressions[1].value;\r\n }\r\n }\r\n });\r\n return res;\r\n };\r\n /**\r\n * Gets root predicate\r\n * @retruns The condition.\r\n */\r\n Query.prototype.getRootCondition = function () {\r\n return this.root;\r\n };\r\n /**\r\n * Add process callback\r\n * @param callback The callback.\r\n * @retruns The callback ID.\r\n */\r\n Query.prototype.addProcessCallback = function (callback) {\r\n return this.eventEmitter.subscribe('query.process', callback);\r\n };\r\n /**\r\n * Remove process callback\r\n * @param callbackId The callback ID.\r\n */\r\n Query.prototype.removeProcessCallback = function (callbackId) {\r\n this.eventEmitter.unsubscribe('query.process', callbackId);\r\n };\r\n /**\r\n * Add changed callback\r\n * @param callback The callback ID.\r\n */\r\n Query.prototype.addChangedCallback = function (callback) {\r\n return this.eventEmitter.subscribe('query.change', callback);\r\n };\r\n /**\r\n * Remove changed callback\r\n * @param callbackId The callback ID.\r\n */\r\n Query.prototype.removeChangedCallback = function (callbackId) {\r\n this.eventEmitter.unsubscribe('query.change', callbackId);\r\n };\r\n /**\r\n * Retruns conditions text\r\n */\r\n Query.prototype.getConditionsText = function () {\r\n var model = this.getModel();\r\n if (!model)\r\n return '';\r\n var getConditionGroupText = function (group) {\r\n var result = '', conjKey = \"Conj\" + equtils.linkTypeToStr(group.linkType), conjText = i18n.getText(conjKey), condText, i;\r\n for (i = 0; i < group.getConditions().length; i++) {\r\n condText = \"\";\r\n var cond = group.getConditions()[i];\r\n if (cond.enabled || typeof (cond.enabled) === \"undefined\") {\r\n if (cond.isGroup()) {\r\n condText = getConditionGroupText(cond);\r\n if (condText) {\r\n condText = \"(\" + condText + \")\";\r\n }\r\n }\r\n else {\r\n var opId = cond.getOperatorId();\r\n var operator = model.getOperatorById(opId);\r\n var parts = equtils.parseOperatorFormat(operator);\r\n var plen = parts.length;\r\n for (var pi = 0; pi < plen; pi++) {\r\n var part = parts[pi];\r\n var txt = part.text;\r\n if (part.type == \"expression\") {\r\n var expr = cond.expressions[part.index];\r\n if (expr.kind == DataKind.Attribute || expr.tag == ExprTag.EntityAttribute) {\r\n var attr = model.getAttributeById(expr.value);\r\n txt = model.getAttributeText(attr, \"{entity} {attr}\");\r\n }\r\n else {\r\n txt = expr.getText();\r\n }\r\n }\r\n if (pi > 0)\r\n condText += \" \";\r\n condText += txt;\r\n }\r\n }\r\n }\r\n if (condText) {\r\n if (i > 0 && result) {\r\n result += \" \" + conjText + \" \";\r\n }\r\n result += condText;\r\n }\r\n }\r\n if (group.linkType == LinkType.None || group.linkType == LinkType.NotAll) {\r\n result = \"not ( \" + result + \" )\";\r\n }\r\n return result;\r\n };\r\n return getConditionGroupText(this.getRootCondition());\r\n };\r\n /**\r\n * Retruns conditions text\r\n */\r\n Query.prototype.getConditionsTextAsHtml = function () {\r\n var model = this.getModel();\r\n if (!model)\r\n return '

';\r\n var getConditionGroupText = function (group) {\r\n var result = '', conjKey = \"Conj\" + equtils.linkTypeToStr(group.linkType), conjText = \"\" + i18n.getText(conjKey) + \"\", condText, i;\r\n for (i = 0; i < group.getConditions().length; i++) {\r\n condText = \"\";\r\n var cond = group.getConditions()[i];\r\n if (cond.enabled || typeof (cond.enabled) === \"undefined\") {\r\n if (cond.isGroup()) {\r\n condText = getConditionGroupText(cond);\r\n if (condText) {\r\n condText = \"(\" + condText + \")\";\r\n }\r\n }\r\n else {\r\n var opId = cond.getOperatorId();\r\n var operator = model.getOperatorById(opId);\r\n var parts = equtils.parseOperatorFormat(operator);\r\n var plen = parts.length;\r\n for (var pi = 0; pi < plen; pi++) {\r\n var part = parts[pi];\r\n var txt = part.text;\r\n if (part.type == \"expression\") {\r\n var expr = cond.expressions[part.index];\r\n if (expr.kind == DataKind.Attribute || expr.tag == ExprTag.EntityAttribute) {\r\n var attr = model.getAttributeById(expr.value);\r\n txt = \"\" + model.getAttributeText(attr, \"{entity} {attr}\") + \"\";\r\n }\r\n else {\r\n txt = \"\" + expr.getText() + \"\";\r\n }\r\n }\r\n else if (part.type == \"operator\") {\r\n txt = \"\" + txt + \"\";\r\n }\r\n if (pi > 0)\r\n condText += \" \";\r\n condText += txt;\r\n }\r\n }\r\n }\r\n if (condText) {\r\n if (i > 0 && result) {\r\n result += \" \" + conjText + \" \";\r\n }\r\n result += condText;\r\n }\r\n }\r\n if (group.linkType == LinkType.None || group.linkType == LinkType.NotAll) {\r\n result = \"not ( \" + result + \" )\";\r\n }\r\n return result;\r\n };\r\n return \"

\" + getConditionGroupText(this.getRootCondition()) + \"

\";\r\n };\r\n return Query;\r\n}());\r\nexport { Query };\r\n//# sourceMappingURL=query.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/core/dist/lib/query/query.js\n// module id = 29\n// module chunks = 0","export var QueryChangePart;\r\n(function (QueryChangePart) {\r\n QueryChangePart[QueryChangePart[\"Conditions\"] = 1] = \"Conditions\";\r\n QueryChangePart[QueryChangePart[\"Columns\"] = 2] = \"Columns\";\r\n QueryChangePart[QueryChangePart[\"SortingColumns\"] = 4] = \"SortingColumns\";\r\n QueryChangePart[QueryChangePart[\"Properties\"] = 32] = \"Properties\";\r\n QueryChangePart[QueryChangePart[\"ExtraData\"] = 64] = \"ExtraData\";\r\n QueryChangePart[QueryChangePart[\"Facets\"] = 128] = \"Facets\";\r\n QueryChangePart[QueryChangePart[\"All\"] = 255] = \"All\";\r\n})(QueryChangePart || (QueryChangePart = {}));\r\nexport var QueryChangeAction;\r\n(function (QueryChangeAction) {\r\n QueryChangeAction[QueryChangeAction[\"Add\"] = 1] = \"Add\";\r\n QueryChangeAction[QueryChangeAction[\"Modify\"] = 2] = \"Modify\";\r\n QueryChangeAction[QueryChangeAction[\"Delete\"] = 4] = \"Delete\";\r\n QueryChangeAction[QueryChangeAction[\"Activate\"] = 8] = \"Activate\";\r\n QueryChangeAction[QueryChangeAction[\"All\"] = 127] = \"All\";\r\n})(QueryChangeAction || (QueryChangeAction = {}));\r\n//# sourceMappingURL=query_events.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/core/dist/lib/query/query_events.js\n// module id = 30\n// module chunks = 0","import { browserUtils } from './browser_utils';\r\n/**\r\n * Wraps all the elements inside \"parent\" by \"wrapper\" element\r\n * @param parent The element to add wrapper to.\r\n * @param wrapper The element that will wrap child elements.\r\n */\r\nexport function wrapInner(parent, wrapper) {\r\n parent.appendChild(wrapper);\r\n while (parent.firstChild !== wrapper) {\r\n wrapper.appendChild(parent.firstChild);\r\n }\r\n}\r\n/**\r\n * Creates ands adds a new [[HTMLElement]] to \"parent\"\r\n * @param parent The element to add new element to.\r\n * @param tag Html tag of the new element.\r\n * @param options The options. In particular, options.cssClass sets the new element class.\r\n * @returns New element.\r\n */\r\nexport function addElement(parent, tag, options) {\r\n var element = document.createElement(tag);\r\n var opts = options || {};\r\n if (opts.cssClass) {\r\n element.className = opts.cssClass;\r\n }\r\n parent.appendChild(element);\r\n return element;\r\n}\r\n/**\r\n * Adds css class to the html element.\r\n * @param element The element to add css class to.\r\n * @param className The name of the css class to be added.\r\n */\r\nexport function addCssClass(element, className) {\r\n element.className = (element.className)\r\n ? element.className + ' ' + className\r\n : className;\r\n}\r\n/**\r\n * Hides the html element.\r\n * @param element The element to be hidden.\r\n */\r\nexport function hideElement(element) {\r\n element.style.display = 'none';\r\n}\r\n/**\r\n * Shows the html element.\r\n * @param element The element to be shown.\r\n * @param display The value of \"display\" style to be set. Default value is \"block\".\r\n */\r\nexport function showElement(element, display) {\r\n if (!display) {\r\n display = '';\r\n }\r\n element.style.display = display;\r\n}\r\n/**\r\n * Hides the \"first\" element and shows the \"second\".\r\n * @param first The element to be hidden.\r\n * @param second The element to be shown.\r\n * @param options The options. The following options are applied:\r\n * - display - the value of \"display\" style to be set. Default value is \"block\"\r\n * - duration - the duration of fading in and out\r\n * - complete - the callback to be called when toggle is complete\r\n */\r\nexport function toggleVisibility(first, second, options) {\r\n if (!options) {\r\n options = {};\r\n }\r\n if (!options.display) {\r\n options.display = '';\r\n }\r\n if (!options.duration) {\r\n options.duration = 200;\r\n }\r\n //TODO: later we need to make it fading in and out\r\n hideElement(first);\r\n showElement(second, options.display);\r\n if (options.complete) {\r\n options.complete();\r\n }\r\n}\r\n/**\r\n * Checks if element is visible\r\n * @param element The element to check.\r\n * @returns `true` if visible, otherwise - `false`.\r\n */\r\nexport function isVisible(element) {\r\n return element.style.display != 'none'\r\n && element.offsetWidth != 0\r\n && element.offsetHeight != 0;\r\n}\r\nexport function createBrowserEvent(eventName) {\r\n var event;\r\n if (typeof (Event) === 'function') {\r\n event = new Event(eventName);\r\n }\r\n else {\r\n event = document.createEvent('Event');\r\n event.initEvent(eventName, true, true);\r\n }\r\n return event;\r\n}\r\nexport function getViewportSize() {\r\n var width = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);\r\n var height = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);\r\n return {\r\n width: width,\r\n height: height\r\n };\r\n}\r\nexport function getDocSize() {\r\n if (browserUtils.IsIE())\r\n return getWinSize();\r\n var width = Math.max(document.documentElement.clientWidth, document.body.clientWidth || 0);\r\n var height = Math.max(document.documentElement.clientHeight, document.body.clientHeight || 0);\r\n return {\r\n width: width,\r\n height: height\r\n };\r\n}\r\nexport function getScrollPos() {\r\n var body = document.body;\r\n var docElem = document.documentElement;\r\n return {\r\n top: window.pageYOffset || docElem.scrollTop || body.scrollTop,\r\n left: window.pageXOffset || docElem.scrollLeft || body.scrollLeft\r\n };\r\n}\r\nexport function getElementAbsolutePos(element) {\r\n var res = { x: 0, y: 0 };\r\n if (element !== null) {\r\n var position = offset(element);\r\n res = { x: position.left, y: position.top };\r\n }\r\n return res;\r\n}\r\nfunction offset(element) {\r\n var defaultBoundingClientRect = { top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 };\r\n var box;\r\n try {\r\n box = element.getBoundingClientRect();\r\n }\r\n catch (_a) {\r\n box = defaultBoundingClientRect;\r\n }\r\n var body = document.body;\r\n var docElem = document.documentElement;\r\n var scollPos = getScrollPos();\r\n var scrollTop = scollPos.top;\r\n var scrollLeft = scollPos.left;\r\n var clientTop = docElem.clientTop || body.clientTop || 0;\r\n var clientLeft = docElem.clientLeft || body.clientLeft || 0;\r\n var top = box.top + scrollTop - clientTop;\r\n var left = box.left + scrollLeft - clientLeft;\r\n return { top: Math.round(top), left: Math.round(left) };\r\n}\r\nexport function getWinSize() {\r\n return {\r\n width: window.innerWidth,\r\n height: window.innerHeight\r\n };\r\n}\r\nexport function slideDown(target, duration, callback) {\r\n target.style.removeProperty('display');\r\n var display = window.getComputedStyle(target).display;\r\n if (display === 'none')\r\n display = 'block';\r\n target.style.display = display;\r\n var height = target.offsetHeight;\r\n target.style.overflow = 'hidden';\r\n target.style.height = 0 + 'px';\r\n target.style.paddingTop = 0 + 'px';\r\n target.style.paddingBottom = 0 + 'px';\r\n target.style.marginTop = 0 + 'px';\r\n target.style.marginBottom = 0 + 'px';\r\n target.offsetHeight;\r\n target.style.boxSizing = 'border-box';\r\n target.style.transitionProperty = \"height, margin, padding\";\r\n target.style.transitionDuration = duration + 'ms';\r\n target.style.height = height + 'px';\r\n target.style.removeProperty('padding-top');\r\n target.style.removeProperty('padding-bottom');\r\n target.style.removeProperty('margin-top');\r\n target.style.removeProperty('margin-bottom');\r\n window.setTimeout(function () {\r\n target.style.removeProperty('height');\r\n target.style.removeProperty('overflow');\r\n target.style.removeProperty('transition-duration');\r\n target.style.removeProperty('transition-property');\r\n target.style.removeProperty('box-sizing');\r\n if (callback) {\r\n callback();\r\n }\r\n }, duration);\r\n}\r\nexport function slideUp(target, duration, callback) {\r\n target.style.transitionProperty = 'height, margin, padding';\r\n target.style.transitionDuration = duration + 'ms';\r\n target.style.boxSizing = 'border-box';\r\n target.style.height = target.offsetHeight + 'px';\r\n target.offsetHeight;\r\n target.style.overflow = 'hidden';\r\n target.style.height = 0 + 'px';\r\n target.style.paddingTop = 0 + 'px';\r\n target.style.paddingBottom = 0 + 'px';\r\n target.style.marginTop = 0 + 'px';\r\n target.style.marginBottom = 0 + 'px';\r\n window.setTimeout(function () {\r\n target.style.display = 'none';\r\n target.style.removeProperty('height');\r\n target.style.removeProperty('padding-top');\r\n target.style.removeProperty('padding-bottom');\r\n target.style.removeProperty('margin-top');\r\n target.style.removeProperty('margin-bottom');\r\n target.style.removeProperty('overflow');\r\n target.style.removeProperty('transition-duration');\r\n target.style.removeProperty('transition-property');\r\n target.style.removeProperty('box-sizing');\r\n if (callback) {\r\n callback();\r\n }\r\n }, duration);\r\n}\r\nexport var eqCssPrefix = 'eqjs';\r\nexport var eqCssMobile = 'eqjs-mobile';\r\n//# sourceMappingURL=ui-utils.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easydata/ui/dist/lib/utils/ui-utils.js\n// module id = 31\n// module chunks = 0","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { i18n } from '@easydata/core';\r\nimport { DataType, utils as dataUtils } from '@easydata/core';\r\nimport { Widget, WidgetGroup, eqconsts, CondTag, EqValueEditor, EqEditorTag, DataKind, QueryChangePart, QueryChangeAction, ConditionPart } from '@easyquery/core';\r\nimport { domel } from '@easydata/ui';\r\nimport { eqDragManager, DropEffect } from '@easydata/ui';\r\nimport { QPEditablePart } from '../types/qp_editable_part';\r\nimport { PopupMenu } from '../utils/popup_menu';\r\nimport { SimpleConditionRenderer } from './renderers/querypanel/condition_renderer';\r\nimport { ConditionGroupRenderer } from './renderers/querypanel/condition_group_renderer';\r\nimport { InputExpressionRenderer } from './renderers/querypanel/input_expression_renderer';\r\nimport { AttributeExpressionRenderer } from './renderers/querypanel/attribute_expression_renderer';\r\nimport { AddRowRenderer } from './renderers/querypanel/addrow_renderer';\r\nimport { ListExpressionRenderer, SqlListExpressionRenderer, CustomListExpressionRenderer } from './renderers/querypanel/list_expression_renderer';\r\nimport { OperatorRenderer } from './renderers/querypanel/operator_renderer';\r\nimport { DateTimeExpressionRenderer } from './renderers/querypanel/datetime_expression_render';\r\nimport { SubQueryExpressionRenderer } from './renderers/querypanel/subquery_expression_renderer';\r\nimport { eqCssPrefix, eqCssMobile, safeFocus } from '../utils/utils';\r\nimport { browserUtils } from '../utils/browser_utils';\r\nimport { BindToParentColumnExpressionRenderer } from './renderers/querypanel/bind_to_parent_column_expression_renderer';\r\n/**\r\n * The query panel wiget, implemented without JQuery.\r\n */\r\nvar QueryPanel = /** @class */ (function (_super) {\r\n __extends(QueryPanel, _super);\r\n /**\r\n * The default constructor.\r\n * @param slot The html element.\r\n */\r\n function QueryPanel(slot, customQuery) {\r\n var _this = _super.call(this, slot) || this;\r\n _this.options = {\r\n editableParts: QPEditablePart.All,\r\n isSubQuery: false,\r\n activeCondition: null,\r\n entitiesPopupHandler: null,\r\n entitiesListFilter: null,\r\n menuContainer: document.body,\r\n showRootRow: true,\r\n showAddRow: true,\r\n showCheckboxes: false,\r\n allowParameterization: false,\r\n allowInJoinConditions: false,\r\n showPoweredBy: false,\r\n buttons: {\r\n condition: null,\r\n group: null\r\n },\r\n alwaysShowButtonsInGroups: false,\r\n alwaysShowButtonsInConditions: false,\r\n showConjunctions: true,\r\n accentActiveCondition: true,\r\n activateRootOnStart: true,\r\n yearRange: 'c-10:c+10',\r\n oneClickDateSelection: true,\r\n showDateTimeInput: false,\r\n attrElementFormat: '{entity} {attr}',\r\n menuOptions: {\r\n showSearchBoxAfter: 30,\r\n searchBoxAutoFocus: true,\r\n activateOnMouseOver: true,\r\n itemRenderedCallback: null\r\n },\r\n allowDragDrop: true,\r\n attrPlacement: 0,\r\n sortEntities: false,\r\n subQueryDialogWidth: 600,\r\n subQueryDialogHeight: 300,\r\n dialogZIndex: 100000,\r\n numberListSeparators: [',', ';'],\r\n autoEditNewCondition: false,\r\n onConditionRendered: null,\r\n onGetConditionRenderer: null,\r\n onGetExpressionRenderer: null,\r\n onGetOperatorRenderer: null,\r\n onOperatorRendered: null,\r\n onGetAddRowRenderer: null,\r\n defaultQuery: null\r\n };\r\n _this.customQuery = null;\r\n _this.landingSlot = domel('div')\r\n .addClass(_this.cssPrefix + \"-cond-landing-slot\")\r\n .addChildElement(domel('div')\r\n .toDOM())\r\n .toDOM();\r\n if (!_this.slot.classList.contains(_this.cssPrefix + \"-panel\")) {\r\n _this.slot.classList.add(_this.cssPrefix + \"-panel\");\r\n }\r\n _this.group = WidgetGroup.Query;\r\n if (customQuery) {\r\n _this.customQuery = customQuery;\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(QueryPanel.prototype, \"cssPrefix\", {\r\n get: function () {\r\n return 'eqjs-qp';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n QueryPanel.prototype.getWidgetType = function () {\r\n return 'queryPanel';\r\n };\r\n /**\r\n * Initialize widget.\r\n * @param context The context.\r\n * @param options The options.\r\n */\r\n QueryPanel.prototype.init = function (context, options) {\r\n var _this = this;\r\n _super.prototype.init.call(this, context, options);\r\n this.setOptions(options);\r\n //detach previously defined query observer (if any)\r\n this.detachQueryObserver();\r\n this.attachQueryObserver();\r\n eqDragManager.removeDropContainer(this.slot);\r\n if (this.options.allowDragDrop) {\r\n var model_1 = this.getContext().getModel();\r\n eqDragManager.registerDropContainer({\r\n element: this.slot,\r\n scopes: [\"entityAttr\"],\r\n onDragEnter: function (container, ev) {\r\n _this.slot.classList.add(eqCssPrefix + \"-drophover\");\r\n ev.dragImage.classList.add('eqjs-sortable-helper');\r\n _this.showLandingSlot();\r\n var attrId = ev.data.attrId;\r\n if (!model_1.checkAttrProperty(attrId, \"useInConditions\")) {\r\n ev.dropEffect = DropEffect.Forbid;\r\n }\r\n },\r\n onDragOver: function (container, ev) {\r\n },\r\n onDragLeave: function (container, ev) {\r\n ev.dragImage.classList.remove('eqjs-sortable-helper');\r\n ev.dragImage.style.removeProperty('width');\r\n _this.slot.classList.remove(eqCssPrefix + \"-drophover\");\r\n _this.hideLangindSlot();\r\n },\r\n onDrop: function (container, ev) {\r\n var query = _this.getQuery();\r\n var descr = {\r\n parent: query.getRootCondition(),\r\n attributeId: ev.data.attrId\r\n };\r\n var cond = query.addSimpleCondition(descr);\r\n if (cond) {\r\n query.fireConditionsChangedEvent(QueryChangeAction.Add, cond);\r\n }\r\n }\r\n });\r\n }\r\n };\r\n QueryPanel.prototype.destroyCore = function () {\r\n eqDragManager.removeDropContainer(this.slot);\r\n this.detachQueryObserver();\r\n this.slot.innerHTML = '';\r\n };\r\n QueryPanel.prototype.getEntitiesMenu = function () {\r\n return this.entitiesMenu;\r\n };\r\n QueryPanel.prototype.getConditionMenu = function () {\r\n return this.conditionMenu;\r\n };\r\n QueryPanel.prototype.getLinkTypeMenu = function () {\r\n return this.linkTypeMenu;\r\n };\r\n QueryPanel.prototype.getConditionGroupMenu = function (isRoot) {\r\n if (isRoot === void 0) { isRoot = false; }\r\n return isRoot ? this.rootGroupMenu : this.groupMenu;\r\n };\r\n QueryPanel.prototype.attachQueryObserver = function () {\r\n var _this = this;\r\n var query = this.getQuery();\r\n this.queryEventCallbackId = query.addChangedCallback(function (event) {\r\n //if something has changed, and that change is related to conditions\r\n var edata = event.data;\r\n if (!edata || (edata.part != QueryChangePart.Conditions && edata.part != QueryChangePart.All)) {\r\n return;\r\n }\r\n var focusedBefore = document.activeElement;\r\n var isFocusInside = _this.slot.contains(focusedBefore) || focusedBefore == document.body;\r\n switch (edata.action) {\r\n case QueryChangeAction.Modify: {\r\n var conds = edata.changee;\r\n var modifyCondition_1 = function (cond, autoEdit) {\r\n var el = _this.slot.querySelector(\"div[data-id=\" + cond.id + \"]\");\r\n if (el) {\r\n autoEdit = autoEdit\r\n && ((edata.condPart & ConditionPart.Operator) === ConditionPart.Operator)\r\n && cond.expressions.length > 1\r\n && (cond.expressions[1]._isDefaultValue || cond.expressions[1].value == '' ||\r\n cond.expressions[1].value == null);\r\n var isActive = el.classList.contains('active');\r\n var renderer = _this.getConditionRenderer(cond, el);\r\n if (renderer) {\r\n var newEl = renderer.render(autoEdit);\r\n if (isActive) {\r\n _this.toggleConditionPicked(cond);\r\n }\r\n if (isFocusInside && !autoEdit) {\r\n var focusElem = newEl.querySelector('a') || newEl.querySelector('.eqjs-qp-condition-button');\r\n if (focusElem) {\r\n safeFocus(focusElem);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n var autoEdit_1 = _this.options.autoEditNewCondition;\r\n if (Array.isArray(conds)) {\r\n conds.forEach(function (cond) { return modifyCondition_1(cond, autoEdit_1); });\r\n autoEdit_1 = false;\r\n }\r\n else {\r\n modifyCondition_1(conds, autoEdit_1);\r\n }\r\n break;\r\n }\r\n case QueryChangeAction.Add: {\r\n var conds = edata.changee;\r\n var addCondition_1 = function (cond) {\r\n var renderer = _this.getConditionRenderer(cond);\r\n if (renderer) {\r\n var parent_1 = cond.getParent();\r\n var parentEl = _this.slot.querySelector(\"div[data-id=\" + parent_1.id + \"]\");\r\n if (parentEl) {\r\n var newCondContainer = parentEl.lastChild;\r\n if (newCondContainer) {\r\n var el = renderer.render(_this.options.autoEditNewCondition);\r\n newCondContainer.appendChild(el);\r\n el.scrollIntoView(false);\r\n if (isFocusInside && !_this.options.autoEditNewCondition) {\r\n el.querySelector(\"a\").focus();\r\n }\r\n }\r\n }\r\n }\r\n };\r\n if (Array.isArray(conds)) {\r\n conds.forEach(function (cond) { return addCondition_1(cond); });\r\n }\r\n else {\r\n addCondition_1(conds);\r\n }\r\n break;\r\n }\r\n case QueryChangeAction.Delete: {\r\n var conds = edata.changee;\r\n var deleteCondition_1 = function (cond) {\r\n var el = _this.slot.querySelector(\"div[data-id=\" + cond.id + \"]\");\r\n if (el) {\r\n var parent_2 = _this.slot.querySelector(\"div[data-id=\" + cond.getParent().id + \"] > .eqjs-qp-row-group\");\r\n ;\r\n var next = el.nextSibling;\r\n var prev = el.previousSibling;\r\n el.parentElement.removeChild(el);\r\n if (isFocusInside) {\r\n var focusCond = next || prev || parent_2;\r\n var focusElem = focusCond.querySelector('a') || focusCond.querySelector('.eqjs-qp-condition-button');\r\n if (focusElem) {\r\n focusElem.focus();\r\n }\r\n }\r\n }\r\n };\r\n if (Array.isArray(conds)) {\r\n conds.forEach(function (cond) { return deleteCondition_1(cond); });\r\n }\r\n else {\r\n deleteCondition_1(conds);\r\n }\r\n break;\r\n }\r\n default:\r\n _this.refresh();\r\n break;\r\n }\r\n });\r\n };\r\n QueryPanel.prototype.detachQueryObserver = function () {\r\n if (this.queryEventCallbackId) {\r\n var query = this.getQuery();\r\n query.removeChangedCallback(this.queryEventCallbackId);\r\n }\r\n };\r\n QueryPanel.prototype.getQuery = function () {\r\n if (this.customQuery) {\r\n return this.customQuery;\r\n }\r\n return this.context.getQuery();\r\n };\r\n QueryPanel.prototype.refreshCore = function () {\r\n this.clear();\r\n this.render();\r\n };\r\n QueryPanel.prototype.setOptions = function (options) {\r\n dataUtils.assignDeep(this.options, options);\r\n // dateFormatValue & dateFormatDisplay back compatibility\r\n if (this.options.dateFormatValue) {\r\n i18n.updateLocaleSettings({\r\n editDateFormat: this.options.dateFormatValue\r\n });\r\n }\r\n if (this.options.dateFormatDisplay) {\r\n // TO DO: process option\r\n }\r\n if (typeof this.options.editableParts === \"undefined\") {\r\n this.options.editableParts = QPEditablePart.All;\r\n }\r\n if (browserUtils.isMobileMode()) {\r\n this.options.buttons = this.options.buttons || {};\r\n this.options.buttons.condition = [\"menu\"];\r\n this.options.buttons.group = [\"menu\"];\r\n }\r\n };\r\n QueryPanel.prototype.clear = function () {\r\n this.slot.innerHTML = \"\";\r\n };\r\n QueryPanel.prototype.render = function () {\r\n try {\r\n this.entitiesMenu = this.createEntitiesMenu();\r\n this.createConditionMenus();\r\n this.createLinkTypeMenu();\r\n this.rootContainer = domel('div', this.slot)\r\n .toDOM();\r\n domel(this.slot)\r\n .removeClass(eqCssMobile)\r\n .addClass(browserUtils.getMobileCssClass());\r\n var query = this.getQuery();\r\n var root = query.getRootCondition();\r\n var renderer = this.getConditionRenderer(root, this.rootContainer);\r\n if (renderer) {\r\n renderer.render();\r\n }\r\n if (this.options.showAddRow) {\r\n this.addRowElement = domel('div', this.slot)\r\n .toDOM();\r\n var addrowRenderer = this.getAddRowRenderer(this.addRowElement);\r\n if (addrowRenderer)\r\n addrowRenderer.render();\r\n }\r\n }\r\n catch (e) {\r\n this.context.throwError({\r\n action: \"QueryPanel rendering\",\r\n text: e.message,\r\n sourceError: e\r\n });\r\n }\r\n };\r\n QueryPanel.prototype.getConditionRenderer = function (condition, slot) {\r\n var renderer;\r\n if (this.options.onGetConditionRenderer) {\r\n renderer = this.options.onGetConditionRenderer(condition, slot);\r\n if (renderer) {\r\n return renderer;\r\n }\r\n }\r\n switch (condition.tag) {\r\n case CondTag.Simple:\r\n return new SimpleConditionRenderer(this, condition, slot);\r\n case CondTag.Group:\r\n return new ConditionGroupRenderer(this, condition, slot);\r\n }\r\n return null;\r\n };\r\n QueryPanel.prototype.getExpressionRenderer = function (expression, slot) {\r\n if (!expression) {\r\n throw 'Expression is not defined in the condition';\r\n }\r\n var model = this.getContext().getModel();\r\n var condition = expression.getParent();\r\n var operator = model.getOperatorById(condition.getOperatorId());\r\n var attribute = model.getAttributeById(condition.expressions[0].value);\r\n var operand = model.getOperand(attribute, operator, expression.getIndex());\r\n var editor;\r\n var tag;\r\n if (operand && operand.editor && operand.editor.tag !== EqEditorTag.Unknown) {\r\n editor = operand.editor;\r\n }\r\n else if (attribute && attribute.defaultEditor) {\r\n editor = attribute.defaultEditor;\r\n }\r\n else {\r\n editor = new EqValueEditor();\r\n }\r\n tag = editor.tag;\r\n var exprType = expression.dataType;\r\n if (exprType == DataType.Unknown) {\r\n exprType = attribute.dataType;\r\n }\r\n if (expression.kind === DataKind.Attribute) {\r\n if (expression.getIndex() === 0) { // Base attribute expression\r\n return new AttributeExpressionRenderer(this, expression, this.entitiesMenu, slot);\r\n }\r\n else {\r\n var attributeMenu = this.createEntitiesMenu(function (ent, attr) {\r\n if (attr) {\r\n return attr.useInConditions && attr.dataType === exprType;\r\n }\r\n return true;\r\n });\r\n return new AttributeExpressionRenderer(this, expression, attributeMenu, slot);\r\n }\r\n }\r\n else if (expression.kind === DataKind.Query) {\r\n tag = EqEditorTag.SubQuery;\r\n }\r\n else if (expression.kind === DataKind.Scalar) {\r\n if (tag == EqEditorTag.Unknown && (expression.dataType === DataType.Date\r\n || expression.dataType === DataType.DateTime || expression.dataType === DataType.Time)) {\r\n tag = EqEditorTag.DateTime;\r\n }\r\n }\r\n else if (expression.kind == DataKind.ParentColumn) {\r\n tag = EqEditorTag.BindToParentColumn;\r\n }\r\n if (this.options.onGetExpressionRenderer) {\r\n var renderer = this.options.onGetExpressionRenderer(this, expression, editor, slot);\r\n if (renderer) {\r\n return renderer;\r\n }\r\n }\r\n switch (tag) {\r\n case EqEditorTag.List:\r\n return new ListExpressionRenderer(this, expression, editor, slot);\r\n case EqEditorTag.SqlList:\r\n return new SqlListExpressionRenderer(this, expression, editor, slot);\r\n case EqEditorTag.CustomList:\r\n return new CustomListExpressionRenderer(this, expression, editor, slot);\r\n case EqEditorTag.DateTime:\r\n return new DateTimeExpressionRenderer(this, expression, editor, slot);\r\n case EqEditorTag.SubQuery:\r\n return new SubQueryExpressionRenderer(this, expression, editor, slot);\r\n //move to ERS later\r\n case EqEditorTag.BindToParentColumn:\r\n return new BindToParentColumnExpressionRenderer(this, expression, editor, slot);\r\n default:\r\n return new InputExpressionRenderer(this, expression, editor, slot);\r\n }\r\n };\r\n QueryPanel.prototype.getOperatorRenderer = function (condition, text, slot) {\r\n var renderer;\r\n if (this.options.onGetOperatorRenderer)\r\n renderer = this.options.onGetOperatorRenderer(condition, text, slot);\r\n if (renderer)\r\n return renderer;\r\n return new OperatorRenderer(this, condition, text, slot);\r\n };\r\n QueryPanel.prototype.getAddRowRenderer = function (slot) {\r\n var renderer;\r\n if (this.options.onGetAddRowRenderer)\r\n renderer = this.options.onGetAddRowRenderer(slot);\r\n if (renderer)\r\n return renderer;\r\n return new AddRowRenderer(this, this.entitiesMenu, slot);\r\n };\r\n QueryPanel.prototype.createEntitiesMenu = function (filterFunc) {\r\n var model = this.getContext().getModel();\r\n if (!model || model.isEmpty())\r\n return null;\r\n var menuId = this.slot.id || \"eq-querypanel\";\r\n menuId += '-EntitiesMenu';\r\n var entitiesList = model.getEntitiesTree({\r\n addUIC: true,\r\n addUIR: false,\r\n addUIS: false,\r\n attrPlacement: this.options.attrPlacement,\r\n sortEntities: this.options.sortEntities\r\n }, filterFunc);\r\n var options = {\r\n items: entitiesList,\r\n adjustHeight: this.options.adjustEntitiesMenuHeight,\r\n id: menuId,\r\n domWriteItemsId: this.options.domWriteItemsId\r\n };\r\n dataUtils.assign(options, this.options.menuOptions);\r\n return new PopupMenu(options);\r\n };\r\n QueryPanel.prototype.showEntitiesMenu = function (options) {\r\n this.entitiesMenu.showMenu(options);\r\n };\r\n QueryPanel.prototype.createConditionMenus = function () {\r\n //ConditionMenu\r\n {\r\n var query = this.getQuery();\r\n var menuId = this.slot.id || \"eq-querypanel\";\r\n menuId += '-ConditionMenu';\r\n var items = [\r\n {\r\n id: \"enable\",\r\n text: i18n.getText('MenuEnable')\r\n },\r\n {\r\n id: \"delete\",\r\n text: i18n.getText('CmdDelete')\r\n }\r\n ];\r\n if (query.isEx()) {\r\n if (this.options.allowParameterization || this.options.allowInJoinConditions) {\r\n items.push({ id: \"delimiter\", text: \"---\" });\r\n }\r\n ;\r\n if (this.options.allowParameterization) {\r\n items.push({\r\n id: \"param\",\r\n text: i18n.getText('MenuParameterization')\r\n });\r\n }\r\n ;\r\n if (this.options.allowInJoinConditions) {\r\n items.push({\r\n id: \"inJoin\",\r\n text: i18n.getText('MenuJoinCond')\r\n });\r\n }\r\n ;\r\n }\r\n var options = { items: items, adjustHeight: this.options.adjustEntitiesMenuHeight, id: menuId, domWriteItemsId: this.options.domWriteItemsId, showSearchBoxAfter: 100, showSelected: true };\r\n dataUtils.assign(options, this.options.menuOptions);\r\n this.conditionMenu = new PopupMenu(options);\r\n }\r\n //groupMenu\r\n {\r\n var menuId = this.slot.id || \"eq-querypanel\";\r\n menuId += '-GroupMenu';\r\n var items = [\r\n {\r\n id: \"enable\",\r\n text: i18n.getText('MenuEnable')\r\n },\r\n {\r\n id: \"delete\",\r\n text: i18n.getText('CmdDelete')\r\n },\r\n {\r\n id: \"delimiter\",\r\n text: \"---\"\r\n },\r\n {\r\n id: \"addCondition\",\r\n text: i18n.getText('CmdAddCondition')\r\n },\r\n {\r\n id: \"addGroup\",\r\n text: i18n.getText('CmdAddCondGroup')\r\n }\r\n ];\r\n var options = { items: items, adjustHeight: this.options.adjustEntitiesMenuHeight, id: menuId, domWriteItemsId: this.options.domWriteItemsId, showSearchBoxAfter: 100, showSelected: true };\r\n dataUtils.assign(options, this.options.menuOptions);\r\n this.groupMenu = new PopupMenu(options);\r\n }\r\n //rootGroupMenu\r\n {\r\n var menuId = this.slot.id || \"eq-querypanel\";\r\n menuId += '-RootGroupMenu';\r\n var items = [\r\n {\r\n id: \"addCondition\",\r\n text: i18n.getText('CmdAddCondition')\r\n },\r\n {\r\n id: \"addGroup\",\r\n text: i18n.getText('CmdAddCondGroup')\r\n }\r\n ];\r\n var options = { items: items, adjustHeight: this.options.adjustEntitiesMenuHeight, id: menuId, domWriteItemsId: this.options.domWriteItemsId, showSearchBoxAfter: 100, showSelected: true };\r\n dataUtils.assign(options, this.options.menuOptions);\r\n this.rootGroupMenu = new PopupMenu(options);\r\n }\r\n };\r\n QueryPanel.prototype.createLinkTypeMenu = function () {\r\n var menuId = this.slot.id;\r\n if (menuId) {\r\n menuId += '-LinkTypeMenu';\r\n }\r\n var typeList = eqconsts.predicateLinkTypeList;\r\n var itemList = typeList.map(function (item) {\r\n return {\r\n id: item.id,\r\n text: i18n.getText(item.key)\r\n };\r\n });\r\n var options = { items: itemList, adjustHeight: this.options.adjustEntitiesMenuHeight, id: menuId, domWriteItemsId: this.options.domWriteItemsId };\r\n dataUtils.assign(options, this.options.menuOptions);\r\n this.linkTypeMenu = new PopupMenu(options);\r\n };\r\n QueryPanel.prototype.toggleConditionPicked = function (condition, force) {\r\n if (force === void 0) { force = undefined; }\r\n var el;\r\n var isActive;\r\n if (condition) {\r\n el = this.slot.querySelector(\"div[data-id=\" + condition.id + \"][data-condrow], div[data-id=\" + condition.id + \"] > div[data-grouprow]\");\r\n if (el) {\r\n isActive = el.classList.contains('active');\r\n }\r\n }\r\n //clear 'active' in all rows\r\n var rows = this.slot.querySelectorAll(\".\" + this.cssPrefix + \"-row\");\r\n for (var i = 0; i < rows.length; i++) {\r\n var row = rows[i];\r\n if (row.hasAttribute('data-group-row')) {\r\n if (!this.options.alwaysShowButtonsInGroups) {\r\n domel(row)\r\n .data(\"show-buttons\", null);\r\n }\r\n }\r\n else {\r\n if (!this.options.alwaysShowButtonsInConditions) {\r\n domel(row)\r\n .data(\"show-buttons\", null);\r\n }\r\n }\r\n domel(row)\r\n .removeClass('active');\r\n }\r\n if (el && !isActive) {\r\n domel(el)\r\n .addClass('active')\r\n .data(\"show-buttons\", \"\");\r\n }\r\n };\r\n QueryPanel.prototype.showLandingSlot = function () {\r\n var container = this.slot.querySelector('.eqjs-qp-conditions-root');\r\n if (container) {\r\n container.appendChild(this.landingSlot);\r\n this.landingSlot.scrollIntoView({ block: \"center\", behavior: \"smooth\" });\r\n }\r\n };\r\n QueryPanel.prototype.hideLangindSlot = function () {\r\n if (this.landingSlot.parentElement) {\r\n this.landingSlot.parentElement.removeChild(this.landingSlot);\r\n }\r\n };\r\n return QueryPanel;\r\n}(Widget));\r\nexport { QueryPanel };\r\n//# sourceMappingURL=query_panel.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/widgets/query_panel.js\n// module id = 32\n// module chunks = 0","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { i18n } from '@easydata/core';\r\nimport { ConditionPart } from '@easyquery/core';\r\nimport { BaseElementRenderer } from '../base_element_renderer';\r\nvar ExpressionRenderer = /** @class */ (function (_super) {\r\n __extends(ExpressionRenderer, _super);\r\n function ExpressionRenderer(panel, expression, valueEditor, slot) {\r\n var _this = _super.call(this, slot) || this;\r\n _this.panel = panel;\r\n _this.expression = expression;\r\n _this.valueEditor = valueEditor;\r\n return _this;\r\n }\r\n Object.defineProperty(ExpressionRenderer.prototype, \"cssPrefix\", {\r\n get: function () {\r\n return 'eqjs-qp';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ExpressionRenderer.prototype.render = function (isEditMode) {\r\n if (isEditMode === void 0) { isEditMode = false; }\r\n _super.prototype.render.call(this, isEditMode);\r\n if (this.panel.options.onExpressionRendered) {\r\n this.panel.options.onExpressionRendered(this.expression, this.element);\r\n }\r\n return this.element;\r\n };\r\n ExpressionRenderer.prototype.getContext = function () {\r\n return this.panel.getContext();\r\n };\r\n ExpressionRenderer.prototype.isReadOnly = function () {\r\n var parent = this.expression.getParent();\r\n return !parent.enabled || parent.isReadOnly();\r\n };\r\n ExpressionRenderer.prototype.isEditable = function () {\r\n return !this.isReadOnly();\r\n };\r\n ExpressionRenderer.prototype.getClassesToAdd = function () {\r\n return this.cssPrefix + \"-condelement \" + this.cssPrefix + \"-valueelement\";\r\n };\r\n ExpressionRenderer.prototype.getLabelText = function () {\r\n var result = !this.expression.isEmpty()\r\n ? this.expression.value\r\n : this.getEmptyText();\r\n return result;\r\n };\r\n ExpressionRenderer.prototype.getEmptyText = function () {\r\n return this.panel.options.emptyTextValue || i18n.getText('MsgEmptyScalarValue'); //'[enter value]';\r\n };\r\n ExpressionRenderer.prototype.setValue = function (value, silent) {\r\n this.expression.setValue(value);\r\n if (!silent) {\r\n this.expression.getParent().fireChangedEvent(ConditionPart.Value);\r\n }\r\n };\r\n ExpressionRenderer.prototype.getValue = function () {\r\n return this.expression.value;\r\n };\r\n ExpressionRenderer.prototype.validateInput = function (value) {\r\n return { success: true, value: value };\r\n };\r\n ExpressionRenderer.prototype.showValidationError = function (message, target) {\r\n this.getContext().throwError({\r\n action: \"ui.validation\",\r\n \"text\": message\r\n });\r\n };\r\n ExpressionRenderer.prototype.isEmptyValue = function () {\r\n var v = this.getValue();\r\n return (typeof (v) === \"undefined\" || v === null || !v);\r\n };\r\n ExpressionRenderer.prototype.adjustWidth = function () {\r\n };\r\n return ExpressionRenderer;\r\n}(BaseElementRenderer));\r\nexport { ExpressionRenderer };\r\n//# sourceMappingURL=expression_renderer.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/widgets/renderers/querypanel/expression_renderer.js\n// module id = 33\n// module chunks = 0","var majVer = 7;\r\nvar minVer = 0;\r\nvar magic = 45;\r\nMath.trunc = Math.trunc || function (x) {\r\n if (isNaN(x)) {\r\n return NaN;\r\n }\r\n if (x > 0) {\r\n return Math.floor(x);\r\n }\r\n return Math.ceil(x);\r\n};\r\nexport var lcv = {\r\n __kt: 0,\r\n ck: function (key) {\r\n if (!key)\r\n return;\r\n try {\r\n var part1 = key.slice(0, key.length - 8);\r\n var infoBytes = _bs(part1);\r\n var part2 = key.slice(key.length - 8);\r\n var ed = f36(magic);\r\n if (part2[0] !== ed[0] || part2[2] !== ed[1])\r\n return;\r\n var idx = minVer % 4;\r\n var shift = majVer + minVer;\r\n if (part2[4 + idx] != encChar(shift, 19)) {\r\n return;\r\n }\r\n if (part2[1] != encChar(infoBytes[3])) {\r\n return;\r\n }\r\n lcv.__kt = part2[3] != encChar(infoBytes[5]) ? 1 : 2;\r\n }\r\n catch (error) {\r\n }\r\n }\r\n};\r\nfunction encChar(x, b) {\r\n if (b === void 0) { b = 20; }\r\n return String.fromCharCode(65 + x % b);\r\n}\r\nfunction _bs(str) {\r\n var binary_string = urlatob(str);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes;\r\n}\r\nfunction urlatob(str) {\r\n var s = str;\r\n s = s.replace(/-/g, '+');\r\n s = s.replace(/_/g, '/');\r\n switch (s.length % 4) {\r\n case 0:\r\n break;\r\n case 2:\r\n s += \"==\";\r\n break;\r\n case 3:\r\n s += \"=\";\r\n break;\r\n }\r\n return window.atob(s);\r\n}\r\nfunction f36(val) {\r\n var str = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\";\r\n var tb = 36;\r\n var i = 1;\r\n var result = \"AA\";\r\n var rest = val;\r\n do {\r\n result = setCharAt(result, i--, str[rest % tb]);\r\n rest = Math.trunc(rest / tb);\r\n } while (rest > 0);\r\n return result;\r\n}\r\nfunction setCharAt(str, index, chr) {\r\n if (index > str.length - 1)\r\n return str;\r\n return str.substr(0, index) + chr + str.substr(index + 1);\r\n}\r\n//# sourceMappingURL=lcv.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/enterprise/dist/lib/utils/lcv.js\n// module id = 34\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport warning from \"warning\";\nimport invariant from \"invariant\";\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\n/**\n * The public API for putting history on context.\n */\n\nvar Router = function (_React$Component) {\n _inherits(Router, _React$Component);\n\n function Router() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Router);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n match: _this.computeMatch(_this.props.history.location.pathname)\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Router.prototype.getChildContext = function getChildContext() {\n return {\n router: _extends({}, this.context.router, {\n history: this.props.history,\n route: {\n location: this.props.history.location,\n match: this.state.match\n }\n })\n };\n };\n\n Router.prototype.computeMatch = function computeMatch(pathname) {\n return {\n path: \"/\",\n url: \"/\",\n params: {},\n isExact: pathname === \"/\"\n };\n };\n\n Router.prototype.componentWillMount = function componentWillMount() {\n var _this2 = this;\n\n var _props = this.props,\n children = _props.children,\n history = _props.history;\n\n\n invariant(children == null || React.Children.count(children) === 1, \"A may have only one child element\");\n\n // Do this here so we can setState when a changes the\n // location in componentWillMount. This happens e.g. when doing\n // server rendering using a .\n this.unlisten = history.listen(function () {\n _this2.setState({\n match: _this2.computeMatch(history.location.pathname)\n });\n });\n };\n\n Router.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n warning(this.props.history === nextProps.history, \"You cannot change \");\n };\n\n Router.prototype.componentWillUnmount = function componentWillUnmount() {\n this.unlisten();\n };\n\n Router.prototype.render = function render() {\n var children = this.props.children;\n\n return children ? React.Children.only(children) : null;\n };\n\n return Router;\n}(React.Component);\n\nRouter.propTypes = {\n history: PropTypes.object.isRequired,\n children: PropTypes.node\n};\nRouter.contextTypes = {\n router: PropTypes.object\n};\nRouter.childContextTypes = {\n router: PropTypes.object.isRequired\n};\n\n\nexport default Router;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/Router.js\n// module id = 35\n// module chunks = 0","import pathToRegexp from \"path-to-regexp\";\n\nvar patternCache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nvar compilePath = function compilePath(pattern, options) {\n var cacheKey = \"\" + options.end + options.strict + options.sensitive;\n var cache = patternCache[cacheKey] || (patternCache[cacheKey] = {});\n\n if (cache[pattern]) return cache[pattern];\n\n var keys = [];\n var re = pathToRegexp(pattern, keys, options);\n var compiledPattern = { re: re, keys: keys };\n\n if (cacheCount < cacheLimit) {\n cache[pattern] = compiledPattern;\n cacheCount++;\n }\n\n return compiledPattern;\n};\n\n/**\n * Public API for matching a URL pathname to a path pattern.\n */\nvar matchPath = function matchPath(pathname) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var parent = arguments[2];\n\n if (typeof options === \"string\") options = { path: options };\n\n var _options = options,\n path = _options.path,\n _options$exact = _options.exact,\n exact = _options$exact === undefined ? false : _options$exact,\n _options$strict = _options.strict,\n strict = _options$strict === undefined ? false : _options$strict,\n _options$sensitive = _options.sensitive,\n sensitive = _options$sensitive === undefined ? false : _options$sensitive;\n\n\n if (path == null) return parent;\n\n var _compilePath = compilePath(path, { end: exact, strict: strict, sensitive: sensitive }),\n re = _compilePath.re,\n keys = _compilePath.keys;\n\n var match = re.exec(pathname);\n\n if (!match) return null;\n\n var url = match[0],\n values = match.slice(1);\n\n var isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path: path, // the path pattern used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact: isExact, // whether or not we matched exactly\n params: keys.reduce(function (memo, key, index) {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n};\n\nexport default matchPath;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/matchPath.js\n// module id = 36\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\n\n/* eslint react/no-find-dom-node: 0 */\n// https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-find-dom-node.md\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { Manager } from 'react-popper';\nimport classNames from 'classnames';\nimport { DropdownContext } from './DropdownContext';\nimport { mapToCssModules, omit, keyCodes, tagPropType } from './utils';\nvar propTypes = {\n a11y: PropTypes.bool,\n disabled: PropTypes.bool,\n direction: PropTypes.oneOf(['up', 'down', 'left', 'right']),\n group: PropTypes.bool,\n isOpen: PropTypes.bool,\n nav: PropTypes.bool,\n active: PropTypes.bool,\n addonType: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['prepend', 'append'])]),\n size: PropTypes.string,\n tag: tagPropType,\n toggle: PropTypes.func,\n children: PropTypes.node,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n inNavbar: PropTypes.bool,\n setActiveFromChild: PropTypes.bool\n};\nvar defaultProps = {\n a11y: true,\n isOpen: false,\n direction: 'down',\n nav: false,\n active: false,\n addonType: false,\n inNavbar: false,\n setActiveFromChild: false\n};\nvar preventDefaultKeys = [keyCodes.space, keyCodes.enter, keyCodes.up, keyCodes.down, keyCodes.end, keyCodes.home];\n\nvar Dropdown = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Dropdown, _React$Component);\n\n function Dropdown(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.addEvents = _this.addEvents.bind(_assertThisInitialized(_this));\n _this.handleDocumentClick = _this.handleDocumentClick.bind(_assertThisInitialized(_this));\n _this.handleKeyDown = _this.handleKeyDown.bind(_assertThisInitialized(_this));\n _this.removeEvents = _this.removeEvents.bind(_assertThisInitialized(_this));\n _this.toggle = _this.toggle.bind(_assertThisInitialized(_this));\n _this.handleMenuRef = _this.handleMenuRef.bind(_assertThisInitialized(_this));\n _this.containerRef = /*#__PURE__*/React.createRef();\n _this.menuRef = /*#__PURE__*/React.createRef();\n return _this;\n }\n\n var _proto = Dropdown.prototype;\n\n _proto.handleMenuRef = function handleMenuRef(menuRef) {\n this.menuRef.current = menuRef;\n };\n\n _proto.getContextValue = function getContextValue() {\n return {\n toggle: this.toggle,\n isOpen: this.props.isOpen,\n direction: this.props.direction === 'down' && this.props.dropup ? 'up' : this.props.direction,\n inNavbar: this.props.inNavbar,\n disabled: this.props.disabled,\n // Callback that should be called by DropdownMenu to provide a ref to\n // a HTML tag that's used for the DropdownMenu\n onMenuRef: this.handleMenuRef\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.handleProps();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.isOpen !== prevProps.isOpen) {\n this.handleProps();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.removeEvents();\n };\n\n _proto.getContainer = function getContainer() {\n return this.containerRef.current;\n };\n\n _proto.getMenu = function getMenu() {\n return this.menuRef.current;\n };\n\n _proto.getMenuCtrl = function getMenuCtrl() {\n if (this._$menuCtrl) return this._$menuCtrl;\n this._$menuCtrl = this.getContainer().querySelector('[aria-expanded]');\n return this._$menuCtrl;\n };\n\n _proto.getMenuItems = function getMenuItems() {\n // In a real menu with a child DropdownMenu, `this.getMenu()` should never\n // be null, but it is sometimes null in tests. To mitigate that, we just\n // use `this.getContainer()` as the fallback `menuContainer`.\n var menuContainer = this.getMenu() || this.getContainer();\n return [].slice.call(menuContainer.querySelectorAll('[role=\"menuitem\"]'));\n };\n\n _proto.addEvents = function addEvents() {\n var _this2 = this;\n\n ['click', 'touchstart', 'keyup'].forEach(function (event) {\n return document.addEventListener(event, _this2.handleDocumentClick, true);\n });\n };\n\n _proto.removeEvents = function removeEvents() {\n var _this3 = this;\n\n ['click', 'touchstart', 'keyup'].forEach(function (event) {\n return document.removeEventListener(event, _this3.handleDocumentClick, true);\n });\n };\n\n _proto.handleDocumentClick = function handleDocumentClick(e) {\n if (e && (e.which === 3 || e.type === 'keyup' && e.which !== keyCodes.tab)) return;\n var container = this.getContainer();\n var menu = this.getMenu();\n var clickIsInContainer = container.contains(e.target) && container !== e.target;\n var clickIsInMenu = menu && menu.contains(e.target) && menu !== e.target;\n\n if ((clickIsInContainer || clickIsInMenu) && (e.type !== 'keyup' || e.which === keyCodes.tab)) {\n return;\n }\n\n this.toggle(e);\n };\n\n _proto.handleKeyDown = function handleKeyDown(e) {\n var _this4 = this;\n\n var isTargetMenuItem = e.target.getAttribute('role') === 'menuitem';\n var isTargetMenuCtrl = this.getMenuCtrl() === e.target;\n var isTab = keyCodes.tab === e.which;\n\n if (/input|textarea/i.test(e.target.tagName) || isTab && !this.props.a11y || isTab && !(isTargetMenuItem || isTargetMenuCtrl)) {\n return;\n }\n\n if (preventDefaultKeys.indexOf(e.which) !== -1 || e.which >= 48 && e.which <= 90) {\n e.preventDefault();\n }\n\n if (this.props.disabled) return;\n\n if (isTargetMenuCtrl) {\n if ([keyCodes.space, keyCodes.enter, keyCodes.up, keyCodes.down].indexOf(e.which) > -1) {\n // Open the menu (if not open) and focus the first menu item\n if (!this.props.isOpen) {\n this.toggle(e);\n }\n\n setTimeout(function () {\n return _this4.getMenuItems()[0].focus();\n });\n } else if (this.props.isOpen && isTab) {\n // Focus the first menu item if tabbing from an open menu. We need this\n // for cases where the DropdownMenu sets a custom container, which may\n // not be the natural next item to tab to from the DropdownToggle.\n e.preventDefault();\n this.getMenuItems()[0].focus();\n } else if (this.props.isOpen && e.which === keyCodes.esc) {\n this.toggle(e);\n }\n }\n\n if (this.props.isOpen && e.target.getAttribute('role') === 'menuitem') {\n if ([keyCodes.tab, keyCodes.esc].indexOf(e.which) > -1) {\n this.toggle(e);\n this.getMenuCtrl().focus();\n } else if ([keyCodes.space, keyCodes.enter].indexOf(e.which) > -1) {\n e.target.click();\n this.getMenuCtrl().focus();\n } else if ([keyCodes.down, keyCodes.up].indexOf(e.which) > -1 || [keyCodes.n, keyCodes.p].indexOf(e.which) > -1 && e.ctrlKey) {\n var $menuitems = this.getMenuItems();\n var index = $menuitems.indexOf(e.target);\n\n if (keyCodes.up === e.which || keyCodes.p === e.which && e.ctrlKey) {\n index = index !== 0 ? index - 1 : $menuitems.length - 1;\n } else if (keyCodes.down === e.which || keyCodes.n === e.which && e.ctrlKey) {\n index = index === $menuitems.length - 1 ? 0 : index + 1;\n }\n\n $menuitems[index].focus();\n } else if (keyCodes.end === e.which) {\n var _$menuitems = this.getMenuItems();\n\n _$menuitems[_$menuitems.length - 1].focus();\n } else if (keyCodes.home === e.which) {\n var _$menuitems2 = this.getMenuItems();\n\n _$menuitems2[0].focus();\n } else if (e.which >= 48 && e.which <= 90) {\n var _$menuitems3 = this.getMenuItems();\n\n var charPressed = String.fromCharCode(e.which).toLowerCase();\n\n for (var i = 0; i < _$menuitems3.length; i += 1) {\n var firstLetter = _$menuitems3[i].textContent && _$menuitems3[i].textContent[0].toLowerCase();\n\n if (firstLetter === charPressed) {\n _$menuitems3[i].focus();\n\n break;\n }\n }\n }\n }\n };\n\n _proto.handleProps = function handleProps() {\n if (this.props.isOpen) {\n this.addEvents();\n } else {\n this.removeEvents();\n }\n };\n\n _proto.toggle = function toggle(e) {\n if (this.props.disabled) {\n return e && e.preventDefault();\n }\n\n return this.props.toggle(e);\n };\n\n _proto.render = function render() {\n var _classNames, _ref;\n\n var _omit = omit(this.props, ['toggle', 'disabled', 'inNavbar', 'a11y']),\n className = _omit.className,\n cssModule = _omit.cssModule,\n direction = _omit.direction,\n isOpen = _omit.isOpen,\n group = _omit.group,\n size = _omit.size,\n nav = _omit.nav,\n setActiveFromChild = _omit.setActiveFromChild,\n active = _omit.active,\n addonType = _omit.addonType,\n tag = _omit.tag,\n attrs = _objectWithoutPropertiesLoose(_omit, [\"className\", \"cssModule\", \"direction\", \"isOpen\", \"group\", \"size\", \"nav\", \"setActiveFromChild\", \"active\", \"addonType\", \"tag\"]);\n\n var Tag = tag || (nav ? 'li' : 'div');\n var subItemIsActive = false;\n\n if (setActiveFromChild) {\n React.Children.map(this.props.children[1].props.children, function (dropdownItem) {\n if (dropdownItem && dropdownItem.props.active) subItemIsActive = true;\n });\n }\n\n var classes = mapToCssModules(classNames(className, direction !== 'down' && \"drop\" + direction, nav && active ? 'active' : false, setActiveFromChild && subItemIsActive ? 'active' : false, (_classNames = {}, _classNames[\"input-group-\" + addonType] = addonType, _classNames['btn-group'] = group, _classNames[\"btn-group-\" + size] = !!size, _classNames.dropdown = !group && !addonType, _classNames.show = isOpen, _classNames['nav-item'] = nav, _classNames)), cssModule);\n return /*#__PURE__*/React.createElement(DropdownContext.Provider, {\n value: this.getContextValue()\n }, /*#__PURE__*/React.createElement(Manager, null, /*#__PURE__*/React.createElement(Tag, _extends({}, attrs, (_ref = {}, _ref[typeof Tag === 'string' ? 'ref' : 'innerRef'] = this.containerRef, _ref), {\n onKeyDown: this.handleKeyDown,\n className: classes\n }))));\n };\n\n return Dropdown;\n}(React.Component);\n\nDropdown.propTypes = propTypes;\nDropdown.defaultProps = defaultProps;\nexport default Dropdown;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/Dropdown.js\n// module id = 37\n// module chunks = 0","// Public components\nimport Popper, { placements } from './Popper';\nimport Manager from './Manager';\nimport Reference from './Reference';\nexport { Popper, placements, Manager, Reference }; // Public types\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-popper/lib/esm/index.js\n// module id = 38\n// module chunks = 0","import { DataType } from '../types/data_type';\r\nimport { utils } from '../utils/utils';\r\n/**\r\n * Contains internatialization functionality.\r\n */\r\nexport var i18n;\r\n(function (i18n) {\r\n var englishUSLocaleSettings = {\r\n shortDateFormat: 'MM/dd/yyyy',\r\n longDateFormat: 'dd MMM, yyyy',\r\n editDateFormat: 'MM/dd/yyyy',\r\n shortTimeFormat: 'HH:mm',\r\n editTimeFormat: 'HH:mm',\r\n longTimeFormat: 'HH:mm:ss',\r\n shortMonthNames: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\r\n longMonthNames: ['January', 'February', 'March', 'April', 'May', 'June',\r\n 'July', 'August', 'September', 'October', 'November', 'December'],\r\n shortWeekDayNames: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\r\n longWeekDayNames: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\r\n decimalSeparator: '.',\r\n currency: 'USD'\r\n };\r\n var defaultLocale = {\r\n localeId: 'en-US',\r\n englishName: 'English',\r\n displayName: 'English',\r\n texts: {\r\n ButtonOK: 'OK',\r\n ButtonCancel: 'Cancel',\r\n Yes: 'Yes',\r\n No: 'No',\r\n True: 'True',\r\n False: 'False'\r\n },\r\n settings: englishUSLocaleSettings\r\n };\r\n var allLocales = {\r\n 'en-US': defaultLocale\r\n };\r\n var currentLocale;\r\n var mappers = [];\r\n function mapInfo(info) {\r\n for (var _i = 0, mappers_1 = mappers; _i < mappers_1.length; _i++) {\r\n var mapper = mappers_1[_i];\r\n mapper(info);\r\n }\r\n }\r\n function addMapper(mapper) {\r\n mappers.push(mapper);\r\n }\r\n i18n.addMapper = addMapper;\r\n /**\r\n * Gets added locales with their names.\r\n * @returns The locales.\r\n */\r\n function getLocales() {\r\n var result = [];\r\n for (var locale in allLocales) {\r\n result.push({\r\n locale: locale,\r\n englishName: allLocales[locale].englishName,\r\n displayName: allLocales[locale].displayName\r\n });\r\n }\r\n return result.sort(function (a, b) {\r\n if (a.englishName > b.englishName) {\r\n return 1;\r\n }\r\n else if (a.englishName === b.englishName) {\r\n return 0;\r\n }\r\n return -1;\r\n });\r\n }\r\n i18n.getLocales = getLocales;\r\n /**\r\n * Gets the current locale ID.\r\n * @returns The locale.\r\n */\r\n function getCurrentLocale() {\r\n return currentLocale.localeId;\r\n }\r\n i18n.getCurrentLocale = getCurrentLocale;\r\n /**\r\n * Sets the curent locale.\r\n * @deprecated Use setCurrentLocale instead\r\n * @param l The locale.\r\n */\r\n function setLocale(l) {\r\n console.warn(\"This method is deprecated. Use setCurrentLocale instead\");\r\n setCurrentLocale(l);\r\n }\r\n i18n.setLocale = setLocale;\r\n /**\r\n * Sets the curent locale.\r\n * @param localeId The locale.\r\n */\r\n function setCurrentLocale(localeId) {\r\n var newLocale = allLocales[localeId];\r\n if (newLocale) {\r\n utils.assignDeep(currentLocale, newLocale);\r\n }\r\n else {\r\n currentLocale.englishName = localeId;\r\n currentLocale.displayName = localeId;\r\n currentLocale.texts = utils.assignDeep({}, defaultLocale.texts);\r\n }\r\n currentLocale.localeId = localeId;\r\n }\r\n i18n.setCurrentLocale = setCurrentLocale;\r\n /**\r\n * Returns localized text by the key defined in parameter.\r\n * Here we get the text of the resource string assigned to CmdClickToAddCondition key:\r\n *\r\n ```\r\n const text = i18n.getText('CmdClickToAddCondition')\r\n ```\r\n * @param args The keys of the resource string.\r\n * @returns Text of the resource defined by key or null if the key is not found\r\n *\r\n */\r\n function getText() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var textsObj = currentLocale.texts;\r\n var resText = '';\r\n if (args && args.length) {\r\n var argLength = args.length;\r\n for (var i = 0; i < argLength; i++) {\r\n resText = textsObj[args[i]];\r\n if (typeof resText === 'object') {\r\n textsObj = resText;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n return resText;\r\n }\r\n i18n.getText = getText;\r\n function getLocaleSettings() {\r\n return currentLocale.settings;\r\n }\r\n i18n.getLocaleSettings = getLocaleSettings;\r\n function getOneLocaleSetting(key) {\r\n return currentLocale.settings[key];\r\n }\r\n i18n.getOneLocaleSetting = getOneLocaleSetting;\r\n function getShortMonthName(monthNum) {\r\n var settings = getLocaleSettings();\r\n if (monthNum > 0 && monthNum < 13) {\r\n return settings.shortMonthNames[monthNum - 1];\r\n }\r\n else {\r\n throw 'Wrong month number: ' + monthNum;\r\n }\r\n }\r\n i18n.getShortMonthName = getShortMonthName;\r\n function getLongMonthName(monthNum) {\r\n var settings = getLocaleSettings();\r\n if (monthNum > 0 && monthNum < 13) {\r\n return settings.longMonthNames[monthNum - 1];\r\n }\r\n else {\r\n throw 'Wrong month number: ' + monthNum;\r\n }\r\n }\r\n i18n.getLongMonthName = getLongMonthName;\r\n function getShortWeekDayName(dayNum) {\r\n var settings = getLocaleSettings();\r\n if (dayNum > 0 && dayNum < 8) {\r\n return settings.shortWeekDayNames.length >= dayNum\r\n ? settings.shortWeekDayNames[dayNum - 1]\r\n : dayNum.toString();\r\n }\r\n else {\r\n throw 'Wrong month number: ' + dayNum;\r\n }\r\n }\r\n i18n.getShortWeekDayName = getShortWeekDayName;\r\n function getLongWeekDayName(dayNum) {\r\n var settings = getLocaleSettings();\r\n if (dayNum > 0 && dayNum < 8) {\r\n return settings.longWeekDayNames.length >= dayNum\r\n ? settings.longWeekDayNames[dayNum - 1]\r\n : dayNum.toString();\r\n }\r\n else {\r\n throw 'Wrong month number: ' + dayNum;\r\n }\r\n }\r\n i18n.getLongWeekDayName = getLongWeekDayName;\r\n /**\r\n * Updates the locale settings (date/time formats, separators, etc) for the specified locale.\r\n * @param settingsToUpdate a LocaleSettings object\r\n * @param locale The locale ID (like 'en', 'de', 'uk', etc).\r\n * If not specified - the function will update the settings for the current locale\r\n */\r\n function updateLocaleSettings(settingsToUpdate) {\r\n if (!currentLocale.settings) {\r\n currentLocale.settings = utils.assignDeep({}, englishUSLocaleSettings);\r\n }\r\n currentLocale.settings = utils.assignDeep(currentLocale.settings, settingsToUpdate);\r\n }\r\n i18n.updateLocaleSettings = updateLocaleSettings;\r\n /**\r\n * Updates the texts for the current locale\r\n * @param texts A plain JS object that contains textual resources\r\n */\r\n function updateLocaleTexts(texts) {\r\n if (typeof texts !== 'object') {\r\n console.error('Wrong parameter type in updateLocaleTexts function call.' +\r\n 'The first parameter (localeId) is not necessary. Use updateLocaleTexts(texts) instead');\r\n return;\r\n }\r\n mapInfo({ localeId: currentLocale.localeId, texts: texts });\r\n utils.assignDeep(currentLocale.texts, texts);\r\n }\r\n i18n.updateLocaleTexts = updateLocaleTexts;\r\n function updateDefaultTexts(texts) {\r\n for (var localeId in allLocales) {\r\n var locale = allLocales[localeId];\r\n locale.texts = utils.assignDeep({}, texts, locale.texts);\r\n }\r\n currentLocale.texts = utils.assignDeep({}, texts, currentLocale.texts);\r\n }\r\n i18n.updateDefaultTexts = updateDefaultTexts;\r\n /**\r\n * Updates the information for the specified locale.\r\n * @param localeId The locale ID (like 'en', 'de', 'uk', etc).\r\n * If the locale does exist yet - it will be added\r\n * @param localeInfo a LocaleInfo object that contains the locale settings and textual resources\r\n */\r\n function updateLocaleInfo(localeId, localeData) {\r\n mapInfo(localeData);\r\n var localeInfoToUpdate = currentLocale;\r\n if (localeId) {\r\n if (!localeData.localeId) {\r\n localeData.localeId = localeId;\r\n }\r\n localeInfoToUpdate = allLocales[localeId];\r\n if (!localeInfoToUpdate) {\r\n localeInfoToUpdate = utils.assignDeep({}, defaultLocale);\r\n allLocales[localeId] = localeInfoToUpdate;\r\n }\r\n }\r\n utils.assignDeep(localeInfoToUpdate, localeData);\r\n }\r\n i18n.updateLocaleInfo = updateLocaleInfo;\r\n /**\r\n * Adds the locale.\r\n * @param localeId The locale ID (like 'en', 'de', 'uk', etc).\r\n * If the locale does exist yet - it will be created\r\n * @param localeInfo - a LocaleInfo object that contains the locale settings and textual resources\r\n */\r\n function addLocale(localeId, localeInfo) {\r\n updateLocaleInfo(localeId, localeInfo);\r\n }\r\n i18n.addLocale = addLocale;\r\n /**\r\n * Overwrites some locale settings (date/time formats) with the formats used in browser's current language\r\n */\r\n function determineSettingsByLocale(localeId) {\r\n var now = new Date(2020, 5, 7, 19, 34, 56, 88);\r\n var dateOptions = { year: 'numeric', month: 'numeric', day: 'numeric' };\r\n var timeOptions = { hour: 'numeric', minute: 'numeric', second: 'numeric' };\r\n var dateStr = now.toLocaleDateString(localeId, dateOptions);\r\n var timeStr = now.toLocaleTimeString(localeId, timeOptions);\r\n var dateFormat = dateStr\r\n .replace('07', 'dd')\r\n .replace('7', 'd')\r\n .replace('06', 'MM')\r\n .replace('6', 'M')\r\n .replace('2020', 'yyyy')\r\n .replace('20', 'yy');\r\n var timeFormat = timeStr\r\n .replace('19', 'HH')\r\n .replace('07', 'hh')\r\n .replace('7', 'h')\r\n .replace('34', 'mm')\r\n .replace('56', 'ss')\r\n .replace('PM', 'tt');\r\n if (!currentLocale.settings) {\r\n currentLocale.settings = {};\r\n }\r\n var localeSettings = {\r\n shortDateFormat: dateFormat,\r\n editDateFormat: dateFormat,\r\n shortTimeFormat: timeFormat\r\n };\r\n updateLocaleSettings(localeSettings);\r\n }\r\n function loadBrowserLocaleSettings() {\r\n var lang = typeof navigator === 'object' ? navigator.language : undefined;\r\n determineSettingsByLocale(lang);\r\n }\r\n function resetLocales() {\r\n if (!currentLocale) {\r\n currentLocale = utils.assignDeep({}, defaultLocale);\r\n loadBrowserLocaleSettings();\r\n }\r\n }\r\n i18n.resetLocales = resetLocales;\r\n function dateTimeToStr(dateTime, dataType, format) {\r\n if (format) {\r\n if (format == \"d\") {\r\n format = buildShortDateTimeFormat(DataType.Date);\r\n }\r\n else if (format == \"D\") {\r\n format = buildLongDateTimeFormat(DataType.Date);\r\n }\r\n else if (format == \"f\") {\r\n format = buildShortDateTimeFormat(DataType.DateTime);\r\n }\r\n else if (format == \"F\") {\r\n format = buildLongDateTimeFormat(DataType.DateTime);\r\n }\r\n }\r\n else {\r\n format = buildShortDateTimeFormat(dataType);\r\n }\r\n return utils.dateTimeToStr(dateTime, format);\r\n }\r\n i18n.dateTimeToStr = dateTimeToStr;\r\n function buildShortDateTimeFormat(dataType) {\r\n var localeSettings = getLocaleSettings();\r\n var format;\r\n switch (dataType) {\r\n case DataType.Date:\r\n format = localeSettings.shortDateFormat;\r\n break;\r\n case DataType.Time:\r\n format = localeSettings.shortTimeFormat;\r\n break;\r\n default:\r\n format = localeSettings.shortDateFormat + ' ' + localeSettings.shortTimeFormat;\r\n break;\r\n }\r\n return format;\r\n }\r\n function buildLongDateTimeFormat(dataType) {\r\n var localeSettings = getLocaleSettings();\r\n var format;\r\n switch (dataType) {\r\n case DataType.Date:\r\n format = localeSettings.longDateFormat;\r\n break;\r\n case DataType.Time:\r\n format = localeSettings.longTimeFormat;\r\n break;\r\n default:\r\n format = localeSettings.longDateFormat + ' ' + localeSettings.longTimeFormat;\r\n break;\r\n }\r\n return format;\r\n }\r\n function numberToStr(number, format) {\r\n if (format && format.length > 0) {\r\n var type = format.charAt(0);\r\n if (type === 'S') {\r\n return formatWithSequence(number, format.slice(1));\r\n }\r\n else if (['D', 'F', 'C'].indexOf(type) >= 0) {\r\n var locale = getCurrentLocale();\r\n return number.toLocaleString(locale, getNumberFromatOptions(format));\r\n }\r\n else {\r\n return convertWithMask(Math.trunc(number), format);\r\n }\r\n }\r\n var localeSettings = getLocaleSettings();\r\n return utils.numberToStr(number, localeSettings.decimalSeparator);\r\n }\r\n i18n.numberToStr = numberToStr;\r\n function booleanToStr(bool, format) {\r\n if (format && format.length > 0) {\r\n var type = format.charAt(0);\r\n if (type === 'S') {\r\n var values = format.slice(1).split('|');\r\n if (values.length > 1) {\r\n var value = values[(bool) ? 1 : 0];\r\n return i18n.getText(value) || value;\r\n }\r\n }\r\n }\r\n return \"\" + bool;\r\n }\r\n i18n.booleanToStr = booleanToStr;\r\n var cachedSequenceFormats = {};\r\n function formatWithSequence(number, format) {\r\n if (!cachedSequenceFormats[format]) {\r\n // parse and save in cache format values \r\n var values_2 = format.split('|')\r\n .filter(function (v) { return v.length > 0; })\r\n .map(function (v) { return v.split('='); });\r\n cachedSequenceFormats[format] = {};\r\n if (values_2.length > 0) {\r\n if (values_2[0].length > 1) {\r\n for (var _i = 0, values_1 = values_2; _i < values_1.length; _i++) {\r\n var value = values_1[_i];\r\n cachedSequenceFormats[format][Number.parseInt(value[1])] = value[0];\r\n }\r\n }\r\n else {\r\n values_2.forEach(function (value, index) {\r\n cachedSequenceFormats[format][index] = value[0];\r\n });\r\n }\r\n }\r\n }\r\n var values = cachedSequenceFormats[format];\r\n if (values[number] !== undefined) {\r\n var value = values[number];\r\n return i18n.getText(value) || value;\r\n }\r\n return number.toString();\r\n }\r\n function convertWithMask(number, mask) {\r\n var value = number.toString();\r\n var result = '';\r\n var index = value.length - 1;\r\n for (var i = mask.length - 1; i >= 0; i--) {\r\n var ch = mask.charAt(i);\r\n if (ch === '#' || ch === '0') {\r\n if (index >= 0) {\r\n result += value.charAt(index);\r\n index--;\r\n }\r\n else {\r\n if (ch === '0') {\r\n result += 0;\r\n }\r\n }\r\n }\r\n else {\r\n result += ch;\r\n }\r\n }\r\n return result.split('').reverse().join('');\r\n }\r\n function getNumberFromatOptions(format) {\r\n var localeSettings = getLocaleSettings();\r\n var type = format[0].toUpperCase();\r\n var digits = (format.length > 1)\r\n ? Number.parseInt(format.slice(1))\r\n : type == 'D' ? 1 : 2;\r\n switch (type) {\r\n case 'D':\r\n return {\r\n style: 'decimal',\r\n useGrouping: false,\r\n minimumIntegerDigits: digits\r\n };\r\n case 'C':\r\n return {\r\n style: 'currency',\r\n currency: localeSettings.currency,\r\n minimumFractionDigits: digits\r\n };\r\n default:\r\n return {\r\n style: 'decimal',\r\n minimumFractionDigits: digits\r\n };\r\n }\r\n }\r\n})(i18n || (i18n = {}));\r\n//# sourceMappingURL=i18n.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easydata/core/dist/lib/i18n/i18n.js\n// module id = 39\n// module chunks = 0","import { DataType } from '@easydata/core';\r\nimport { i18n } from '@easydata/core';\r\nimport { FormatParser } from \"./format_parser\";\r\nimport { LinkType } from '../types/link_type';\r\nexport var equtils;\r\n(function (equtils) {\r\n /**\r\n * Adds two paths and returns the result\r\n * Correctly processes leading and trailing slashes\r\n * @param path1\r\n * @param path2\r\n */\r\n function combinePath(path1, path2) {\r\n var result = path1;\r\n if (result != null && result.length > 0) {\r\n if (result.charAt(result.length - 1) != '/')\r\n result += \"/\";\r\n result += path2;\r\n }\r\n else {\r\n result = path2;\r\n }\r\n return result;\r\n }\r\n equtils.combinePath = combinePath;\r\n /**\r\n * Converts a string to a `LinkType` value\r\n * @param str\r\n */\r\n function strToLinkType(str) {\r\n if (str == \"All\") {\r\n return LinkType.All;\r\n }\r\n else if (str == \"NotAll\") {\r\n return LinkType.NotAll;\r\n }\r\n else if (str == \"Any\") {\r\n return LinkType.Any;\r\n }\r\n else {\r\n return LinkType.None;\r\n }\r\n }\r\n equtils.strToLinkType = strToLinkType;\r\n /**\r\n * Converts a `LinkType` value to a string\r\n * @param type\r\n */\r\n function linkTypeToStr(type) {\r\n if (type === LinkType.All) {\r\n return \"All\";\r\n }\r\n else if (type === LinkType.NotAll) {\r\n return \"NotAll\";\r\n }\r\n else if (type == LinkType.Any) {\r\n return \"Any\";\r\n }\r\n else {\r\n return \"None\";\r\n }\r\n }\r\n equtils.linkTypeToStr = linkTypeToStr;\r\n /**\r\n * Parses the operator's format string and returns a list of tokens\r\n * @param operator\r\n */\r\n function parseOperatorFormat(operator) {\r\n var format = i18n.getText('Operators', operator.id, 'format');\r\n if (!format) {\r\n format = i18n.getText('Operators', operator.id, 'displayFormat');\r\n }\r\n if (!format) {\r\n format = operator.displayFormat;\r\n }\r\n var parser = new FormatParser(format);\r\n return parser.parse();\r\n }\r\n equtils.parseOperatorFormat = parseOperatorFormat;\r\n //----------- value converstion utils --------------\r\n /**\r\n * Converts a value from one DataType to another\r\n * @param value\r\n * @param fromDataType - the original data type\r\n * @param toDataType - the data type we want to get\r\n */\r\n function convertValue(value, fromDataType, toDataType) {\r\n switch (toDataType) {\r\n case DataType.String:\r\n return value;\r\n case (DataType.Autoinc, DataType.Byte, DataType.Int32, DataType.Int64, DataType.Word):\r\n var resInt = parseInt(value);\r\n return isNaN(resInt) ? '' : resInt.toString();\r\n case (DataType.Currency, DataType.Float):\r\n var resFloat = parseFloat(value);\r\n return isNaN(resFloat) ? '' : resFloat.toString();\r\n default:\r\n return '';\r\n }\r\n }\r\n equtils.convertValue = convertValue;\r\n})(equtils || (equtils = {}));\r\n//# sourceMappingURL=utils.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/core/dist/lib/utils/utils.js\n// module id = 40\n// module chunks = 0","/** Represents type of linking of conditions in group (predicate).*/\r\nexport var LinkType;\r\n(function (LinkType) {\r\n /**\r\n * None of the conditions must be truth (all must be false).\r\n * In SQL it will look like: `NOT (Condition1 OR Condition2 OR ...)`.\r\n */\r\n LinkType[LinkType[\"None\"] = 0] = \"None\";\r\n /** At least one condition must be truth. In SQL they are connected by `OR` operator.*/\r\n LinkType[LinkType[\"Any\"] = 1] = \"Any\";\r\n /**\r\n * Not all conditions must be truth (at least one must false).\r\n * In SQL it will look like: `NOT(Condition1 AND Condition2 AND ...)`.\r\n */\r\n LinkType[LinkType[\"NotAll\"] = 2] = \"NotAll\";\r\n /** All conditions must be truth, in result SQL they are connected by `AND` operator;*/\r\n LinkType[LinkType[\"All\"] = 3] = \"All\";\r\n})(LinkType || (LinkType = {}));\r\n//# sourceMappingURL=link_type.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/core/dist/lib/types/link_type.js\n// module id = 41\n// module chunks = 0","import { DataType } from '@easydata/core';\r\nimport { equtils } from '../utils/utils';\r\nimport { DataKind } from '../types/data_kind';\r\nimport { ExprTag } from '../types/expr_tag';\r\nimport { Query } from './query';\r\n/**\r\n * Represents expression object.\r\n */\r\nvar Expression = /** @class */ (function () {\r\n /** The default constructor. */\r\n function Expression(parent) {\r\n var _this = this;\r\n this.parent = parent;\r\n /** The tag. */\r\n this.tag = ExprTag.Constant;\r\n /** The data kind. */\r\n this.kind = DataKind.Scalar;\r\n /** The data type. */\r\n this.dataType = DataType.String;\r\n /** The value. */\r\n this._value = ''; //DO NOT forget remove any\r\n /**\r\n * The distinct option. (e.g `SELECT DISTINCT`)\r\n */\r\n this.distinct = false;\r\n this._isDefaultValue = false;\r\n this.getText = function () { return _this.text || _this._value; };\r\n this.args = new Array();\r\n }\r\n Expression.prototype.getParent = function () {\r\n return this.parent;\r\n };\r\n Expression.prototype.getModel = function () {\r\n return this.parent.getQuery().getModel();\r\n };\r\n /**\r\n * Loads expression from its JSON representation object.\r\n * @param model The Data Model.\r\n * @param data The JSON representation object.\r\n */\r\n Expression.prototype.loadFromData = function (model, data) {\r\n if (data) {\r\n this.tag = data.tag;\r\n if (data.val) {\r\n this._value = data.val;\r\n this.text = data.txt;\r\n }\r\n else if (data.id) {\r\n this.kind = DataKind.Attribute;\r\n this._value = data.id;\r\n this.text = data.txt;\r\n }\r\n if (typeof data.dtype !== 'undefined') {\r\n this.dataType = data.dtype;\r\n }\r\n if (this.tag == ExprTag.EntityAttribute\r\n || this.tag == ExprTag.ParentEntityAttribute) {\r\n this.kind = DataKind.Attribute;\r\n //Do not load other info for EntityAttr\r\n return;\r\n }\r\n if (typeof data.kind !== 'undefined') {\r\n this.kind = data.kind;\r\n }\r\n if (data.query) {\r\n this.subQuery = new Query(model);\r\n this.subQuery.loadFromDataOrJson(data.query);\r\n }\r\n if (typeof data.distinct !== 'undefined') {\r\n this.distinct = data.distinct;\r\n }\r\n if (data.func) {\r\n this.func = data.func;\r\n if (data.args) {\r\n for (var i = 0; i < data.args.length; i++) {\r\n var arg = new Expression(this.parent);\r\n arg.loadFromData(model, data.args[i]);\r\n this.args.push(arg);\r\n }\r\n }\r\n }\r\n if (data.sql) {\r\n this.sql = data.sql;\r\n this.baseAttrId = data.baseAttrId;\r\n }\r\n }\r\n };\r\n /**\r\n * Saves expression from JSON representation object.\r\n * @returns The JSON representation object.\r\n */\r\n Expression.prototype.saveToData = function () {\r\n var obj = {\r\n tag: this.tag\r\n };\r\n if (typeof this.dataType !== \"undefined\") {\r\n obj.dtype = this.dataType;\r\n }\r\n //Do not save other info for EntityAttr\r\n if (this.tag == ExprTag.EntityAttribute) {\r\n if (this._value) {\r\n obj.id = this._value;\r\n obj.val = this._value;\r\n }\r\n if (this.text) {\r\n obj.txt = this.text;\r\n }\r\n return obj;\r\n }\r\n if (this.subQuery) {\r\n obj.query = this.subQuery.toJSONData();\r\n }\r\n if (typeof this.kind !== \"undefined\") {\r\n obj.kind = this.kind;\r\n }\r\n if (this._value) {\r\n obj.val = this._value;\r\n }\r\n if (this.text) {\r\n obj.txt = this.text;\r\n }\r\n if (this.distinct) {\r\n obj.distinct = this.distinct;\r\n }\r\n if (this.func) {\r\n obj.func = this.func;\r\n obj.args = [];\r\n for (var i = 0; i < this.args.length; i++) {\r\n obj.args.push(this.args[i].saveToData());\r\n }\r\n }\r\n if (this.sql) {\r\n obj.sql = this.sql;\r\n obj.baseAttrId = this.baseAttrId;\r\n }\r\n return obj;\r\n };\r\n Expression.prototype.getIndex = function () {\r\n return this.parent.getExpressionIndex(this);\r\n };\r\n Object.defineProperty(Expression.prototype, \"value\", {\r\n get: function () {\r\n return this._value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Expression.prototype.setValue = function (val, silent) {\r\n if (silent === void 0) { silent = false; }\r\n this.setContent(val, undefined, silent);\r\n };\r\n Expression.prototype.setContent = function (val, txt, silent) {\r\n if (silent === void 0) { silent = false; }\r\n var oldValue = this.value;\r\n if (this.kind == DataKind.Attribute && val) {\r\n var attr = this.getModel().getAttributeById(val);\r\n if (!attr) {\r\n throw \"No such entity attribute:\" + val;\r\n }\r\n this.dataType = attr.dataType;\r\n }\r\n this._value = val;\r\n if (typeof txt !== 'undefined') {\r\n this.text = txt;\r\n }\r\n else if (typeof this.text !== 'undefined') {\r\n this.text = val;\r\n }\r\n this._isDefaultValue = false;\r\n if (!silent) {\r\n this.parent.expressionChanged(this, oldValue);\r\n }\r\n };\r\n Expression.prototype.isEmpty = function () {\r\n return !(this.text || this._value);\r\n };\r\n Expression.prototype.hasText = function () {\r\n return this.text && this.text.length > 0;\r\n };\r\n Expression.prototype.tryCopyValueFrom = function (expr) {\r\n if (this.kind == expr.kind) {\r\n if (this.dataType == expr.dataType) {\r\n this.setContent(expr.value.length ? expr.value : this._value, (expr.text && expr.text.length) ? expr.text : this.text, true);\r\n }\r\n else {\r\n var val = equtils.convertValue(expr.value, expr.dataType, this.dataType);\r\n this.setContent(val.length ? val : this._value, (expr.text && expr.text.length) ? expr.text : this.text, true);\r\n }\r\n this.subQuery = expr.subQuery;\r\n this.sql = expr.sql;\r\n this.baseAttrId = expr.baseAttrId;\r\n }\r\n else if (!this._isDefaultValue) {\r\n this.setContent('', '', true);\r\n this.subQuery = null;\r\n this.sql = null;\r\n this.baseAttrId = null;\r\n }\r\n };\r\n return Expression;\r\n}());\r\nexport { Expression };\r\n//# sourceMappingURL=expression.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/core/dist/lib/query/expression.js\n// module id = 42\n// module chunks = 0","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { i18n } from '@easydata/core';\r\nimport { ExprTag } from '@easyquery/core';\r\nimport { createBrowserEvent, domel } from '@easydata/ui';\r\nimport { ColumnRendererCP } from './column_renderer';\r\nimport { browserUtils } from '../../../utils/browser_utils';\r\nvar SimpleColumnRendererCP = /** @class */ (function (_super) {\r\n __extends(SimpleColumnRendererCP, _super);\r\n function SimpleColumnRendererCP() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SimpleColumnRendererCP.prototype.getClassesToAdd = function () {\r\n return _super.prototype.getClassesToAdd.call(this) + \" \" + this.cssPrefix + \"-row \" + this.cssPrefix + \"-row-column-entattr\";\r\n };\r\n SimpleColumnRendererCP.prototype.renderExpressionBlock = function () {\r\n var _this = this;\r\n return domel(\"div\")\r\n .addClass(this.cssPrefix + \"-expr-block\")\r\n .addClass(browserUtils.getMobileCssClass())\r\n .addChild('div', function (builder) { return builder\r\n .addClass(_this.cssPrefix + \"-colelement\", _this.cssPrefix + \"-attrelement\")\r\n .addClass(browserUtils.getMobileCssClass())\r\n .addChildElement(_this.renderBaseExpression()); })\r\n .toDOM();\r\n };\r\n SimpleColumnRendererCP.prototype.renderBaseExpression = function () {\r\n var _this = this;\r\n var attrCaption = this.getAttributeCaption(this.baseAttr);\r\n if (this.isEditable()) {\r\n return domel('a')\r\n .attr('href', 'javascript:void(0)')\r\n .title(attrCaption)\r\n .text(attrCaption) //TO DO:add localization\r\n .on('click', function (ev) {\r\n ev.stopPropagation();\r\n //ev.preventDefault();\r\n _this.panel.showEntitiesMenu({\r\n anchor: ev.target,\r\n selectedIds: null,\r\n itemSelectedCallback: _this.baseExpressionItemSelectedCallback.bind(_this)\r\n });\r\n return false;\r\n })\r\n .toDOM();\r\n }\r\n return domel('span')\r\n .text(attrCaption)\r\n .title(attrCaption)\r\n .toDOM();\r\n };\r\n SimpleColumnRendererCP.prototype.baseExpressionItemSelectedCallback = function (data, item) {\r\n var attrid = data.id;\r\n //this.column.expr.id = attrid;\r\n this.column.expr.setValue(attrid, true);\r\n this.column.caption = '';\r\n this.fireColumnChanged();\r\n return false;\r\n };\r\n SimpleColumnRendererCP.prototype.getUIS = function () {\r\n var arg = this.column.expr.args[0];\r\n if (arg) {\r\n var model = this.panel.getContext().getModel();\r\n return model.checkAttrProperty(arg.value, \"useInSorting\");\r\n }\r\n else {\r\n return true;\r\n }\r\n };\r\n SimpleColumnRendererCP.prototype.changeTypeHandler = function (ev) {\r\n var _this = this;\r\n this.keepShowingButtons = true;\r\n this.functionMenu.showMenu({\r\n anchor: ev.target,\r\n selectedIds: null,\r\n itemSelectedCallback: function (data, items) {\r\n _this.processExtraButtonMenuItems(data.id, null);\r\n return false;\r\n },\r\n menuClosedCallback: function () {\r\n _this.keepShowingButtons = false;\r\n if (!_this.isMouseOverBlock) {\r\n _this.element.dispatchEvent(createBrowserEvent('mouseleave'));\r\n }\r\n }\r\n });\r\n };\r\n SimpleColumnRendererCP.prototype.changeTypeToCustomSql = function () {\r\n var _this = this;\r\n var query = this.column.getQuery();\r\n query.changeColumnType(this.column, ExprTag.CustomSql);\r\n var parentElement = this.element.parentElement;\r\n setTimeout(function () {\r\n //focus CustomSQL Edit\r\n var newElement = parentElement.querySelector(\"div[data-id='\" + _this.column.id + \"'] div[class*='\" + _this.cssPrefix + \"-expr-block'] div[class*='\" + _this.cssPrefix + \"-colelement'] a\");\r\n if (newElement)\r\n newElement.click();\r\n }, 500);\r\n this.fireColumnChanged();\r\n };\r\n SimpleColumnRendererCP.prototype.changeTypeToAggr = function (funcId) {\r\n var query = this.column.getQuery();\r\n query.changeColumnType(this.column, ExprTag.AggregateFunction, { funcId: funcId });\r\n this.fireColumnChanged();\r\n };\r\n SimpleColumnRendererCP.prototype.processExtraButtonMenuItems = function (action, evt) {\r\n if (action === \"CUSTOMSQL\") {\r\n this.changeTypeToCustomSql();\r\n }\r\n else {\r\n this.changeTypeToAggr(action);\r\n }\r\n return true;\r\n };\r\n SimpleColumnRendererCP.prototype.getExtraButtonMenuItems = function () {\r\n var items = [];\r\n var funcs = this.panel.getContext().getModel().getAggrFunctions();\r\n var toInclude = true;\r\n var funcAllowed = true;\r\n var item = null;\r\n var attribute = this.getAttribute();\r\n var funcCaption;\r\n for (var _i = 0, funcs_1 = funcs; _i < funcs_1.length; _i++) {\r\n var func = funcs_1[_i];\r\n toInclude = func.getAppliedTypesOrDefault().indexOf(attribute.dataType) >= 0;\r\n if (this.column.expr.func === func.id && !toInclude) {\r\n funcAllowed = false;\r\n }\r\n if (toInclude) {\r\n funcCaption = this.panel.getContext().getModel().getAggrFunctionCaption(func.id);\r\n item = {\r\n id: func.id,\r\n text: funcCaption\r\n };\r\n items.push(item);\r\n }\r\n }\r\n for (var idx = 0; idx < funcs.length; idx++) {\r\n if (!funcs[idx])\r\n continue;\r\n }\r\n if (!funcAllowed) {\r\n this.column.expr.func = items[0].id;\r\n }\r\n //Add \"Custom Expression\" menu\r\n var columnsPanel = this.panel;\r\n if (columnsPanel.areCustomExpressionsAllowed()) {\r\n item = {\r\n id: 'CustomSqlDivider',\r\n text: '---'\r\n };\r\n items.push(item);\r\n funcCaption = i18n.getText('CustomExpression');\r\n item = {\r\n id: 'CUSTOMSQL',\r\n text: funcCaption\r\n };\r\n items.push(item);\r\n }\r\n return [{\r\n id: '__group',\r\n text: i18n.getText('ColTypeGroup'),\r\n items: items\r\n }];\r\n };\r\n return SimpleColumnRendererCP;\r\n}(ColumnRendererCP));\r\nexport { SimpleColumnRendererCP };\r\n//# sourceMappingURL=simple_column_renderer.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/widgets/renderers/columnspanel/simple_column_renderer.js\n// module id = 43\n// module chunks = 0","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { i18n } from '@easydata/core';\r\nimport { utils as dataUtils } from '@easydata/core';\r\nimport { eqconsts, DataKind, ConditionPart, } from '@easyquery/core';\r\nimport { domel } from '@easydata/ui';\r\nimport { ExpressionRenderer } from './expression_renderer';\r\nimport { PopupMenu } from '../../../utils/popup_menu';\r\nimport { QPEditablePart } from '../../../types/qp_editable_part';\r\nvar ListExpressionRenderer = /** @class */ (function (_super) {\r\n __extends(ListExpressionRenderer, _super);\r\n function ListExpressionRenderer() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.menuItemsList = [];\r\n _this.showWhenReady = false;\r\n return _this;\r\n }\r\n ListExpressionRenderer.prototype.isEditable = function () {\r\n return !this.isReadOnly()\r\n && ((this.panel.options.editableParts & QPEditablePart.Value) === QPEditablePart.Value);\r\n };\r\n ListExpressionRenderer.prototype.setValue = function (value, silent) {\r\n if (silent === void 0) { silent = false; }\r\n var newValue = this.adjustNewValue(value);\r\n if (value !== this.expression.value) {\r\n var text = this.getValueText(value);\r\n this.expression.setContent(newValue, text);\r\n if (!silent) {\r\n this.expression.getParent().fireChangedEvent(ConditionPart.Value);\r\n }\r\n }\r\n return true;\r\n };\r\n ListExpressionRenderer.prototype.getValueText = function (value) {\r\n var result = \"\";\r\n if (Array.isArray(value)) {\r\n for (var _i = 0, _a = this.menuItemsList; _i < _a.length; _i++) {\r\n var item = _a[_i];\r\n if (value.indexOf(item.id) >= 0) {\r\n result += item.text + ',';\r\n }\r\n }\r\n }\r\n else {\r\n for (var _b = 0, _c = this.menuItemsList; _b < _c.length; _b++) {\r\n var item = _c[_b];\r\n if (item.id === value) {\r\n result += item.text + ',';\r\n }\r\n }\r\n }\r\n if (result) {\r\n result = result.substring(0, result.length - 1);\r\n }\r\n return result;\r\n };\r\n ListExpressionRenderer.prototype.getEmptyText = function () {\r\n return this.panel.options.emptyTextList || i18n.getText('MsgEmptyListValue');\r\n };\r\n ListExpressionRenderer.prototype.getListName = function () {\r\n return this.valueEditor.name;\r\n };\r\n ListExpressionRenderer.prototype.renderEditor = function () {\r\n var _this = this;\r\n this.fillMenuItemsList(function () {\r\n _this.renderMenuBlock();\r\n });\r\n };\r\n ListExpressionRenderer.prototype.getLabelText = function () {\r\n if (!this.expression.isEmpty()) {\r\n return this.expression.getText();\r\n }\r\n else {\r\n return this.getEmptyText();\r\n }\r\n };\r\n ListExpressionRenderer.prototype.showLoader = function () {\r\n //NOTHING TO DO\r\n };\r\n ListExpressionRenderer.prototype.hideLoader = function () {\r\n //NOTHING TO DO\r\n };\r\n ListExpressionRenderer.prototype.showEditor = function () {\r\n var _this = this;\r\n if (this.menu) {\r\n this.menu.showMenu({\r\n anchor: this.labelElement,\r\n selectedIds: this.getValuesAsArray(),\r\n itemSelectedCallback: function (item, selectedItems) {\r\n if (!_this.menu.options.multiselect) {\r\n _this.setValue(item.id);\r\n }\r\n else if (selectedItems) {\r\n var selectedIds = [];\r\n var selLength = selectedItems.length;\r\n for (var i = 0; i < selLength; i++)\r\n selectedIds.push(selectedItems[i].id);\r\n _this.setValue(selectedIds);\r\n }\r\n return false;\r\n }\r\n });\r\n }\r\n else {\r\n this.showWhenReady = true;\r\n this.showLoader();\r\n }\r\n };\r\n ListExpressionRenderer.prototype.closeEditor = function () {\r\n this.menu.hideMenu();\r\n };\r\n ListExpressionRenderer.prototype.renderMenuBlock = function () {\r\n var multiSelect = false;\r\n if (this.expression) {\r\n multiSelect = this.expression.kind === DataKind.List;\r\n }\r\n var queryPanel = this.panel;\r\n var options = {\r\n items: this.menuItemsList,\r\n multiselect: multiSelect,\r\n container: queryPanel ? queryPanel.options.menuContainer : null,\r\n showSelected: true\r\n };\r\n if (queryPanel) {\r\n dataUtils.assignDeep(options, queryPanel.options.menuOptions);\r\n }\r\n ;\r\n var menuId = this.element.id;\r\n if (menuId) {\r\n options.id = menuId + '-EditorMenu';\r\n }\r\n if (queryPanel) {\r\n options.domWriteItemsId = queryPanel.options.domWriteItemsId;\r\n }\r\n ;\r\n options.buttons = {\r\n submit: i18n.getText('ButtonApply'),\r\n cancel: i18n.getText('ButtonCancel')\r\n };\r\n this.menu = new PopupMenu(options);\r\n };\r\n ListExpressionRenderer.prototype.getValuesAsArray = function () {\r\n if (this.expression.kind !== DataKind.List) {\r\n return [this.expression.value];\r\n }\r\n else {\r\n //splits value by ',' \r\n var res = this.expression.value.match(/\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"|[^,]+/g);\r\n return res\r\n ? res.map(function (a) {\r\n if (a.charAt(0) == '\"' && a.charAt(a.length - 1) == '\"') {\r\n a = a.substring(1, a.length - 1);\r\n return a.replace(/\\\"/g, '\"');\r\n }\r\n else {\r\n return a;\r\n }\r\n })\r\n : [];\r\n }\r\n };\r\n ListExpressionRenderer.prototype.adjustNewValue = function (newValue) {\r\n if (Array.isArray(newValue)) {\r\n return newValue.map(function (a) {\r\n if (a.indexOf(',') >= 0) {\r\n a = a.replace(/\"/g, '\\\"');\r\n return '\"' + a + '\"';\r\n }\r\n else {\r\n return a;\r\n }\r\n }).join(',');\r\n }\r\n else {\r\n return newValue;\r\n }\r\n };\r\n ListExpressionRenderer.prototype.fillMenuItemsList = function (onComplete) {\r\n this.menuItemsList = this.valueEditor.values;\r\n if (onComplete) {\r\n onComplete();\r\n }\r\n };\r\n ListExpressionRenderer.prototype.takeDefaultValue = function () {\r\n if (!this.menuItemsList)\r\n return;\r\n var itemLen = this.menuItemsList.length;\r\n for (var i = 0; i < itemLen; i++) {\r\n var item = this.menuItemsList[i];\r\n if (item.isDefault) {\r\n this.setValue(item.id, true);\r\n break;\r\n }\r\n }\r\n };\r\n return ListExpressionRenderer;\r\n}(ExpressionRenderer));\r\nexport { ListExpressionRenderer };\r\nvar CustomListExpressionRenderer = /** @class */ (function (_super) {\r\n __extends(CustomListExpressionRenderer, _super);\r\n function CustomListExpressionRenderer() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.isLoading = false;\r\n _this.onClickTemp = null;\r\n return _this;\r\n }\r\n CustomListExpressionRenderer.prototype.renderEditor = function () {\r\n var _this = this;\r\n if (this.isLoading)\r\n return;\r\n this.isLoading = true;\r\n this.fillMenuItemsList(function () {\r\n _this.isLoading = false;\r\n if (_this.isEmptyValue()) {\r\n _this.takeDefaultValue();\r\n }\r\n if (!_this.expression.isEmpty() && _this.expression._isDefaultValue) {\r\n var text = _this.getValueText(_this.expression.value);\r\n _this.expression.setContent(_this.expression.value, text);\r\n _this.expression.getParent().fireChangedEvent();\r\n }\r\n _this.renderMenuBlock();\r\n if (_this.showWhenReady) {\r\n _this.showWhenReady = false;\r\n _this.hideLoader();\r\n _this.showEditor();\r\n }\r\n });\r\n };\r\n CustomListExpressionRenderer.prototype.showLoader = function () {\r\n this.labelElement.style.display = 'none';\r\n if (!this.loaderElement) {\r\n this.loaderElement = domel('div', this.element)\r\n .addClass(this.cssPrefix + \"-ve-loader\")\r\n .toDOM();\r\n }\r\n this.loaderElement.style.display = 'block';\r\n };\r\n CustomListExpressionRenderer.prototype.hideLoader = function () {\r\n this.loaderElement.style.display = 'none';\r\n this.labelElement.removeAttribute('style');\r\n };\r\n CustomListExpressionRenderer.prototype.fillMenuItemsList = function (onComplete) {\r\n var _this = this;\r\n var listName = this.getListName();\r\n var listRequestHandler = this.panel.getContext().getListRequestHandler();\r\n if (eqconsts.constLists[listName]) {\r\n this.menuItemsList = eqconsts.constLists[listName];\r\n if (onComplete) {\r\n onComplete();\r\n }\r\n }\r\n else if (listRequestHandler) {\r\n listRequestHandler({\r\n listName: listName,\r\n editorId: this.valueEditor.id,\r\n editorParams: this.valueEditor.extraParams,\r\n value: this.getValue()\r\n }, function (list) {\r\n _this.menuItemsList = list;\r\n if (onComplete) {\r\n onComplete();\r\n }\r\n });\r\n }\r\n };\r\n return CustomListExpressionRenderer;\r\n}(ListExpressionRenderer));\r\nexport { CustomListExpressionRenderer };\r\nvar SqlListExpressionRenderer = /** @class */ (function (_super) {\r\n __extends(SqlListExpressionRenderer, _super);\r\n function SqlListExpressionRenderer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SqlListExpressionRenderer.prototype.fillMenuItemsList = function (onComplete) {\r\n var _this = this;\r\n var context = this.panel.getContext();\r\n var editor = this.valueEditor;\r\n var listRequestHandler = context.getListRequestHandler();\r\n if (listRequestHandler) {\r\n var requestData = {\r\n listName: \"SQL\",\r\n editorId: this.valueEditor.id,\r\n editorParams: this.valueEditor.extraParams,\r\n value: this.getValue()\r\n };\r\n //requestData.sql = editor.sql;\r\n listRequestHandler(requestData, function (list) {\r\n _this.menuItemsList = list;\r\n if (onComplete) {\r\n onComplete();\r\n }\r\n });\r\n }\r\n };\r\n return SqlListExpressionRenderer;\r\n}(CustomListExpressionRenderer));\r\nexport { SqlListExpressionRenderer };\r\n//# sourceMappingURL=list_expression_renderer.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/widgets/renderers/querypanel/list_expression_renderer.js\n// module id = 44\n// module chunks = 0","import { i18n, utils as dataUtils } from '@easydata/core';\r\nimport { domel } from '@easydata/ui';\r\nimport { browserUtils } from '../utils/browser_utils';\r\nvar ResultFacet = /** @class */ (function () {\r\n function ResultFacet(container, options) {\r\n var _this = this;\r\n this.container = container;\r\n this.title = i18n.getText('Facets', 'DefaultFacetTitle');\r\n this.cssPrefix = 'eqjs-facet';\r\n this.dialogTitle = i18n.getText('Facets', 'DefaultDlgTitle');\r\n this.options = {};\r\n this.canDisplayFlag = true;\r\n this.downloadAllClickHandler = function () {\r\n var chunksToLoad = _this.getChunksForLoading();\r\n var resultTable = _this.getContext().resultTable;\r\n var recordsToLoad = resultTable.getTotal() - resultTable.getCachedCount();\r\n var ds = _this.getDialogService();\r\n var dlg = ds.openProgress({\r\n title: i18n.getText('Facets', 'LoadDataDlgTitle'),\r\n content: i18n.getText('Facets', 'LoadDataDlgContent')\r\n .replace('{loadedRecs}', '0')\r\n .replace('{totalRecs}', \"\" + recordsToLoad),\r\n onSubmit: function () { return _this.refresh(); },\r\n determinated: true\r\n });\r\n var loadedRecords = 0;\r\n var _loop_1 = function (chunk) {\r\n setTimeout(function () {\r\n resultTable.getRows({ offset: chunk.offset, limit: resultTable.chunkSize })\r\n .then(function (_) {\r\n loadedRecords += _.length;\r\n var progress = loadedRecords / recordsToLoad;\r\n dlg.updateContent(i18n.getText('Facets', 'LoadDataDlgContent')\r\n .replace('{loadedRecs}', \"\" + loadedRecords)\r\n .replace('{totalRecs}', \"\" + recordsToLoad));\r\n dlg.updateProgress(progress);\r\n })\r\n .catch(function (error) {\r\n dlg.submit();\r\n _this.getContext().throwError(error);\r\n });\r\n }, 10);\r\n };\r\n for (var _i = 0, chunksToLoad_1 = chunksToLoad; _i < chunksToLoad_1.length; _i++) {\r\n var chunk = chunksToLoad_1[_i];\r\n _loop_1(chunk);\r\n }\r\n };\r\n dataUtils.assignDeep(this.options, options);\r\n }\r\n ResultFacet.prototype.init = function (slot) {\r\n this.slot = slot;\r\n this.contentDiv = domel('div', this.slot)\r\n .addClass(this.cssPrefix + \"-content\")\r\n .toDOM();\r\n this.displayMessageDiv = domel('div', this.slot).hide().toDOM();\r\n };\r\n ResultFacet.prototype.showSettingsDialog = function () {\r\n var _this = this;\r\n return new Promise(function (resolve) {\r\n var ds = _this.getDialogService();\r\n var content = _this.renderDialogContent();\r\n ds.open({\r\n title: _this.dialogTitle,\r\n body: content,\r\n cancelable: true,\r\n closable: false,\r\n onSubmit: function () {\r\n var submited = _this.submitSettingsDialog();\r\n if (submited) {\r\n resolve(true);\r\n }\r\n return submited;\r\n },\r\n onCancel: function () {\r\n resolve(false);\r\n }\r\n });\r\n });\r\n };\r\n ResultFacet.prototype.renderDialogContent = function () {\r\n var fieldsContainer;\r\n var b = domel('div')\r\n .addClass('kfrm-form')\r\n .addChild('div', function (b) { return fieldsContainer = b\r\n .addClass(\"\" + (browserUtils.IsIE()\r\n ? 'kfrm-fields-ie col-ie-1-4 label-align-right'\r\n : 'kfrm-fields col-a-1 label-align-right'))\r\n .toDOM(); });\r\n this.renderFormFields(b.toDOM(), fieldsContainer);\r\n return b.toDOM();\r\n };\r\n ResultFacet.prototype.renderFormFields = function (form, fieldsContainer) {\r\n var _this = this;\r\n var cont = fieldsContainer;\r\n if (browserUtils.IsIE()) {\r\n cont = domel('div', fieldsContainer)\r\n .addClass('kfrm-field-ie')\r\n .toDOM();\r\n }\r\n domel(cont)\r\n .addChild('label', function (b) { return b\r\n .attr('for', 'tab_name')\r\n .addText(i18n.getText('Facets', 'TabNameLabel')); })\r\n .addChild('input', function (b) { return b\r\n .id('facetTabName')\r\n .name('tab_name')\r\n .type('text')\r\n .attr('value', _this.title); });\r\n };\r\n ResultFacet.prototype.submitSettingsDialog = function () {\r\n var tabNameInput = document.querySelector('#facetTabName');\r\n if (tabNameInput.value.length == 0)\r\n return false;\r\n this.title = tabNameInput.value;\r\n return true;\r\n };\r\n ResultFacet.prototype.getDialogService = function () {\r\n return this.getContext()\r\n .getServices()\r\n .getDialogService();\r\n };\r\n ResultFacet.prototype.canDisplay = function () {\r\n var context = this.getContext();\r\n var resultTable = context.resultTable;\r\n return (resultTable.getCachedCount() == resultTable.getTotal());\r\n };\r\n ResultFacet.prototype.showUnableDisplayMessage = function (message) {\r\n var context = this.getContext();\r\n var resultTable = context.resultTable;\r\n this.displayMessageDiv.innerHTML = message || i18n.getText('Facets', 'ErrNotEnoughData')\r\n .replace('{totalRecs}', \"\" + resultTable.getTotal())\r\n .replace('{cachedRecs}', \"\" + resultTable.getCachedCount())\r\n .replace(/\\[(.*)\\]/g, \"
$1\");\r\n var link = this.displayMessageDiv.querySelector(\"a.\" + this.cssPrefix + \"-download-all-link\");\r\n if (link) {\r\n link.addEventListener('click', this.downloadAllClickHandler);\r\n }\r\n domel(this.contentDiv).hide();\r\n domel(this.displayMessageDiv).show();\r\n };\r\n ResultFacet.prototype.hideUnableDisplayMessage = function () {\r\n domel(this.displayMessageDiv).hide();\r\n domel(this.contentDiv).show();\r\n };\r\n ResultFacet.prototype.getContext = function () {\r\n return this.container.getContext();\r\n };\r\n ResultFacet.prototype.getQuery = function () {\r\n return this.getContext().getQuery();\r\n };\r\n ResultFacet.prototype.saveToData = function () {\r\n return { title: this.title, type: this.getType() };\r\n };\r\n ResultFacet.prototype.loadFromData = function (data) {\r\n if (data) {\r\n this.title = data.title;\r\n }\r\n };\r\n ResultFacet.prototype.refresh = function () {\r\n this.hideUnableDisplayMessage();\r\n if (this.canDisplay()) {\r\n this.refreshCore();\r\n }\r\n else {\r\n this.showUnableDisplayMessage();\r\n }\r\n };\r\n ResultFacet.prototype.getChunksForLoading = function () {\r\n var resultTable = this.getContext().resultTable;\r\n var chunkSize = resultTable.chunkSize;\r\n var cachedChunks = resultTable.getCachedChunks();\r\n var chunksToLoad = [];\r\n if (cachedChunks[0].offset != 0) {\r\n chunksToLoad.push({ offset: 0 });\r\n }\r\n for (var i = 1; i < cachedChunks.length; i++) {\r\n var diffOffset = cachedChunks[i].offset - cachedChunks[i - 1].offset - chunkSize;\r\n if (diffOffset >= chunkSize) {\r\n var numbOfChunks = diffOffset / chunkSize;\r\n for (var j = 1; j <= numbOfChunks; j++) {\r\n chunksToLoad.push({ offset: cachedChunks[i - 1].offset + j * chunkSize });\r\n }\r\n }\r\n }\r\n var lastChunk = cachedChunks[cachedChunks.length - 1];\r\n var diff = resultTable.getTotal() - lastChunk.offset;\r\n if (diff >= chunkSize) {\r\n var numbOfChunks = diff / chunkSize;\r\n for (var j = 1; j <= numbOfChunks; j++) {\r\n chunksToLoad.push({ offset: lastChunk.offset + j * chunkSize });\r\n }\r\n }\r\n return chunksToLoad;\r\n };\r\n ResultFacet.prototype.onResize = function () {\r\n };\r\n return ResultFacet;\r\n}());\r\nexport { ResultFacet };\r\n//# sourceMappingURL=result_facet.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/facets/result_facet.js\n// module id = 45\n// module chunks = 0","/** Represents chart types. */\r\nexport var ChartType;\r\n(function (ChartType) {\r\n ChartType[ChartType[\"Column\"] = 3] = \"Column\";\r\n ChartType[ChartType[\"Histogram\"] = 4] = \"Histogram\";\r\n ChartType[ChartType[\"Bar\"] = 5] = \"Bar\";\r\n ChartType[ChartType[\"Combo\"] = 6] = \"Combo\";\r\n ChartType[ChartType[\"Area\"] = 7] = \"Area\";\r\n ChartType[ChartType[\"Line\"] = 9] = \"Line\";\r\n ChartType[ChartType[\"Pie\"] = 10] = \"Pie\";\r\n ChartType[ChartType[\"Donut\"] = 12] = \"Donut\";\r\n ChartType[ChartType[\"Gauge\"] = 17] = \"Gauge\";\r\n ChartType[ChartType[\"Candlestick\"] = 18] = \"Candlestick\";\r\n})(ChartType || (ChartType = {}));\r\n//# sourceMappingURL=chart_type.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/widgets/charts/chart_type.js\n// module id = 46\n// module chunks = 0","import { i18n } from '@easydata/core';\r\nimport { utils as dataUtils } from '@easydata/core';\r\nimport { EqContext, WidgetGroup } from '@easyquery/core';\r\nimport { DefaultDialogService, addElement, domel } from '@easydata/ui';\r\nimport { EasyGridWidget } from '../widgets/easy_grid_widget';\r\nimport { ChartJsWidget } from '../widgets/charts/chart_widget_chartjs';\r\nimport { EntitiesPanel } from '../widgets/entities_panel';\r\nimport { ColumnsPanel } from '../widgets/columns_panel';\r\nimport { ColumnsBar } from '../widgets/columns_bar';\r\nimport { LocaleWidget } from '../widgets/locale_widget';\r\nimport { QueryPanel } from '../widgets/query_panel';\r\nimport { ProcessWidget } from '../widgets/process_widget';\r\nimport { FilterBar } from '../widgets/filter_bar';\r\nimport { SortingBar } from '../widgets/sorting_bar';\r\nimport { QueryNameWidget } from '../widgets/queryname_widget';\r\nimport { StatementPanel } from '../widgets/statement_panel';\r\nimport { ResultFacetsPanel } from '../widgets/result_facets_panel';\r\nimport { eqCssPrefix } from '../utils/utils';\r\nimport { browserUtils } from '../utils/browser_utils';\r\nimport { ExportWidget } from '../widgets/export_widget';\r\nvar View = /** @class */ (function () {\r\n function View() {\r\n this.domRoots = [document];\r\n this.defaultViewOptions = {\r\n enableExport: true,\r\n disableConfirmationOnQueryChange: false,\r\n queryFileExtensions: 'text/xml,application/json',\r\n result: {\r\n clearResultOnQueryChange: true,\r\n showChart: true,\r\n showProcessIndicator: true\r\n },\r\n widgets: {\r\n resultGrid: {\r\n addColumns: false\r\n }\r\n }\r\n };\r\n this.resultOptions = {};\r\n this.enableExport = false;\r\n this.resetContext();\r\n this.renderSpinner();\r\n this.defaultErrorHandler = function (context, error) {\r\n console.error(error.action + \": \" + error.text);\r\n if (error.sourceError) {\r\n console.error(error.sourceError);\r\n }\r\n };\r\n }\r\n View.prototype.resetContext = function () {\r\n this.context = new EqContext();\r\n this.context\r\n .getServices()\r\n .registerDialogServiceResolver(function () { return new DefaultDialogService(); });\r\n };\r\n View.prototype.init = function (options) {\r\n // to support shadow DOM rendering\r\n if (options && options.shadowRoots)\r\n this.domRoots = this.domRoots.concat(options.shadowRoots);\r\n options = this.initOptions(options);\r\n this.initWidgets(options);\r\n this.context.init(options);\r\n this.initDone();\r\n };\r\n View.prototype.initDone = function () { };\r\n View.prototype.initWidgets = function (options) {\r\n var queryPanel = \"QueryPanel\";\r\n var columnsPanel = \"ColumnsPanel\";\r\n var entitiesPanel = \"EntitiesPanel\";\r\n var resultPanel = \"ResultPanel\";\r\n var columnsBar = \"ColumnsBar\";\r\n var sortingBar = \"SortingBar\";\r\n var filterBar = \"FilterBar\";\r\n var processBar = \"ProcessBar\";\r\n var statementPanel = \"StatementPanel\";\r\n var changeLocale = \"ChangeLocale\";\r\n var queryNameLabel = \"QueryNameLabel\";\r\n var facetsPanel = \"ResultFacetsPanel\";\r\n var resultCount = \"ResultCount\";\r\n var exportButton = \"ExportButton\";\r\n if (options.slots) {\r\n queryNameLabel = options.slots.queryNameLabel || queryNameLabel;\r\n queryPanel = options.slots.queryPanel || queryPanel;\r\n columnsPanel = options.slots.columnsPanel || columnsPanel;\r\n columnsBar = options.slots.columnsBar || columnsBar;\r\n entitiesPanel = options.slots.entitiesPanel || entitiesPanel;\r\n resultPanel = options.slots.resultPanel || resultPanel;\r\n statementPanel = options.slots.statementPanel || statementPanel;\r\n processBar = options.slots.processBar || processBar;\r\n changeLocale = options.slots.changeLocale || changeLocale;\r\n facetsPanel = options.slots.facetsPanel || facetsPanel;\r\n resultCount = options.slots.resultCountSpan || resultCount;\r\n filterBar = options.slots.filterBar || filterBar;\r\n exportButton = options.slots.exportButtons || exportButton;\r\n }\r\n var epElement = this.resolveElement(entitiesPanel);\r\n if (epElement && !this.entitiesPanelWidget) {\r\n this.entitiesPanelWidget = this.createEntitiesPanelWidget(epElement);\r\n this.context.addWidget(this.entitiesPanelWidget);\r\n }\r\n var cpElement = this.resolveElement(columnsPanel);\r\n if (cpElement && !this.columnsPanelWidget) {\r\n this.columnsPanelWidget = this.createColumnsPanelWidget(cpElement);\r\n this.context.addWidget(this.columnsPanelWidget);\r\n }\r\n var cbElement = this.resolveElement(columnsBar);\r\n if (cbElement && !this.columnsBarWidget) {\r\n this.columnsBarWidget = this.createColumnsBarWidget(cbElement);\r\n this.context.addWidget(this.columnsBarWidget);\r\n }\r\n var qpElement = this.resolveElement(queryPanel);\r\n if (qpElement && !this.queryPanelWidget) {\r\n this.queryPanelWidget = this.createQueryPanelWidget(qpElement);\r\n this.context.addWidget(this.queryPanelWidget);\r\n }\r\n this.resultPanelSlot = this.resolveElement(resultPanel);\r\n if (this.resultPanelSlot) {\r\n if (!this.resultGridWidget) {\r\n var gridPanel = addElement(this.resultPanelSlot, 'div', { cssClass: 'eqv-result-grid' });\r\n this.resultGridWidget = this.createResultGridWidget(gridPanel);\r\n this.context.addWidget(this.resultGridWidget);\r\n }\r\n if (this.resultOptions.showChart && !this.chartWidget) {\r\n var chartPanel = addElement(this.resultPanelSlot, 'div', { cssClass: 'eqv-chart-panel' });\r\n chartPanel.style.display = 'none';\r\n this.chartWidget = this.createChartWidget(chartPanel);\r\n this.context.addWidget(this.chartWidget);\r\n }\r\n }\r\n var qnElement = this.resolveElement(queryNameLabel);\r\n if (qnElement && !this.queryNameWidget) {\r\n this.queryNameWidget = this.createQueryNameWidget(qnElement);\r\n this.context.addWidget(this.queryNameWidget);\r\n }\r\n var fbElement = this.resolveElement(filterBar);\r\n if (fbElement && !this.filterBarWidget) {\r\n this.filterBarWidget = this.createFilterBarWidget(fbElement);\r\n this.context.addWidget(this.filterBarWidget);\r\n }\r\n var sbElement = this.resolveElement(sortingBar);\r\n if (sbElement && !this.sortingBarWidget) {\r\n this.sortingBarWidget = this.createSortingBarWidget(sbElement);\r\n this.context.addWidget(this.sortingBarWidget);\r\n }\r\n var pbElement = this.resolveElement(processBar);\r\n if (pbElement && !this.processWidget) {\r\n this.processWidget = this.createProcessWidget(pbElement);\r\n this.context.addWidget(this.processWidget);\r\n }\r\n var stElement = this.resolveElement(statementPanel);\r\n if (stElement && !this.statementPanelWidget) {\r\n this.statementPanelWidget = this.createStatementPanelWidget(stElement);\r\n this.context.addWidget(this.statementPanelWidget);\r\n }\r\n var clElement = this.resolveElement(changeLocale);\r\n if (clElement) {\r\n var widget = this.createLocaleWidget(clElement);\r\n this.context.addWidget(widget);\r\n }\r\n var fpElement = this.resolveElement(facetsPanel);\r\n if (fpElement && !this.resultFacetPanelWidget) {\r\n this.resultFacetPanelWidget = this.createResultFacetsPanel(fpElement);\r\n this.context.addWidget(this.resultFacetPanelWidget);\r\n }\r\n var ewElement = this.resolveElement(exportButton);\r\n if (ewElement && !this.exportWidget) {\r\n this.exportWidget = this.createExportWidget(ewElement);\r\n this.context.addWidget(this.exportWidget);\r\n }\r\n this.resultCountSlot = this.resolveElement(resultCount);\r\n };\r\n View.prototype.resolveElement = function (elementOrId) {\r\n if (typeof elementOrId === 'string') {\r\n for (var _i = 0, _a = this.domRoots; _i < _a.length; _i++) {\r\n var domRoot = _a[_i];\r\n var el = domRoot.getElementById(elementOrId);\r\n if (el)\r\n return el;\r\n }\r\n return null;\r\n }\r\n return elementOrId;\r\n };\r\n View.prototype.resolveElementsByClassName = function (className) {\r\n var result = [];\r\n for (var _i = 0, _a = this.domRoots; _i < _a.length; _i++) {\r\n var domRoot = _a[_i];\r\n var elemList = domRoot.querySelectorAll('.' + className);\r\n for (var i = 0; i < elemList.length; i++) {\r\n result.push(elemList[i]);\r\n }\r\n }\r\n return result;\r\n };\r\n /**\r\n * Shows records count.\r\n * @param count The value to show.\r\n */\r\n View.prototype.displayRecordsCount = function (count) {\r\n if (this.resultCountSlot && (typeof count !== 'undefined')) {\r\n this.resultCountSlot.style.display = \"inline\";\r\n this.resultCountSlot.innerHTML = i18n.getText(\"MsgResultCount\").replace(\"{0}\", count.toString());\r\n }\r\n };\r\n View.prototype.initOptions = function (options) {\r\n if (options) {\r\n options = dataUtils.assignDeep({}, this.defaultViewOptions, options);\r\n }\r\n else {\r\n options = this.defaultViewOptions;\r\n }\r\n if (!options.handlers) {\r\n options.handlers = {};\r\n }\r\n if (!options.handlers.onError) {\r\n options.handlers.onError = this.defaultErrorHandler;\r\n }\r\n if (!options.widgets) {\r\n options.widgets = {};\r\n }\r\n this.resultOptions = dataUtils.assignDeep(this.resultOptions, options.result);\r\n if (typeof this.resultOptions.showProcessIndicator == 'undefined') {\r\n this.resultOptions.showProcessIndicator = true;\r\n }\r\n else if (options.widgets.facetsPanel) {\r\n options.widgets.facetsPanel.showProcessIndicator\r\n = this.resultOptions.showProcessIndicator;\r\n }\r\n // support old format \r\n if (!options.widgets.easyGrid) {\r\n options.widgets.easyGrid = options.widgets.resultGrid || {};\r\n }\r\n // map columnTitleFormat option to widgets that have similar option\r\n if (options.columnTitleFormat) {\r\n options.widgets.entitiesPanel = options.widgets.entitiesPanel || {};\r\n options.widgets.entitiesPanel.columnTitleFormat = options.widgets.entitiesPanel.columnTitleFormat || options.columnTitleFormat;\r\n options.widgets.columnsBar = options.widgets.columnsBar || {};\r\n options.widgets.columnsBar.titleElementFormat = options.widgets.columnsBar.titleElementFormat || options.columnTitleFormat;\r\n options.widgets.columnsPanel = options.widgets.columnsPanel || {};\r\n options.widgets.columnsPanel.titleElementFormat = options.widgets.columnsPanel.titleElementFormat || options.columnTitleFormat;\r\n }\r\n options.widgets.easyGrid.paging =\r\n dataUtils.assignDeep(this.resultOptions.paging, options.widgets.easyGrid.paging);\r\n this.enableExport = options.enableExport || false;\r\n if (!options.widgets.exportWidget) {\r\n options.widgets.exportWidget = {};\r\n }\r\n options.widgets.exportWidget.enableExport = this.enableExport;\r\n return options;\r\n };\r\n View.prototype.getContext = function () {\r\n return this.context;\r\n };\r\n /**\r\n * Sets dialog service for the view\r\n * @param dialogService The dialog service.\r\n */\r\n View.prototype.setDialogService = function (dialogService) {\r\n this.context.getServices()\r\n .registerDialogServiceResolver(function () { return dialogService; });\r\n };\r\n /** @deprecated `executeQuery` is deprecated. Use `fetchData` instead*/\r\n View.prototype.executeQuery = function (options) {\r\n console.warn('`executeQuery` is deprecated. Use `fetchData` instead');\r\n this.fetchData(options);\r\n };\r\n /**\r\n * Fetches the data according to the query and other options defined in the context.\r\n * @param options The options.\r\n */\r\n View.prototype.fetchData = function (options) {\r\n var _this = this;\r\n options = options || { refresh: true };\r\n this.showResultSpinner();\r\n this.context.fetchData({\r\n options: {\r\n page: options.page,\r\n pageSize: options.pageSize\r\n },\r\n success: function (result) {\r\n _this.hideResultSpinner();\r\n _this.toggleExportButtons();\r\n _this.displayRecordsCount(_this.context.resultTable.getTotal());\r\n if (options.refresh === true) {\r\n _this.context.refreshWidgets(WidgetGroup.Result);\r\n }\r\n if (options.callback) {\r\n options.callback();\r\n }\r\n if (options.success) {\r\n options.success();\r\n }\r\n },\r\n error: function () {\r\n _this.hideResultSpinner();\r\n }\r\n });\r\n };\r\n View.prototype.toggleExportButtons = function () {\r\n if (this.enableExport && this.context.resultTable\r\n && this.context.resultTable.getCachedCount() > 0) {\r\n this.enableExportButtons();\r\n }\r\n else {\r\n this.disableExportButtons();\r\n }\r\n };\r\n View.prototype.enableExportButtons = function () {\r\n // Nothing to do\r\n };\r\n View.prototype.disableExportButtons = function () {\r\n // Nothing to do\r\n };\r\n View.prototype.renderSpinner = function () {\r\n var html = '
';\r\n ;\r\n this._spinnerDiv = domel('div')\r\n .addClass(\"eqjs-result-spinner\")\r\n .addChild('div', function (b) { return b\r\n .addClass(eqCssPrefix + \"-progress-win8\", browserUtils.getMobileCssClass())\r\n .addHtml(html); })\r\n .toDOM();\r\n };\r\n View.prototype.showResultSpinner = function () {\r\n if (this.resultOptions.showProcessIndicator && this.resultPanelSlot) {\r\n if (!this._spinnerDiv.parentNode) {\r\n for (var i = 0; i < this.resultPanelSlot.children.length; i++) {\r\n var el = this.resultPanelSlot.children[i];\r\n domel(el).hide();\r\n }\r\n this.resultPanelSlot.appendChild(this._spinnerDiv);\r\n }\r\n }\r\n };\r\n View.prototype.hideResultSpinner = function () {\r\n if (this.resultOptions.showProcessIndicator && this.resultPanelSlot) {\r\n if (this._spinnerDiv.parentNode) {\r\n this._spinnerDiv.parentNode.removeChild(this._spinnerDiv);\r\n for (var i = 0; i < this.resultPanelSlot.children.length; i++) {\r\n var el = this.resultPanelSlot.children[i];\r\n domel(el).show();\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Creates the widget that represents Chart Widget.\r\n * @param slot The HTMLElement to place the created widget in.\r\n * @returns the created Widget object.\r\n */\r\n View.prototype.createChartWidget = function (slotElement) {\r\n if (this.resultOptions.chartWidgetResolver) {\r\n return this.resultOptions.chartWidgetResolver(slotElement);\r\n }\r\n else {\r\n return new ChartJsWidget(slotElement);\r\n }\r\n };\r\n /**\r\n * Creates the widget that represents Grid Widget.\r\n * @param slot The HTMLElement to place the created widget in.\r\n * @returns the created Widget object.\r\n */\r\n View.prototype.createResultGridWidget = function (slotElement) {\r\n if (this.resultOptions.resultGridResolver) {\r\n return this.resultOptions.resultGridResolver(slotElement);\r\n }\r\n else {\r\n return new EasyGridWidget(slotElement);\r\n }\r\n };\r\n /**\r\n * Creates the widget that represents Entity Panel.\r\n * @param slot The HTMLElement to place the created widget in.\r\n * @returns the created Widget object.\r\n */\r\n View.prototype.createEntitiesPanelWidget = function (slot) {\r\n return new EntitiesPanel(slot);\r\n };\r\n /**\r\n * Creates the widget that represents Columns Panel.\r\n * @param slot The HTMLElement to place the created widget in.\r\n * @returns the created Widget object.\r\n */\r\n View.prototype.createColumnsPanelWidget = function (slot) {\r\n return new ColumnsPanel(slot);\r\n };\r\n /**\r\n * Creates the widget that represents Query Panel.\r\n * @param slot The HTMLElement to place the created widget in.\r\n * @returns the created Widget object.\r\n */\r\n View.prototype.createQueryPanelWidget = function (slot) {\r\n return new QueryPanel(slot);\r\n };\r\n /**\r\n * Creates the widget that represents Locale Widget.\r\n * @param slot The HTMLElement to place the created widget in.\r\n * @returns the created Widget object.\r\n */\r\n View.prototype.createLocaleWidget = function (slot) {\r\n return new LocaleWidget(slot);\r\n };\r\n /**\r\n * Creates the widget that represents Process Widget.\r\n * @param slot The HTMLElement to place the created widget in.\r\n * @returns the created Widget object.\r\n */\r\n View.prototype.createProcessWidget = function (slot) {\r\n return new ProcessWidget(slot);\r\n };\r\n /**\r\n * Creates the widget that represents Columns Bar.\r\n * @param slot The HTMLElement to place the created widget in.\r\n * @returns the created Widget object.\r\n */\r\n View.prototype.createColumnsBarWidget = function (slot) {\r\n return new ColumnsBar(slot);\r\n };\r\n /**\r\n * Creates the widget that represents Filter Bar.\r\n * @param slot The HTMLElement to place the created widget in.\r\n * @returns the created Widget object.\r\n */\r\n View.prototype.createFilterBarWidget = function (slot) {\r\n return new FilterBar(slot);\r\n };\r\n /**\r\n * Creates the widget that represents Sorting Bar.\r\n * @param slot The HTMLElement to place the created widget in.\r\n * @returns the created Widget object.\r\n */\r\n View.prototype.createSortingBarWidget = function (slot) {\r\n return new SortingBar(slot);\r\n };\r\n /**\r\n * Creates the widget that represents Query Name Widget.\r\n * @param slot The HTMLElement to place the created widget in.\r\n * @returns the created Widget object.\r\n */\r\n View.prototype.createQueryNameWidget = function (slot) {\r\n return new QueryNameWidget(slot);\r\n };\r\n /**\r\n * Creates the widget that represents Statement Panel Widget.\r\n * @param slot\r\n */\r\n View.prototype.createStatementPanelWidget = function (slot) {\r\n return new StatementPanel(slot);\r\n };\r\n /**\r\n * Creates the widget that represents Result Facets Panel Widget.\r\n * @param slot\r\n */\r\n View.prototype.createResultFacetsPanel = function (slot) {\r\n return new ResultFacetsPanel(slot);\r\n };\r\n /**\r\n * Creates the widget that represents Export funcionality.\r\n * @param slot\r\n */\r\n View.prototype.createExportWidget = function (slot) {\r\n return new ExportWidget(slot);\r\n };\r\n View.prototype.detach = function () {\r\n if (this.entitiesPanelWidget) {\r\n this.entitiesPanelWidget.destroy();\r\n this.entitiesPanelWidget = null;\r\n }\r\n if (this.columnsPanelWidget) {\r\n this.columnsPanelWidget.destroy();\r\n this.columnsPanelWidget = null;\r\n }\r\n if (this.queryPanelWidget) {\r\n this.queryPanelWidget.destroy();\r\n this.queryPanelWidget = null;\r\n }\r\n if (this.columnsBarWidget) {\r\n this.columnsBarWidget.destroy();\r\n this.columnsBarWidget = null;\r\n }\r\n if (this.resultGridWidget) {\r\n this.resultGridWidget.destroy();\r\n this.resultGridWidget = null;\r\n }\r\n if (this.chartWidget) {\r\n this.chartWidget.destroy();\r\n this.chartWidget = null;\r\n }\r\n if (this.queryNameWidget) {\r\n this.queryNameWidget.destroy();\r\n this.queryNameWidget = null;\r\n }\r\n if (this.processWidget) {\r\n this.processWidget.destroy();\r\n this.processWidget = null;\r\n }\r\n if (this.localeWidget) {\r\n this.localeWidget.destroy();\r\n this.localeWidget = null;\r\n }\r\n if (this.statementPanelWidget) {\r\n this.statementPanelWidget.destroy();\r\n this.statementPanelWidget = null;\r\n }\r\n if (this.filterBarWidget) {\r\n this.filterBarWidget.destroy();\r\n this.filterBarWidget = null;\r\n }\r\n if (this.sortingBarWidget) {\r\n this.sortingBarWidget.destroy();\r\n this.sortingBarWidget = null;\r\n }\r\n if (this.statementWidget) {\r\n this.statementWidget.destroy();\r\n this.statementWidget = null;\r\n }\r\n if (this.exportWidget) {\r\n this.exportWidget.destroy();\r\n this.exportWidget = null;\r\n }\r\n if (this.resultFacetPanelWidget) {\r\n this.resultFacetPanelWidget.destroy();\r\n this.resultFacetPanelWidget = null;\r\n }\r\n if (this.resultCountSlot) {\r\n this.resultCountSlot.innerHTML = '';\r\n this.resultCountSlot = null;\r\n }\r\n if (this.resultPanelSlot) {\r\n this.resultPanelSlot.innerHTML = '';\r\n this.resultPanelSlot = null;\r\n }\r\n this.domRoots = [document];\r\n this.resetContext();\r\n };\r\n return View;\r\n}());\r\nexport { View };\r\n//# sourceMappingURL=view.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/views/view.js\n// module id = 47\n// module chunks = 0","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\n} catch(e) {\n\t// This works if the window reference is available\n\tif(typeof window === \"object\")\n\t\tg = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 48\n// module chunks = 0","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/object-assign/index.js\n// module id = 49\n// module chunks = 0","// Written in this round about way for babel-transform-imports\nimport Router from \"react-router/es/Router\";\n\nexport default Router;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/Router.js\n// module id = 50\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport warning from \"warning\";\nimport invariant from \"invariant\";\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport matchPath from \"./matchPath\";\n\nvar isEmptyChildren = function isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n};\n\n/**\n * The public API for matching a single path and rendering.\n */\n\nvar Route = function (_React$Component) {\n _inherits(Route, _React$Component);\n\n function Route() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Route);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n match: _this.computeMatch(_this.props, _this.context.router)\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Route.prototype.getChildContext = function getChildContext() {\n return {\n router: _extends({}, this.context.router, {\n route: {\n location: this.props.location || this.context.router.route.location,\n match: this.state.match\n }\n })\n };\n };\n\n Route.prototype.computeMatch = function computeMatch(_ref, router) {\n var computedMatch = _ref.computedMatch,\n location = _ref.location,\n path = _ref.path,\n strict = _ref.strict,\n exact = _ref.exact,\n sensitive = _ref.sensitive;\n\n if (computedMatch) return computedMatch; // already computed the match for us\n\n invariant(router, \"You should not use or withRouter() outside a \");\n\n var route = router.route;\n\n var pathname = (location || route.location).pathname;\n\n return matchPath(pathname, { path: path, strict: strict, exact: exact, sensitive: sensitive }, route.match);\n };\n\n Route.prototype.componentWillMount = function componentWillMount() {\n warning(!(this.props.component && this.props.render), \"You should not use and in the same route; will be ignored\");\n\n warning(!(this.props.component && this.props.children && !isEmptyChildren(this.props.children)), \"You should not use and in the same route; will be ignored\");\n\n warning(!(this.props.render && this.props.children && !isEmptyChildren(this.props.children)), \"You should not use and in the same route; will be ignored\");\n };\n\n Route.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps, nextContext) {\n warning(!(nextProps.location && !this.props.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.');\n\n warning(!(!nextProps.location && this.props.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.');\n\n this.setState({\n match: this.computeMatch(nextProps, nextContext.router)\n });\n };\n\n Route.prototype.render = function render() {\n var match = this.state.match;\n var _props = this.props,\n children = _props.children,\n component = _props.component,\n render = _props.render;\n var _context$router = this.context.router,\n history = _context$router.history,\n route = _context$router.route,\n staticContext = _context$router.staticContext;\n\n var location = this.props.location || route.location;\n var props = { match: match, location: location, history: history, staticContext: staticContext };\n\n if (component) return match ? React.createElement(component, props) : null;\n\n if (render) return match ? render(props) : null;\n\n if (typeof children === \"function\") return children(props);\n\n if (children && !isEmptyChildren(children)) return React.Children.only(children);\n\n return null;\n };\n\n return Route;\n}(React.Component);\n\nRoute.propTypes = {\n computedMatch: PropTypes.object, // private, from \n path: PropTypes.string,\n exact: PropTypes.bool,\n strict: PropTypes.bool,\n sensitive: PropTypes.bool,\n component: PropTypes.func,\n render: PropTypes.func,\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n location: PropTypes.object\n};\nRoute.contextTypes = {\n router: PropTypes.shape({\n history: PropTypes.object.isRequired,\n route: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n })\n};\nRoute.childContextTypes = {\n router: PropTypes.object.isRequired\n};\n\n\nexport default Route;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/Route.js\n// module id = 51\n// module chunks = 0","import pathToRegexp from \"path-to-regexp\";\n\nvar patternCache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nvar compileGenerator = function compileGenerator(pattern) {\n var cacheKey = pattern;\n var cache = patternCache[cacheKey] || (patternCache[cacheKey] = {});\n\n if (cache[pattern]) return cache[pattern];\n\n var compiledGenerator = pathToRegexp.compile(pattern);\n\n if (cacheCount < cacheLimit) {\n cache[pattern] = compiledGenerator;\n cacheCount++;\n }\n\n return compiledGenerator;\n};\n\n/**\n * Public API for generating a URL pathname from a pattern and parameters.\n */\nvar generatePath = function generatePath() {\n var pattern = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (pattern === \"/\") {\n return pattern;\n }\n var generator = compileGenerator(pattern);\n return generator(params, { pretty: true });\n};\n\nexport default generatePath;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/generatePath.js\n// module id = 52\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n active: PropTypes.bool,\n 'aria-label': PropTypes.string,\n block: PropTypes.bool,\n color: PropTypes.string,\n disabled: PropTypes.bool,\n outline: PropTypes.bool,\n tag: tagPropType,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n onClick: PropTypes.func,\n size: PropTypes.string,\n children: PropTypes.node,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n close: PropTypes.bool\n};\nvar defaultProps = {\n color: 'secondary',\n tag: 'button'\n};\n\nvar Button = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Button, _React$Component);\n\n function Button(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = Button.prototype;\n\n _proto.onClick = function onClick(e) {\n if (this.props.disabled) {\n e.preventDefault();\n return;\n }\n\n if (this.props.onClick) {\n return this.props.onClick(e);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n active = _this$props.active,\n ariaLabel = _this$props['aria-label'],\n block = _this$props.block,\n className = _this$props.className,\n close = _this$props.close,\n cssModule = _this$props.cssModule,\n color = _this$props.color,\n outline = _this$props.outline,\n size = _this$props.size,\n Tag = _this$props.tag,\n innerRef = _this$props.innerRef,\n attributes = _objectWithoutPropertiesLoose(_this$props, [\"active\", \"aria-label\", \"block\", \"className\", \"close\", \"cssModule\", \"color\", \"outline\", \"size\", \"tag\", \"innerRef\"]);\n\n if (close && typeof attributes.children === 'undefined') {\n attributes.children = /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": true\n }, \"\\xD7\");\n }\n\n var btnOutlineColor = \"btn\" + (outline ? '-outline' : '') + \"-\" + color;\n var classes = mapToCssModules(classNames(className, {\n close: close\n }, close || 'btn', close || btnOutlineColor, size ? \"btn-\" + size : false, block ? 'btn-block' : false, {\n active: active,\n disabled: this.props.disabled\n }), cssModule);\n\n if (attributes.href && Tag === 'button') {\n Tag = 'a';\n }\n\n var defaultAriaLabel = close ? 'Close' : null;\n return /*#__PURE__*/React.createElement(Tag, _extends({\n type: Tag === 'button' && attributes.onClick ? 'button' : undefined\n }, attributes, {\n className: classes,\n ref: innerRef,\n onClick: this.onClick,\n \"aria-label\": ariaLabel || defaultAriaLabel\n }));\n };\n\n return Button;\n}(React.Component);\n\nButton.propTypes = propTypes;\nButton.defaultProps = defaultProps;\nexport default Button;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/Button.js\n// module id = 53\n// module chunks = 0","function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nmodule.exports = _inheritsLoose;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@babel/runtime/helpers/inheritsLoose.js\n// module id = 54\n// module chunks = 0","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@babel/runtime/helpers/assertThisInitialized.js\n// module id = 55\n// module chunks = 0","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@babel/runtime/helpers/defineProperty.js\n// module id = 56\n// module chunks = 0","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\torigDefineProperty(obj, 'x', { enumerable: false, value: obj });\n\t\t// eslint-disable-next-line no-unused-vars, no-restricted-syntax\n\t\tfor (var _ in obj) { // jscs:ignore disallowUnusedVariables\n\t\t\treturn false;\n\t\t}\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/define-properties/index.js\n// module id = 57\n// module chunks = 0","import _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport * as React from 'react';\nimport createContext from '@hypnosphi/create-react-context';\nexport var ManagerReferenceNodeContext = createContext();\nexport var ManagerReferenceNodeSetterContext = createContext();\n\nvar Manager =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Manager, _React$Component);\n\n function Manager() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"referenceNode\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"setReferenceNode\", function (newReferenceNode) {\n if (newReferenceNode && _this.referenceNode !== newReferenceNode) {\n _this.referenceNode = newReferenceNode;\n\n _this.forceUpdate();\n }\n });\n\n return _this;\n }\n\n var _proto = Manager.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.referenceNode = null;\n };\n\n _proto.render = function render() {\n return React.createElement(ManagerReferenceNodeContext.Provider, {\n value: this.referenceNode\n }, React.createElement(ManagerReferenceNodeSetterContext.Provider, {\n value: this.setReferenceNode\n }, this.props.children));\n };\n\n return Manager;\n}(React.Component);\n\nexport { Manager as default };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-popper/lib/esm/Manager.js\n// module id = 58\n// module chunks = 0","\"use strict\";\n\nvar _CSSTransition = _interopRequireDefault(require(\"./CSSTransition\"));\n\nvar _ReplaceTransition = _interopRequireDefault(require(\"./ReplaceTransition\"));\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = {\n Transition: _Transition.default,\n TransitionGroup: _TransitionGroup.default,\n ReplaceTransition: _ReplaceTransition.default,\n CSSTransition: _CSSTransition.default\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-transition-group/index.js\n// module id = 59\n// module chunks = 0","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Transition } from 'react-transition-group';\nimport { mapToCssModules, TransitionTimeouts, TransitionStatuses, tagPropType } from './utils';\n\nvar CarouselItem = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CarouselItem, _React$Component);\n\n function CarouselItem(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n startAnimation: false\n };\n _this.onEnter = _this.onEnter.bind(_assertThisInitialized(_this));\n _this.onEntering = _this.onEntering.bind(_assertThisInitialized(_this));\n _this.onExit = _this.onExit.bind(_assertThisInitialized(_this));\n _this.onExiting = _this.onExiting.bind(_assertThisInitialized(_this));\n _this.onExited = _this.onExited.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = CarouselItem.prototype;\n\n _proto.onEnter = function onEnter(node, isAppearing) {\n this.setState({\n startAnimation: false\n });\n this.props.onEnter(node, isAppearing);\n };\n\n _proto.onEntering = function onEntering(node, isAppearing) {\n // getting this variable triggers a reflow\n var offsetHeight = node.offsetHeight;\n this.setState({\n startAnimation: true\n });\n this.props.onEntering(node, isAppearing);\n return offsetHeight;\n };\n\n _proto.onExit = function onExit(node) {\n this.setState({\n startAnimation: false\n });\n this.props.onExit(node);\n };\n\n _proto.onExiting = function onExiting(node) {\n this.setState({\n startAnimation: true\n });\n node.dispatchEvent(new CustomEvent('slide.bs.carousel'));\n this.props.onExiting(node);\n };\n\n _proto.onExited = function onExited(node) {\n node.dispatchEvent(new CustomEvent('slid.bs.carousel'));\n this.props.onExited(node);\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n isIn = _this$props.in,\n children = _this$props.children,\n cssModule = _this$props.cssModule,\n slide = _this$props.slide,\n Tag = _this$props.tag,\n className = _this$props.className,\n transitionProps = _objectWithoutPropertiesLoose(_this$props, [\"in\", \"children\", \"cssModule\", \"slide\", \"tag\", \"className\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, transitionProps, {\n enter: slide,\n exit: slide,\n in: isIn,\n onEnter: this.onEnter,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }), function (status) {\n var direction = _this2.context.direction;\n var isActive = status === TransitionStatuses.ENTERED || status === TransitionStatuses.EXITING;\n var directionClassName = (status === TransitionStatuses.ENTERING || status === TransitionStatuses.EXITING) && _this2.state.startAnimation && (direction === 'right' ? 'carousel-item-left' : 'carousel-item-right');\n var orderClassName = status === TransitionStatuses.ENTERING && (direction === 'right' ? 'carousel-item-next' : 'carousel-item-prev');\n var itemClasses = mapToCssModules(classNames(className, 'carousel-item', isActive && 'active', directionClassName, orderClassName), cssModule);\n return /*#__PURE__*/React.createElement(Tag, {\n className: itemClasses\n }, children);\n });\n };\n\n return CarouselItem;\n}(React.Component);\n\nCarouselItem.propTypes = _objectSpread(_objectSpread({}, Transition.propTypes), {}, {\n tag: tagPropType,\n in: PropTypes.bool,\n cssModule: PropTypes.object,\n children: PropTypes.node,\n slide: PropTypes.bool,\n className: PropTypes.string\n});\nCarouselItem.defaultProps = _objectSpread(_objectSpread({}, Transition.defaultProps), {}, {\n tag: 'div',\n timeout: TransitionTimeouts.Carousel,\n slide: true\n});\nCarouselItem.contextTypes = {\n direction: PropTypes.string\n};\nexport default CarouselItem;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/CarouselItem.js\n// module id = 60\n// module chunks = 0","export var EditorTag = {\r\n /** Unknown tag value */\r\n Unknown: \"Unknown\",\r\n /** Edit tag value */\r\n Edit: \"EDIT\",\r\n /** DateTime tag value */\r\n DateTime: \"DATETIME\",\r\n /** List tag value */\r\n List: \"LIST\",\r\n /** CustomList tag value */\r\n CustomList: \"CUSTOMLIST\"\r\n};\r\n//# sourceMappingURL=editor_tag.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easydata/core/dist/lib/types/editor_tag.js\n// module id = 61\n// module chunks = 0","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { DataType, MetaData, utils as dataUtils } from '@easydata/core';\r\nimport { i18n } from '@easydata/core';\r\nimport { AggrFunction } from './aggr_function';\r\nimport { Operator, Operand } from './operator';\r\nimport { Entity, EntityAttr } from './entity';\r\nimport { DataKind } from '../types/data_kind';\r\nimport { EqEditorTag } from '../types/eq_editor_tag';\r\nimport { Query } from '../query/query';\r\nimport { ExprTag } from '../types/expr_tag';\r\nimport { Tree } from '../common/tree';\r\n/**\r\n * Represents a data model\r\n */\r\nvar DataModel = /** @class */ (function (_super) {\r\n __extends(DataModel, _super);\r\n /** The default constructor. */\r\n function DataModel() {\r\n var _this = _super.call(this) || this;\r\n _this.mainEntity = null;\r\n _this.operators = new Array();\r\n _this.rootEntity = new Entity();\r\n _this.aggrFunctions = new Array();\r\n _this.dateMacros = ['${{Today}}', '${{Yesterday}}',\r\n '${{Tomorrow}}', '${{FirstDayOfMonth}}', '${{LastDayOfMonth}}',\r\n '${{FirstDayOfWeek}}', '${{FirstDayOfYear}}', '${{FirstDayOfNextWeek}}', '${{FirstDayOfPrevMonth}}',\r\n '${{FirstDayOfNextMonth}}', '${{FirstDayOfNextYear}}', '${{FirstDayOfPrevYear}}', '${{FirstDayOfPrevWeek}}'];\r\n _this.timeMacros = ['${{Now}}', '${{HourStart}}', '${{Midnight}}', '${{Noon}}'];\r\n _this.links = [];\r\n return _this;\r\n }\r\n /**\r\n * Gets the main entity of model\r\n * @return The main entity.\r\n */\r\n DataModel.prototype.getMainEntity = function () {\r\n return this.mainEntity;\r\n };\r\n /**\r\n * Loads data model from JSON.\r\n * @param stringJson The JSON string.\r\n */\r\n DataModel.prototype.loadFromJSON = function (stringJson) {\r\n var model = JSON.parse(stringJson);\r\n this.loadFromData(model);\r\n };\r\n /**\r\n * Loads data model from its JSON representation object.\r\n * @param data The JSON representation object.\r\n */\r\n DataModel.prototype.loadFromData = function (data) {\r\n _super.prototype.loadFromData.call(this, data);\r\n //Operators\r\n this.operators = new Array();\r\n if (data.operators) {\r\n for (var i = 0; i < data.operators.length; i++) {\r\n var newOperator = new Operator();\r\n newOperator.loadFromData(this, data.operators[i]);\r\n this.operators.push(newOperator);\r\n }\r\n }\r\n //rootEntity\r\n this.rootEntity.loadFromData(this, data.entroot);\r\n //Aggr Functions\r\n this.aggrFunctions = new Array();\r\n if (data.aggrfuncs) {\r\n for (var i = 0; i < data.aggrfuncs.length; i++) {\r\n var newAggrFunc = new AggrFunction();\r\n newAggrFunc.loadFromData(data.aggrfuncs[i]);\r\n this.aggrFunctions.push(newAggrFunc);\r\n }\r\n }\r\n };\r\n /**\r\n * Gets the data model object.\r\n * @returns Tha data model.\r\n */\r\n DataModel.prototype.getObject = function () {\r\n return this;\r\n };\r\n /**\r\n * Sets data to data model.\r\n * @param model Its JSON representation object or JSON string.\r\n */\r\n DataModel.prototype.setData = function (model) {\r\n if (typeof model === 'string') {\r\n this.loadFromJSON(model);\r\n }\r\n else {\r\n this.loadFromData(model);\r\n }\r\n };\r\n /**\r\n * Creates entity.\r\n * @param parent The parent entity.\r\n * @returns The Entity.\r\n */\r\n DataModel.prototype.createEntity = function (parent) {\r\n return new Entity(parent);\r\n };\r\n /**\r\n * Creates entity attribute.\r\n * @param parent The parent entity.\r\n * @returns The entity attribute.\r\n */\r\n DataModel.prototype.createEntityAttr = function (parent) {\r\n return new EntityAttr(parent);\r\n };\r\n /**\r\n * Creates query.\r\n * @returns The Query.\r\n */\r\n DataModel.prototype.createQuery = function () {\r\n return new Query(this);\r\n };\r\n /**\r\n * Gets root entity of the data model.\r\n * @returns The root entity.\r\n */\r\n DataModel.prototype.getRootEntity = function () {\r\n return this.rootEntity;\r\n };\r\n /**\r\n * Finds editor by its ID.\r\n * @param editorId The editor ID.\r\n * @returns The value editor or `null`.\r\n */\r\n DataModel.prototype.getEditorById = function (editorId) {\r\n return _super.prototype.getEditorById.call(this, editorId);\r\n };\r\n /**\r\n * Gets entity attribute by its ID.\r\n * This function runs through all attributes inside specified model (it's root entity and all its sub-entities).\r\n * @param attrId The attribute ID.\r\n * @returns The attribute or `null`.\r\n */\r\n DataModel.prototype.getAttributeById = function (attrId) {\r\n var attr = this.getEntityAttrById(this.getRootEntity(), attrId);\r\n if (!attr) {\r\n return null;\r\n }\r\n return attr;\r\n };\r\n /**\r\n * Checks wether attribute contains such property.\r\n * @param attrId The attribute ID.\r\n * @param propName The property name.\r\n * @returns `true` if the attribute contains the property, otherwise `false`.\r\n */\r\n DataModel.prototype.checkAttrProperty = function (attrId, propName) {\r\n var attribute = this.getAttributeById(attrId);\r\n if (attribute) {\r\n if (typeof attribute[propName] === 'undefined') {\r\n throw 'No such property: ' + propName;\r\n }\r\n if (attribute[propName]) {\r\n return true;\r\n }\r\n else if (attribute.lookupAttr) {\r\n attrId = attribute.lookupAttr;\r\n attribute = this.getAttributeById(attrId);\r\n return attribute && attribute[propName];\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n else\r\n return false;\r\n };\r\n /**\r\n * Gets entity attribute by its ID.\r\n * This function runs through all attributes inside specified entity and all its sub-entities.\r\n * @param entity\r\n * @param attrId\r\n * @returns The attribute or `null`.\r\n */\r\n DataModel.prototype.getEntityAttrById = function (entity, attrId) {\r\n return _super.prototype.getEntityAttrById.call(this, entity, attrId);\r\n };\r\n DataModel.prototype._listByEntityWithFilter = function (entity, filterFunc) {\r\n var result = new Array();\r\n var caption;\r\n var ent = null;\r\n if (entity.subEntities) {\r\n var subEntityCount = entity.subEntities.length;\r\n for (var entIdx = 0; entIdx < subEntityCount; entIdx++) {\r\n ent = entity.subEntities[entIdx];\r\n if (!filterFunc || filterFunc(ent, null)) {\r\n caption = i18n.getText('Entities', ent.name);\r\n if (!caption) {\r\n caption = ent.caption;\r\n }\r\n var newEnt = dataUtils.assign(new Entity(), { id: ent.name, text: caption, items: [], isEntity: true });\r\n newEnt.items = this._listByEntityWithFilter(ent, filterFunc);\r\n if (newEnt.items.length > 0)\r\n result.push(newEnt);\r\n }\r\n }\r\n }\r\n var attr = null;\r\n if (entity.attributes) {\r\n var attrCount = entity.attributes.length;\r\n for (var attrIdx = 0; attrIdx < attrCount; attrIdx++) {\r\n attr = entity.attributes[attrIdx];\r\n if (!filterFunc || filterFunc(entity, attr)) {\r\n caption = i18n.getText('Attributes', attr.id);\r\n if (!caption)\r\n caption = attr.caption;\r\n var newEnt = dataUtils.assign(new Entity(), { id: attr.id, text: caption, dataType: attr.dataType });\r\n result.push(newEnt);\r\n }\r\n }\r\n }\r\n return result;\r\n };\r\n DataModel.prototype._listByEntity = function (entity, opts, filterFunc) {\r\n opts = opts || {};\r\n var resultEntities = [];\r\n var resultAttributes = [];\r\n var caption;\r\n var ent = null;\r\n if (entity.subEntities) {\r\n var subEntityCount = entity.subEntities.length;\r\n for (var entIdx = 0; entIdx < subEntityCount; entIdx++) {\r\n ent = entity.subEntities[entIdx];\r\n if (!filterFunc || filterFunc(ent, null)) {\r\n if (opts.addUIC !== false && ent.useInConditions !== false ||\r\n opts.addUIR !== false && ent.useInResult !== false ||\r\n opts.addUIS !== false && ent.useInSorting !== false) {\r\n caption = i18n.getText('Entities', ent.name) || ent.caption;\r\n var newEnt = dataUtils.assign(new Entity(), {\r\n id: ent.name,\r\n text: caption,\r\n items: [],\r\n isEntity: true,\r\n description: ent.description\r\n });\r\n var newOpts = dataUtils.assign({}, opts);\r\n newOpts.includeRootData = false;\r\n newEnt.items = this._listByEntity(ent, newOpts, filterFunc);\r\n if (newEnt.items.length > 0) {\r\n resultEntities.push(newEnt);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n var attr = null;\r\n if (entity.attributes) {\r\n var attrCount = entity.attributes.length;\r\n for (var attrIdx = 0; attrIdx < attrCount; attrIdx++) {\r\n attr = entity.attributes[attrIdx];\r\n if (!filterFunc || filterFunc(entity, attr)) {\r\n if (opts.addUIC !== false && attr.useInConditions !== false ||\r\n opts.addUIR !== false && attr.useInResult !== false ||\r\n opts.addUIS !== false && attr.useInSorting !== false) {\r\n caption = i18n.getText('Attributes', attr.id) || attr.caption;\r\n resultAttributes.push(dataUtils.assign(new EntityAttr(entity), { id: attr.id, text: caption, dataType: attr.dataType, lookupAttr: attr.lookupAttr, description: attr.description }));\r\n }\r\n }\r\n }\r\n }\r\n var sortCheck = function (a, b) {\r\n if (a.text.toLowerCase() == b.text.toLowerCase()) {\r\n return 0;\r\n }\r\n if (a.text.toLowerCase() > b.text.toLowerCase()) {\r\n return 1;\r\n }\r\n return -1;\r\n };\r\n if (opts.sortEntities) {\r\n resultEntities.sort(sortCheck);\r\n resultAttributes.sort(sortCheck);\r\n }\r\n var result;\r\n if (!opts.attrPlacement || opts.attrPlacement == 0) {\r\n result = resultEntities.concat(resultAttributes);\r\n }\r\n else {\r\n result = resultAttributes.concat(resultEntities);\r\n }\r\n if (opts.attrPlacement == 2) {\r\n result.sort(sortCheck);\r\n }\r\n if (opts.includeRootData) {\r\n caption = i18n.getText('Entities', entity.name);\r\n if (!caption)\r\n caption = entity.caption;\r\n return { id: entity.name, text: caption, items: result };\r\n }\r\n else {\r\n return result;\r\n }\r\n };\r\n /**\r\n * Clears data model.\r\n */\r\n DataModel.prototype.clear = function () {\r\n _super.prototype.clear.call(this);\r\n this.operators = [];\r\n this.aggrFunctions = [];\r\n };\r\n /**\r\n * Add or update an operator.\r\n * @param desc The operator descriptor.\r\n * @returns The operator.\r\n */\r\n DataModel.prototype.addOrUpdateOperator = function (desc) {\r\n var op = dataUtils.findItemById(this.operators, desc.id);\r\n if (!op) {\r\n op = new Operator();\r\n op.id = desc.id;\r\n this.operators.push(op);\r\n }\r\n op.caption = desc.caption;\r\n op.expr = desc.expr || '';\r\n op.displayFormat = desc.format;\r\n op.defaultOperand = new Operand();\r\n op.defaultOperand.kind = desc.kind || DataKind.Scalar;\r\n if (desc.appliedTypes)\r\n op.appliedTypes = desc.appliedTypes;\r\n if (desc.paramCount > 0) {\r\n op.paramCount = desc.paramCount;\r\n }\r\n this.runThroughEntities(function (attr, opts) {\r\n if (attr.operators.indexOf(op.id) < 0 && op.appliedTypes.indexOf(attr.dataType) >= 0) {\r\n attr.operators.push(op.id);\r\n }\r\n });\r\n return op;\r\n };\r\n /**\r\n * Removes an operator.\r\n * @param id The id.\r\n * @param soft If `false` - removes operators from model and attributes. Otherwise only\r\n * from attributes.\r\n */\r\n DataModel.prototype.removeOperator = function (id, soft) {\r\n if (soft === void 0) { soft = false; }\r\n var op = dataUtils.findItemById(this.operators, id);\r\n if (op) {\r\n if (!soft)\r\n dataUtils.removeArrayItem(this.operators, op);\r\n this.runThroughEntities(function (attr, opts) {\r\n dataUtils.removeArrayItem(attr.operators, op.id);\r\n });\r\n }\r\n };\r\n /**\r\n * Get operators for data type.\r\n * @param type The data type\r\n * @return The array of operator ids.\r\n */\r\n DataModel.prototype.getOperatorIdsByDataType = function (type) {\r\n switch (type) {\r\n case DataType.String:\r\n case DataType.Memo:\r\n return 'StartsWith,EndsWith,Contains,Equal,InList,NotStartsWith,NotEndsWith,NotContains,NotEqual,NotInList,IsNull,IsNotNull'.split(',');\r\n case DataType.Guid:\r\n return 'Equal,NotEqual'.split(',');\r\n case DataType.Date:\r\n case DataType.DateTime:\r\n return 'DateWithinToday,DateWithinThisWeek,DateWithinPrevWeek,DateWithinThisMonth,DateWithinPrevMonth,DateWithinThisYear,DateWithinPrevYear,DateBeforePrecise,DateAfterPrecise,DatePeriodPrecise,IsNull,IsNotNull'.split(',');\r\n case DataType.Time:\r\n return 'TimeBeforePrecise,TimeAfterPrecise,TimePeriodPrecise,IsNull,IsNotNull'.split(',');\r\n case DataType.Byte:\r\n case DataType.Word:\r\n case DataType.Int32:\r\n case DataType.Int64:\r\n case DataType.Float:\r\n case DataType.Currency:\r\n case DataType.BCD:\r\n case DataType.Autoinc:\r\n case DataType.Unknown:\r\n return 'Equal,Between,LessThan,LessOrEqual,GreaterThan,GreaterOrEqual,InList,NotEqual,NotBetween,NotInList,IsNull,IsNotNull'.split(',');\r\n case DataType.Bool:\r\n return 'IsTrue,NotTrue'.split(',');\r\n default:\r\n var result = [];\r\n for (var _i = 0, _a = this.operators; _i < _a.length; _i++) {\r\n var op = _a[_i];\r\n if (op.appliedTypes.indexOf(type) >= 0)\r\n result.push(op.id);\r\n }\r\n return result;\r\n }\r\n };\r\n /**\r\n * Builds entities tree used in query.\r\n * @param query The query.\r\n */\r\n DataModel.prototype.buildQueryPath = function (query) {\r\n var entity = this.mainEntity || this.rootEntity;\r\n var tree = this.createTreeNodeFromEntity(entity);\r\n tree.setParents();\r\n return tree;\r\n };\r\n DataModel.prototype.createTreeNodeFromEntity = function (entity) {\r\n var tree = new Tree(entity);\r\n for (var _i = 0, _a = entity.subEntities; _i < _a.length; _i++) {\r\n var subEnentity = _a[_i];\r\n tree.addChild(this.createTreeNodeFromEntity(subEnentity));\r\n }\r\n return tree;\r\n };\r\n /**\r\n * Get Entities used in query.\r\n * @param query The query.\r\n */\r\n DataModel.prototype.getEntitiesInQuery = function (query) {\r\n if (query.model.id !== this.id)\r\n throw Error('Model mithmatch');\r\n var entities = [];\r\n var columns = query.getColumns();\r\n for (var _i = 0, columns_1 = columns; _i < columns_1.length; _i++) {\r\n var column = columns_1[_i];\r\n if (!column.enabled)\r\n continue;\r\n this.addEntityByExpression(entities, column.expr);\r\n }\r\n var rootCond = query.getRootCondition();\r\n this.fillEntitiesByCondtionGroup(entities, rootCond);\r\n return entities;\r\n };\r\n DataModel.prototype.findAggrFunctionById = function (funcId) {\r\n for (var _i = 0, _a = this.aggrFunctions; _i < _a.length; _i++) {\r\n var func = _a[_i];\r\n if (func.id === funcId)\r\n return func;\r\n }\r\n return null;\r\n };\r\n DataModel.prototype.fillEntitiesByCondtionGroup = function (entities, root) {\r\n for (var _i = 0, _a = root.getConditions(); _i < _a.length; _i++) {\r\n var condition = _a[_i];\r\n if (!condition.isGroup()) {\r\n for (var _b = 0, _c = condition.expressions; _b < _c.length; _b++) {\r\n var expr = _c[_b];\r\n this.addEntityByExpression(entities, expr);\r\n if (expr.args) {\r\n for (var _d = 0, _e = expr.args; _d < _e.length; _d++) {\r\n var arg = _e[_d];\r\n this.addEntityByExpression(entities, arg);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n this.fillEntitiesByCondtionGroup(entities, condition);\r\n }\r\n }\r\n };\r\n DataModel.prototype.addEntityByExpression = function (entities, expr) {\r\n if (expr.tag !== ExprTag.EntityAttribute)\r\n return;\r\n var attrId = expr.baseAttrId || expr.value;\r\n if (attrId) {\r\n var attr = this.getAttributeById(attrId);\r\n if (attr) {\r\n if (attr.entity && dataUtils.indexOfArrayItem(entities, attr.entity) < 0) {\r\n entities.push(attr.entity);\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Finds link between two entities.\r\n * @param entityFrom The entity `from`.\r\n * @param entityTo The entity `to`.\r\n * @return The link.\r\n */\r\n DataModel.prototype.findLink = function (entityFrom, entityTo) {\r\n for (var _i = 0, _a = this.links; _i < _a.length; _i++) {\r\n var link = _a[_i];\r\n if (link.entityFrom == entityFrom\r\n && link.entityTo == entityTo)\r\n return link;\r\n }\r\n return null;\r\n };\r\n /**\r\n * Get links with the entity.\r\n * @param entity The entity.\r\n * @return The link.\r\n */\r\n DataModel.prototype.getLinksByEntity = function (entity) {\r\n var result = [];\r\n for (var _i = 0, _a = this.links; _i < _a.length; _i++) {\r\n var link = _a[_i];\r\n if (link.entityFrom == entity || link.entityTo == entity) {\r\n result.push(link);\r\n }\r\n }\r\n return result;\r\n };\r\n /**\r\n * Gets entities tree.\r\n * @param opts The options.\r\n * @param filterFunc The filter function.\r\n * Takes two parameters, Entity and EntityAttr (second parameter will be null for entities), and returns boolean (true if the corresponding entity or attribute).\r\n * @returns The tree of the entities and their attributes according to options and the filter function\r\n */\r\n DataModel.prototype.getEntitiesTree = function (opts, filterFunc) {\r\n return this._listByEntity(this.getRootEntity(), opts, filterFunc);\r\n };\r\n /**\r\n * Gets entities tree due to filter.\r\n * @param filterFunc The filter function.\r\n * Takes two parameters, Entity and EntityAttr (second parameter will be null for entities), and returns boolean (true if the corresponding entity or attribute).\r\n * @returns The tree of the entities and their attributes according to the filter function\r\n */\r\n DataModel.prototype.getEntitiesTreeWithFilter = function (filterFunc) {\r\n return this._listByEntityWithFilter(this.getRootEntity(), filterFunc);\r\n };\r\n /**\r\n * Finds full entity path by attribute\r\n * @param attrId The attribute id.\r\n * @param sep The separator.\r\n * @returns The path.\r\n */\r\n DataModel.prototype.getFullEntityPathByAttr = function (attrId, sep) {\r\n sep = sep || ' ';\r\n return this.getEntityPathByAttr(this.getRootEntity(), attrId, sep, true);\r\n };\r\n /**\r\n * Finds entity path by attribute\r\n * @param entity The entity.\r\n * @param attrId The attribute id.\r\n * @param sep The separator.\r\n * @param root The root option.\r\n * @returns The path.\r\n */\r\n DataModel.prototype.getEntityPathByAttr = function (entity, attrId, sep, root) {\r\n return _super.prototype.getEntityPathByAttr.call(this, entity, attrId, sep, root);\r\n };\r\n /**\r\n * Gets the attribute text.\r\n * @param attr The attribute.\r\n * @param format The format.\r\n * @returns Formatted text.\r\n */\r\n DataModel.prototype.getAttributeText = function (attr, format) {\r\n return _super.prototype.getAttributeText.call(this, attr, format);\r\n };\r\n DataModel.prototype.getFirstUICAttr = function () {\r\n return this.getFirstUICAttrInEntity(this.getRootEntity());\r\n };\r\n /**\r\n * Gets first `UIC` attribute in specified entity\r\n * (`UIC` stands for `use in conditions` - so such attribute can be used in conditions)\r\n * @param entity Entity object to search our attribute in.\r\n * @returns The entity attribute or `null`\r\n */\r\n DataModel.prototype.getFirstUICAttrInEntity = function (entity) {\r\n if (entity.useInConditions !== false) {\r\n if (entity.attributes) {\r\n var attrCount = entity.attributes.length;\r\n for (var i = 0; i < attrCount; i++) {\r\n if (entity.attributes[i].useInConditions) {\r\n return entity.attributes[i];\r\n }\r\n }\r\n }\r\n if (entity.subEntities) {\r\n var subEntityCount = entity.subEntities.length;\r\n for (var i = 0; i < subEntityCount; i++) {\r\n var result = this.getFirstUICAttrInEntity(entity.subEntities[i]);\r\n if (result) {\r\n return result;\r\n }\r\n }\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * Scans model's entity tree and calls the callback functions for each attribute and entity.\r\n * @param processAttribute The callback function which is called for each attribute in model's entity tree.\r\n * The processed attribute is passed in the first function parameter.\r\n * @param processEntity The callback function which is called for each entity in tree.\r\n * The processed entity is passed in the first function parameter.\r\n */\r\n DataModel.prototype.runThroughEntities = function (processAttribute, processEntity) {\r\n this.getRootEntity().scan(processAttribute, processEntity);\r\n };\r\n /**\r\n * Finds first attribute by filter.\r\n * @param filterFunc The filter function. Takes EntityAttr object in parameter and returns boolean\r\n */\r\n DataModel.prototype.getFirstAttributeByFilter = function (filterFunc) {\r\n var res = null;\r\n this.runThroughEntities(function (attr, opts) {\r\n if (filterFunc(attr)) {\r\n opts.stop = true;\r\n res = attr;\r\n }\r\n }, null);\r\n return res;\r\n };\r\n /**\r\n * Finds operator in model by its ID.\r\n * This function runs through all operators inside specified model and returns the one with specified ID.\r\n * @param operatorId An operator ID.\r\n * @returns The operator or `null`.\r\n */\r\n DataModel.prototype.findOperatorById = function (operatorId) {\r\n if (this.operators.length > 0) {\r\n var opCount = this.operators.length;\r\n for (var idx = 0; idx < opCount; idx++) {\r\n if (this.operators[idx].id == operatorId) {\r\n return this.operators[idx];\r\n }\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * Finds operator in model by its ID.\r\n * his function runs through all operators inside specified model and returns the one with specified ID.\r\n * @param operatorId Operator ID.\r\n * @returns The operator or special `NullOperator` object if operator is not found.\r\n */\r\n DataModel.prototype.getOperatorById = function (operatorId) {\r\n var op = this.findOperatorById(operatorId);\r\n if (!op)\r\n op = new Operator();\r\n return op;\r\n };\r\n DataModel.prototype.getDefaultOperatorIdForAttr = function (attr) {\r\n if (attr.defaultOperator) {\r\n return attr.defaultOperator;\r\n }\r\n else if (attr.operators.length > 0) {\r\n return attr.operators[0];\r\n }\r\n else {\r\n return (new Operator()).id;\r\n }\r\n };\r\n /**\r\n * Gets caption of the aggregate function.\r\n * @param funcId The function id.\r\n * @returns The caption.\r\n */\r\n DataModel.prototype.getAggrFunctionCaption = function (funcId) {\r\n var funcTexts = i18n.getText('AggregateFunctions', funcId);\r\n var funcCaption = funcTexts ? funcTexts.caption : i18n.getText('Aggr' + funcId.replace(' ', '') + '_Caption');\r\n if (funcCaption) {\r\n return funcCaption;\r\n }\r\n var func = dataUtils.findItemById(this.aggrFunctions, funcId);\r\n if (!func || !func.caption)\r\n return funcId;\r\n return func.caption;\r\n };\r\n /**\r\n * Gets format of the aggregate function.\r\n * @param funcId The function id.\r\n * @returns The caption.\r\n */\r\n DataModel.prototype.getAggrFunctionFormat = function (funcId) {\r\n var funcTexts = i18n.getText('AggregateFunctions', funcId);\r\n var funcFormat = funcTexts ? funcTexts.displayFormat : i18n.getText('Aggr' + funcId.replace(' ', '') + '_Format');\r\n if (funcFormat) {\r\n return funcFormat;\r\n }\r\n var func = dataUtils.findItemById(this.aggrFunctions, funcId);\r\n if (!func || !func.displayFormat)\r\n return '';\r\n return func.displayFormat;\r\n };\r\n /**\r\n * Gets default operator for an attribute.\r\n * @param attr The attribute.\r\n * @returns The operator.\r\n */\r\n DataModel.prototype.getDefaultOperatorForAttr = function (attr) {\r\n var operatorId = this.getDefaultOperatorIdForAttr(attr);\r\n return this.getOperatorById(operatorId);\r\n };\r\n /**\r\n * Gets operand.\r\n * @param attr The attribute.\r\n * @param operator The operator.\r\n * @param index The index.\r\n * @returns The operand.\r\n */\r\n DataModel.prototype.getOperand = function (attr, operator, index) {\r\n var defOperand = new Operand();\r\n if (operator && operator.defaultOperand) {\r\n defOperand.copyFrom(operator.defaultOperand);\r\n if (!defOperand.defValue) {\r\n defOperand.defValue = '';\r\n }\r\n if (!defOperand.defText) {\r\n defOperand.defText = '';\r\n }\r\n }\r\n else {\r\n defOperand.kind = DataKind.Scalar;\r\n defOperand.dataType = attr.dataType;\r\n defOperand.defValue = '';\r\n defOperand.defText = '';\r\n defOperand.editor = null;\r\n }\r\n var result = defOperand;\r\n if (result.dataType === DataType.Unknown && attr) {\r\n result.dataType = attr.dataType;\r\n }\r\n if (operator && (index >= 0)) {\r\n if (operator.operands && operator.operands[index - 1]) {\r\n result = dataUtils.assign(result, operator.operands[index - 1]);\r\n }\r\n }\r\n ;\r\n if (!result.editor) {\r\n if (defOperand.editor) {\r\n result.editor = defOperand.editor;\r\n }\r\n else if (defOperand.kind === DataKind.Query) {\r\n result.editor.tag = EqEditorTag.SubQuery;\r\n }\r\n else if (attr && attr.defaultEditor) {\r\n result.editor = attr.defaultEditor;\r\n }\r\n else if (result.dataType === DataType.Date || result.dataType === DataType.DateTime\r\n || result.dataType === DataType.Time) {\r\n result.editor.tag = EqEditorTag.DateTime;\r\n }\r\n else {\r\n result.editor.tag = EqEditorTag.Edit;\r\n }\r\n }\r\n return result;\r\n };\r\n /**\r\n * Gets the list of aggegate functions.\r\n * @returns AN array of aggregate functions.\r\n */\r\n DataModel.prototype.getAggrFunctions = function () {\r\n return this.aggrFunctions;\r\n };\r\n /**\r\n * Gets date by its macro value.\r\n * @param macro The macro value.\r\n * @returns The date or `null`\r\n */\r\n DataModel.prototype.getDateMacroValue = function (macro) {\r\n if (this.isDateMacro(macro)) {\r\n var d = new Date();\r\n var macroName = macro.match(/\\${{(.*?)}}/)[1];\r\n switch (macroName) {\r\n case 'Today':\r\n break;\r\n case 'Yesterday':\r\n d.setDate(d.getDate() - 1);\r\n break;\r\n case 'Tomorrow':\r\n d.setDate(d.getDate() + 1);\r\n break;\r\n case 'FirstDayOfMonth':\r\n d.setDate(1);\r\n break;\r\n case 'LastDayOfMonth':\r\n d.setMonth(d.getMonth() + 1, 0);\r\n break;\r\n case 'FirstDayOfPrevWeek':\r\n var day = d.getDay();\r\n day = (day == 0) ? 1 : 8 - day; //We start week from Monday, but js - from Sunday\r\n d.setDate(d.getDate() - day);\r\n break;\r\n case 'FirstDayOfWeek':\r\n var day = d.getDay();\r\n day = (day == 0) ? 6 : day - 1; //We start week from Monday, but js - from Sunday\r\n d.setDate(d.getDate() - day);\r\n break;\r\n case 'FirstDayOfYear':\r\n d.setMonth(0, 1);\r\n break;\r\n case 'FirstDayOfNextWeek':\r\n var day = d.getDay();\r\n day = (day == 0) ? 1 : 8 - day; //We start week from Monday, but js - from Sunday\r\n d.setDate(d.getDate() + day);\r\n break;\r\n case 'FirstDayOfNextMonth':\r\n d.setMonth(d.getMonth() + 1, 1);\r\n break;\r\n case 'FirstDayOfPrevMonth':\r\n d.setMonth(d.getMonth() - 1, 1);\r\n break;\r\n case 'FirstDayOfPrevYear':\r\n d.setFullYear(d.getFullYear() - 1, 0, 1);\r\n break;\r\n case 'FirstDayOfNextYear':\r\n d.setFullYear(d.getFullYear() + 1, 0, 1);\r\n break;\r\n }\r\n ;\r\n return d;\r\n }\r\n return null;\r\n };\r\n /**\r\n * Checks wether macro value is date.\r\n * @param macro The macro value.\r\n * @retruns `true` if the macro value is date, otherwise `false`.\r\n */\r\n DataModel.prototype.isDateMacro = function (macro) {\r\n return dataUtils.indexOfArrayItem(this.dateMacros, macro) >= 0;\r\n };\r\n /**\r\n * Gets date or macro by macro value.\r\n * @param macroValue The macro value.\r\n * @returns The date or macro valu.\r\n */\r\n DataModel.prototype.getDateOrMacroValue = function (macroValue) {\r\n var d = this.getDateMacroValue(macroValue);\r\n return d ? d : macroValue;\r\n };\r\n /**\r\n * Gets time by its macro value.\r\n * @param macro The macro value.\r\n * @returns The date or `null`.\r\n */\r\n DataModel.prototype.getTimeMacroValue = function (macro) {\r\n var d = new Date();\r\n if (this.isTimeMacro(macro)) {\r\n var macroName = macro.match(/\\${{(.*?)}}/)[1];\r\n switch (macroName) {\r\n case 'Now':\r\n break;\r\n case 'HourStart':\r\n d.setMinutes(0, 0, 0);\r\n break;\r\n case 'Midnight':\r\n d.setHours(0, 0, 0, 0);\r\n break;\r\n case 'Noon':\r\n d.setHours(12, 0, 0, 0);\r\n break;\r\n }\r\n ;\r\n return d;\r\n }\r\n return null;\r\n };\r\n /**\r\n * Checks wether macro value is time.\r\n * @param macro The macro value.\r\n * @retruns `true` if the macro value is time, otherwise `false`.\r\n */\r\n DataModel.prototype.isTimeMacro = function (macro) {\r\n return dataUtils.indexOfArrayItem(this.timeMacros, macro) >= 0;\r\n };\r\n /**\r\n * Gets time or macro by macro value.\r\n * @param macroValue The macro value.\r\n * @returns The time or macro valu.\r\n */\r\n DataModel.prototype.getTimeOrMacroValue = function (time) {\r\n var t = this.getTimeMacroValue(time);\r\n return t ? t : time;\r\n };\r\n /**\r\n * Gets all date marcos.\r\n * @returns The array of marcos\r\n */\r\n DataModel.prototype.getAllDateMacros = function () {\r\n return this.dateMacros;\r\n };\r\n /**\r\n * Gets all time marcos.\r\n * @returns The array of marcos\r\n */\r\n DataModel.prototype.getAllTimeMacros = function () {\r\n return this.timeMacros;\r\n };\r\n return DataModel;\r\n}(MetaData));\r\nexport { DataModel };\r\n//# sourceMappingURL=data_model.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/core/dist/lib/dm/data_model.js\n// module id = 62\n// module chunks = 0","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport { EditorTag } from \"@easydata/core\";\r\n/** Represents editor tags*/\r\nexport var EqEditorTag = __assign({}, EditorTag, { \r\n /** SqlList tag value */\r\n SqlList: \"SQLLIST\", \r\n /** SubQuery tag value */\r\n SubQuery: \"SUBQUERY\", \r\n /** Bind to parent column tag value */\r\n BindToParentColumn: \"BINDTOPARENTCOLUMN\" });\r\n//# sourceMappingURL=eq_editor_tag.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/core/dist/lib/types/eq_editor_tag.js\n// module id = 63\n// module chunks = 0","import { utils as dataUtils } from '@easydata/core';\r\nimport { Expression } from './expression';\r\nimport { QueryChangePart, QueryChangeAction } from './query_events';\r\n/** Represents sorting direction. */\r\nexport var SortDirection;\r\n(function (SortDirection) {\r\n /** No sorting. */\r\n SortDirection[SortDirection[\"None\"] = 0] = \"None\";\r\n /** Ascending order. */\r\n SortDirection[SortDirection[\"Ascending\"] = 1] = \"Ascending\";\r\n /** Descending order. */\r\n SortDirection[SortDirection[\"Descending\"] = 2] = \"Descending\";\r\n})(SortDirection || (SortDirection = {}));\r\n/**\r\n * Represents some column which will be queried\r\n */\r\nvar QueryColumn = /** @class */ (function () {\r\n /** the default constructor. */\r\n function QueryColumn(query, justsorted) {\r\n if (justsorted === void 0) { justsorted = false; }\r\n this.query = query;\r\n this.justsorted = justsorted;\r\n /** Column is enabled */\r\n this.enabled = true;\r\n /** The parameters associated with this column */\r\n this.params = [];\r\n this._isHidden = false;\r\n this._id = dataUtils.generateId('col');\r\n this.caption = '';\r\n this.sorting = SortDirection.None;\r\n this.sortIndex = -1;\r\n this.expr = new Expression(this);\r\n this.blockId = '';\r\n }\r\n Object.defineProperty(QueryColumn.prototype, \"id\", {\r\n get: function () {\r\n return this._id;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n QueryColumn.prototype.getModel = function () {\r\n return this.query.getModel();\r\n };\r\n QueryColumn.prototype.getQuery = function () {\r\n return this.query;\r\n };\r\n /** Indicates whether this column is read-only */\r\n QueryColumn.prototype.isReadOnly = function () {\r\n return false;\r\n };\r\n /** Indicates whether this column is just-sorted */\r\n QueryColumn.prototype.isJustSorted = function () {\r\n return this.justsorted;\r\n };\r\n QueryColumn.prototype.setReadOnly = function (value) {\r\n //do nothing. Read-only columns are not supported here\r\n };\r\n /** Indicates whether this column is invisible */\r\n QueryColumn.prototype.isHidden = function () {\r\n return this._isHidden;\r\n };\r\n QueryColumn.prototype.setHidden = function (value) {\r\n this._isHidden = value;\r\n };\r\n /**\r\n * Loads column from its JSON representation object.\r\n * @param model The Data Model.\r\n * @param colData The JSON representation object.\r\n */\r\n QueryColumn.prototype.loadFromData = function (model, colData) {\r\n if (colData) {\r\n if (colData.id) {\r\n this._id = colData.id;\r\n }\r\n this.caption = colData.cptn;\r\n if (typeof colData.srt !== 'undefined') {\r\n this.sorting = colData.srt;\r\n this.sortIndex = colData.srtidx;\r\n }\r\n if (colData.enabled === false) {\r\n this.enabled = colData.enabled;\r\n }\r\n this.expr.loadFromData(model, colData.expr);\r\n this.blockId = colData.blockId;\r\n if (colData.hidden) {\r\n this.setHidden(true);\r\n }\r\n }\r\n };\r\n /**\r\n * Saves the column to a data transfer object (ready for sending to the server-side) .\r\n * @returns An plain object that represents the column.\r\n */\r\n QueryColumn.prototype.saveToData = function () {\r\n var obj = {};\r\n obj.id = this._id;\r\n if (this.caption) {\r\n obj.cptn = this.caption;\r\n }\r\n if (typeof this.sorting !== 'undefined') {\r\n obj.srt = this.sorting;\r\n obj.srtidx = this.sortIndex;\r\n }\r\n obj.expr = this.expr.saveToData();\r\n if (this.blockId) {\r\n obj.blockId = this.blockId;\r\n }\r\n if (this.enabled === false) {\r\n obj.enabled = this.enabled;\r\n }\r\n if (this.isHidden()) {\r\n obj.hidden = true;\r\n }\r\n return obj;\r\n };\r\n QueryColumn.prototype.fireChangedEvent = function () {\r\n this.query.fireChangedEvent({\r\n part: (this.justsorted)\r\n ? QueryChangePart.SortingColumns\r\n : QueryChangePart.Columns,\r\n action: QueryChangeAction.Modify,\r\n changee: this\r\n });\r\n };\r\n QueryColumn.prototype.getExpressionIndex = function (expr) {\r\n return 0;\r\n };\r\n QueryColumn.prototype.expressionChanged = function (expr, oldValue) {\r\n };\r\n return QueryColumn;\r\n}());\r\nexport { QueryColumn };\r\n//# sourceMappingURL=query_column.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/core/dist/lib/query/query_column.js\n// module id = 64\n// module chunks = 0","/**\r\n * Represents a type of condition.\r\n * Current we have 2 possible types: a simple condition or a predicate - a group of conditions\r\n*/\r\nexport var CondTag;\r\n(function (CondTag) {\r\n /** An unknown type of condition (just in case).*/\r\n CondTag[CondTag[\"Unknown\"] = 0] = \"Unknown\";\r\n /** A simple condition (e.g. SomeField > SomeValue).*/\r\n CondTag[CondTag[\"Simple\"] = 1] = \"Simple\";\r\n /** A predicate (a group of conditions).*/\r\n CondTag[CondTag[\"Group\"] = 51] = \"Group\";\r\n})(CondTag || (CondTag = {}));\r\n//# sourceMappingURL=cond_tag.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/core/dist/lib/types/cond_tag.js\n// module id = 65\n// module chunks = 0","import { utils, ColumnAlignment } from '@easydata/core';\r\nimport { CellRendererType } from \"./easy_grid_cell_renderer\";\r\nvar DEFAULT_WIDTH = 150;\r\nvar DEFAULT_WIDTH_NUMBER = 120;\r\nvar DEFAULT_WIDTH_DATE = 200;\r\nvar DEFAULT_WIDTH_BOOL = 80;\r\nvar DEFAULT_WIDTH_STRING = 250;\r\nvar MIN_WIDTH_STRING = 100;\r\nvar MAX_WIDTH_STRING = 500;\r\nvar ROW_NUM_WIDTH = 60;\r\nexport var GridColumnAlign;\r\n(function (GridColumnAlign) {\r\n GridColumnAlign[GridColumnAlign[\"NONE\"] = 1] = \"NONE\";\r\n GridColumnAlign[GridColumnAlign[\"LEFT\"] = 2] = \"LEFT\";\r\n GridColumnAlign[GridColumnAlign[\"CENTER\"] = 3] = \"CENTER\";\r\n GridColumnAlign[GridColumnAlign[\"RIGHT\"] = 4] = \"RIGHT\";\r\n})(GridColumnAlign || (GridColumnAlign = {}));\r\nfunction MapAlignment(alignment) {\r\n switch (alignment) {\r\n case ColumnAlignment.Left:\r\n return GridColumnAlign.LEFT;\r\n case ColumnAlignment.Center:\r\n return GridColumnAlign.CENTER;\r\n case ColumnAlignment.Right:\r\n return GridColumnAlign.RIGHT;\r\n default:\r\n return GridColumnAlign.NONE;\r\n }\r\n}\r\nvar GridColumn = /** @class */ (function () {\r\n function GridColumn(column, grid, isRowNum) {\r\n if (isRowNum === void 0) { isRowNum = false; }\r\n this._label = null;\r\n //public left: number;\r\n this.align = GridColumnAlign.NONE;\r\n this.isVisible = true;\r\n this.isRowNum = false;\r\n this.dataColumn = column;\r\n this.grid = grid;\r\n if (column) {\r\n if (column.style.alignment) {\r\n this.align = MapAlignment(column.style.alignment);\r\n }\r\n var coltype = column.type;\r\n var cellType = this.grid.cellRendererStore.getCellType(coltype);\r\n switch (cellType) {\r\n case CellRendererType.NUMBER:\r\n this.width = DEFAULT_WIDTH_NUMBER;\r\n break;\r\n case CellRendererType.DATETIME:\r\n this.width = DEFAULT_WIDTH_DATE;\r\n break;\r\n case CellRendererType.BOOL:\r\n this.width = DEFAULT_WIDTH_BOOL;\r\n break;\r\n default:\r\n this.width = DEFAULT_WIDTH_STRING;\r\n }\r\n this.cellRenderer = this.grid.cellRendererStore.getDefaultRenderer(column.type);\r\n }\r\n else if (isRowNum) {\r\n this.isRowNum = true;\r\n this.width = ROW_NUM_WIDTH;\r\n this._label = '';\r\n this.cellRenderer = this.grid.cellRendererStore.getDefaultRendererByType(CellRendererType.NUMBER);\r\n }\r\n if (grid && grid.options && grid.options.onGetCellRenderer) {\r\n this.cellRenderer = grid.options.onGetCellRenderer(this, this.cellRenderer) || this.cellRenderer;\r\n }\r\n }\r\n Object.defineProperty(GridColumn.prototype, \"label\", {\r\n get: function () {\r\n return this._label ? this._label : this.isRowNum ? '' : this.dataColumn.label;\r\n },\r\n set: function (value) {\r\n this._label = this.label;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n Object.defineProperty(GridColumn.prototype, \"type\", {\r\n get: function () {\r\n return this.dataColumn ? this.dataColumn.type : null;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return GridColumn;\r\n}());\r\nexport { GridColumn };\r\nvar GridColumnList = /** @class */ (function () {\r\n function GridColumnList(columnList, grid) {\r\n this.items = [];\r\n this.grid = grid;\r\n this.sync(columnList);\r\n }\r\n GridColumnList.prototype.sync = function (columnList, hasRowNumCol) {\r\n if (hasRowNumCol === void 0) { hasRowNumCol = true; }\r\n this.clear();\r\n if (hasRowNumCol) {\r\n var rowNumCol = new GridColumn(null, this.grid, true);\r\n this.add(rowNumCol);\r\n }\r\n if (columnList) {\r\n for (var _i = 0, _a = columnList.getItems(); _i < _a.length; _i++) {\r\n var column = _a[_i];\r\n var col = new GridColumn(column, this.grid);\r\n if (this.grid.options.onSyncGridColumn) {\r\n this.grid.options.onSyncGridColumn(col);\r\n }\r\n this.add(col);\r\n }\r\n }\r\n };\r\n Object.defineProperty(GridColumnList.prototype, \"count\", {\r\n get: function () {\r\n return this.items.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n GridColumnList.prototype.add = function (col) {\r\n var index = this.items.length;\r\n this.items.push(col);\r\n return index;\r\n };\r\n GridColumnList.prototype.put = function (index, col) {\r\n if (index >= 0 && index < this.items.length) {\r\n this.items[index] = col;\r\n }\r\n };\r\n GridColumnList.prototype.move = function (col, newIndex) {\r\n var oldIndex = this.items.indexOf(col);\r\n if (oldIndex >= 0 && oldIndex != newIndex)\r\n utils.moveArrayItem(this.items, oldIndex, newIndex);\r\n };\r\n GridColumnList.prototype.get = function (index) {\r\n if (index >= 0 && index < this.items.length) {\r\n return this.items[index];\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n // public getIndex(name: string) : number {\r\n // return this.mapper[name];\r\n // }\r\n GridColumnList.prototype.getItems = function () {\r\n return this.items;\r\n };\r\n GridColumnList.prototype.removeAt = function (index) {\r\n var col = this.get(index);\r\n this.items.splice(index, 1);\r\n //delete this.mapper[col.name];\r\n };\r\n GridColumnList.prototype.clear = function () {\r\n this.items = [];\r\n //this.mapper = {};\r\n };\r\n return GridColumnList;\r\n}());\r\nexport { GridColumnList };\r\n//# sourceMappingURL=easy_grid_columns.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easydata/ui/dist/lib/grid/easy_grid_columns.js\n// module id = 66\n// module chunks = 0","import { i18n, DataType } from '@easydata/core';\r\nimport { GridColumnAlign } from './easy_grid_columns';\r\nimport { domel } from '../utils/dom_elem_builder';\r\nvar cssPrefix = \"keg\";\r\nvar DFMT_REGEX = /{0:(.*?)}/g;\r\nexport var CellRendererType;\r\n(function (CellRendererType) {\r\n CellRendererType[CellRendererType[\"STRING\"] = 1] = \"STRING\";\r\n CellRendererType[CellRendererType[\"NUMBER\"] = 2] = \"NUMBER\";\r\n CellRendererType[CellRendererType[\"DATETIME\"] = 3] = \"DATETIME\";\r\n CellRendererType[CellRendererType[\"BOOL\"] = 4] = \"BOOL\";\r\n})(CellRendererType || (CellRendererType = {}));\r\nvar StringCellRendererDefault = function (value, column, cellElement, rowElement) {\r\n var text = value ? value.toString().replace(/\\n/g, '\\u21B5 ') : '';\r\n var builder = domel('div', cellElement)\r\n .addClass(cssPrefix + \"-cell-value\")\r\n .addHtml(text)\r\n .title(value || '');\r\n if (column.align == GridColumnAlign.NONE) {\r\n builder.addClass(cssPrefix + \"-cell-value-align-right\");\r\n }\r\n};\r\nvar NumberCellRendererDefault = function (value, column, cellElement, rowElement) {\r\n var strValue = (value || '').toString();\r\n if (typeof value == 'number') {\r\n if (column.dataColumn && column.dataColumn.displayFormat\r\n && DFMT_REGEX.test(column.dataColumn.displayFormat)) {\r\n strValue = column.dataColumn.displayFormat.replace(DFMT_REGEX, function (_, $1) {\r\n return i18n.numberToStr(value, $1);\r\n });\r\n }\r\n else {\r\n strValue = value.toLocaleString();\r\n }\r\n }\r\n var builder = domel('div', cellElement)\r\n .addClass(cssPrefix + \"-cell-value\")\r\n .addHtml(strValue)\r\n .title(strValue);\r\n if (column.align == GridColumnAlign.NONE) {\r\n builder.addClass(cssPrefix + \"-cell-value-align-right\");\r\n }\r\n};\r\nvar DateTimeCellRendererDefault = function (value, column, cellElement, rowElement) {\r\n var isDate = Object.prototype.toString.call(value) === '[object Date]';\r\n var strValue = (value || '').toString();\r\n if (isDate) {\r\n if (column.dataColumn && column.dataColumn.displayFormat\r\n && DFMT_REGEX.test(column.dataColumn.displayFormat)) {\r\n strValue = column.dataColumn.displayFormat.replace(DFMT_REGEX, function (_, $1) {\r\n return i18n.dateTimeToStr(value, column.type, $1);\r\n });\r\n }\r\n else {\r\n var locale = i18n.getCurrentLocale();\r\n var timeOptions = { hour: 'numeric', minute: 'numeric', second: 'numeric' };\r\n switch (column.type) {\r\n case DataType.Date:\r\n strValue = value.toLocaleDateString(locale);\r\n break;\r\n case DataType.Time:\r\n strValue = value.toLocaleTimeString(locale, timeOptions);\r\n break;\r\n case DataType.DateTime:\r\n strValue = value.toLocaleDateString(locale) + \" \" + value.toLocaleTimeString(locale, timeOptions);\r\n break;\r\n }\r\n }\r\n }\r\n var builder = domel('div', cellElement)\r\n .addClass(cssPrefix + \"-cell-value\")\r\n .addHtml(strValue)\r\n .title(strValue);\r\n if (column.align == GridColumnAlign.NONE) {\r\n builder.addClass(cssPrefix + \"-cell-value-align-right\");\r\n }\r\n};\r\nvar BoolCellRendererDefault = function (value, column, cellElement, rowElement) {\r\n if (column.dataColumn && column.dataColumn.displayFormat\r\n && DFMT_REGEX.test(column.dataColumn.displayFormat)) {\r\n var strValue = column.dataColumn.displayFormat.replace(DFMT_REGEX, function (_, $1) {\r\n return i18n.booleanToStr(value, $1);\r\n });\r\n return StringCellRendererDefault(strValue, column, cellElement, rowElement);\r\n }\r\n else {\r\n domel('div', cellElement)\r\n .addClass(cssPrefix + \"-cell-value\")\r\n .addClass(cssPrefix + \"-cell-value-bool\")\r\n .addClass(cssPrefix + \"-\" + (value ? 'cell-value-true' : 'cell-value-false'));\r\n }\r\n};\r\nvar GridCellRendererStore = /** @class */ (function () {\r\n function GridCellRendererStore(options) {\r\n this.renderers = {};\r\n this.defaultRenderers = {};\r\n this.registerRenderer('StringDefault', StringCellRendererDefault);\r\n this.setDefaultRenderer(CellRendererType.STRING, StringCellRendererDefault);\r\n this.registerRenderer('NumberDefault', NumberCellRendererDefault);\r\n this.setDefaultRenderer(CellRendererType.NUMBER, NumberCellRendererDefault);\r\n this.registerRenderer('DateTimeDefault', DateTimeCellRendererDefault);\r\n this.setDefaultRenderer(CellRendererType.DATETIME, DateTimeCellRendererDefault);\r\n this.registerRenderer('BoolDefault', BoolCellRendererDefault);\r\n this.setDefaultRenderer(CellRendererType.BOOL, BoolCellRendererDefault);\r\n }\r\n GridCellRendererStore.prototype.getDefaultRenderer = function (columnType) {\r\n var cellType = this.getCellType(columnType);\r\n return this.defaultRenderers[CellRendererType[cellType]];\r\n };\r\n GridCellRendererStore.prototype.getDefaultRendererByType = function (rendererType) {\r\n return this.defaultRenderers[CellRendererType[rendererType]];\r\n };\r\n GridCellRendererStore.prototype.setDefaultRenderer = function (cellType, renderer) {\r\n if (renderer) {\r\n this.defaultRenderers[CellRendererType[cellType]] = renderer;\r\n }\r\n };\r\n GridCellRendererStore.prototype.getRenderer = function (name) {\r\n return this.renderers[name];\r\n };\r\n GridCellRendererStore.prototype.registerRenderer = function (name, renderer) {\r\n this.renderers[name] = renderer;\r\n };\r\n GridCellRendererStore.prototype.getCellType = function (dataType) {\r\n switch (dataType) {\r\n case DataType.Autoinc:\r\n case DataType.Byte:\r\n case DataType.Word:\r\n case DataType.Currency:\r\n case DataType.Float:\r\n case DataType.Int32:\r\n case DataType.Int64:\r\n return CellRendererType.NUMBER;\r\n case DataType.Date:\r\n case DataType.DateTime:\r\n case DataType.Time:\r\n return CellRendererType.DATETIME;\r\n case DataType.Bool:\r\n return CellRendererType.BOOL;\r\n default:\r\n return CellRendererType.STRING;\r\n }\r\n };\r\n return GridCellRendererStore;\r\n}());\r\nexport { GridCellRendererStore };\r\n//# sourceMappingURL=easy_grid_cell_renderer.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easydata/ui/dist/lib/grid/easy_grid_cell_renderer.js\n// module id = 67\n// module chunks = 0","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { i18n } from '@easydata/core';\r\nimport { utils as dataUtils } from '@easydata/core';\r\nimport { ExprTag, SortDirection, QueryChangePart, QueryChangeAction, Widget, WidgetGroup } from '@easyquery/core';\r\nimport { eqDragManager, DropEffect, getElementAbsolutePos, domel } from '@easydata/ui';\r\nimport { PopupMenu } from '../utils/popup_menu';\r\nimport { eqCssPrefix } from '../utils/utils';\r\nimport { browserUtils } from '../utils/browser_utils';\r\nimport { AggrFuncColumnRendererCB } from './renderers/columnsbar/aggrfunc_column_renderer';\r\nimport { SimpleColumnRendererCB } from './renderers/columnsbar/simple_column_renderer';\r\nvar ColumnsBar = /** @class */ (function (_super) {\r\n __extends(ColumnsBar, _super);\r\n function ColumnsBar(slot, customQuery) {\r\n var _this = _super.call(this, slot) || this;\r\n _this.options = {\r\n isSubQuery: false,\r\n activeColumn: null,\r\n showAddRow: true,\r\n showHeader: true,\r\n showColumnTitles: true,\r\n allowAggrColumns: true,\r\n allowDuplicates: true,\r\n allowCustomExpressions: false,\r\n allowSorting: true,\r\n attrElementFormat: '{entity} {attr}',\r\n titleElementFormat: null,\r\n alwaysShowButtons: false,\r\n accentActiveColumn: true,\r\n menuSearchBoxAfter: 30,\r\n allowDragDrop: true,\r\n menuOptions: {\r\n showSearchBoxAfter: 30,\r\n searchBoxAutoFocus: true,\r\n activateOnMouseOver: true,\r\n adjustHeight: true,\r\n itemRenderedCallback: null\r\n },\r\n attrPlacement: 0,\r\n sortEntities: false,\r\n columnRenderedCallback: null,\r\n customExpressionText: 0,\r\n };\r\n _this.landingSlot = domel('div')\r\n .addClass(eqCssPrefix + \"-highlight\")\r\n .toDOM();\r\n _this.landingIndex = -1;\r\n _this.sortMenuList = [\r\n { id: 'None', text: i18n.getText('CmdNotSorted') },\r\n { id: 'Ascending', text: i18n.getText('CmdAscending') },\r\n { id: 'Descending', text: i18n.getText('CmdDescending') },\r\n { id: '---', text: '---' }\r\n ];\r\n _this.moveMenuList = [\r\n { id: 'MoveTop', text: i18n.getText('CmdMoveToFirst') },\r\n { id: 'MoveUp', text: i18n.getText('CmdMoveToPrev') },\r\n { id: 'MoveDown', text: i18n.getText('CmdMoveToNext') },\r\n { id: 'MoveBottom', text: i18n.getText('CmdMoveToLast') }\r\n ];\r\n domel(_this.slot)\r\n .addClass(_this.cssPrefix + \"-panel\")\r\n .addClass(browserUtils.getMobileCssClass());\r\n _this.group = WidgetGroup.Query;\r\n _this.customQuery = customQuery;\r\n return _this;\r\n }\r\n Object.defineProperty(ColumnsBar.prototype, \"cssPrefix\", {\r\n get: function () {\r\n return \"eqjs-cb\";\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ColumnsBar.prototype.getWidgetType = function () {\r\n return 'columnsBar';\r\n };\r\n ColumnsBar.prototype.init = function (context, options) {\r\n var _this = this;\r\n _super.prototype.init.call(this, context, options);\r\n this.setOptions(options);\r\n this.detachQueryObserver();\r\n this.attachQueryObserver();\r\n eqDragManager.removeDropContainer(this.slot);\r\n if (this.options.allowDragDrop) {\r\n eqDragManager.registerDropContainer({\r\n element: this.slot,\r\n scopes: [\"entityAttrSort\"],\r\n onDragEnter: function (container, ev) {\r\n _this.showLandingSlot(ev.pageX, ev.pageY);\r\n },\r\n onDragOver: function (container, ev) {\r\n _this.showLandingSlot(ev.pageX, ev.pageY);\r\n },\r\n onDragLeave: function (container, ev) {\r\n ev.dropEffect = DropEffect.Forbid;\r\n _this.hideLandingSlot();\r\n },\r\n onDrop: function (container, ev) {\r\n var query = _this.getQuery();\r\n var columns = query.getColumns();\r\n var index = columns.indexOf(ev.data.column);\r\n _this.moveColumnCore(index, _this.landingIndex);\r\n }\r\n });\r\n }\r\n };\r\n ColumnsBar.prototype.attachQueryObserver = function () {\r\n var _this = this;\r\n var query = this.getQuery();\r\n this.queryEventCallbackId = query.addChangedCallback(function (event) {\r\n //if something has changed, and that change is related to columns\r\n var edata = event.data;\r\n if (!edata || (edata.part != QueryChangePart.Columns && edata.part != QueryChangePart.All)) {\r\n return;\r\n }\r\n var focusedBefore = document.activeElement;\r\n var isFocusInside = _this.slot.contains(focusedBefore) || focusedBefore == document.body;\r\n switch (edata.action) {\r\n case QueryChangeAction.Modify: {\r\n var columns = edata.changee;\r\n var modifyColumn_1 = function (column) {\r\n var colEl = _this.columnsBlock.querySelector(\"div[data-id='\" + column.id + \"']\");\r\n if (colEl) {\r\n var newEl = _this.renderColumn(column, colEl);\r\n if (isFocusInside) {\r\n var focusElem = newEl.querySelector('a');\r\n if (focusElem) {\r\n focusElem.focus();\r\n }\r\n }\r\n }\r\n };\r\n if (Array.isArray(columns)) {\r\n columns.forEach(function (col) { return modifyColumn_1(col); });\r\n }\r\n else {\r\n modifyColumn_1(columns);\r\n }\r\n break;\r\n }\r\n case QueryChangeAction.Add: {\r\n var columns = edata.changee;\r\n var addColumn_1 = function (column) {\r\n var index = query.getColumns().indexOf(column);\r\n _this.addColumnElement(column, index);\r\n };\r\n if (Array.isArray(columns)) {\r\n columns.forEach(function (col) { return addColumn_1(col); });\r\n }\r\n else {\r\n addColumn_1(columns);\r\n }\r\n break;\r\n }\r\n case QueryChangeAction.Delete: {\r\n var columns = edata.changee;\r\n var deleteColumn_1 = function (column) {\r\n var colEl = _this.columnsBlock.querySelector(\"div[data-id='\" + column.id + \"']\");\r\n if (colEl) {\r\n var next = colEl.nextSibling;\r\n var prev = colEl.previousSibling;\r\n _this.columnsBlock.removeChild(colEl);\r\n if (isFocusInside) {\r\n var focusCond = next || prev || _this.addRowButton;\r\n var focusElem = focusCond.querySelector('a');\r\n if (focusElem) {\r\n focusElem.focus();\r\n }\r\n }\r\n }\r\n };\r\n if (Array.isArray(columns)) {\r\n columns.forEach(function (col) { return deleteColumn_1(col); });\r\n }\r\n else {\r\n deleteColumn_1(columns);\r\n }\r\n break;\r\n }\r\n default:\r\n _this.refresh();\r\n break;\r\n }\r\n });\r\n };\r\n ColumnsBar.prototype.getQuery = function () {\r\n return this.customQuery\r\n ? this.customQuery\r\n : this.getContext().getQuery();\r\n };\r\n ColumnsBar.prototype.destroyCore = function () {\r\n eqDragManager.removeDropContainer(this.slot);\r\n this.detachQueryObserver();\r\n this.slot.innerHTML = '';\r\n };\r\n ColumnsBar.prototype.detachQueryObserver = function () {\r\n if (this.queryEventCallbackId) {\r\n var query = this.getQuery();\r\n query.removeChangedCallback(this.queryEventCallbackId);\r\n }\r\n };\r\n ColumnsBar.prototype.setOptions = function (options) {\r\n dataUtils.assignDeep(this.options, options);\r\n };\r\n ColumnsBar.prototype.showLandingSlot = function (pageX, pageY) {\r\n var elements = this.columnsBlock.querySelectorAll(\"[class*=\" + this.cssPrefix + \"-row]\");\r\n var columnSlots = [];\r\n for (var i = 0; i < elements.length; i++) {\r\n if (elements[i].style.display !== 'none') {\r\n columnSlots.push(elements[i]);\r\n }\r\n }\r\n if (columnSlots.length === 0) {\r\n this.landingIndex = 0;\r\n return;\r\n }\r\n var landingPos = getElementAbsolutePos(this.landingSlot);\r\n if (pageX >= landingPos.x && pageX <= landingPos.x + this.landingSlot.offsetWidth\r\n && pageY >= landingPos.y && pageY <= landingPos.y + this.landingSlot.offsetHeight) {\r\n return;\r\n }\r\n var newLandingIndex = this.landingIndex;\r\n for (var i = 0; i < columnSlots.length; i++) {\r\n var colSlot = columnSlots[i];\r\n var absPos = getElementAbsolutePos(colSlot);\r\n var colWidth = colSlot.offsetWidth;\r\n var colHeight = colSlot.offsetHeight;\r\n var paddingWidth = 0.2 * colWidth;\r\n var paddingHeight = 2;\r\n if (pageX >= absPos.x + paddingWidth && pageX <= absPos.x + colWidth - paddingWidth\r\n && pageY >= absPos.y + paddingHeight && pageY <= absPos.y + colHeight - paddingHeight) {\r\n if (pageX > landingPos.x)\r\n newLandingIndex = i + 1;\r\n else\r\n newLandingIndex = i;\r\n break;\r\n }\r\n }\r\n if (newLandingIndex != this.landingIndex || this.landingSlot.parentElement) {\r\n this.landingIndex = newLandingIndex;\r\n if (this.landingIndex <= 0) {\r\n this.columnsBlock.insertBefore(this.landingSlot, columnSlots[0]);\r\n }\r\n if (this.landingIndex < columnSlots.length) {\r\n this.columnsBlock.insertBefore(this.landingSlot, columnSlots[this.landingIndex]);\r\n }\r\n else {\r\n this.columnsBlock.appendChild(this.landingSlot);\r\n }\r\n }\r\n };\r\n ColumnsBar.prototype.hideLandingSlot = function () {\r\n this.landingIndex = -1;\r\n if (this.landingSlot.parentElement) {\r\n this.landingSlot.parentElement.removeChild(this.landingSlot);\r\n }\r\n };\r\n ColumnsBar.prototype.onProcessStartCore = function () {\r\n };\r\n ColumnsBar.prototype.onProcessEndCore = function () {\r\n };\r\n ColumnsBar.prototype.refreshCore = function () {\r\n this.clear();\r\n this.render();\r\n };\r\n ColumnsBar.prototype.clear = function () {\r\n // if (this.addRowButton) {\r\n // this.addRowButton.innerHTML = \"\";\r\n // this.addRowButton.className = \"\";\r\n // }\r\n // this.columnsBlock.innerHTML = \"\";\r\n this.slot.innerHTML = '';\r\n };\r\n ColumnsBar.prototype.renderAddRowButton = function () {\r\n var _this = this;\r\n domel(this.addRowButton)\r\n .addClass(eqCssPrefix + \"-addrow\", this.cssPrefix + \"-addrow\", eqCssPrefix + \"-addrow-empty\")\r\n .addClass(browserUtils.getMobileCssClass())\r\n .title(i18n.getText('CmdClickToAddColumn'))\r\n .addChild('a', function (builder) { return builder\r\n .attr('href', 'javascript:void(0)')\r\n .on('click', function (e) {\r\n e.preventDefault();\r\n _this.showEntitiesMenu({\r\n anchor: e.target,\r\n selectedIds: null,\r\n itemSelectedCallback: function (data, items) {\r\n var attrid = data.id;\r\n _this.addNewColumn(attrid);\r\n return false;\r\n }\r\n });\r\n }); });\r\n if (browserUtils.isMobileMode()) {\r\n domel(this.columnsBlock)\r\n .addChildElement(this.addRowButton);\r\n }\r\n };\r\n ColumnsBar.prototype.render = function () {\r\n var _this = this;\r\n this.createEntitiesMenu();\r\n if (this.options.allowSorting) {\r\n this.createSortMenu();\r\n }\r\n this.createMoveMenu();\r\n this.columnsBlock =\r\n domel('div')\r\n .addClass(this.cssPrefix + \"-columns\")\r\n .addClass(browserUtils.getMobileCssClass())\r\n .toDOM();\r\n if (this.options.showAddRow) {\r\n this.addRowButton =\r\n domel('div')\r\n .toDOM();\r\n if (browserUtils.isMobileMode()) {\r\n domel(this.columnsBlock)\r\n .addChildElement(this.addRowButton);\r\n }\r\n else {\r\n domel(this.slot)\r\n .addChildElement(this.addRowButton);\r\n }\r\n this.renderAddRowButton();\r\n }\r\n domel(this.slot)\r\n .addChildElement(this.columnsBlock)\r\n .addChildElement(this.renderColumnButtonsBlockMobile());\r\n var query = this.getQuery();\r\n var columns = query.getColumns();\r\n columns.forEach(function (column, index) {\r\n var slot = _this.renderColumn(column);\r\n _this.columnsBlock.appendChild(slot);\r\n });\r\n };\r\n ColumnsBar.prototype.renderColumnButtonsBlockMobile = function () {\r\n var _this = this;\r\n this.columnButtonsBlockMobileArrow = domel('i').toDOM();\r\n this.columnButtonsBlockMobile = domel('div')\r\n .addClass(this.cssPrefix + \"-column-buttonsBlock\")\r\n .addClass(browserUtils.getMobileCssClass())\r\n .addChildElement(this.columnButtonsBlockMobileArrow)\r\n .hide()\r\n .toDOM();\r\n this.buttonsBlockSortingButton = domel('div', this.columnButtonsBlockMobile)\r\n .addClass(this.cssPrefix + \"-column-button\", this.cssPrefix + \"-column-sortbutton-none\")\r\n .toDOM();\r\n domel(this.buttonsBlockSortingButton)\r\n .on('touchstart click', function (ev) {\r\n ev.stopPropagation();\r\n _this.currentColumnRenderer.buttonSortingClickHandler.call(_this.currentColumnRenderer, ev, _this.buttonsBlockSortingButton);\r\n _this.toggleColumnPicked(null);\r\n _this.hideColumnButtonsMobile();\r\n return false;\r\n });\r\n this.buttonsBlockTypeButton = domel('div', this.columnButtonsBlockMobile)\r\n .addClass(this.cssPrefix + \"-column-button\", this.cssPrefix + \"-column-button-type\")\r\n .on('touchstart click', function (ev) {\r\n ev.stopPropagation();\r\n _this.currentColumnRenderer.buttonTypeClickHandler.call(_this.currentColumnRenderer, ev);\r\n _this.toggleColumnPicked(null);\r\n _this.hideColumnButtonsMobile();\r\n return false;\r\n })\r\n .toDOM();\r\n this.buttonsBlockDeleteButton = domel('div', this.columnButtonsBlockMobile)\r\n .addClass(this.cssPrefix + \"-column-button\", this.cssPrefix + \"-column-button-delete\")\r\n .on('touchstart click', function (ev) {\r\n ev.stopPropagation();\r\n _this.currentColumnRenderer.buttonDeleteClickHandler.call(_this.currentColumnRenderer, ev);\r\n _this.toggleColumnPicked(null);\r\n _this.hideColumnButtonsMobile();\r\n return false;\r\n })\r\n .toDOM();\r\n domel('div', this.columnButtonsBlockMobile)\r\n .addClass(this.cssPrefix + \"-column-button-close-block\")\r\n .on('touchstart click', function () {\r\n _this.toggleColumnPicked(null);\r\n _this.hideColumnButtonsMobile();\r\n });\r\n return this.columnButtonsBlockMobile;\r\n };\r\n ColumnsBar.prototype.showColumnButtonsMobile = function (column, columnRenderer, columnElement) {\r\n this.currentActiveColumn = column;\r\n this.currentColumnRenderer = columnRenderer;\r\n //calculate coordinates\r\n var rect = columnElement.getBoundingClientRect();\r\n var top = columnElement.offsetTop;\r\n var left = columnElement.offsetLeft;\r\n domel(this.columnButtonsBlockMobileArrow)\r\n .setStyle('left', (left + rect.width / 2).toString() + 'px');\r\n if (rect.top > 100) {\r\n domel(this.columnButtonsBlockMobile)\r\n .removeClass('show-below')\r\n .setStyle('top', (top - rect.height).toString() + 'px');\r\n }\r\n else {\r\n domel(this.columnButtonsBlockMobile)\r\n .addClass('show-below')\r\n .setStyle('top', (top + rect.height).toString() + 'px');\r\n }\r\n //show/hide separate buttons\r\n if (column.enabled && !column.isReadOnly()) {\r\n domel(this.buttonsBlockSortingButton).show();\r\n domel(this.buttonsBlockTypeButton).show();\r\n }\r\n else {\r\n domel(this.buttonsBlockSortingButton).hide();\r\n domel(this.buttonsBlockTypeButton).hide();\r\n }\r\n //show\r\n if (column.isReadOnly()) {\r\n domel(this.columnButtonsBlockMobile).hide();\r\n }\r\n else {\r\n domel(this.columnButtonsBlockMobile).show();\r\n }\r\n };\r\n ColumnsBar.prototype.hideColumnButtonsMobile = function () {\r\n domel(this.columnButtonsBlockMobile).hide();\r\n };\r\n ColumnsBar.prototype.renderColumn = function (column, elem) {\r\n var _this = this;\r\n var renderer = this.getColumnRenderer(column, elem);\r\n if (renderer) {\r\n var columnSlot_1 = renderer.render();\r\n renderer.onShowButtonsMobile = function () {\r\n _this.showColumnButtonsMobile(column, renderer, columnSlot_1);\r\n };\r\n renderer.onHideButtonsMobile = function () {\r\n _this.hideColumnButtonsMobile();\r\n };\r\n return columnSlot_1;\r\n }\r\n return null;\r\n };\r\n ColumnsBar.prototype.getColumnRenderer = function (column, slot) {\r\n switch (column.expr.tag) {\r\n case ExprTag.AggregateFunction:\r\n return new AggrFuncColumnRendererCB(this, column, slot);\r\n case ExprTag.CustomSql:\r\n // return new CustomSqlColumnRendererCB(this, column, slot);\r\n case ExprTag.EntityAttribute:\r\n case ExprTag.ParentEntityAttribute:\r\n return new SimpleColumnRendererCB(this, column, slot);\r\n }\r\n return null;\r\n };\r\n ColumnsBar.prototype.addNewColumn = function (attrId, index) {\r\n var _this = this;\r\n var model = this.getContext().getModel();\r\n var query = this.getQuery();\r\n var getColumnByAttrId = function (attrid) {\r\n var attribute = model.getAttributeById(attrid);\r\n if (!attribute) {\r\n return null;\r\n }\r\n if (!attribute.useInResult) {\r\n if (attribute.lookupAttr) {\r\n attrid = attribute.lookupAttr;\r\n attribute = model.getAttributeById(attrid);\r\n if (!attribute || !attribute.useInResult) {\r\n return null;\r\n }\r\n }\r\n else\r\n return null;\r\n }\r\n var column = query.createColumn();\r\n column.caption = _this.getDefaultColumnCaption(attribute);\r\n column.sorting = SortDirection.None;\r\n column.sortIndex = -1;\r\n column.expr.tag = ExprTag.EntityAttribute;\r\n //column.expr.id = attrid;\r\n column.expr.setValue(attrid, true);\r\n column.params.concat(attribute.params);\r\n return column;\r\n };\r\n if (!this.getQuery()) {\r\n return;\r\n }\r\n var colToAdd, col;\r\n if (Array.isArray(attrId)) {\r\n colToAdd = [];\r\n for (var i = 0; i < attrId.length; i++) {\r\n col = getColumnByAttrId(attrId[i]);\r\n if (col) {\r\n colToAdd.push(col);\r\n }\r\n }\r\n }\r\n else\r\n colToAdd = getColumnByAttrId(attrId);\r\n this.addColumn(colToAdd, index);\r\n return colToAdd;\r\n };\r\n ColumnsBar.prototype.toggleColumnPicked = function (column) {\r\n var el;\r\n var isActive;\r\n if (column) {\r\n el = this.columnsBlock.querySelector(\"div[data-id=\" + column.id + \"]\");\r\n if (el) {\r\n isActive = el.classList.contains('active');\r\n }\r\n }\r\n //clear 'active' in all rows\r\n var rows = this.columnsBlock.querySelectorAll(\".\" + this.cssPrefix + \"-row\");\r\n for (var i = 0; i < rows.length; i++) {\r\n var row = rows[i];\r\n domel(row)\r\n .removeClass('active')\r\n .data(\"show-buttons\", null);\r\n }\r\n if (el && !isActive) {\r\n domel(el)\r\n .addClass('active')\r\n .data(\"show-buttons\", \"\");\r\n }\r\n };\r\n ColumnsBar.prototype.addColumn = function (column, index) {\r\n var query = this.getQuery();\r\n if (!query) {\r\n return;\r\n }\r\n if (Array.isArray(column))\r\n column = this.checkColumnsArray(column);\r\n else\r\n column = this.checkColumn(column);\r\n if (!column || (Array.isArray(column) && column.length == 0)) {\r\n return;\r\n }\r\n query.addColumnObj(column, index, self);\r\n query.fireChangedEvent({\r\n part: QueryChangePart.Columns,\r\n action: QueryChangeAction.Add,\r\n changee: column\r\n });\r\n };\r\n //adds one column to the bar on the specified position\r\n ColumnsBar.prototype.addColumnElement = function (column, index) {\r\n var rows = this.columnsBlock.querySelectorAll(\"[class*=\" + this.cssPrefix + \"-row]\");\r\n var newColBlock = this.renderColumn(column);\r\n if (rows.length > 0) {\r\n if (index < rows.length - 1) {\r\n this.columnsBlock.insertBefore(newColBlock, rows[index]);\r\n }\r\n else {\r\n this.columnsBlock.appendChild(newColBlock);\r\n }\r\n }\r\n else {\r\n this.columnsBlock.appendChild(newColBlock);\r\n }\r\n if (this.options.columnRenderedCallback) {\r\n this.options.columnRenderedCallback(newColBlock);\r\n }\r\n };\r\n ColumnsBar.prototype.checkColumnsArray = function (cols) {\r\n var i = 0, len = cols.length;\r\n var result = [];\r\n for (var i_1 = 0; i_1 < len; i_1++) {\r\n if (this.checkColumn(cols[i_1]))\r\n result.push(cols[i_1]);\r\n }\r\n return result;\r\n };\r\n ColumnsBar.prototype.checkColumn = function (col) {\r\n if (!this.options.allowDuplicates) {\r\n var query = this.getQuery();\r\n var columns = query.getColumns();\r\n var colJson = JSON.stringify(col.expr);\r\n for (var i = 0; i < columns.length; i++) {\r\n var qcolJson = JSON.stringify(columns[i].expr);\r\n if (qcolJson === colJson) {\r\n return null;\r\n }\r\n }\r\n }\r\n return col;\r\n };\r\n ColumnsBar.prototype.getDefaultColumnCaption = function (attr) {\r\n var format = this.options.titleElementFormat || this.options.attrElementFormat;\r\n var model = this.getContext().getModel();\r\n return model.getAttributeText(attr, format);\r\n };\r\n ColumnsBar.prototype.getColumnsBlock = function () {\r\n return this.columnsBlock;\r\n };\r\n ColumnsBar.prototype.showEntitiesMenu = function (menuOptions) {\r\n this.entitiesMenu && this.entitiesMenu.showMenu(menuOptions);\r\n };\r\n ColumnsBar.prototype.createEntitiesMenu = function () {\r\n var model = this.getContext().getModel();\r\n if (!model || model.isEmpty())\r\n return null;\r\n var menuId = this.slot.id;\r\n if (menuId) {\r\n menuId += '-EntitiesMenu';\r\n }\r\n var entitiesList = model.getEntitiesTree({ addUIC: false, addUIR: true, addUIS: false, attrPlacement: this.options.attrPlacement, sortEntities: this.options.sortEntities });\r\n var options = { items: entitiesList, adjustHeight: this.options.adjustEntitiesMenuHeight, id: menuId, domWriteItemsId: this.options.domWriteItemsId };\r\n dataUtils.assign(options, this.options.menuOptions);\r\n this.entitiesMenu = new PopupMenu(options);\r\n };\r\n ColumnsBar.prototype.createSortMenu = function () {\r\n var model = this.getContext().getModel();\r\n if (!model || model.isEmpty())\r\n return null;\r\n var menuId = this.slot.id;\r\n if (menuId) {\r\n menuId += '-SortMenu';\r\n }\r\n var items = this.sortMenuList.concat(this.moveMenuList);\r\n var menuOptions = { \"items\": items, id: menuId, domWriteItemsId: this.options.domWriteItemsId };\r\n dataUtils.assign(menuOptions, this.options.menuOptions);\r\n menuOptions.searchBoxAlwaysShown = false;\r\n this.sortMenu = new PopupMenu(menuOptions);\r\n };\r\n ColumnsBar.prototype.createMoveMenu = function () {\r\n var model = this.getContext().getModel();\r\n if (!model || model.isEmpty())\r\n return null;\r\n var menuId = this.slot.id;\r\n if (menuId) {\r\n menuId += '-MoveMenu';\r\n }\r\n var items = this.moveMenuList;\r\n var menuOptions = { \"items\": items, id: menuId, domWriteItemsId: this.options.domWriteItemsId };\r\n dataUtils.assign(menuOptions, this.options.menuOptions);\r\n this.moveMenu = new PopupMenu(menuOptions);\r\n menuOptions.searchBoxAlwaysShown = false;\r\n };\r\n ColumnsBar.prototype.moveColumn = function (column, direction) {\r\n var query = this.getQuery();\r\n var columns = query.getColumns();\r\n var index = columns.indexOf(column);\r\n if (index >= 0) {\r\n switch (direction) {\r\n case 'MoveTop':\r\n if (index == 0) {\r\n return;\r\n }\r\n this.moveColumnCore(index, 0);\r\n break;\r\n case 'MoveUp':\r\n if (index == 0) {\r\n return;\r\n }\r\n this.moveColumnCore(index, index - 1);\r\n break;\r\n case 'MoveDown':\r\n if (index == columns.length - 1) {\r\n return;\r\n }\r\n this.moveColumnCore(index, index + 1);\r\n break;\r\n case 'MoveBottom':\r\n if (index == columns.length - 1) {\r\n return;\r\n }\r\n this.moveColumnCore(index, columns.length - 1);\r\n break;\r\n }\r\n ;\r\n }\r\n };\r\n ColumnsBar.prototype.moveColumnCore = function (index1, index2) {\r\n var query = this.getQuery();\r\n if (!query)\r\n return;\r\n var rows = this.columnsBlock.querySelectorAll(\"[class*=\" + this.cssPrefix + \"-row]\");\r\n var colToMove = rows[index1];\r\n if (index2 <= 0) {\r\n this.columnsBlock.insertBefore(colToMove, this.columnsBlock[0]);\r\n }\r\n else if (index2 < rows.length) {\r\n this.columnsBlock.insertBefore(colToMove, rows[index2]);\r\n }\r\n else {\r\n this.columnsBlock.appendChild(colToMove);\r\n }\r\n query.moveColumn(index1, index2);\r\n query.fireColumnsChangedEvent(QueryChangeAction.All);\r\n };\r\n ColumnsBar.prototype.areCustomExpressionsAllowed = function () {\r\n var query = this.getQuery();\r\n return query.isEx() && this.options.allowCustomExpressions;\r\n };\r\n ColumnsBar.globalCounter = 0;\r\n return ColumnsBar;\r\n}(Widget));\r\nexport { ColumnsBar };\r\n//# sourceMappingURL=columns_bar.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/widgets/columns_bar.js\n// module id = 68\n// module chunks = 0","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { ExprTag } from '@easyquery/core';\r\nimport { createBrowserEvent } from '@easydata/ui';\r\nimport { ColumnRendererCB } from './column_renderer';\r\nvar SimpleColumnRendererCB = /** @class */ (function (_super) {\r\n __extends(SimpleColumnRendererCB, _super);\r\n function SimpleColumnRendererCB() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SimpleColumnRendererCB.prototype.getClassesToAdd = function () {\r\n return _super.prototype.getClassesToAdd.call(this) + \" \" + this.cssPrefix + \"-row \" + this.cssPrefix + \"-row-column-entattr\";\r\n };\r\n SimpleColumnRendererCB.prototype.baseExpressionItemSelectedCallback = function (data, item) {\r\n var attrid = data.id;\r\n //this.column.expr.id = attrid;\r\n this.column.expr.setValue(attrid, true);\r\n this.column.caption = '';\r\n this.refresh();\r\n this.fireColumnChanged();\r\n };\r\n SimpleColumnRendererCB.prototype.getUIS = function () {\r\n var arg = this.column.expr.args[0];\r\n if (arg) {\r\n var model = this.bar.getContext().getModel();\r\n return model.checkAttrProperty(arg.value, \"useInSorting\");\r\n }\r\n else {\r\n return true;\r\n }\r\n };\r\n SimpleColumnRendererCB.prototype.changeTypeToCustomSql = function () {\r\n var query = this.column.getQuery();\r\n query.changeColumnType(this.column, ExprTag.CustomSql);\r\n this.fireColumnChanged();\r\n };\r\n SimpleColumnRendererCB.prototype.changeTypeToAggr = function (funcId) {\r\n var query = this.column.getQuery();\r\n query.changeColumnType(this.column, ExprTag.AggregateFunction, { funcId: funcId });\r\n this.fireColumnChanged();\r\n };\r\n SimpleColumnRendererCB.prototype.changeTypeHandler = function (ev) {\r\n var _this = this;\r\n this.functionMenu.showMenu({\r\n anchor: ev.target,\r\n selectedIds: null,\r\n itemSelectedCallback: function (data, items) {\r\n if (data.id == \"CUSTOMSQL\") {\r\n _this.changeTypeToCustomSql();\r\n }\r\n else {\r\n _this.changeTypeToAggr(data.id);\r\n }\r\n return false;\r\n },\r\n menuClosedCallback: function () {\r\n _this.keepShowingButtons = false;\r\n if (!_this.isMouseOverBlock) {\r\n _this.element.dispatchEvent(createBrowserEvent('mouseleave'));\r\n }\r\n }\r\n });\r\n };\r\n return SimpleColumnRendererCB;\r\n}(ColumnRendererCB));\r\nexport { SimpleColumnRendererCB };\r\n//# sourceMappingURL=simple_column_renderer.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/widgets/renderers/columnsbar/simple_column_renderer.js\n// module id = 69\n// module chunks = 0","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { i18n } from '@easydata/core';\r\nimport { utils as dataUtils } from '@easydata/core';\r\nimport { equtils, QueryChangeAction } from '@easyquery/core';\r\nimport { createBrowserEvent, domel } from '@easydata/ui';\r\nimport { TextRenderer } from './text_renderer';\r\nimport { browserUtils } from '../../../utils/browser_utils';\r\nimport { QPEditablePart } from '../../../types/qp_editable_part';\r\nexport var ConditionAction;\r\n(function (ConditionAction) {\r\n ConditionAction[ConditionAction[\"AddCondition\"] = 0] = \"AddCondition\";\r\n ConditionAction[ConditionAction[\"AddGroup\"] = 1] = \"AddGroup\";\r\n ConditionAction[ConditionAction[\"Enable\"] = 2] = \"Enable\";\r\n ConditionAction[ConditionAction[\"Delete\"] = 4] = \"Delete\";\r\n ConditionAction[ConditionAction[\"Menu\"] = 5] = \"Menu\";\r\n ConditionAction[ConditionAction[\"Parameterized\"] = 6] = \"Parameterized\";\r\n ConditionAction[ConditionAction[\"InJoin\"] = 7] = \"InJoin\";\r\n})(ConditionAction || (ConditionAction = {}));\r\nvar ConditionRenderer = /** @class */ (function () {\r\n function ConditionRenderer(panel, condition, slot) {\r\n this.panel = panel;\r\n this.condition = condition;\r\n this.element = slot || domel('div').toDOM();\r\n }\r\n Object.defineProperty(ConditionRenderer.prototype, \"cssPrefix\", {\r\n get: function () {\r\n return 'eqjs-qp';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ConditionRenderer.prototype.refresh = function () {\r\n this.render();\r\n };\r\n ConditionRenderer.prototype.clear = function () {\r\n if (this.element) {\r\n this.element.className = '';\r\n this.element.removeAttribute('data-id');\r\n this.element.removeAttribute('style');\r\n domel(this.element)\r\n .html('');\r\n }\r\n // const elClone = this.element.cloneNode(true);\r\n // this.element.parentNode.replaceChild(elClone, el);\r\n };\r\n ConditionRenderer.prototype.render = function (autoAppear) {\r\n this.clear();\r\n //this.preRender();\r\n this.coreRender(autoAppear);\r\n if (this.panel.options.onConditionRendered) {\r\n this.panel.options.onConditionRendered(this.condition, this.element);\r\n }\r\n return this.element;\r\n };\r\n ConditionRenderer.prototype.isEditable = function () {\r\n return this.condition.enabled && !this.condition.isReadOnly();\r\n };\r\n return ConditionRenderer;\r\n}());\r\nexport { ConditionRenderer };\r\nvar SimpleConditionRenderer = /** @class */ (function (_super) {\r\n __extends(SimpleConditionRenderer, _super);\r\n function SimpleConditionRenderer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SimpleConditionRenderer.prototype.getClassesToAdd = function () {\r\n var result = this.cssPrefix + \"-row \" + this.cssPrefix + \"-row-condition\";\r\n result += this.condition.isInJoin() ? \" \" + this.cssPrefix + \"-condition-injoin\" : '';\r\n result += this.condition.isParameterized() ? \" \" + this.cssPrefix + \"-condition-parameterized\" : '';\r\n if (!browserUtils.isMobileMode()) {\r\n var level = this.condition.getLevel();\r\n if (level > 0)\r\n result += \" \" + this.cssPrefix + \"-level-\" + level;\r\n }\r\n result += this.condition.enabled ? '' : \" \" + this.cssPrefix + \"-disabled\";\r\n if (this.condition.enabled) {\r\n result += this.condition.isReadOnly() ? \" \" + this.cssPrefix + \"-readonly\" : '';\r\n }\r\n return result;\r\n };\r\n SimpleConditionRenderer.prototype.coreRender = function (autoAppear) {\r\n var _this = this;\r\n var model = this.panel.getContext().getModel();\r\n var operator = model.getOperatorById(this.condition.getOperatorId());\r\n var arrFormat = equtils.parseOperatorFormat(operator);\r\n var item = null;\r\n var arrLength = arrFormat.length;\r\n var builder = domel('div');\r\n if (this.element && this.element.parentNode) {\r\n this.element.parentNode\r\n .replaceChild(builder.toDOM(), this.element);\r\n }\r\n this.element = builder.toDOM();\r\n builder\r\n .addClass(this.getClassesToAdd())\r\n .addClass(browserUtils.getMobileCssClass())\r\n .data('id', this.condition.id)\r\n .data('condrow', '')\r\n .addChildElement(this.renderCheckbox())\r\n .addChildElement(this.renderConjunction());\r\n var mayAppear = autoAppear;\r\n var _loop_1 = function (idx) {\r\n item = arrFormat[idx];\r\n if (item.type === 'operator') {\r\n var renderer = this_1.panel.getOperatorRenderer(this_1.condition, item.text);\r\n if (renderer) {\r\n builder.addChildElement(renderer.render());\r\n }\r\n }\r\n else if (item.type === 'expression') {\r\n var toAppear = mayAppear && (item.index > 0);\r\n var exprRenderer_1 = this_1.panel.getExpressionRenderer(this_1.condition.expressions[item.index]);\r\n if (exprRenderer_1) {\r\n var el = exprRenderer_1.render(toAppear);\r\n builder.addChildElement(el);\r\n setTimeout(function () {\r\n exprRenderer_1.adjustWidth();\r\n }, 100);\r\n }\r\n mayAppear = mayAppear && !toAppear;\r\n }\r\n else if (item.type === 'text') {\r\n builder.addChildElement(new TextRenderer(this_1.panel, item.text).render());\r\n }\r\n };\r\n var this_1 = this;\r\n for (var idx = 0; idx < arrLength; idx++) {\r\n _loop_1(idx);\r\n }\r\n if (this.panel.options.accentActiveCondition || browserUtils.isMobileMode()) {\r\n builder.on('click', function (ev) {\r\n ev.stopPropagation();\r\n _this.panel.toggleConditionPicked(_this.condition);\r\n _this.adjustButtonsVisibility();\r\n if (!browserUtils.isMobileMode()) {\r\n _this.element.dispatchEvent(createBrowserEvent(\"mouseenter\"));\r\n }\r\n return false;\r\n });\r\n }\r\n builder\r\n .addChildElement(this.renderButtonsBlock());\r\n if (!browserUtils.isMobileMode()) {\r\n builder\r\n .on('mouseenter', function (event) {\r\n _this.isMouseOverBlock = true;\r\n _this.enterButtonBlock();\r\n event.stopPropagation();\r\n return false;\r\n })\r\n .on('mouseleave', function (event) {\r\n _this.isMouseOverBlock = false;\r\n if (!_this.keepShowingButtons && domel(_this.buttonsBlock).isVisible()) {\r\n _this.leaveButtonBlock();\r\n }\r\n event.stopPropagation();\r\n return false;\r\n });\r\n }\r\n };\r\n SimpleConditionRenderer.prototype.setConditionParameterized = function (value) {\r\n this.condition.setParameterized(value);\r\n this.condition.fireChangedEvent();\r\n };\r\n SimpleConditionRenderer.prototype.setConditionInJoin = function (value) {\r\n this.condition.setInJoin(value);\r\n this.condition.fireChangedEvent();\r\n };\r\n SimpleConditionRenderer.prototype.getConditionMenu = function () {\r\n return this.panel.getConditionMenu();\r\n };\r\n SimpleConditionRenderer.prototype.renderConjunction = function () {\r\n var parent = this.condition.getParent();\r\n if (!parent)\r\n return null;\r\n var isFirstConditionInGroup = dataUtils.findItemIndexById(parent.getConditions(), this.condition.id) == 0;\r\n if (this.panel.options.showConjunctions && !isFirstConditionInGroup) {\r\n var linkTypeStr = equtils.linkTypeToStr(this.condition.getParent().linkType);\r\n var conjuctionText = i18n.getText(\"Conj\" + linkTypeStr);\r\n return domel(\"span\")\r\n .text(conjuctionText)\r\n .title(conjuctionText)\r\n .addClass(this.cssPrefix + \"-condelement \" + this.cssPrefix + \"-condition-conjuction\")\r\n .toDOM();\r\n }\r\n return null;\r\n };\r\n SimpleConditionRenderer.prototype.renderCheckbox = function () {\r\n var _this = this;\r\n if (this.panel.options.showCheckboxes && !this.condition.isReadOnly()) {\r\n return domel(\"div\")\r\n .title(i18n.getText('CmdToggleEnable'))\r\n .attr('tabIndex', '0')\r\n .addClass(this.cssPrefix + \"-condelement \" + this.cssPrefix + \"-condition-checkbox\")\r\n .addClass(\"\" + (this.condition.enabled ? 'enabled' : ''))\r\n .on('click', function () {\r\n _this.condition.enabled = !_this.condition.enabled;\r\n _this.condition.fireChangedEvent();\r\n return false;\r\n })\r\n .on('keypress', function (evt) { if ([13, 32].includes(evt.keyCode)) {\r\n evt.target.click();\r\n } })\r\n .toDOM();\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n SimpleConditionRenderer.prototype.isConditionActive = function () {\r\n return this.element.classList.contains(\"active\");\r\n };\r\n SimpleConditionRenderer.prototype.hideButtons = function () {\r\n domel(this.element).data(\"show-buttons\", null);\r\n };\r\n SimpleConditionRenderer.prototype.showButtons = function () {\r\n domel(this.element).data(\"show-buttons\", \"\");\r\n };\r\n SimpleConditionRenderer.prototype.adjustButtonsVisibility = function () {\r\n if (this.panel.options.alwaysShowButtonsInConditions\r\n || (this.panel.options.accentActiveCondition && this.isConditionActive())) {\r\n this.showButtons();\r\n }\r\n };\r\n SimpleConditionRenderer.prototype.enterButtonBlock = function () {\r\n this.showButtons();\r\n };\r\n SimpleConditionRenderer.prototype.leaveButtonBlock = function () {\r\n if (!this.panel.options.alwaysShowButtonsInConditions\r\n && (!this.isConditionActive() || this.panel.options.accentActiveCondition)) {\r\n this.hideButtons();\r\n }\r\n };\r\n SimpleConditionRenderer.prototype.conditionMenuHandler = function (action, evt) {\r\n var _this = this;\r\n switch (action) {\r\n case ConditionAction.AddCondition:\r\n if (!this.condition.isGroup())\r\n return;\r\n var entMenu = this.panel.getEntitiesMenu();\r\n if (entMenu) {\r\n entMenu.showMenu({\r\n anchor: evt.target,\r\n itemSelectedCallback: function (item) {\r\n var query = _this.panel.getQuery();\r\n var descr = {\r\n parent: _this.condition,\r\n attributeId: item.id\r\n };\r\n var cond = query.addSimpleCondition(descr);\r\n if (cond) {\r\n query.fireConditionsChangedEvent(QueryChangeAction.Add, cond);\r\n }\r\n return false;\r\n }\r\n });\r\n }\r\n break;\r\n case ConditionAction.AddGroup:\r\n if (!this.condition.isGroup())\r\n return;\r\n var query = this.panel.getQuery();\r\n var descr = {\r\n parent: this.condition\r\n };\r\n var group = this.panel.getQuery().addConditionGroup(descr);\r\n if (group) {\r\n query.fireConditionsChangedEvent(QueryChangeAction.Add, group);\r\n }\r\n break;\r\n case ConditionAction.Enable:\r\n this.condition.enabled = !this.condition.enabled;\r\n this.condition.fireChangedEvent();\r\n break;\r\n case ConditionAction.Delete:\r\n var parent_1 = this.condition.getParent();\r\n if (!parent_1)\r\n return;\r\n var conditions = parent_1.getConditions();\r\n var idx = conditions.indexOf(this.condition);\r\n if (idx >= 0) {\r\n conditions.splice(idx, 1);\r\n this.condition.getQuery().fireConditionsChangedEvent(QueryChangeAction.Delete, this.condition);\r\n }\r\n break;\r\n case ConditionAction.Menu:\r\n var condMenu = this.getConditionMenu();\r\n this.keepShowingButtons = true;\r\n condMenu.showMenu({\r\n anchor: evt.target,\r\n selectedIds: this.getConditionMenuSelectedItems(),\r\n itemSelectedCallback: function (item) {\r\n var action;\r\n switch (item.id) {\r\n case \"enable\":\r\n action = ConditionAction.Enable;\r\n break;\r\n case \"delete\":\r\n action = ConditionAction.Delete;\r\n break;\r\n case \"param\":\r\n action = ConditionAction.Parameterized;\r\n break;\r\n case \"inJoin\":\r\n action = ConditionAction.InJoin;\r\n break;\r\n case \"addCondition\":\r\n action = ConditionAction.AddCondition;\r\n break;\r\n case \"addGroup\":\r\n action = ConditionAction.AddGroup;\r\n break;\r\n }\r\n _this.conditionMenuHandler(action, evt);\r\n },\r\n itemFilterCallback: function (item) {\r\n var result = _this.condition.enabled || item.id === \"enable\" || item.id === \"delete\";\r\n if (item.id === \"enable\") {\r\n var parent_2 = _this.condition.getParent();\r\n result = result && parent_2 && parent_2.enabled;\r\n }\r\n else if (item.id === \"delete\") {\r\n result = result && ((_this.panel.options.editableParts & QPEditablePart.Removal) === QPEditablePart.Removal);\r\n }\r\n else if (item.id === \"addGroup\" || item.id === \"addCondition\") {\r\n result = result && ((_this.panel.options.editableParts & QPEditablePart.Addition) === QPEditablePart.Addition);\r\n }\r\n return result;\r\n },\r\n menuClosedCallback: function () {\r\n _this.keepShowingButtons = false;\r\n if (!_this.isMouseOverBlock)\r\n _this.leaveButtonBlock();\r\n }\r\n });\r\n break;\r\n case ConditionAction.Parameterized:\r\n this.condition.setParameterized(!this.condition.isParameterized());\r\n this.condition.fireChangedEvent();\r\n break;\r\n case ConditionAction.InJoin:\r\n this.condition.setInJoin(!this.condition.isInJoin());\r\n this.condition.fireChangedEvent();\r\n break;\r\n }\r\n evt.stopPropagation();\r\n return false;\r\n };\r\n SimpleConditionRenderer.prototype.getConditionMenuSelectedItems = function () {\r\n var arrSelected = [];\r\n if (this.condition.enabled) {\r\n arrSelected.push(\"enable\");\r\n }\r\n ;\r\n if (this.condition.isParameterized()) {\r\n arrSelected.push(\"param\");\r\n }\r\n ;\r\n if (this.condition.isInJoin()) {\r\n arrSelected.push(\"inJoin\");\r\n }\r\n ;\r\n return arrSelected;\r\n };\r\n SimpleConditionRenderer.prototype.renderButtonsBlock = function () {\r\n var _this = this;\r\n var onButtonMouseEnter = function (evt) {\r\n domel(evt.target)\r\n .addClass(_this.cssPrefix + \"-condition-button-active\");\r\n };\r\n var onButtonMouseLeave = function (evt) {\r\n domel(evt.target)\r\n .removeClass(_this.cssPrefix + \"-condition-button-active\");\r\n };\r\n var builder = domel(\"div\")\r\n .addClass(this.cssPrefix + \"-condition-buttonsBlock\")\r\n .addClass(browserUtils.getMobileCssClass());\r\n this.buttonsBlock = builder.toDOM();\r\n if (this.condition.isReadOnly()) {\r\n return this.buttonsBlock;\r\n }\r\n var buttonsToShow = this.getButtonsToShow();\r\n if (buttonsToShow.indexOf(\"addCondition\") >= 0 && this.condition.enabled\r\n && ((this.panel.options.editableParts & QPEditablePart.Addition) == QPEditablePart.Addition)) {\r\n builder.addChild(\"div\", function (b) {\r\n b.addClass(_this.cssPrefix + \"-button-placeholder\")\r\n .data(\"btnplaceholder\", \"\")\r\n .addChild(\"div\", function (b) {\r\n b.addClass(_this.cssPrefix + \"-condition-button \" + _this.cssPrefix + \"-condition-button-addCondition\")\r\n .attr('tabIndex', '0')\r\n .data(\"button\", \"\")\r\n .title(i18n.getText('CmdAddCondition'))\r\n .on('click', function (evt) { return _this.conditionMenuHandler(ConditionAction.AddCondition, evt); })\r\n .on('keypress', function (evt) { if (evt.keyCode == 13) {\r\n evt.target.click();\r\n } })\r\n .on('mouseenter', onButtonMouseEnter)\r\n .on('mouseleave', onButtonMouseLeave);\r\n });\r\n });\r\n }\r\n ;\r\n var showAddGroupBtn = buttonsToShow.indexOf(\"addGroup\") >= 0 || buttonsToShow.indexOf(\"addPredicate\") >= 0;\r\n if (showAddGroupBtn && this.condition.enabled\r\n && ((this.panel.options.editableParts & QPEditablePart.Addition) == QPEditablePart.Addition)) {\r\n builder.addChild(\"div\", function (b) {\r\n b.addClass(_this.cssPrefix + \"-button-placeholder\")\r\n .data(\"btnplaceholder\", \"\")\r\n .addChild(\"div\", function (b) {\r\n b.addClass(_this.cssPrefix + \"-condition-button \" + _this.cssPrefix + \"-condition-button-addPredicate\")\r\n .attr('tabIndex', '0')\r\n .data(\"button\", \"\")\r\n .title(i18n.getText('CmdAddCondGroup'))\r\n .on('click', function (evt) { return _this.conditionMenuHandler(ConditionAction.AddGroup, evt); })\r\n .on('keypress', function (evt) { if (evt.keyCode == 13) {\r\n evt.target.click();\r\n } })\r\n .on('mouseenter', onButtonMouseEnter)\r\n .on('mouseleave', onButtonMouseLeave);\r\n });\r\n });\r\n }\r\n ;\r\n if (this.getButtonsToShow().indexOf(\"enable\") >= 0 && this.condition.getParent() && this.condition.getParent().enabled) {\r\n builder.addChild(\"div\", function (b) {\r\n b.addClass(_this.cssPrefix + \"-button-placeholder\")\r\n .data(\"btnplaceholder\", \"\")\r\n .addChild(\"div\", function (b) {\r\n b.addClass(_this.cssPrefix + \"-condition-button \" + _this.cssPrefix + \"-condition-button-enable\")\r\n .attr('tabIndex', '0')\r\n .data(\"button\", \"\")\r\n .title(i18n.getText('CmdToggleEnable'))\r\n .addClass(_this.condition.enabled ? 'enabled' : '')\r\n .on('click', function (evt) { return _this.conditionMenuHandler(ConditionAction.Enable, evt); })\r\n .on('keypress', function (evt) { if (evt.keyCode == 13) {\r\n evt.target.click();\r\n } })\r\n .on('mouseenter', onButtonMouseEnter)\r\n .on('mouseleave', onButtonMouseLeave);\r\n });\r\n });\r\n }\r\n ;\r\n if (this.getButtonsToShow().indexOf(\"delete\") >= 0 && this.condition.getParent()\r\n && ((this.panel.options.editableParts & QPEditablePart.Removal) == QPEditablePart.Removal)) {\r\n builder.addChild(\"div\", function (b) {\r\n b.addClass(_this.cssPrefix + \"-button-placeholder\")\r\n .data(\"btnplaceholder\", \"\")\r\n .addChild(\"div\", function (b) {\r\n b.addClass(_this.cssPrefix + \"-condition-button \" + _this.cssPrefix + \"-condition-button-delete\")\r\n .attr('tabIndex', '0')\r\n .data(\"button\", \"\")\r\n .title(i18n.getText('CmdDelete'))\r\n .on('click', function (evt) { return _this.conditionMenuHandler(ConditionAction.Delete, evt); })\r\n .on('keypress', function (evt) { if (evt.keyCode == 13) {\r\n evt.target.click();\r\n } })\r\n .on('mouseenter', onButtonMouseEnter)\r\n .on('mouseleave', onButtonMouseLeave);\r\n });\r\n });\r\n }\r\n ;\r\n if (this.getButtonsToShow().indexOf(\"menu\") >= 0) {\r\n builder.addChild(\"div\", function (b) {\r\n b.addClass(_this.cssPrefix + \"-button-placeholder\")\r\n .data(\"btnplaceholder\", \"\")\r\n .addChild(\"div\", function (b) {\r\n b.addClass(_this.cssPrefix + \"-condition-button \" + _this.cssPrefix + \"-condition-button-menu\")\r\n .attr('tabIndex', '0')\r\n .data(\"button\", \"\")\r\n .title(i18n.getText('ButtonMenu'))\r\n .on('click', function (evt) { return _this.conditionMenuHandler(ConditionAction.Menu, evt); });\r\n if (!browserUtils.isMobileMode()) {\r\n b\r\n .on('keypress', function (evt) { if (evt.keyCode == 13) {\r\n evt.target.click();\r\n } })\r\n .on('mouseenter', onButtonMouseEnter)\r\n .on('mouseleave', onButtonMouseLeave);\r\n }\r\n });\r\n });\r\n }\r\n ;\r\n this.adjustButtonsVisibility();\r\n return this.buttonsBlock;\r\n };\r\n SimpleConditionRenderer.prototype.getButtonsToShow = function () {\r\n return this.panel.options.buttons && this.panel.options.buttons.condition && Array.isArray(this.panel.options.buttons.condition) ? this.panel.options.buttons.condition : [\"enable\", \"delete\"];\r\n };\r\n return SimpleConditionRenderer;\r\n}(ConditionRenderer));\r\nexport { SimpleConditionRenderer };\r\n//# sourceMappingURL=condition_renderer.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/widgets/renderers/querypanel/condition_renderer.js\n// module id = 70\n// module chunks = 0","import { domel } from '@easydata/ui';\r\nimport { browserUtils } from '../../utils/browser_utils';\r\nvar BaseElementRenderer = /** @class */ (function () {\r\n function BaseElementRenderer(slot) {\r\n this.element = slot || domel('div').toDOM();\r\n }\r\n BaseElementRenderer.prototype.refresh = function () {\r\n this.render();\r\n };\r\n BaseElementRenderer.prototype.render = function (isEditMode) {\r\n var _this = this;\r\n if (isEditMode === void 0) { isEditMode = false; }\r\n this.labelElement = this.renderLabelElement();\r\n domel(this.element)\r\n .html('')\r\n .addClass(this.getClassesToAdd())\r\n .addClass(browserUtils.getMobileCssClass())\r\n .addChildElement(this.labelElement);\r\n if (this.isEditable()) {\r\n this.renderEditor();\r\n if (isEditMode) {\r\n setTimeout(function () { return _this.showEditor(); }, 50);\r\n }\r\n }\r\n return this.element;\r\n };\r\n BaseElementRenderer.prototype.isEditable = function () {\r\n return true;\r\n };\r\n BaseElementRenderer.prototype.renderLabelElement = function () {\r\n var _this = this;\r\n var displayedText = this.getLabelText();\r\n if (this.isEditable()) {\r\n return domel('a')\r\n .attr('href', 'javascript:void(0)')\r\n .title(displayedText)\r\n .text(displayedText)\r\n .on('click', function (ev) {\r\n ev.preventDefault();\r\n _this.showEditor();\r\n return false;\r\n })\r\n .toDOM();\r\n }\r\n else {\r\n return domel('span')\r\n .title(displayedText)\r\n .text(displayedText)\r\n .toDOM();\r\n }\r\n };\r\n BaseElementRenderer.prototype.getClassesToAdd = function () {\r\n return '';\r\n };\r\n BaseElementRenderer.prototype.getLabelText = function () {\r\n return this.getEmptyText();\r\n };\r\n BaseElementRenderer.prototype.getEmptyText = function () {\r\n return '';\r\n };\r\n return BaseElementRenderer;\r\n}());\r\nexport { BaseElementRenderer };\r\n//# sourceMappingURL=base_element_renderer.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/widgets/renderers/base_element_renderer.js\n// module id = 71\n// module chunks = 0","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { BaseElementRenderer } from './base_element_renderer';\r\nvar DropDownRenderer = /** @class */ (function (_super) {\r\n __extends(DropDownRenderer, _super);\r\n function DropDownRenderer(slot) {\r\n return _super.call(this, slot) || this;\r\n }\r\n DropDownRenderer.prototype.showEditor = function () {\r\n var _this = this;\r\n var menu = this.getMenu();\r\n if (menu) {\r\n menu.showMenu({\r\n anchor: this.labelElement,\r\n itemSelectedCallback: function (item) {\r\n _this.itemSelected(item.id);\r\n return false;\r\n }\r\n });\r\n }\r\n };\r\n DropDownRenderer.prototype.closeEditor = function () {\r\n var menu = this.getMenu();\r\n if (menu)\r\n menu.hideMenu();\r\n };\r\n return DropDownRenderer;\r\n}(BaseElementRenderer));\r\nexport { DropDownRenderer };\r\n//# sourceMappingURL=dropdown_renderer.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/widgets/renderers/dropdown_renderer.js\n// module id = 72\n// module chunks = 0","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport { WidgetGroup, QueryChangeAction, ExprTag, QueryChangePart, SortDirection } from '@easyquery/core';\r\nimport { utils as dataUtils } from '@easydata/core';\r\nimport { EasyGrid } from '@easydata/ui';\r\nimport { Grid } from './grid';\r\nimport { PopupMenu } from '../utils/popup_menu';\r\nvar EasyGridWidget = /** @class */ (function (_super) {\r\n __extends(EasyGridWidget, _super);\r\n /**\r\n * The default constructor.\r\n * @param slot The html element.\r\n */\r\n function EasyGridWidget(slot) {\r\n var _this = _super.call(this, slot) || this;\r\n _this.hasCustomTotalsSettings = false;\r\n //!!!! DO NOT forget to add types for options\r\n _this.options = { autoRefresh: true };\r\n _this.group = WidgetGroup.Result;\r\n return _this;\r\n }\r\n EasyGridWidget.prototype.getWidgetType = function () {\r\n return 'easyGrid';\r\n };\r\n /**\r\n * Initialize widget.\r\n * @param context The context.\r\n * @param options The options.\r\n */\r\n EasyGridWidget.prototype.init = function (context, options) {\r\n var _this = this;\r\n _super.prototype.init.call(this, context, options);\r\n var gridOptions = __assign({}, options, { slot: this.slot, dataTable: context.resultTable });\r\n this.options = dataUtils.assign(this.options, options);\r\n gridOptions.onAddColumnClick = function (ev) { return _this.addColumnClickHandler(ev); };\r\n gridOptions.onColumnMoved = function (ev) { return _this.columnMovedHandler(ev); };\r\n if (this.context.calcTotals) {\r\n if (gridOptions.totals) {\r\n this.hasCustomTotalsSettings = true;\r\n }\r\n else {\r\n gridOptions.totals = __assign({}, this.context.getTotalsSettings(), { calculator: null });\r\n }\r\n gridOptions.totals.calculator = this.context.getServices()\r\n .getTotalCalculator();\r\n }\r\n this.destroy();\r\n this.grid = new EasyGrid(gridOptions);\r\n if (this.options.autoRefresh) {\r\n this.attachQueryObserver();\r\n }\r\n };\r\n EasyGridWidget.prototype.refreshCore = function () {\r\n this.clear();\r\n this.updateTotalsSettings();\r\n this.render();\r\n };\r\n EasyGridWidget.prototype.render = function () {\r\n this.createEntitiesMenu();\r\n this.grid.refresh();\r\n };\r\n EasyGridWidget.prototype.attachQueryObserver = function () {\r\n var _this = this;\r\n var query = this.getQuery();\r\n this.queryEventCallbackId = query.addChangedCallback(function (event) {\r\n //if something has changed, and that change is related to columns\r\n var edata = event.data;\r\n if (!edata || (edata.part != QueryChangePart.Columns && edata.part != QueryChangePart.All)) {\r\n return;\r\n }\r\n if (event.data.source == _this) {\r\n _this.grid.refresh();\r\n }\r\n else {\r\n _this.refresh();\r\n }\r\n });\r\n };\r\n EasyGridWidget.prototype.destroyCore = function () {\r\n this.detachQueryObserver();\r\n if (this.grid)\r\n this.grid.destroy();\r\n this.slot.innerHTML = '';\r\n };\r\n EasyGridWidget.prototype.detachQueryObserver = function () {\r\n if (this.queryEventCallbackId) {\r\n var query = this.getContext().getQuery();\r\n query.removeChangedCallback(this.queryEventCallbackId);\r\n }\r\n };\r\n EasyGridWidget.prototype.updateTotalsSettings = function () {\r\n var context = this.getContext();\r\n if (context.calcTotals && !this.hasCustomTotalsSettings) {\r\n var settings = context.getTotalsSettings();\r\n this.grid.options.totals.calcGrandTotals = settings.calcGrandTotals;\r\n this.grid.options.totals.cols = settings.cols;\r\n }\r\n };\r\n EasyGridWidget.prototype.createEntitiesMenu = function () {\r\n var model = this.getContext().getModel();\r\n if (!model || model.isEmpty())\r\n return;\r\n var menuId = this.slot.id;\r\n if (menuId) {\r\n menuId += '-EntitiesMenu';\r\n }\r\n var entitiesList = model.getEntitiesTree({ addUIC: false, addUIR: true, addUIS: false });\r\n var options = { items: entitiesList, id: menuId };\r\n dataUtils.assign(options, this.options.menuOptions);\r\n this.entitiesMenu = new PopupMenu(options);\r\n };\r\n EasyGridWidget.prototype.getModel = function () {\r\n return this.context.getModel();\r\n };\r\n EasyGridWidget.prototype.getQuery = function () {\r\n return this.context.getQuery();\r\n };\r\n EasyGridWidget.prototype.clear = function () {\r\n if (this.grid)\r\n this.grid.clear();\r\n };\r\n EasyGridWidget.prototype.addColumnClickHandler = function (ev) {\r\n var _this = this;\r\n this.entitiesMenu.showMenu({\r\n anchor: ev.sourceEvent.target,\r\n selectedIds: null,\r\n itemSelectedCallback: function (data, items) {\r\n var attrid = data.id;\r\n _this.addNewColumn(attrid);\r\n return false;\r\n }\r\n });\r\n };\r\n EasyGridWidget.prototype.columnMovedHandler = function (ev) {\r\n var query = this.getQuery();\r\n var oldIndex = dataUtils.findItemIndexById(query.getColumns(), ev.columnId);\r\n if (oldIndex >= 0) {\r\n query.moveColumn(oldIndex, ev.newIndex);\r\n query.fireChangedEvent({\r\n part: QueryChangePart.Columns,\r\n action: QueryChangeAction.All,\r\n source: this\r\n });\r\n }\r\n };\r\n EasyGridWidget.prototype.addNewColumn = function (attrId) {\r\n var _this = this;\r\n var model = this.getContext().getModel();\r\n var query = this.getContext().getQuery();\r\n var getColumnByAttrId = function (attrid) {\r\n var attribute = model.getAttributeById(attrid);\r\n if (!attribute) {\r\n return null;\r\n }\r\n if (!attribute.useInSorting) {\r\n if (attribute.lookupAttr) {\r\n attrid = attribute.lookupAttr;\r\n attribute = model.getAttributeById(attrid);\r\n if (!attribute || !attribute.useInSorting) {\r\n return null;\r\n }\r\n }\r\n else\r\n return null;\r\n }\r\n var column = query.createColumn();\r\n column.caption = _this.getDefaultColumnCaption(attribute);\r\n column.sorting = SortDirection.None;\r\n column.sortIndex = -1;\r\n column.expr.tag = ExprTag.EntityAttribute;\r\n //column.expr.id = attrid;\r\n column.expr.setValue(attrid, true);\r\n column.params.concat(attribute.params);\r\n return column;\r\n };\r\n if (!this.getContext().getQuery()) {\r\n return;\r\n }\r\n return this.addColumn(getColumnByAttrId(attrId));\r\n };\r\n EasyGridWidget.prototype.getDefaultColumnCaption = function (attr) {\r\n var format = this.options.titleElementFormat || this.options.attrElementFormat;\r\n var model = this.getContext().getModel();\r\n return model.getAttributeText(attr, format);\r\n };\r\n EasyGridWidget.prototype.addColumn = function (column) {\r\n var query = this.getContext().getQuery();\r\n if (!query) {\r\n return;\r\n }\r\n column = this.checkColumn(column);\r\n if (!column) {\r\n return;\r\n }\r\n column = query.addColumn({\r\n caption: column.caption,\r\n attributeId: column.expr.value,\r\n sorting: column.sorting,\r\n sortIndex: column.sortIndex\r\n });\r\n query.fireChangedEvent({\r\n part: QueryChangePart.Columns,\r\n action: QueryChangeAction.Add,\r\n changee: column,\r\n source: this\r\n });\r\n return column;\r\n };\r\n EasyGridWidget.prototype.checkColumn = function (col) {\r\n var query = this.getContext().getQuery();\r\n var columns = query.getColumns();\r\n var colJson = JSON.stringify(col.expr.saveToData());\r\n for (var i = 0; i < columns.length; i++) {\r\n var qcolJson = JSON.stringify(columns[i].expr.saveToData());\r\n if (qcolJson === colJson) {\r\n return null;\r\n }\r\n }\r\n return col;\r\n };\r\n return EasyGridWidget;\r\n}(Grid));\r\nexport { EasyGridWidget };\r\n//# sourceMappingURL=easy_grid_widget.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/widgets/easy_grid_widget.js\n// module id = 73\n// module chunks = 0","import { domel } from '@easydata/ui';\r\nimport { i18n } from '@easyquery/core';\r\nvar ExportDialog = /** @class */ (function () {\r\n function ExportDialog(context) {\r\n this.context = context;\r\n this.promise = null;\r\n }\r\n ExportDialog.prototype.show = function (defFormat) {\r\n var _this = this;\r\n if (defFormat === void 0) { defFormat = null; }\r\n if (!this.promise) {\r\n var formats = this.context.getExportFormats();\r\n if (formats.length == 0)\r\n throw Error(\"No exporter has been registered.\");\r\n defFormat = defFormat || formats[0];\r\n this.promise = new Promise(function (resolve, reject) {\r\n var ds = _this.context.getServices().getDialogService();\r\n var body = domel('div')\r\n .addClass('kdlg-form-section')\r\n .addChild('div', function (b) { return b\r\n .addClass('kfrm-form')\r\n .addChild('div', function (b) { return b\r\n .addClass('kfrm-fields col-a-1 label-align-right')\r\n .addChild('label', function (b) { return b\r\n .addClass('kdlg-form-label', 'kflex-20')\r\n .attr('for', 'export_format')\r\n .addText(i18n.getText('ExportDlgFmtLabel')); })\r\n .addChild('div', function (b) { return b\r\n .addClass('kfrm-select')\r\n .addChild('select', function (b) {\r\n b\r\n .attr('name', 'export_format')\r\n .id('exportFormat');\r\n for (var _i = 0, _a = _this.context.getExportFormats(); _i < _a.length; _i++) {\r\n var format = _a[_i];\r\n b.addOption({\r\n value: format,\r\n title: i18n.getText(format) || format,\r\n selected: defFormat == format\r\n });\r\n }\r\n }); }); }); })\r\n .toDOM();\r\n ds.open({\r\n title: i18n.getText('ExportDlgTitle'),\r\n body: body,\r\n onSubmit: function () {\r\n var format = body.querySelector('#exportFormat').value;\r\n _this.context.exportResult({\r\n format: format,\r\n success: resolve,\r\n error: reject\r\n });\r\n return true;\r\n }\r\n });\r\n });\r\n }\r\n return this.promise.finally(function () { return _this.promise = null; });\r\n };\r\n return ExportDialog;\r\n}());\r\nexport { ExportDialog };\r\n//# sourceMappingURL=export_dialog.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/dialog/export_dialog.js\n// module id = 74\n// module chunks = 0","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { addElement } from '@easydata/ui';\r\nimport { ChartWidget } from './chart_widget';\r\nimport { ChartType } from './chart_type';\r\nvar ChartJsWidget = /** @class */ (function (_super) {\r\n __extends(ChartJsWidget, _super);\r\n /**\r\n * The default constructor.\r\n * @param slot The html element.\r\n * @param provider The provider.\r\n */\r\n function ChartJsWidget(slot) {\r\n var _this = _super.call(this, slot) || this;\r\n _this.colors = [\r\n '#4dc9f6',\r\n '#f67019',\r\n '#f53794',\r\n '#537bc4',\r\n '#acc236',\r\n '#166a8f',\r\n '#00a950',\r\n '#58595b',\r\n '#8549ba'\r\n ];\r\n _this.chartLabels = [];\r\n _this.chartColumns = [];\r\n _this.hasChartTypes = [\r\n ChartType.Column,\r\n ChartType.Bar,\r\n ChartType.Line,\r\n ChartType.Pie\r\n ];\r\n _this.options.legend = {\r\n show: false,\r\n position: 'bottom'\r\n };\r\n return _this;\r\n }\r\n ChartJsWidget.prototype.getWidgetType = function () {\r\n return 'chartChartJs';\r\n };\r\n ChartJsWidget.hasChartJs = function () {\r\n return typeof Chart !== 'undefined';\r\n };\r\n ChartJsWidget.prototype.canDraw = function () {\r\n return ChartJsWidget.hasChartJs();\r\n };\r\n ChartJsWidget.prototype.initChart = function () {\r\n if (ChartJsWidget.hasChartJs() && this.labelColumn >= 0\r\n && this.dataColumns && this.dataColumns.length > 0) {\r\n this.updateChartColumns();\r\n }\r\n };\r\n ChartJsWidget.prototype.drawCore = function () {\r\n if (ChartJsWidget.hasChartJs() && this.dataTable\r\n && this.dataTable.getCachedCount() > 0) {\r\n var config = this.generateConfig();\r\n var chartCanvas = this.getChartCanvas(this.chartDiv);\r\n var chartContext = chartCanvas.getContext('2d');\r\n new Chart(chartContext, config);\r\n }\r\n };\r\n ChartJsWidget.prototype.updateChartColumns = function () {\r\n if (this.dataTable) {\r\n this.chartLabels = [];\r\n this.chartColumns = [];\r\n var rows = this.dataTable.getCachedRows();\r\n for (var i = 0; i < rows.length; i++) {\r\n this.chartLabels.push(rows[i].getValue(this.labelColumn));\r\n this.chartColumns.push(rows[i].getValue(this.dataColumns[0]));\r\n }\r\n }\r\n };\r\n ChartJsWidget.prototype.getChartCanvas = function (slot) {\r\n var result;\r\n //find canvas element\r\n var canvases = slot.getElementsByTagName('canvas');\r\n if (canvases && canvases.length > 0) {\r\n result = canvases[0];\r\n }\r\n else {\r\n result = addElement(slot, 'canvas');\r\n }\r\n return result;\r\n };\r\n ChartJsWidget.prototype.generateConfig = function () {\r\n var dataColors = [];\r\n var datasetName = this.dataTable.columns.get(this.dataColumns[0]).label;\r\n var fillValue = true;\r\n var borderColor;\r\n if (this.chartType == ChartType.Pie\r\n || this.chartType == ChartType.Bar\r\n || this.chartType == ChartType.Column) {\r\n for (var i = 0; i < this.chartLabels.length; i++) {\r\n dataColors.push(this.colors[i % this.colors.length]);\r\n }\r\n }\r\n else {\r\n dataColors = [this.colors[3]];\r\n }\r\n if (this.chartType == ChartType.Line) {\r\n fillValue = false;\r\n borderColor = this.colors[3];\r\n }\r\n this.options.legend = this.options.legend || {};\r\n return {\r\n type: this.getChartType(),\r\n data: {\r\n datasets: [{\r\n data: this.chartColumns,\r\n backgroundColor: dataColors,\r\n borderColor: borderColor,\r\n label: datasetName,\r\n fill: fillValue\r\n }],\r\n labels: this.chartLabels\r\n },\r\n options: {\r\n legend: {\r\n display: this.options.legend.show && this.chartType == ChartType.Pie,\r\n position: this.options.legend.position || 'bottom'\r\n },\r\n title: {\r\n display: true,\r\n text: datasetName\r\n }\r\n }\r\n };\r\n };\r\n ChartJsWidget.prototype.getChartType = function () {\r\n switch (this.chartType) {\r\n case ChartType.Column:\r\n return \"bar\";\r\n case ChartType.Bar:\r\n return \"horizontalBar\";\r\n case ChartType.Line:\r\n return \"line\";\r\n case ChartType.Pie:\r\n return \"pie\";\r\n default:\r\n return \"pie\";\r\n }\r\n };\r\n return ChartJsWidget;\r\n}(ChartWidget));\r\nexport { ChartJsWidget };\r\n//# sourceMappingURL=chart_widget_chartjs.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/widgets/charts/chart_widget_chartjs.js\n// module id = 75\n// module chunks = 0","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { Widget, WidgetGroup, } from '@easyquery/core';\r\nimport { utils as dataUtils } from '@easydata/core';\r\nimport { addCssClass, showElement, hideElement, toggleVisibility, isVisible } from '@easydata/ui';\r\nimport { ChartType } from './chart_type';\r\nvar ChartWidget = /** @class */ (function (_super) {\r\n __extends(ChartWidget, _super);\r\n /**\r\n * The default constructor.\r\n * @param slot The html element.\r\n * @param provider The provider.\r\n */\r\n function ChartWidget(slot) {\r\n var _this = _super.call(this, slot) || this;\r\n _this.chartType = ChartType.Pie;\r\n _this.supportedChartTypes = [];\r\n _this.dataTable = null;\r\n _this.potentialLabelColumns = [];\r\n _this.potentialDataColumns = [];\r\n _this.labelColumn = -1;\r\n _this.dataColumns = [];\r\n _this.options = {\r\n chartType: ChartType.Pie,\r\n showOnPaging: false,\r\n hideSettings: false,\r\n legend: {\r\n show: false,\r\n position: 'right'\r\n }\r\n };\r\n _this.element = slot;\r\n _this.group = WidgetGroup.Result;\r\n return _this;\r\n }\r\n Object.defineProperty(ChartWidget.prototype, \"cssPrefix\", {\r\n get: function () {\r\n return 'eqjs-chart';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Initialize widget.\r\n * @param context The context.\r\n * @param options The options.\r\n */\r\n ChartWidget.prototype.init = function (context, options) {\r\n _super.prototype.init.call(this, context, options);\r\n this.dataTable = context.resultTable;\r\n this.setOptions(options);\r\n };\r\n /**\r\n * Checks, if widget has data.\r\n * @returns `true` if has data, otherwise - `false`.\r\n */\r\n ChartWidget.prototype.hasData = function () {\r\n var result = this.dataTable != null;\r\n if (result) {\r\n result = this.dataTable.getCachedCount() > 0;\r\n }\r\n return result;\r\n };\r\n /**\r\n * Checks, if there ara colums for chart\r\n * @returns `true` if there are columns, otherwise - `false`.\r\n */\r\n ChartWidget.prototype.hasColumnsForChart = function () {\r\n return this.potentialLabelColumns.length > 0 && this.potentialDataColumns.length > 0;\r\n };\r\n /**\r\n * Refresh widget implementation\r\n */\r\n ChartWidget.prototype.refreshCore = function () {\r\n this.prepareChartData();\r\n this.render();\r\n };\r\n ChartWidget.prototype.setOptions = function (options) {\r\n dataUtils.assignDeep(this.options, options);\r\n this.supportedChartTypes = this.getSupportedChartTypes();\r\n if (this.supportedChartTypes.length == 0) {\r\n throw Error(\"Chart widget should support at least one chart type\");\r\n }\r\n if (options.chartType && this.supportedChartTypes.indexOf(options.chartType) >= 0) {\r\n this.chartType = options.chartType;\r\n }\r\n else {\r\n this.chartType = this.supportedChartTypes[0];\r\n }\r\n };\r\n ChartWidget.prototype.getOptions = function () {\r\n return this.options;\r\n };\r\n ChartWidget.prototype.getChartTypeName = function (ct) {\r\n switch (ct) {\r\n case ChartType.Area:\r\n return \"Area chart\";\r\n case ChartType.Bar:\r\n return \"Bar chart\";\r\n case ChartType.Candlestick:\r\n return \"Candlestick chart\";\r\n case ChartType.Column:\r\n return \"Column chart\";\r\n case ChartType.Combo:\r\n return \"Combo chart\";\r\n case ChartType.Donut:\r\n return \"Donut chart\";\r\n case ChartType.Gauge:\r\n return \"Gauge chart\";\r\n case ChartType.Histogram:\r\n return \"Histogram chart\";\r\n case ChartType.Line:\r\n return \"Line chart\";\r\n default:\r\n return \"Pie chart\";\r\n }\r\n };\r\n ChartWidget.prototype.updateSettings = function (settings) {\r\n if (typeof settings.showLegend !== 'undefined') {\r\n this.options.legend = this.options.legend || {};\r\n this.options.legend.show = settings.showLegend;\r\n }\r\n this.chartType = settings.type;\r\n this.labelColumn = settings.labelColumn;\r\n this.updateChartColumns();\r\n this.dataColumns[0] = settings.dataColumn;\r\n this.updateChartColumns();\r\n };\r\n /**\r\n * Prepares data for chart.\r\n */\r\n ChartWidget.prototype.prepareChartData = function () {\r\n var _this = this;\r\n if (this.dataTable) {\r\n this.potentialLabelColumns = [];\r\n this.potentialDataColumns = [];\r\n var colNum = this.dataTable.columns.count;\r\n for (var i = 0; i < colNum; i++) {\r\n var column = this.dataTable.columns.get(i);\r\n var colType = column.type;\r\n var colLabel = column.label;\r\n this.potentialLabelColumns.push({ idx: i, label: colLabel });\r\n if (dataUtils.isNumericType(colType)) {\r\n this.potentialDataColumns.push({ idx: i, label: colLabel });\r\n }\r\n }\r\n ;\r\n if (this.labelColumn != -1) {\r\n if (!this.potentialLabelColumns\r\n .filter(function (c) { return c.idx == _this.labelColumn; })\r\n .length) {\r\n this.labelColumn = -1;\r\n }\r\n }\r\n else {\r\n this.labelColumn = (this.potentialLabelColumns.length > 0)\r\n ? this.potentialLabelColumns[0].idx : -1;\r\n }\r\n if (this.dataColumns.length) {\r\n var ids_1 = this.potentialDataColumns.map(function (d) { return d.idx; });\r\n this.dataColumns = this.dataColumns.filter(function (v) { return ids_1.indexOf(v) >= 0; });\r\n if (!this.dataColumns.length) {\r\n this.dataColumns = (this.potentialDataColumns.length > 0)\r\n ? [].concat(this.potentialDataColumns[0].idx)\r\n : [];\r\n }\r\n }\r\n else {\r\n this.dataColumns = (this.potentialDataColumns.length > 0)\r\n ? [].concat(this.potentialDataColumns[0].idx)\r\n : [];\r\n }\r\n this.initChart();\r\n }\r\n };\r\n ChartWidget.prototype.getSupportedChartTypes = function () {\r\n var _this = this;\r\n var chartTypes = this.options.supportedChartTypes\r\n ? this.options.supportedChartTypes\r\n : Object.keys(ChartType).map(function (key) { return ChartType[key]; });\r\n return chartTypes.filter(function (type) { return _this.hasChartTypes.indexOf(type) >= 0; });\r\n };\r\n ChartWidget.prototype.getCurrentChartType = function () {\r\n return this.chartType;\r\n };\r\n ChartWidget.prototype.render = function () {\r\n var _this = this;\r\n this.clear();\r\n if (this.hasData() && this.hasColumnsForChart()\r\n && (this.context.resultTable.getTotal()\r\n == this.context.resultTable.getCachedCount())) {\r\n var headerDiv = document.createElement('div');\r\n addCssClass(headerDiv, this.cssPrefix + \"-header\");\r\n var mainDiv = document.createElement('div');\r\n addCssClass(mainDiv, this.cssPrefix + \"-main\");\r\n if (this.canDraw()) {\r\n var chartTypeSelector = document.createElement('select');\r\n for (var _i = 0, _a = this.supportedChartTypes; _i < _a.length; _i++) {\r\n var ct = _a[_i];\r\n var sopt = document.createElement('option');\r\n sopt.value = ct.toString();\r\n sopt.text = this.getChartTypeName(ct);\r\n chartTypeSelector.appendChild(sopt);\r\n }\r\n chartTypeSelector.value = this.chartType.toString();\r\n headerDiv.appendChild(chartTypeSelector);\r\n chartTypeSelector.addEventListener('change', function (ev) {\r\n var ctkey = ev.target.value;\r\n _this.chartType = parseInt(ctkey);\r\n _this.refresh();\r\n });\r\n this.settingsDiv = document.createElement('div');\r\n addCssClass(this.settingsDiv, this.cssPrefix + \"-settings\");\r\n hideElement(this.settingsDiv);\r\n mainDiv.appendChild(this.settingsDiv);\r\n this.chartDiv = document.createElement('div');\r\n addCssClass(this.chartDiv, this.cssPrefix + \"-content\");\r\n hideElement(this.chartDiv);\r\n mainDiv.appendChild(this.chartDiv);\r\n this.initSettingsDiv();\r\n var chartSettingsBtn = document.createElement('div');\r\n addCssClass(chartSettingsBtn, this.cssPrefix + \"-settings-icon\");\r\n chartSettingsBtn.title = \"Settings\";\r\n headerDiv.appendChild(chartSettingsBtn);\r\n chartSettingsBtn.addEventListener('click', function (ev) {\r\n _this.toggleSettings();\r\n });\r\n this.drawChart(100);\r\n }\r\n else {\r\n this.addContentDiv(mainDiv, \"Chart Provider is not defined\");\r\n }\r\n if (!this.options.hideSettings) {\r\n this.element.appendChild(headerDiv);\r\n }\r\n this.element.appendChild(mainDiv);\r\n this.element.style.display = \"\";\r\n }\r\n else {\r\n this.element.style.display = \"none\";\r\n }\r\n };\r\n ChartWidget.prototype.addContentDiv = function (mainDiv, text) {\r\n var contentDiv = document.createElement('div');\r\n addCssClass(contentDiv, this.cssPrefix + \"-no-data\");\r\n contentDiv.innerText = text;\r\n mainDiv.appendChild(contentDiv);\r\n };\r\n /**\r\n * Clears chart.\r\n */\r\n ChartWidget.prototype.clear = function () {\r\n this.element.innerHTML = '';\r\n };\r\n /**\r\n * Draws chart with delay.\r\n * @param delay The delay.\r\n */\r\n ChartWidget.prototype.drawChart = function (delay) {\r\n var _this = this;\r\n showElement(this.chartDiv);\r\n if (delay > 0) {\r\n setTimeout(function () { return _this.drawCore(); }, delay);\r\n }\r\n else {\r\n this.drawCore();\r\n }\r\n };\r\n /**\r\n * Inititialize settings div.\r\n */\r\n ChartWidget.prototype.initSettingsDiv = function () {\r\n var _this = this;\r\n var settingsHeader = document.createElement('div');\r\n settingsHeader.textContent = 'SETTINGS';\r\n addCssClass(settingsHeader, this.cssPrefix + \"-settings-header\");\r\n this.settingsDiv.appendChild(settingsHeader);\r\n // Label column\r\n var labelDiv = document.createElement('div');\r\n addCssClass(labelDiv, this.cssPrefix + \"-settings-single\");\r\n this.settingsDiv.appendChild(labelDiv);\r\n var labelColumnSelectorCaption = document.createElement('span');\r\n showElement(labelColumnSelectorCaption);\r\n labelColumnSelectorCaption.textContent = 'Label column';\r\n labelDiv.appendChild(labelColumnSelectorCaption);\r\n var labelColumnSelector = document.createElement('select');\r\n showElement(labelColumnSelector);\r\n labelDiv.appendChild(labelColumnSelector);\r\n for (var _i = 0, _a = this.potentialLabelColumns; _i < _a.length; _i++) {\r\n var col = _a[_i];\r\n var sopt = document.createElement('option');\r\n sopt.value = col.idx.toString();\r\n sopt.text = col.label;\r\n labelColumnSelector.appendChild(sopt);\r\n }\r\n if (this.labelColumn >= 0) {\r\n labelColumnSelector.value = this.labelColumn.toString();\r\n }\r\n labelColumnSelector.addEventListener('change', function (ev) {\r\n _this.labelColumn = parseInt(ev.target.value);\r\n _this.updateChartColumns();\r\n _this.toggleSettings(function () {\r\n _this.drawChart(100);\r\n });\r\n });\r\n // Data column\r\n var dataDiv = document.createElement('div');\r\n addCssClass(dataDiv, this.cssPrefix + \"-settings-single\");\r\n this.settingsDiv.appendChild(dataDiv);\r\n var dataColumnSelectorCaption = document.createElement('span');\r\n showElement(dataColumnSelectorCaption);\r\n dataColumnSelectorCaption.textContent = 'Data column';\r\n dataDiv.appendChild(dataColumnSelectorCaption);\r\n var dataColumnSelector = document.createElement('select');\r\n showElement(dataColumnSelector);\r\n dataDiv.appendChild(dataColumnSelector);\r\n for (var _b = 0, _c = this.potentialDataColumns; _b < _c.length; _b++) {\r\n var col = _c[_b];\r\n var sopt = document.createElement('option');\r\n sopt.value = col.idx.toString();\r\n sopt.text = col.label;\r\n dataColumnSelector.appendChild(sopt);\r\n }\r\n if (this.dataColumns.length > 0 && this.dataColumns[0] >= 0) {\r\n dataColumnSelector.value = this.dataColumns[0].toString();\r\n }\r\n dataColumnSelector.addEventListener('change', function (ev) {\r\n _this.dataColumns[0] = parseInt(ev.target.value);\r\n _this.updateChartColumns();\r\n _this.toggleSettings(function () {\r\n _this.drawChart(100);\r\n });\r\n });\r\n };\r\n ChartWidget.prototype.getPotentialLabelColumns = function () {\r\n return this.potentialLabelColumns;\r\n };\r\n ChartWidget.prototype.getPotentialDataColumns = function () {\r\n return this.potentialDataColumns;\r\n };\r\n ChartWidget.prototype.getLabelColumnIndex = function () {\r\n return this.labelColumn;\r\n };\r\n ChartWidget.prototype.getDataColumnIndex = function () {\r\n return this.dataColumns[0];\r\n };\r\n /**\r\n * Toggles settings.\r\n * @param callback The callback.\r\n */\r\n ChartWidget.prototype.toggleSettings = function (callback) {\r\n var first;\r\n var second;\r\n if (isVisible(this.chartDiv)) {\r\n first = this.chartDiv;\r\n second = this.settingsDiv;\r\n }\r\n else {\r\n first = this.settingsDiv;\r\n second = this.chartDiv;\r\n }\r\n toggleVisibility(first, second, {\r\n complete: callback\r\n });\r\n };\r\n return ChartWidget;\r\n}(Widget));\r\nexport { ChartWidget };\r\n//# sourceMappingURL=chart_widget.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/widgets/charts/chart_widget.js\n// module id = 76\n// module chunks = 0","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { Query, CondTag, LinkType } from '@easyquery/core';\r\nimport { ConditionEx } from './condition_ex';\r\nimport { QueryColumnEx } from './query_column_ex';\r\nimport { lcv } from '../utils/lcv';\r\nvar QueryEx = /** @class */ (function (_super) {\r\n __extends(QueryEx, _super);\r\n function QueryEx(model) {\r\n return _super.call(this, model) || this;\r\n }\r\n QueryEx.prototype.isEx = function () {\r\n return lcv.__kt !== 0;\r\n };\r\n QueryEx.prototype.createCondition = function (tag) {\r\n if (tag === void 0) { tag = CondTag.Simple; }\r\n if (!lcv.__kt)\r\n return _super.prototype.createCondition.call(this, tag);\r\n return new ConditionEx(this, tag);\r\n };\r\n QueryEx.prototype.createColumn = function (justsorted) {\r\n if (justsorted === void 0) { justsorted = false; }\r\n if (!lcv.__kt)\r\n return _super.prototype.createColumn.call(this, justsorted);\r\n return new QueryColumnEx(this, justsorted);\r\n };\r\n /**\r\n * Adds a condition group - a group of simple conditions (predicates) linked by AND or OR\r\n * @param descriptor The descriptor of the new condition group.\r\n * @returns The new search condition.\r\n */\r\n QueryEx.prototype.addConditionGroup = function (descriptor, addChildCondition) {\r\n if (addChildCondition === void 0) { addChildCondition = true; }\r\n if (!lcv.__kt)\r\n return _super.prototype.addConditionGroup.call(this, descriptor, addChildCondition);\r\n var parent = descriptor.parent || this.getRootCondition();\r\n var lType = descriptor.linking || (parent.linkType === LinkType.All ? LinkType.Any : LinkType.All);\r\n var group = this.createCondition(CondTag.Group);\r\n group.linkType = lType;\r\n if (addChildCondition) {\r\n var model = this.getModel();\r\n var attr = model.getFirstUICAttr();\r\n var op = model.getDefaultOperatorForAttr(attr);\r\n var cond = this.createSimpleConditionObject(attr, op, \"\");\r\n group.addCondition(cond);\r\n }\r\n parent.addCondition(group);\r\n return group;\r\n };\r\n QueryEx.prototype.addExtraConditionGroup = function (descriptor, addChildCondition) {\r\n if (addChildCondition === void 0) { addChildCondition = true; }\r\n descriptor.parent = descriptor.parent || this.extraConditions;\r\n if (!lcv.__kt)\r\n return _super.prototype.addExtraConditionGroup.call(this, descriptor, addChildCondition);\r\n return this.addConditionGroup(descriptor);\r\n };\r\n return QueryEx;\r\n}(Query));\r\nexport { QueryEx };\r\n//# sourceMappingURL=query_ex.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/enterprise/dist/lib/query/query_ex.js\n// module id = 77\n// module chunks = 0","'use strict';\n\nvar asap = require('asap/raw');\n\nfunction noop() {}\n\n// States:\n//\n// 0 - pending\n// 1 - fulfilled with _value\n// 2 - rejected with _value\n// 3 - adopted the state of another promise, _value\n//\n// once the state is no longer pending (0) it is immutable\n\n// All `_` prefixed properties will be reduced to `_{random number}`\n// at build time to obfuscate them and discourage their use.\n// We don't use symbols or Object.defineProperty to fully hide them\n// because the performance isn't good enough.\n\n\n// to avoid using try/catch inside critical functions, we\n// extract them to here.\nvar LAST_ERROR = null;\nvar IS_ERROR = {};\nfunction getThen(obj) {\n try {\n return obj.then;\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nfunction tryCallOne(fn, a) {\n try {\n return fn(a);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\nfunction tryCallTwo(fn, a, b) {\n try {\n fn(a, b);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nmodule.exports = Promise;\n\nfunction Promise(fn) {\n if (typeof this !== 'object') {\n throw new TypeError('Promises must be constructed via new');\n }\n if (typeof fn !== 'function') {\n throw new TypeError('Promise constructor\\'s argument is not a function');\n }\n this._75 = 0;\n this._83 = 0;\n this._18 = null;\n this._38 = null;\n if (fn === noop) return;\n doResolve(fn, this);\n}\nPromise._47 = null;\nPromise._71 = null;\nPromise._44 = noop;\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n if (this.constructor !== Promise) {\n return safeThen(this, onFulfilled, onRejected);\n }\n var res = new Promise(noop);\n handle(this, new Handler(onFulfilled, onRejected, res));\n return res;\n};\n\nfunction safeThen(self, onFulfilled, onRejected) {\n return new self.constructor(function (resolve, reject) {\n var res = new Promise(noop);\n res.then(resolve, reject);\n handle(self, new Handler(onFulfilled, onRejected, res));\n });\n}\nfunction handle(self, deferred) {\n while (self._83 === 3) {\n self = self._18;\n }\n if (Promise._47) {\n Promise._47(self);\n }\n if (self._83 === 0) {\n if (self._75 === 0) {\n self._75 = 1;\n self._38 = deferred;\n return;\n }\n if (self._75 === 1) {\n self._75 = 2;\n self._38 = [self._38, deferred];\n return;\n }\n self._38.push(deferred);\n return;\n }\n handleResolved(self, deferred);\n}\n\nfunction handleResolved(self, deferred) {\n asap(function() {\n var cb = self._83 === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n if (self._83 === 1) {\n resolve(deferred.promise, self._18);\n } else {\n reject(deferred.promise, self._18);\n }\n return;\n }\n var ret = tryCallOne(cb, self._18);\n if (ret === IS_ERROR) {\n reject(deferred.promise, LAST_ERROR);\n } else {\n resolve(deferred.promise, ret);\n }\n });\n}\nfunction resolve(self, newValue) {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self) {\n return reject(\n self,\n new TypeError('A promise cannot be resolved with itself.')\n );\n }\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = getThen(newValue);\n if (then === IS_ERROR) {\n return reject(self, LAST_ERROR);\n }\n if (\n then === self.then &&\n newValue instanceof Promise\n ) {\n self._83 = 3;\n self._18 = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(then.bind(newValue), self);\n return;\n }\n }\n self._83 = 1;\n self._18 = newValue;\n finale(self);\n}\n\nfunction reject(self, newValue) {\n self._83 = 2;\n self._18 = newValue;\n if (Promise._71) {\n Promise._71(self, newValue);\n }\n finale(self);\n}\nfunction finale(self) {\n if (self._75 === 1) {\n handle(self, self._38);\n self._38 = null;\n }\n if (self._75 === 2) {\n for (var i = 0; i < self._38.length; i++) {\n handle(self, self._38[i]);\n }\n self._38 = null;\n }\n}\n\nfunction Handler(onFulfilled, onRejected, promise){\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, promise) {\n var done = false;\n var res = tryCallTwo(fn, function (value) {\n if (done) return;\n done = true;\n resolve(promise, value);\n }, function (reason) {\n if (done) return;\n done = true;\n reject(promise, reason);\n });\n if (!done && res === IS_ERROR) {\n done = true;\n reject(promise, LAST_ERROR);\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/promise/lib/core.js\n// module id = 78\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"invariant\";\nimport { createLocation } from \"history\";\n\nvar isModifiedEvent = function isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n};\n\n/**\n * The public API for rendering a history-aware .\n */\n\nvar Link = function (_React$Component) {\n _inherits(Link, _React$Component);\n\n function Link() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Link);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.handleClick = function (event) {\n if (_this.props.onClick) _this.props.onClick(event);\n\n if (!event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n !_this.props.target && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n\n var history = _this.context.router.history;\n var _this$props = _this.props,\n replace = _this$props.replace,\n to = _this$props.to;\n\n\n if (replace) {\n history.replace(to);\n } else {\n history.push(to);\n }\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Link.prototype.render = function render() {\n var _props = this.props,\n replace = _props.replace,\n to = _props.to,\n innerRef = _props.innerRef,\n props = _objectWithoutProperties(_props, [\"replace\", \"to\", \"innerRef\"]); // eslint-disable-line no-unused-vars\n\n invariant(this.context.router, \"You should not use outside a \");\n\n invariant(to !== undefined, 'You must specify the \"to\" property');\n\n var history = this.context.router.history;\n\n var location = typeof to === \"string\" ? createLocation(to, null, null, history.location) : to;\n\n var href = history.createHref(location);\n return React.createElement(\"a\", _extends({}, props, { onClick: this.handleClick, href: href, ref: innerRef }));\n };\n\n return Link;\n}(React.Component);\n\nLink.propTypes = {\n onClick: PropTypes.func,\n target: PropTypes.string,\n replace: PropTypes.bool,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,\n innerRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func])\n};\nLink.defaultProps = {\n replace: false\n};\nLink.contextTypes = {\n router: PropTypes.shape({\n history: PropTypes.shape({\n push: PropTypes.func.isRequired,\n replace: PropTypes.func.isRequired,\n createHref: PropTypes.func.isRequired\n }).isRequired\n }).isRequired\n};\n\n\nexport default Link;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/Link.js\n// module id = 79\n// module chunks = 0","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport warning from \"warning\";\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport Router from \"./Router\";\n\n/**\n * The public API for a that stores location in memory.\n */\n\nvar MemoryRouter = function (_React$Component) {\n _inherits(MemoryRouter, _React$Component);\n\n function MemoryRouter() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, MemoryRouter);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.history = createHistory(_this.props), _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n MemoryRouter.prototype.componentWillMount = function componentWillMount() {\n warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\");\n };\n\n MemoryRouter.prototype.render = function render() {\n return React.createElement(Router, { history: this.history, children: this.props.children });\n };\n\n return MemoryRouter;\n}(React.Component);\n\nMemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n};\n\n\nexport default MemoryRouter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/MemoryRouter.js\n// module id = 80\n// module chunks = 0","// Written in this round about way for babel-transform-imports\nimport Route from \"react-router/es/Route\";\n\nexport default Route;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router-dom/es/Route.js\n// module id = 81\n// module chunks = 0","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options))\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$')\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/path-to-regexp/index.js\n// module id = 82\n// module chunks = 0","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"invariant\";\n\n/**\n * The public API for prompting the user before navigating away\n * from a screen with a component.\n */\n\nvar Prompt = function (_React$Component) {\n _inherits(Prompt, _React$Component);\n\n function Prompt() {\n _classCallCheck(this, Prompt);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n Prompt.prototype.enable = function enable(message) {\n if (this.unblock) this.unblock();\n\n this.unblock = this.context.router.history.block(message);\n };\n\n Prompt.prototype.disable = function disable() {\n if (this.unblock) {\n this.unblock();\n this.unblock = null;\n }\n };\n\n Prompt.prototype.componentWillMount = function componentWillMount() {\n invariant(this.context.router, \"You should not use outside a \");\n\n if (this.props.when) this.enable(this.props.message);\n };\n\n Prompt.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (nextProps.when) {\n if (!this.props.when || this.props.message !== nextProps.message) this.enable(nextProps.message);\n } else {\n this.disable();\n }\n };\n\n Prompt.prototype.componentWillUnmount = function componentWillUnmount() {\n this.disable();\n };\n\n Prompt.prototype.render = function render() {\n return null;\n };\n\n return Prompt;\n}(React.Component);\n\nPrompt.propTypes = {\n when: PropTypes.bool,\n message: PropTypes.oneOfType([PropTypes.func, PropTypes.string]).isRequired\n};\nPrompt.defaultProps = {\n when: true\n};\nPrompt.contextTypes = {\n router: PropTypes.shape({\n history: PropTypes.shape({\n block: PropTypes.func.isRequired\n }).isRequired\n }).isRequired\n};\n\n\nexport default Prompt;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/Prompt.js\n// module id = 83\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"warning\";\nimport invariant from \"invariant\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport generatePath from \"./generatePath\";\n\n/**\n * The public API for updating the location programmatically\n * with a component.\n */\n\nvar Redirect = function (_React$Component) {\n _inherits(Redirect, _React$Component);\n\n function Redirect() {\n _classCallCheck(this, Redirect);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n Redirect.prototype.isStatic = function isStatic() {\n return this.context.router && this.context.router.staticContext;\n };\n\n Redirect.prototype.componentWillMount = function componentWillMount() {\n invariant(this.context.router, \"You should not use outside a \");\n\n if (this.isStatic()) this.perform();\n };\n\n Redirect.prototype.componentDidMount = function componentDidMount() {\n if (!this.isStatic()) this.perform();\n };\n\n Redirect.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {\n var prevTo = createLocation(prevProps.to);\n var nextTo = createLocation(this.props.to);\n\n if (locationsAreEqual(prevTo, nextTo)) {\n warning(false, \"You tried to redirect to the same route you're currently on: \" + (\"\\\"\" + nextTo.pathname + nextTo.search + \"\\\"\"));\n return;\n }\n\n this.perform();\n };\n\n Redirect.prototype.computeTo = function computeTo(_ref) {\n var computedMatch = _ref.computedMatch,\n to = _ref.to;\n\n if (computedMatch) {\n if (typeof to === \"string\") {\n return generatePath(to, computedMatch.params);\n } else {\n return _extends({}, to, {\n pathname: generatePath(to.pathname, computedMatch.params)\n });\n }\n }\n\n return to;\n };\n\n Redirect.prototype.perform = function perform() {\n var history = this.context.router.history;\n var push = this.props.push;\n\n var to = this.computeTo(this.props);\n\n if (push) {\n history.push(to);\n } else {\n history.replace(to);\n }\n };\n\n Redirect.prototype.render = function render() {\n return null;\n };\n\n return Redirect;\n}(React.Component);\n\nRedirect.propTypes = {\n computedMatch: PropTypes.object, // private, from \n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n};\nRedirect.defaultProps = {\n push: false\n};\nRedirect.contextTypes = {\n router: PropTypes.shape({\n history: PropTypes.shape({\n push: PropTypes.func.isRequired,\n replace: PropTypes.func.isRequired\n }).isRequired,\n staticContext: PropTypes.object\n }).isRequired\n};\n\n\nexport default Redirect;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/Redirect.js\n// module id = 84\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport warning from \"warning\";\nimport invariant from \"invariant\";\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport Router from \"./Router\";\n\nvar addLeadingSlash = function addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n};\n\nvar addBasename = function addBasename(basename, location) {\n if (!basename) return location;\n\n return _extends({}, location, {\n pathname: addLeadingSlash(basename) + location.pathname\n });\n};\n\nvar stripBasename = function stripBasename(basename, location) {\n if (!basename) return location;\n\n var base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return _extends({}, location, {\n pathname: location.pathname.substr(base.length)\n });\n};\n\nvar createURL = function createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n};\n\nvar staticHandler = function staticHandler(methodName) {\n return function () {\n invariant(false, \"You cannot %s with \", methodName);\n };\n};\n\nvar noop = function noop() {};\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\n\nvar StaticRouter = function (_React$Component) {\n _inherits(StaticRouter, _React$Component);\n\n function StaticRouter() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, StaticRouter);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.createHref = function (path) {\n return addLeadingSlash(_this.props.basename + createURL(path));\n }, _this.handlePush = function (location) {\n var _this$props = _this.props,\n basename = _this$props.basename,\n context = _this$props.context;\n\n context.action = \"PUSH\";\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }, _this.handleReplace = function (location) {\n var _this$props2 = _this.props,\n basename = _this$props2.basename,\n context = _this$props2.context;\n\n context.action = \"REPLACE\";\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }, _this.handleListen = function () {\n return noop;\n }, _this.handleBlock = function () {\n return noop;\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n StaticRouter.prototype.getChildContext = function getChildContext() {\n return {\n router: {\n staticContext: this.props.context\n }\n };\n };\n\n StaticRouter.prototype.componentWillMount = function componentWillMount() {\n warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { StaticRouter as Router }`.\");\n };\n\n StaticRouter.prototype.render = function render() {\n var _props = this.props,\n basename = _props.basename,\n context = _props.context,\n location = _props.location,\n props = _objectWithoutProperties(_props, [\"basename\", \"context\", \"location\"]);\n\n var history = {\n createHref: this.createHref,\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return React.createElement(Router, _extends({}, props, { history: history }));\n };\n\n return StaticRouter;\n}(React.Component);\n\nStaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object.isRequired,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n};\nStaticRouter.defaultProps = {\n basename: \"\",\n location: \"/\"\n};\nStaticRouter.childContextTypes = {\n router: PropTypes.object.isRequired\n};\n\n\nexport default StaticRouter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/StaticRouter.js\n// module id = 85\n// module chunks = 0","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"warning\";\nimport invariant from \"invariant\";\nimport matchPath from \"./matchPath\";\n\n/**\n * The public API for rendering the first that matches.\n */\n\nvar Switch = function (_React$Component) {\n _inherits(Switch, _React$Component);\n\n function Switch() {\n _classCallCheck(this, Switch);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n Switch.prototype.componentWillMount = function componentWillMount() {\n invariant(this.context.router, \"You should not use outside a \");\n };\n\n Switch.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n warning(!(nextProps.location && !this.props.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.');\n\n warning(!(!nextProps.location && this.props.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.');\n };\n\n Switch.prototype.render = function render() {\n var route = this.context.router.route;\n var children = this.props.children;\n\n var location = this.props.location || route.location;\n\n var match = void 0,\n child = void 0;\n React.Children.forEach(children, function (element) {\n if (match == null && React.isValidElement(element)) {\n var _element$props = element.props,\n pathProp = _element$props.path,\n exact = _element$props.exact,\n strict = _element$props.strict,\n sensitive = _element$props.sensitive,\n from = _element$props.from;\n\n var path = pathProp || from;\n\n child = element;\n match = matchPath(location.pathname, { path: path, exact: exact, strict: strict, sensitive: sensitive }, route.match);\n }\n });\n\n return match ? React.cloneElement(child, { location: location, computedMatch: match }) : null;\n };\n\n return Switch;\n}(React.Component);\n\nSwitch.contextTypes = {\n router: PropTypes.shape({\n route: PropTypes.object.isRequired\n }).isRequired\n};\nSwitch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n};\n\n\nexport default Switch;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/Switch.js\n// module id = 86\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport Route from \"./Route\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nvar withRouter = function withRouter(Component) {\n var C = function C(props) {\n var wrappedComponentRef = props.wrappedComponentRef,\n remainingProps = _objectWithoutProperties(props, [\"wrappedComponentRef\"]);\n\n return React.createElement(Route, {\n children: function children(routeComponentProps) {\n return React.createElement(Component, _extends({}, remainingProps, routeComponentProps, {\n ref: wrappedComponentRef\n }));\n }\n });\n };\n\n C.displayName = \"withRouter(\" + (Component.displayName || Component.name) + \")\";\n C.WrappedComponent = Component;\n C.propTypes = {\n wrappedComponentRef: PropTypes.func\n };\n\n return hoistStatics(C, Component);\n};\n\nexport default withRouter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-router/es/withRouter.js\n// module id = 87\n// module chunks = 0","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/helpers/bind.js\n// module id = 88\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/helpers/buildURL.js\n// module id = 89\n// module chunks = 0","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/cancel/isCancel.js\n// module id = 90\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/defaults.js\n// module id = 91\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/adapters/xhr.js\n// module id = 92\n// module chunks = 0","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/core/createError.js\n// module id = 93\n// module chunks = 0","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/core/mergeConfig.js\n// module id = 94\n// module chunks = 0","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/cancel/Cancel.js\n// module id = 95\n// module chunks = 0","import _Container from './Container';\nexport { _Container as Container };\nimport _Row from './Row';\nexport { _Row as Row };\nimport _Col from './Col';\nexport { _Col as Col };\nimport _Navbar from './Navbar';\nexport { _Navbar as Navbar };\nimport _NavbarBrand from './NavbarBrand';\nexport { _NavbarBrand as NavbarBrand };\nimport _NavbarText from './NavbarText';\nexport { _NavbarText as NavbarText };\nimport _NavbarToggler from './NavbarToggler';\nexport { _NavbarToggler as NavbarToggler };\nimport _Nav from './Nav';\nexport { _Nav as Nav };\nimport _NavItem from './NavItem';\nexport { _NavItem as NavItem };\nimport _NavLink from './NavLink';\nexport { _NavLink as NavLink };\nimport _Breadcrumb from './Breadcrumb';\nexport { _Breadcrumb as Breadcrumb };\nimport _BreadcrumbItem from './BreadcrumbItem';\nexport { _BreadcrumbItem as BreadcrumbItem };\nimport _Button from './Button';\nexport { _Button as Button };\nimport _ButtonToggle from './ButtonToggle';\nexport { _ButtonToggle as ButtonToggle };\nimport _ButtonDropdown from './ButtonDropdown';\nexport { _ButtonDropdown as ButtonDropdown };\nimport _ButtonGroup from './ButtonGroup';\nexport { _ButtonGroup as ButtonGroup };\nimport _ButtonToolbar from './ButtonToolbar';\nexport { _ButtonToolbar as ButtonToolbar };\nimport _Dropdown from './Dropdown';\nexport { _Dropdown as Dropdown };\nimport _DropdownItem from './DropdownItem';\nexport { _DropdownItem as DropdownItem };\nimport _DropdownMenu from './DropdownMenu';\nexport { _DropdownMenu as DropdownMenu };\nimport _DropdownToggle from './DropdownToggle';\nexport { _DropdownToggle as DropdownToggle };\nexport { DropdownContext } from './DropdownContext';\nimport _Fade from './Fade';\nexport { _Fade as Fade };\nimport _Badge from './Badge';\nexport { _Badge as Badge };\nimport _Card from './Card';\nexport { _Card as Card };\nimport _CardGroup from './CardGroup';\nexport { _CardGroup as CardGroup };\nimport _CardDeck from './CardDeck';\nexport { _CardDeck as CardDeck };\nimport _CardColumns from './CardColumns';\nexport { _CardColumns as CardColumns };\nimport _CardBody from './CardBody';\nexport { _CardBody as CardBody };\nimport _CardLink from './CardLink';\nexport { _CardLink as CardLink };\nimport _CardFooter from './CardFooter';\nexport { _CardFooter as CardFooter };\nimport _CardHeader from './CardHeader';\nexport { _CardHeader as CardHeader };\nimport _CardImg from './CardImg';\nexport { _CardImg as CardImg };\nimport _CardImgOverlay from './CardImgOverlay';\nexport { _CardImgOverlay as CardImgOverlay };\nimport _Carousel from './Carousel';\nexport { _Carousel as Carousel };\nimport _UncontrolledCarousel from './UncontrolledCarousel';\nexport { _UncontrolledCarousel as UncontrolledCarousel };\nimport _CarouselControl from './CarouselControl';\nexport { _CarouselControl as CarouselControl };\nimport _CarouselItem from './CarouselItem';\nexport { _CarouselItem as CarouselItem };\nimport _CarouselIndicators from './CarouselIndicators';\nexport { _CarouselIndicators as CarouselIndicators };\nimport _CarouselCaption from './CarouselCaption';\nexport { _CarouselCaption as CarouselCaption };\nimport _CardSubtitle from './CardSubtitle';\nexport { _CardSubtitle as CardSubtitle };\nimport _CardText from './CardText';\nexport { _CardText as CardText };\nimport _CardTitle from './CardTitle';\nexport { _CardTitle as CardTitle };\nimport _CustomFileInput from './CustomFileInput';\nexport { _CustomFileInput as CustomFileInput };\nimport _CustomInput from './CustomInput';\nexport { _CustomInput as CustomInput };\nimport _PopperContent from './PopperContent';\nexport { _PopperContent as PopperContent };\nimport _PopperTargetHelper from './PopperTargetHelper';\nexport { _PopperTargetHelper as PopperTargetHelper };\nimport _Popover from './Popover';\nexport { _Popover as Popover };\nimport _UncontrolledPopover from './UncontrolledPopover';\nexport { _UncontrolledPopover as UncontrolledPopover };\nimport _PopoverHeader from './PopoverHeader';\nexport { _PopoverHeader as PopoverHeader };\nimport _PopoverBody from './PopoverBody';\nexport { _PopoverBody as PopoverBody };\nimport _Progress from './Progress';\nexport { _Progress as Progress };\nimport _Modal from './Modal';\nexport { _Modal as Modal };\nimport _ModalHeader from './ModalHeader';\nexport { _ModalHeader as ModalHeader };\nimport _ModalBody from './ModalBody';\nexport { _ModalBody as ModalBody };\nimport _ModalFooter from './ModalFooter';\nexport { _ModalFooter as ModalFooter };\nimport _Tooltip from './Tooltip';\nexport { _Tooltip as Tooltip };\nimport _Table from './Table';\nexport { _Table as Table };\nimport _ListGroup from './ListGroup';\nexport { _ListGroup as ListGroup };\nimport _Form from './Form';\nexport { _Form as Form };\nimport _FormFeedback from './FormFeedback';\nexport { _FormFeedback as FormFeedback };\nimport _FormGroup from './FormGroup';\nexport { _FormGroup as FormGroup };\nimport _FormText from './FormText';\nexport { _FormText as FormText };\nimport _Input from './Input';\nexport { _Input as Input };\nimport _InputGroup from './InputGroup';\nexport { _InputGroup as InputGroup };\nimport _InputGroupAddon from './InputGroupAddon';\nexport { _InputGroupAddon as InputGroupAddon };\nimport _InputGroupButtonDropdown from './InputGroupButtonDropdown';\nexport { _InputGroupButtonDropdown as InputGroupButtonDropdown };\nimport _InputGroupText from './InputGroupText';\nexport { _InputGroupText as InputGroupText };\nimport _Label from './Label';\nexport { _Label as Label };\nimport _Media from './Media';\nexport { _Media as Media };\nimport _Pagination from './Pagination';\nexport { _Pagination as Pagination };\nimport _PaginationItem from './PaginationItem';\nexport { _PaginationItem as PaginationItem };\nimport _PaginationLink from './PaginationLink';\nexport { _PaginationLink as PaginationLink };\nimport _TabContent from './TabContent';\nexport { _TabContent as TabContent };\nimport _TabPane from './TabPane';\nexport { _TabPane as TabPane };\nimport _Jumbotron from './Jumbotron';\nexport { _Jumbotron as Jumbotron };\nimport _Alert from './Alert';\nexport { _Alert as Alert };\nimport _Toast from './Toast';\nexport { _Toast as Toast };\nimport _ToastBody from './ToastBody';\nexport { _ToastBody as ToastBody };\nimport _ToastHeader from './ToastHeader';\nexport { _ToastHeader as ToastHeader };\nimport _Collapse from './Collapse';\nexport { _Collapse as Collapse };\nimport _ListGroupItem from './ListGroupItem';\nexport { _ListGroupItem as ListGroupItem };\nimport _ListGroupItemHeading from './ListGroupItemHeading';\nexport { _ListGroupItemHeading as ListGroupItemHeading };\nimport _ListGroupItemText from './ListGroupItemText';\nexport { _ListGroupItemText as ListGroupItemText };\nimport _List from './List';\nexport { _List as List };\nimport _ListInlineItem from './ListInlineItem';\nexport { _ListInlineItem as ListInlineItem };\nimport _UncontrolledAlert from './UncontrolledAlert';\nexport { _UncontrolledAlert as UncontrolledAlert };\nimport _UncontrolledButtonDropdown from './UncontrolledButtonDropdown';\nexport { _UncontrolledButtonDropdown as UncontrolledButtonDropdown };\nimport _UncontrolledCollapse from './UncontrolledCollapse';\nexport { _UncontrolledCollapse as UncontrolledCollapse };\nimport _UncontrolledDropdown from './UncontrolledDropdown';\nexport { _UncontrolledDropdown as UncontrolledDropdown };\nimport _UncontrolledTooltip from './UncontrolledTooltip';\nexport { _UncontrolledTooltip as UncontrolledTooltip };\nimport _Spinner from './Spinner';\nexport { _Spinner as Spinner };\nimport * as _Util from './utils';\nexport { _Util as Util };\nimport * as _Polyfill from './polyfill';\nexport { _Polyfill as Polyfill };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/index.js\n// module id = 96\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Dropdown from './Dropdown';\nvar propTypes = {\n children: PropTypes.node\n};\n\nvar ButtonDropdown = function ButtonDropdown(props) {\n return /*#__PURE__*/React.createElement(Dropdown, _extends({\n group: true\n }, props));\n};\n\nButtonDropdown.propTypes = propTypes;\nexport default ButtonDropdown;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/ButtonDropdown.js\n// module id = 97\n// module chunks = 0","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@babel/runtime/helpers/extends.js\n// module id = 98\n// module chunks = 0","'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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/object-keys/index.js\n// module id = 99\n// module chunks = 0","'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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/object-keys/isArguments.js\n// module id = 100\n// module chunks = 0","'use strict';\n\nvar toObject = Object;\nvar TypeErr = TypeError;\n\nmodule.exports = function flags() {\n\tif (this != null && this !== toObject(this)) {\n\t\tthrow new TypeErr('RegExp.prototype.flags getter called on non-object');\n\t}\n\tvar result = '';\n\tif (this.global) {\n\t\tresult += 'g';\n\t}\n\tif (this.ignoreCase) {\n\t\tresult += 'i';\n\t}\n\tif (this.multiline) {\n\t\tresult += 'm';\n\t}\n\tif (this.dotAll) {\n\t\tresult += 's';\n\t}\n\tif (this.unicode) {\n\t\tresult += 'u';\n\t}\n\tif (this.sticky) {\n\t\tresult += 'y';\n\t}\n\treturn result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/regexp.prototype.flags/implementation.js\n// module id = 101\n// module chunks = 0","'use strict';\n\nvar implementation = require('./implementation');\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar TypeErr = TypeError;\n\nmodule.exports = function getPolyfill() {\n\tif (!supportsDescriptors) {\n\t\tthrow new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n\t}\n\tif (/a/mig.flags === 'gim') {\n\t\tvar descriptor = gOPD(RegExp.prototype, 'flags');\n\t\tif (descriptor && typeof descriptor.get === 'function' && typeof (/a/).dotAll === 'boolean') {\n\t\t\treturn descriptor.get;\n\t\t}\n\t}\n\treturn implementation;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/regexp.prototype.flags/polyfill.js\n// module id = 102\n// module chunks = 0","/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === \"function\") {\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 return fn.apply(void 0, args);\n }\n};\n/**\n * Does a shallow equality check of two objects by comparing the reference\n * equality of each value.\n */\n\nexport var shallowEqual = function shallowEqual(objA, objB) {\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n\n if (bKeys.length !== aKeys.length) {\n return false;\n }\n\n for (var i = 0; i < bKeys.length; i++) {\n var key = aKeys[i];\n\n if (objA[key] !== objB[key]) {\n return false;\n }\n }\n\n return true;\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === \"function\") {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-popper/lib/esm/utils.js\n// module id = 103\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\n };\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\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 return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-transition-group/Transition.js\n// module id = 104\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js\n// module id = 105\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar timeoutsShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number,\n appear: _propTypes.default.number\n}).isRequired]) : null;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]) : null;\nexports.classNamesShape = classNamesShape;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-transition-group/utils/PropTypes.js\n// module id = 106\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _ChildMapping = require(\"./utils/ChildMapping\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n /**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\n};\n\nvar TransitionGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: {\n isMounting: !this.appeared\n }\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n this.mounted = true;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return children;\n }\n\n return _react.default.createElement(Component, props, children);\n };\n\n return TransitionGroup;\n}(_react.default.Component);\n\nTransitionGroup.childContextTypes = {\n transitionGroup: _propTypes.default.object.isRequired\n};\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: _propTypes.default.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: _propTypes.default.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: _propTypes.default.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: _propTypes.default.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-transition-group/TransitionGroup.js\n// module id = 107\n// module chunks = 0","import _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport CarouselItem from './CarouselItem';\nimport { mapToCssModules } from './utils';\nvar SWIPE_THRESHOLD = 40;\n\nvar Carousel = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Carousel, _React$Component);\n\n function Carousel(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.handleKeyPress = _this.handleKeyPress.bind(_assertThisInitialized(_this));\n _this.renderItems = _this.renderItems.bind(_assertThisInitialized(_this));\n _this.hoverStart = _this.hoverStart.bind(_assertThisInitialized(_this));\n _this.hoverEnd = _this.hoverEnd.bind(_assertThisInitialized(_this));\n _this.handleTouchStart = _this.handleTouchStart.bind(_assertThisInitialized(_this));\n _this.handleTouchEnd = _this.handleTouchEnd.bind(_assertThisInitialized(_this));\n _this.touchStartX = 0;\n _this.touchStartY = 0;\n _this.state = {\n activeIndex: _this.props.activeIndex,\n direction: 'right',\n indicatorClicked: false\n };\n return _this;\n }\n\n var _proto = Carousel.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n direction: this.state.direction\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n // Set up the cycle\n if (this.props.ride === 'carousel') {\n this.setInterval();\n } // TODO: move this to the specific carousel like bootstrap. Currently it will trigger ALL carousels on the page.\n\n\n document.addEventListener('keyup', this.handleKeyPress);\n };\n\n Carousel.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var newState = null;\n var activeIndex = prevState.activeIndex,\n direction = prevState.direction,\n indicatorClicked = prevState.indicatorClicked;\n\n if (nextProps.activeIndex !== activeIndex) {\n // Calculate the direction to turn\n if (nextProps.activeIndex === activeIndex + 1) {\n direction = 'right';\n } else if (nextProps.activeIndex === activeIndex - 1) {\n direction = 'left';\n } else if (nextProps.activeIndex < activeIndex) {\n direction = indicatorClicked ? 'left' : 'right';\n } else if (nextProps.activeIndex !== activeIndex) {\n direction = indicatorClicked ? 'right' : 'left';\n }\n\n newState = {\n activeIndex: nextProps.activeIndex,\n direction: direction,\n indicatorClicked: false\n };\n }\n\n return newState;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevState.activeIndex === this.state.activeIndex) return;\n this.setInterval(this.props);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.clearInterval();\n document.removeEventListener('keyup', this.handleKeyPress);\n };\n\n _proto.setInterval = function (_setInterval) {\n function setInterval() {\n return _setInterval.apply(this, arguments);\n }\n\n setInterval.toString = function () {\n return _setInterval.toString();\n };\n\n return setInterval;\n }(function (props) {\n if (props === void 0) {\n props = this.props;\n }\n\n // make sure not to have multiple intervals going...\n this.clearInterval();\n\n if (props.interval) {\n this.cycleInterval = setInterval(function () {\n props.next();\n }, parseInt(props.interval, 10));\n }\n });\n\n _proto.clearInterval = function (_clearInterval) {\n function clearInterval() {\n return _clearInterval.apply(this, arguments);\n }\n\n clearInterval.toString = function () {\n return _clearInterval.toString();\n };\n\n return clearInterval;\n }(function () {\n clearInterval(this.cycleInterval);\n });\n\n _proto.hoverStart = function hoverStart() {\n if (this.props.pause === 'hover') {\n this.clearInterval();\n }\n\n if (this.props.mouseEnter) {\n var _this$props;\n\n (_this$props = this.props).mouseEnter.apply(_this$props, arguments);\n }\n };\n\n _proto.hoverEnd = function hoverEnd() {\n if (this.props.pause === 'hover') {\n this.setInterval();\n }\n\n if (this.props.mouseLeave) {\n var _this$props2;\n\n (_this$props2 = this.props).mouseLeave.apply(_this$props2, arguments);\n }\n };\n\n _proto.handleKeyPress = function handleKeyPress(evt) {\n if (this.props.keyboard) {\n if (evt.keyCode === 37) {\n this.props.previous();\n } else if (evt.keyCode === 39) {\n this.props.next();\n }\n }\n };\n\n _proto.handleTouchStart = function handleTouchStart(e) {\n if (!this.props.enableTouch) {\n return;\n }\n\n this.touchStartX = e.changedTouches[0].screenX;\n this.touchStartY = e.changedTouches[0].screenY;\n };\n\n _proto.handleTouchEnd = function handleTouchEnd(e) {\n if (!this.props.enableTouch) {\n return;\n }\n\n var currentX = e.changedTouches[0].screenX;\n var currentY = e.changedTouches[0].screenY;\n var diffX = Math.abs(this.touchStartX - currentX);\n var diffY = Math.abs(this.touchStartY - currentY); // Don't swipe if Y-movement is bigger than X-movement\n\n if (diffX < diffY) {\n return;\n }\n\n if (diffX < SWIPE_THRESHOLD) {\n return;\n }\n\n if (currentX < this.touchStartX) {\n this.props.next();\n } else {\n this.props.previous();\n }\n };\n\n _proto.renderItems = function renderItems(carouselItems, className) {\n var _this2 = this;\n\n var slide = this.props.slide;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, carouselItems.map(function (item, index) {\n var isIn = index === _this2.state.activeIndex;\n return /*#__PURE__*/React.cloneElement(item, {\n in: isIn,\n slide: slide\n });\n }));\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$props3 = this.props,\n cssModule = _this$props3.cssModule,\n slide = _this$props3.slide,\n className = _this$props3.className;\n var outerClasses = mapToCssModules(classNames(className, 'carousel', slide && 'slide'), cssModule);\n var innerClasses = mapToCssModules(classNames('carousel-inner'), cssModule); // filter out booleans, null, or undefined\n\n var children = this.props.children.filter(function (child) {\n return child !== null && child !== undefined && typeof child !== 'boolean';\n });\n var slidesOnly = children.every(function (child) {\n return child.type === CarouselItem;\n }); // Rendering only slides\n\n if (slidesOnly) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: outerClasses,\n onMouseEnter: this.hoverStart,\n onMouseLeave: this.hoverEnd\n }, this.renderItems(children, innerClasses));\n } // Rendering slides and controls\n\n\n if (children[0] instanceof Array) {\n var _carouselItems = children[0];\n var _controlLeft = children[1];\n var _controlRight = children[2];\n return /*#__PURE__*/React.createElement(\"div\", {\n className: outerClasses,\n onMouseEnter: this.hoverStart,\n onMouseLeave: this.hoverEnd\n }, this.renderItems(_carouselItems, innerClasses), _controlLeft, _controlRight);\n } // Rendering indicators, slides and controls\n\n\n var indicators = children[0];\n\n var wrappedOnClick = function wrappedOnClick(e) {\n if (typeof indicators.props.onClickHandler === 'function') {\n _this3.setState({\n indicatorClicked: true\n }, function () {\n return indicators.props.onClickHandler(e);\n });\n }\n };\n\n var wrappedIndicators = /*#__PURE__*/React.cloneElement(indicators, {\n onClickHandler: wrappedOnClick\n });\n var carouselItems = children[1];\n var controlLeft = children[2];\n var controlRight = children[3];\n return /*#__PURE__*/React.createElement(\"div\", {\n className: outerClasses,\n onMouseEnter: this.hoverStart,\n onMouseLeave: this.hoverEnd,\n onTouchStart: this.handleTouchStart,\n onTouchEnd: this.handleTouchEnd\n }, wrappedIndicators, this.renderItems(carouselItems, innerClasses), controlLeft, controlRight);\n };\n\n return Carousel;\n}(React.Component);\n\nCarousel.propTypes = {\n // the current active slide of the carousel\n activeIndex: PropTypes.number,\n // a function which should advance the carousel to the next slide (via activeIndex)\n next: PropTypes.func.isRequired,\n // a function which should advance the carousel to the previous slide (via activeIndex)\n previous: PropTypes.func.isRequired,\n // controls if the left and right arrow keys should control the carousel\n keyboard: PropTypes.bool,\n\n /* If set to \"hover\", pauses the cycling of the carousel on mouseenter and resumes the cycling of the carousel on\n * mouseleave. If set to false, hovering over the carousel won't pause it. (default: \"hover\")\n */\n pause: PropTypes.oneOf(['hover', false]),\n // Autoplays the carousel after the user manually cycles the first item. If \"carousel\", autoplays the carousel on load.\n // This is how bootstrap defines it... I would prefer a bool named autoplay or something...\n ride: PropTypes.oneOf(['carousel']),\n // the interval at which the carousel automatically cycles (default: 5000)\n // eslint-disable-next-line react/no-unused-prop-types\n interval: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.bool]),\n children: PropTypes.array,\n // called when the mouse enters the Carousel\n mouseEnter: PropTypes.func,\n // called when the mouse exits the Carousel\n mouseLeave: PropTypes.func,\n // controls whether the slide animation on the Carousel works or not\n slide: PropTypes.bool,\n cssModule: PropTypes.object,\n className: PropTypes.string,\n enableTouch: PropTypes.bool\n};\nCarousel.defaultProps = {\n interval: 5000,\n pause: 'hover',\n keyboard: true,\n slide: true,\n enableTouch: true\n};\nCarousel.childContextTypes = {\n direction: PropTypes.string\n};\nexport default Carousel;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/Carousel.js\n// module id = 108\n// module chunks = 0","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nvar CarouselControl = function CarouselControl(props) {\n var direction = props.direction,\n onClickHandler = props.onClickHandler,\n cssModule = props.cssModule,\n directionText = props.directionText,\n className = props.className;\n var anchorClasses = mapToCssModules(classNames(className, \"carousel-control-\" + direction), cssModule);\n var iconClasses = mapToCssModules(classNames(\"carousel-control-\" + direction + \"-icon\"), cssModule);\n var screenReaderClasses = mapToCssModules(classNames('sr-only'), cssModule);\n return (\n /*#__PURE__*/\n // We need to disable this linting rule to use an `` instead of\n // `\n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity: 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**.\n */\n\n\nvar CSSTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.onEnter = function (node, appearing) {\n var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),\n className = _this$getClassNames.className;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, className);\n\n if (_this.props.onEnter) {\n _this.props.onEnter(node, appearing);\n }\n };\n\n _this.onEntering = function (node, appearing) {\n var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),\n activeClassName = _this$getClassNames2.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onEntering) {\n _this.props.onEntering(node, appearing);\n }\n };\n\n _this.onEntered = function (node, appearing) {\n var appearClassName = _this.getClassNames('appear').doneClassName;\n\n var enterClassName = _this.getClassNames('enter').doneClassName;\n\n var doneClassName = appearing ? appearClassName + \" \" + enterClassName : enterClassName;\n\n _this.removeClasses(node, appearing ? 'appear' : 'enter');\n\n addClass(node, doneClassName);\n\n if (_this.props.onEntered) {\n _this.props.onEntered(node, appearing);\n }\n };\n\n _this.onExit = function (node) {\n var _this$getClassNames3 = _this.getClassNames('exit'),\n className = _this$getClassNames3.className;\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n addClass(node, className);\n\n if (_this.props.onExit) {\n _this.props.onExit(node);\n }\n };\n\n _this.onExiting = function (node) {\n var _this$getClassNames4 = _this.getClassNames('exit'),\n activeClassName = _this$getClassNames4.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onExiting) {\n _this.props.onExiting(node);\n }\n };\n\n _this.onExited = function (node) {\n var _this$getClassNames5 = _this.getClassNames('exit'),\n doneClassName = _this$getClassNames5.doneClassName;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, doneClassName);\n\n if (_this.props.onExited) {\n _this.props.onExited(node);\n }\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + '-' : '';\n var className = isStringClassNames ? prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? className + '-active' : classNames[type + 'Active'];\n var doneClassName = isStringClassNames ? className + '-done' : classNames[type + 'Done'];\n return {\n className: className,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$getClassNames6 = this.getClassNames(type),\n className = _this$getClassNames6.className,\n activeClassName = _this$getClassNames6.activeClassName,\n doneClassName = _this$getClassNames6.doneClassName;\n\n className && removeClass(node, className);\n activeClassName && removeClass(node, activeClassName);\n doneClassName && removeClass(node, doneClassName);\n };\n\n _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {\n // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n if (className) {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n /* eslint-enable no-unused-expressions */\n\n addClass(node, className);\n }\n };\n\n _proto.render = function render() {\n var props = _extends({}, this.props);\n\n delete props.classNames;\n return _react.default.createElement(_Transition.default, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(_react.default.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, _Transition.default.propTypes, {\n /**\n * The animation classNames applied to the component as it enters, exits or\n * has finished the transition. A single name can be provided and it will be\n * suffixed for each stage: e.g.\n *\n * `classNames=\"fade\"` applies `fade-enter`, `fade-enter-active`,\n * `fade-enter-done`, `fade-exit`, `fade-exit-active`, `fade-exit-done`,\n * `fade-appear`, `fade-appear-active`, and `fade-appear-done`.\n *\n * **Note**: `fade-appear-done` and `fade-enter-done` will _both_ be applied.\n * This allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply an\n * epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: _PropTypes.classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nvar _default = CSSTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-transition-group/CSSTransition.js\n// module id = 296\n// module chunks = 0","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = addClass;\n\nvar _hasClass = _interopRequireDefault(require(\"./hasClass\"));\n\nfunction addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);\n}\n\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/dom-helpers/class/addClass.js\n// module id = 297\n// module chunks = 0","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@babel/runtime/helpers/interopRequireDefault.js\n// module id = 298\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hasClass;\n\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/dom-helpers/class/hasClass.js\n// module id = 299\n// module chunks = 0","'use strict';\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/dom-helpers/class/removeClass.js\n// module id = 300\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = require(\"react-dom\");\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n/**\n * The `` component is a specialized `Transition` component\n * that animates between two children.\n *\n * ```jsx\n * \n *
I appear first
\n *
I replace the above
\n *
\n * ```\n */\nvar ReplaceTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ReplaceTransition, _React$Component);\n\n function ReplaceTransition() {\n var _this;\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n\n _this.handleEnter = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _this.handleLifecycle('onEnter', 0, args);\n };\n\n _this.handleEntering = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return _this.handleLifecycle('onEntering', 0, args);\n };\n\n _this.handleEntered = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return _this.handleLifecycle('onEntered', 0, args);\n };\n\n _this.handleExit = function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return _this.handleLifecycle('onExit', 1, args);\n };\n\n _this.handleExiting = function () {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return _this.handleLifecycle('onExiting', 1, args);\n };\n\n _this.handleExited = function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return _this.handleLifecycle('onExited', 1, args);\n };\n\n return _this;\n }\n\n var _proto = ReplaceTransition.prototype;\n\n _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {\n var _child$props;\n\n var children = this.props.children;\n\n var child = _react.default.Children.toArray(children)[idx];\n\n if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);\n if (this.props[handler]) this.props[handler]((0, _reactDom.findDOMNode)(this));\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n inProp = _this$props.in,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\"]);\n\n var _React$Children$toArr = _react.default.Children.toArray(children),\n first = _React$Children$toArr[0],\n second = _React$Children$toArr[1];\n\n delete props.onEnter;\n delete props.onEntering;\n delete props.onEntered;\n delete props.onExit;\n delete props.onExiting;\n delete props.onExited;\n return _react.default.createElement(_TransitionGroup.default, props, inProp ? _react.default.cloneElement(first, {\n key: 'first',\n onEnter: this.handleEnter,\n onEntering: this.handleEntering,\n onEntered: this.handleEntered\n }) : _react.default.cloneElement(second, {\n key: 'second',\n onEnter: this.handleExit,\n onEntering: this.handleExiting,\n onEntered: this.handleExited\n }));\n };\n\n return ReplaceTransition;\n}(_react.default.Component);\n\nReplaceTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n in: _propTypes.default.bool.isRequired,\n children: function children(props, propName) {\n if (_react.default.Children.count(props[propName]) !== 2) return new Error(\"\\\"\" + propName + \"\\\" must be exactly two transition components.\");\n return null;\n }\n} : {};\nvar _default = ReplaceTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-transition-group/ReplaceTransition.js\n// module id = 301\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\nexports.getInitialChildMapping = getInitialChildMapping;\nexports.getNextChildMapping = getNextChildMapping;\n\nvar _react = require(\"react\");\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\nfunction getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) _react.Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\n\nfunction mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nfunction getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\n\nfunction getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!(0, _react.isValidElement)(child)) return;\n var hasPrev = key in prevChildMapping;\n var hasNext = key in nextChildMapping;\n var prevChild = prevChildMapping[key];\n var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = (0, _react.cloneElement)(child, {\n in: false\n });\n } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-transition-group/utils/ChildMapping.js\n// module id = 302\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n color: PropTypes.string,\n pill: PropTypes.bool,\n tag: tagPropType,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n children: PropTypes.node,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n color: 'secondary',\n pill: false,\n tag: 'span'\n};\n\nvar Badge = function Badge(props) {\n var className = props.className,\n cssModule = props.cssModule,\n color = props.color,\n innerRef = props.innerRef,\n pill = props.pill,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"color\", \"innerRef\", \"pill\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, 'badge', 'badge-' + color, pill ? 'badge-pill' : false), cssModule);\n\n if (attributes.href && Tag === 'span') {\n Tag = 'a';\n }\n\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes,\n ref: innerRef\n }));\n};\n\nBadge.propTypes = propTypes;\nBadge.defaultProps = defaultProps;\nexport default Badge;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/Badge.js\n// module id = 303\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n inverse: PropTypes.bool,\n color: PropTypes.string,\n body: PropTypes.bool,\n outline: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.string, PropTypes.func])\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar Card = function Card(props) {\n var className = props.className,\n cssModule = props.cssModule,\n color = props.color,\n body = props.body,\n inverse = props.inverse,\n outline = props.outline,\n Tag = props.tag,\n innerRef = props.innerRef,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"color\", \"body\", \"inverse\", \"outline\", \"tag\", \"innerRef\"]);\n\n var classes = mapToCssModules(classNames(className, 'card', inverse ? 'text-white' : false, body ? 'card-body' : false, color ? (outline ? 'border' : 'bg') + \"-\" + color : false), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes,\n ref: innerRef\n }));\n};\n\nCard.propTypes = propTypes;\nCard.defaultProps = defaultProps;\nexport default Card;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/Card.js\n// module id = 304\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar CardGroup = function CardGroup(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, 'card-group'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nCardGroup.propTypes = propTypes;\nCardGroup.defaultProps = defaultProps;\nexport default CardGroup;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/CardGroup.js\n// module id = 305\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar CardDeck = function CardDeck(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, 'card-deck'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nCardDeck.propTypes = propTypes;\nCardDeck.defaultProps = defaultProps;\nexport default CardDeck;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/CardDeck.js\n// module id = 306\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar CardColumns = function CardColumns(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, 'card-columns'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nCardColumns.propTypes = propTypes;\nCardColumns.defaultProps = defaultProps;\nexport default CardColumns;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/CardColumns.js\n// module id = 307\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.string, PropTypes.func])\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar CardBody = function CardBody(props) {\n var className = props.className,\n cssModule = props.cssModule,\n innerRef = props.innerRef,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"innerRef\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, 'card-body'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes,\n ref: innerRef\n }));\n};\n\nCardBody.propTypes = propTypes;\nCardBody.defaultProps = defaultProps;\nexport default CardBody;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/CardBody.js\n// module id = 308\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'a'\n};\n\nvar CardLink = function CardLink(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n innerRef = props.innerRef,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tag\", \"innerRef\"]);\n\n var classes = mapToCssModules(classNames(className, 'card-link'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n ref: innerRef,\n className: classes\n }));\n};\n\nCardLink.propTypes = propTypes;\nCardLink.defaultProps = defaultProps;\nexport default CardLink;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/CardLink.js\n// module id = 309\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar CardFooter = function CardFooter(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, 'card-footer'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nCardFooter.propTypes = propTypes;\nCardFooter.defaultProps = defaultProps;\nexport default CardFooter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/CardFooter.js\n// module id = 310\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar CardHeader = function CardHeader(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, 'card-header'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nCardHeader.propTypes = propTypes;\nCardHeader.defaultProps = defaultProps;\nexport default CardHeader;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/CardHeader.js\n// module id = 311\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n top: PropTypes.bool,\n bottom: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'img'\n};\n\nvar CardImg = function CardImg(props) {\n var className = props.className,\n cssModule = props.cssModule,\n top = props.top,\n bottom = props.bottom,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"top\", \"bottom\", \"tag\"]);\n\n var cardImgClassName = 'card-img';\n\n if (top) {\n cardImgClassName = 'card-img-top';\n }\n\n if (bottom) {\n cardImgClassName = 'card-img-bottom';\n }\n\n var classes = mapToCssModules(classNames(className, cardImgClassName), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nCardImg.propTypes = propTypes;\nCardImg.defaultProps = defaultProps;\nexport default CardImg;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/CardImg.js\n// module id = 312\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar CardImgOverlay = function CardImgOverlay(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, 'card-img-overlay'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nCardImgOverlay.propTypes = propTypes;\nCardImgOverlay.defaultProps = defaultProps;\nexport default CardImgOverlay;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/CardImgOverlay.js\n// module id = 313\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Carousel from './Carousel';\nimport CarouselItem from './CarouselItem';\nimport CarouselControl from './CarouselControl';\nimport CarouselIndicators from './CarouselIndicators';\nimport CarouselCaption from './CarouselCaption';\nvar propTypes = {\n items: PropTypes.array.isRequired,\n indicators: PropTypes.bool,\n controls: PropTypes.bool,\n autoPlay: PropTypes.bool,\n defaultActiveIndex: PropTypes.number,\n activeIndex: PropTypes.number,\n next: PropTypes.func,\n previous: PropTypes.func,\n goToIndex: PropTypes.func\n};\n\nvar UncontrolledCarousel = /*#__PURE__*/function (_Component) {\n _inheritsLoose(UncontrolledCarousel, _Component);\n\n function UncontrolledCarousel(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n _this.animating = false;\n _this.state = {\n activeIndex: props.defaultActiveIndex || 0\n };\n _this.next = _this.next.bind(_assertThisInitialized(_this));\n _this.previous = _this.previous.bind(_assertThisInitialized(_this));\n _this.goToIndex = _this.goToIndex.bind(_assertThisInitialized(_this));\n _this.onExiting = _this.onExiting.bind(_assertThisInitialized(_this));\n _this.onExited = _this.onExited.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = UncontrolledCarousel.prototype;\n\n _proto.onExiting = function onExiting() {\n this.animating = true;\n };\n\n _proto.onExited = function onExited() {\n this.animating = false;\n };\n\n _proto.next = function next() {\n if (this.animating) return;\n var nextIndex = this.state.activeIndex === this.props.items.length - 1 ? 0 : this.state.activeIndex + 1;\n this.setState({\n activeIndex: nextIndex\n });\n };\n\n _proto.previous = function previous() {\n if (this.animating) return;\n var nextIndex = this.state.activeIndex === 0 ? this.props.items.length - 1 : this.state.activeIndex - 1;\n this.setState({\n activeIndex: nextIndex\n });\n };\n\n _proto.goToIndex = function goToIndex(newIndex) {\n if (this.animating) return;\n this.setState({\n activeIndex: newIndex\n });\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n defaultActiveIndex = _this$props.defaultActiveIndex,\n autoPlay = _this$props.autoPlay,\n indicators = _this$props.indicators,\n controls = _this$props.controls,\n items = _this$props.items,\n goToIndex = _this$props.goToIndex,\n props = _objectWithoutPropertiesLoose(_this$props, [\"defaultActiveIndex\", \"autoPlay\", \"indicators\", \"controls\", \"items\", \"goToIndex\"]);\n\n var activeIndex = this.state.activeIndex;\n var slides = items.map(function (item) {\n var key = item.key || item.src;\n return /*#__PURE__*/React.createElement(CarouselItem, {\n onExiting: _this2.onExiting,\n onExited: _this2.onExited,\n key: key\n }, /*#__PURE__*/React.createElement(\"img\", {\n className: \"d-block w-100\",\n src: item.src,\n alt: item.altText\n }), /*#__PURE__*/React.createElement(CarouselCaption, {\n captionText: item.caption,\n captionHeader: item.header || item.caption\n }));\n });\n return /*#__PURE__*/React.createElement(Carousel, _extends({\n activeIndex: activeIndex,\n next: this.next,\n previous: this.previous,\n ride: autoPlay ? 'carousel' : undefined\n }, props), indicators && /*#__PURE__*/React.createElement(CarouselIndicators, {\n items: items,\n activeIndex: props.activeIndex || activeIndex,\n onClickHandler: goToIndex || this.goToIndex\n }), slides, controls && /*#__PURE__*/React.createElement(CarouselControl, {\n direction: \"prev\",\n directionText: \"Previous\",\n onClickHandler: props.previous || this.previous\n }), controls && /*#__PURE__*/React.createElement(CarouselControl, {\n direction: \"next\",\n directionText: \"Next\",\n onClickHandler: props.next || this.next\n }));\n };\n\n return UncontrolledCarousel;\n}(Component);\n\nUncontrolledCarousel.propTypes = propTypes;\nUncontrolledCarousel.defaultProps = {\n controls: true,\n indicators: true,\n autoPlay: true\n};\nexport default UncontrolledCarousel;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/UncontrolledCarousel.js\n// module id = 314\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar CardSubtitle = function CardSubtitle(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, 'card-subtitle'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nCardSubtitle.propTypes = propTypes;\nCardSubtitle.defaultProps = defaultProps;\nexport default CardSubtitle;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/CardSubtitle.js\n// module id = 315\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'p'\n};\n\nvar CardText = function CardText(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, 'card-text'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nCardText.propTypes = propTypes;\nCardText.defaultProps = defaultProps;\nexport default CardText;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/CardText.js\n// module id = 316\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar CardTitle = function CardTitle(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, 'card-title'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nCardTitle.propTypes = propTypes;\nCardTitle.defaultProps = defaultProps;\nexport default CardTitle;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/CardTitle.js\n// module id = 317\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\nimport CustomFileInput from './CustomFileInput';\nvar propTypes = {\n className: PropTypes.string,\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n type: PropTypes.string.isRequired,\n label: PropTypes.node,\n inline: PropTypes.bool,\n valid: PropTypes.bool,\n invalid: PropTypes.bool,\n bsSize: PropTypes.string,\n htmlFor: PropTypes.string,\n cssModule: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.array, PropTypes.func]),\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.string, PropTypes.func])\n};\n\nfunction CustomInput(props) {\n var className = props.className,\n label = props.label,\n inline = props.inline,\n valid = props.valid,\n invalid = props.invalid,\n cssModule = props.cssModule,\n children = props.children,\n bsSize = props.bsSize,\n innerRef = props.innerRef,\n htmlFor = props.htmlFor,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"label\", \"inline\", \"valid\", \"invalid\", \"cssModule\", \"children\", \"bsSize\", \"innerRef\", \"htmlFor\"]);\n\n var type = attributes.type;\n var customClass = mapToCssModules(classNames(className, \"custom-\" + type, bsSize ? \"custom-\" + type + \"-\" + bsSize : false), cssModule);\n var validationClassNames = mapToCssModules(classNames(invalid && \"is-invalid\", valid && \"is-valid\"), cssModule);\n var labelHtmlFor = htmlFor || attributes.id;\n\n if (type === \"select\") {\n var _type = attributes.type,\n _rest = _objectWithoutPropertiesLoose(attributes, [\"type\"]);\n\n return /*#__PURE__*/React.createElement(\"select\", _extends({}, _rest, {\n ref: innerRef,\n className: classNames(validationClassNames, customClass),\n \"aria-invalid\": invalid\n }), children);\n }\n\n if (type === \"file\") {\n return /*#__PURE__*/React.createElement(CustomFileInput, props);\n }\n\n if (type !== \"checkbox\" && type !== \"radio\" && type !== \"switch\") {\n return /*#__PURE__*/React.createElement(\"input\", _extends({}, attributes, {\n ref: innerRef,\n \"aria-invalid\": invalid,\n className: classNames(validationClassNames, customClass)\n }));\n }\n\n var wrapperClasses = classNames(customClass, mapToCssModules(classNames(\"custom-control\", {\n \"custom-control-inline\": inline\n }), cssModule));\n\n var hidden = attributes.hidden,\n rest = _objectWithoutPropertiesLoose(attributes, [\"hidden\"]);\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: wrapperClasses,\n hidden: hidden || false\n }, /*#__PURE__*/React.createElement(\"input\", _extends({}, rest, {\n type: type === \"switch\" ? \"checkbox\" : type,\n ref: innerRef,\n \"aria-invalid\": invalid,\n className: classNames(validationClassNames, mapToCssModules(\"custom-control-input\", cssModule))\n })), /*#__PURE__*/React.createElement(\"label\", {\n className: mapToCssModules(\"custom-control-label\", cssModule),\n htmlFor: labelHtmlFor\n }, label), children);\n}\n\nCustomInput.propTypes = propTypes;\nexport default CustomInput;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/CustomInput.js\n// module id = 318\n// module chunks = 0","import PropTypes from 'prop-types';\nimport { getTarget, targetPropType } from './utils';\n\nvar PopperTargetHelper = function PopperTargetHelper(props, context) {\n context.popperManager.setTargetNode(getTarget(props.target));\n return null;\n};\n\nPopperTargetHelper.contextTypes = {\n popperManager: PropTypes.object.isRequired\n};\nPopperTargetHelper.propTypes = {\n target: targetPropType.isRequired\n};\nexport default PopperTargetHelper;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/PopperTargetHelper.js\n// module id = 319\n// module chunks = 0","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Popover from './Popover';\nimport { omit } from './utils';\nvar omitKeys = ['defaultOpen'];\n\nvar UncontrolledPopover = /*#__PURE__*/function (_Component) {\n _inheritsLoose(UncontrolledPopover, _Component);\n\n function UncontrolledPopover(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n _this.state = {\n isOpen: props.defaultOpen || false\n };\n _this.toggle = _this.toggle.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = UncontrolledPopover.prototype;\n\n _proto.toggle = function toggle() {\n this.setState({\n isOpen: !this.state.isOpen\n });\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Popover, _extends({\n isOpen: this.state.isOpen,\n toggle: this.toggle\n }, omit(this.props, omitKeys)));\n };\n\n return UncontrolledPopover;\n}(Component);\n\nexport { UncontrolledPopover as default };\nUncontrolledPopover.propTypes = _objectSpread({\n defaultOpen: PropTypes.bool\n}, Popover.propTypes);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/UncontrolledPopover.js\n// module id = 320\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'h3'\n};\n\nvar PopoverHeader = function PopoverHeader(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, 'popover-header'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nPopoverHeader.propTypes = propTypes;\nPopoverHeader.defaultProps = defaultProps;\nexport default PopoverHeader;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/PopoverHeader.js\n// module id = 321\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar PopoverBody = function PopoverBody(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, 'popover-body'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nPopoverBody.propTypes = propTypes;\nPopoverBody.defaultProps = defaultProps;\nexport default PopoverBody;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/PopoverBody.js\n// module id = 322\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType, toNumber } from './utils';\nvar propTypes = {\n children: PropTypes.node,\n bar: PropTypes.bool,\n multi: PropTypes.bool,\n tag: tagPropType,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n min: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n max: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n animated: PropTypes.bool,\n striped: PropTypes.bool,\n color: PropTypes.string,\n className: PropTypes.string,\n barClassName: PropTypes.string,\n cssModule: PropTypes.object,\n style: PropTypes.object,\n barStyle: PropTypes.object,\n barAriaValueText: PropTypes.string,\n barAriaLabelledBy: PropTypes.string\n};\nvar defaultProps = {\n tag: 'div',\n value: 0,\n min: 0,\n max: 100,\n style: {},\n barStyle: {}\n};\n\nvar Progress = function Progress(props) {\n var children = props.children,\n className = props.className,\n barClassName = props.barClassName,\n cssModule = props.cssModule,\n value = props.value,\n min = props.min,\n max = props.max,\n animated = props.animated,\n striped = props.striped,\n color = props.color,\n bar = props.bar,\n multi = props.multi,\n Tag = props.tag,\n style = props.style,\n barStyle = props.barStyle,\n barAriaValueText = props.barAriaValueText,\n barAriaLabelledBy = props.barAriaLabelledBy,\n attributes = _objectWithoutPropertiesLoose(props, [\"children\", \"className\", \"barClassName\", \"cssModule\", \"value\", \"min\", \"max\", \"animated\", \"striped\", \"color\", \"bar\", \"multi\", \"tag\", \"style\", \"barStyle\", \"barAriaValueText\", \"barAriaLabelledBy\"]);\n\n var percent = toNumber(value) / toNumber(max) * 100;\n var progressClasses = mapToCssModules(classNames(className, 'progress'), cssModule);\n var progressBarClasses = mapToCssModules(classNames('progress-bar', bar ? className || barClassName : barClassName, animated ? 'progress-bar-animated' : null, color ? \"bg-\" + color : null, striped || animated ? 'progress-bar-striped' : null), cssModule);\n var progressBarProps = {\n className: progressBarClasses,\n style: _objectSpread(_objectSpread(_objectSpread({}, bar ? style : {}), barStyle), {}, {\n width: percent + \"%\"\n }),\n role: 'progressbar',\n 'aria-valuenow': value,\n 'aria-valuemin': min,\n 'aria-valuemax': max,\n 'aria-valuetext': barAriaValueText,\n 'aria-labelledby': barAriaLabelledBy,\n children: children\n };\n\n if (bar) {\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, progressBarProps));\n }\n\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n style: style,\n className: progressClasses\n }), multi ? children : /*#__PURE__*/React.createElement(\"div\", progressBarProps));\n};\n\nProgress.propTypes = propTypes;\nProgress.defaultProps = defaultProps;\nexport default Progress;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/Progress.js\n// module id = 323\n// module chunks = 0","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Portal from './Portal';\nimport Fade from './Fade';\nimport { getOriginalBodyPadding, conditionallyUpdateScrollbar, setScrollbarWidth, mapToCssModules, omit, focusableElements, TransitionTimeouts, keyCodes, targetPropType, getTarget } from './utils';\n\nfunction noop() {}\n\nvar FadePropTypes = PropTypes.shape(Fade.propTypes);\nvar propTypes = {\n isOpen: PropTypes.bool,\n autoFocus: PropTypes.bool,\n centered: PropTypes.bool,\n scrollable: PropTypes.bool,\n size: PropTypes.string,\n toggle: PropTypes.func,\n keyboard: PropTypes.bool,\n role: PropTypes.string,\n labelledBy: PropTypes.string,\n backdrop: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['static'])]),\n onEnter: PropTypes.func,\n onExit: PropTypes.func,\n onOpened: PropTypes.func,\n onClosed: PropTypes.func,\n children: PropTypes.node,\n className: PropTypes.string,\n wrapClassName: PropTypes.string,\n modalClassName: PropTypes.string,\n backdropClassName: PropTypes.string,\n contentClassName: PropTypes.string,\n external: PropTypes.node,\n fade: PropTypes.bool,\n cssModule: PropTypes.object,\n zIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n backdropTransition: FadePropTypes,\n modalTransition: FadePropTypes,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.string, PropTypes.func]),\n unmountOnClose: PropTypes.bool,\n returnFocusAfterClose: PropTypes.bool,\n container: targetPropType,\n trapFocus: PropTypes.bool\n};\nvar propsToOmit = Object.keys(propTypes);\nvar defaultProps = {\n isOpen: false,\n autoFocus: true,\n centered: false,\n scrollable: false,\n role: 'dialog',\n backdrop: true,\n keyboard: true,\n zIndex: 1050,\n fade: true,\n onOpened: noop,\n onClosed: noop,\n modalTransition: {\n timeout: TransitionTimeouts.Modal\n },\n backdropTransition: {\n mountOnEnter: true,\n timeout: TransitionTimeouts.Fade // uses standard fade transition\n\n },\n unmountOnClose: true,\n returnFocusAfterClose: true,\n container: 'body',\n trapFocus: false\n};\n\nvar Modal = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Modal, _React$Component);\n\n function Modal(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this._element = null;\n _this._originalBodyPadding = null;\n _this.getFocusableChildren = _this.getFocusableChildren.bind(_assertThisInitialized(_this));\n _this.handleBackdropClick = _this.handleBackdropClick.bind(_assertThisInitialized(_this));\n _this.handleBackdropMouseDown = _this.handleBackdropMouseDown.bind(_assertThisInitialized(_this));\n _this.handleEscape = _this.handleEscape.bind(_assertThisInitialized(_this));\n _this.handleStaticBackdropAnimation = _this.handleStaticBackdropAnimation.bind(_assertThisInitialized(_this));\n _this.handleTab = _this.handleTab.bind(_assertThisInitialized(_this));\n _this.onOpened = _this.onOpened.bind(_assertThisInitialized(_this));\n _this.onClosed = _this.onClosed.bind(_assertThisInitialized(_this));\n _this.manageFocusAfterClose = _this.manageFocusAfterClose.bind(_assertThisInitialized(_this));\n _this.clearBackdropAnimationTimeout = _this.clearBackdropAnimationTimeout.bind(_assertThisInitialized(_this));\n _this.trapFocus = _this.trapFocus.bind(_assertThisInitialized(_this));\n _this.state = {\n isOpen: false,\n showStaticBackdropAnimation: false\n };\n return _this;\n }\n\n var _proto = Modal.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this$props = this.props,\n isOpen = _this$props.isOpen,\n autoFocus = _this$props.autoFocus,\n onEnter = _this$props.onEnter;\n\n if (isOpen) {\n this.init();\n this.setState({\n isOpen: true\n });\n\n if (autoFocus) {\n this.setFocus();\n }\n }\n\n if (onEnter) {\n onEnter();\n } // traps focus inside the Modal, even if the browser address bar is focused\n\n\n document.addEventListener('focus', this.trapFocus, true);\n this._isMounted = true;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (this.props.isOpen && !prevProps.isOpen) {\n this.init();\n this.setState({\n isOpen: true\n }); // let render() renders Modal Dialog first\n\n return;\n } // now Modal Dialog is rendered and we can refer this._element and this._dialog\n\n\n if (this.props.autoFocus && this.state.isOpen && !prevState.isOpen) {\n this.setFocus();\n }\n\n if (this._element && prevProps.zIndex !== this.props.zIndex) {\n this._element.style.zIndex = this.props.zIndex;\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.clearBackdropAnimationTimeout();\n\n if (this.props.onExit) {\n this.props.onExit();\n }\n\n if (this._element) {\n this.destroy();\n\n if (this.props.isOpen || this.state.isOpen) {\n this.close();\n }\n }\n\n document.removeEventListener('focus', this.trapFocus, true);\n this._isMounted = false;\n };\n\n _proto.trapFocus = function trapFocus(ev) {\n if (!this.props.trapFocus) {\n return;\n }\n\n if (!this._element) //element is not attached\n return;\n if (this._dialog && this._dialog.parentNode === ev.target) // initial focus when the Modal is opened\n return;\n if (this.modalIndex < Modal.openCount - 1) // last opened modal\n return;\n var children = this.getFocusableChildren();\n\n for (var i = 0; i < children.length; i++) {\n // focus is already inside the Modal\n if (children[i] === ev.target) return;\n }\n\n if (children.length > 0) {\n // otherwise focus the first focusable element in the Modal\n ev.preventDefault();\n ev.stopPropagation();\n children[0].focus();\n }\n };\n\n _proto.onOpened = function onOpened(node, isAppearing) {\n this.props.onOpened();\n (this.props.modalTransition.onEntered || noop)(node, isAppearing);\n };\n\n _proto.onClosed = function onClosed(node) {\n var unmountOnClose = this.props.unmountOnClose; // so all methods get called before it is unmounted\n\n this.props.onClosed();\n (this.props.modalTransition.onExited || noop)(node);\n\n if (unmountOnClose) {\n this.destroy();\n }\n\n this.close();\n\n if (this._isMounted) {\n this.setState({\n isOpen: false\n });\n }\n };\n\n _proto.setFocus = function setFocus() {\n if (this._dialog && this._dialog.parentNode && typeof this._dialog.parentNode.focus === 'function') {\n this._dialog.parentNode.focus();\n }\n };\n\n _proto.getFocusableChildren = function getFocusableChildren() {\n return this._element.querySelectorAll(focusableElements.join(', '));\n };\n\n _proto.getFocusedChild = function getFocusedChild() {\n var currentFocus;\n var focusableChildren = this.getFocusableChildren();\n\n try {\n currentFocus = document.activeElement;\n } catch (err) {\n currentFocus = focusableChildren[0];\n }\n\n return currentFocus;\n } // not mouseUp because scrollbar fires it, shouldn't close when user scrolls\n ;\n\n _proto.handleBackdropClick = function handleBackdropClick(e) {\n if (e.target === this._mouseDownElement) {\n e.stopPropagation();\n var backdrop = this._dialog ? this._dialog.parentNode : null;\n\n if (backdrop && e.target === backdrop && this.props.backdrop === 'static') {\n this.handleStaticBackdropAnimation();\n }\n\n if (!this.props.isOpen || this.props.backdrop !== true) return;\n\n if (backdrop && e.target === backdrop && this.props.toggle) {\n this.props.toggle(e);\n }\n }\n };\n\n _proto.handleTab = function handleTab(e) {\n if (e.which !== 9) return;\n if (this.modalIndex < Modal.openCount - 1) return; // last opened modal\n\n var focusableChildren = this.getFocusableChildren();\n var totalFocusable = focusableChildren.length;\n if (totalFocusable === 0) return;\n var currentFocus = this.getFocusedChild();\n var focusedIndex = 0;\n\n for (var i = 0; i < totalFocusable; i += 1) {\n if (focusableChildren[i] === currentFocus) {\n focusedIndex = i;\n break;\n }\n }\n\n if (e.shiftKey && focusedIndex === 0) {\n e.preventDefault();\n focusableChildren[totalFocusable - 1].focus();\n } else if (!e.shiftKey && focusedIndex === totalFocusable - 1) {\n e.preventDefault();\n focusableChildren[0].focus();\n }\n };\n\n _proto.handleBackdropMouseDown = function handleBackdropMouseDown(e) {\n this._mouseDownElement = e.target;\n };\n\n _proto.handleEscape = function handleEscape(e) {\n if (this.props.isOpen && e.keyCode === keyCodes.esc && this.props.toggle) {\n if (this.props.keyboard) {\n e.preventDefault();\n e.stopPropagation();\n this.props.toggle(e);\n } else if (this.props.backdrop === 'static') {\n e.preventDefault();\n e.stopPropagation();\n this.handleStaticBackdropAnimation();\n }\n }\n };\n\n _proto.handleStaticBackdropAnimation = function handleStaticBackdropAnimation() {\n var _this2 = this;\n\n this.clearBackdropAnimationTimeout();\n this.setState({\n showStaticBackdropAnimation: true\n });\n this._backdropAnimationTimeout = setTimeout(function () {\n _this2.setState({\n showStaticBackdropAnimation: false\n });\n }, 100);\n };\n\n _proto.init = function init() {\n try {\n this._triggeringElement = document.activeElement;\n } catch (err) {\n this._triggeringElement = null;\n }\n\n if (!this._element) {\n this._element = document.createElement('div');\n\n this._element.setAttribute('tabindex', '-1');\n\n this._element.style.position = 'relative';\n this._element.style.zIndex = this.props.zIndex;\n this._mountContainer = getTarget(this.props.container);\n\n this._mountContainer.appendChild(this._element);\n }\n\n this._originalBodyPadding = getOriginalBodyPadding();\n conditionallyUpdateScrollbar();\n\n if (Modal.openCount === 0) {\n document.body.className = classNames(document.body.className, mapToCssModules('modal-open', this.props.cssModule));\n }\n\n this.modalIndex = Modal.openCount;\n Modal.openCount += 1;\n };\n\n _proto.destroy = function destroy() {\n if (this._element) {\n this._mountContainer.removeChild(this._element);\n\n this._element = null;\n }\n\n this.manageFocusAfterClose();\n };\n\n _proto.manageFocusAfterClose = function manageFocusAfterClose() {\n if (this._triggeringElement) {\n var returnFocusAfterClose = this.props.returnFocusAfterClose;\n if (this._triggeringElement.focus && returnFocusAfterClose) this._triggeringElement.focus();\n this._triggeringElement = null;\n }\n };\n\n _proto.close = function close() {\n if (Modal.openCount <= 1) {\n var modalOpenClassName = mapToCssModules('modal-open', this.props.cssModule); // Use regex to prevent matching `modal-open` as part of a different class, e.g. `my-modal-opened`\n\n var modalOpenClassNameRegex = new RegExp(\"(^| )\" + modalOpenClassName + \"( |$)\");\n document.body.className = document.body.className.replace(modalOpenClassNameRegex, ' ').trim();\n }\n\n this.manageFocusAfterClose();\n Modal.openCount = Math.max(0, Modal.openCount - 1);\n setScrollbarWidth(this._originalBodyPadding);\n };\n\n _proto.renderModalDialog = function renderModalDialog() {\n var _classNames,\n _this3 = this;\n\n var attributes = omit(this.props, propsToOmit);\n var dialogBaseClass = 'modal-dialog';\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, attributes, {\n className: mapToCssModules(classNames(dialogBaseClass, this.props.className, (_classNames = {}, _classNames[\"modal-\" + this.props.size] = this.props.size, _classNames[dialogBaseClass + \"-centered\"] = this.props.centered, _classNames[dialogBaseClass + \"-scrollable\"] = this.props.scrollable, _classNames)), this.props.cssModule),\n role: \"document\",\n ref: function ref(c) {\n _this3._dialog = c;\n }\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: mapToCssModules(classNames('modal-content', this.props.contentClassName), this.props.cssModule)\n }, this.props.children));\n };\n\n _proto.render = function render() {\n var unmountOnClose = this.props.unmountOnClose;\n\n if (!!this._element && (this.state.isOpen || !unmountOnClose)) {\n var isModalHidden = !!this._element && !this.state.isOpen && !unmountOnClose;\n this._element.style.display = isModalHidden ? 'none' : 'block';\n var _this$props2 = this.props,\n wrapClassName = _this$props2.wrapClassName,\n modalClassName = _this$props2.modalClassName,\n backdropClassName = _this$props2.backdropClassName,\n cssModule = _this$props2.cssModule,\n isOpen = _this$props2.isOpen,\n backdrop = _this$props2.backdrop,\n role = _this$props2.role,\n labelledBy = _this$props2.labelledBy,\n external = _this$props2.external,\n innerRef = _this$props2.innerRef;\n var modalAttributes = {\n onClick: this.handleBackdropClick,\n onMouseDown: this.handleBackdropMouseDown,\n onKeyUp: this.handleEscape,\n onKeyDown: this.handleTab,\n style: {\n display: 'block'\n },\n 'aria-labelledby': labelledBy,\n role: role,\n tabIndex: '-1'\n };\n var hasTransition = this.props.fade;\n\n var modalTransition = _objectSpread(_objectSpread(_objectSpread({}, Fade.defaultProps), this.props.modalTransition), {}, {\n baseClass: hasTransition ? this.props.modalTransition.baseClass : '',\n timeout: hasTransition ? this.props.modalTransition.timeout : 0\n });\n\n var backdropTransition = _objectSpread(_objectSpread(_objectSpread({}, Fade.defaultProps), this.props.backdropTransition), {}, {\n baseClass: hasTransition ? this.props.backdropTransition.baseClass : '',\n timeout: hasTransition ? this.props.backdropTransition.timeout : 0\n });\n\n var Backdrop = backdrop && (hasTransition ? /*#__PURE__*/React.createElement(Fade, _extends({}, backdropTransition, {\n in: isOpen && !!backdrop,\n cssModule: cssModule,\n className: mapToCssModules(classNames('modal-backdrop', backdropClassName), cssModule)\n })) : /*#__PURE__*/React.createElement(\"div\", {\n className: mapToCssModules(classNames('modal-backdrop', 'show', backdropClassName), cssModule)\n }));\n return /*#__PURE__*/React.createElement(Portal, {\n node: this._element\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: mapToCssModules(wrapClassName)\n }, /*#__PURE__*/React.createElement(Fade, _extends({}, modalAttributes, modalTransition, {\n in: isOpen,\n onEntered: this.onOpened,\n onExited: this.onClosed,\n cssModule: cssModule,\n className: mapToCssModules(classNames('modal', modalClassName, this.state.showStaticBackdropAnimation && 'modal-static'), cssModule),\n innerRef: innerRef\n }), external, this.renderModalDialog()), Backdrop));\n }\n\n return null;\n };\n\n _proto.clearBackdropAnimationTimeout = function clearBackdropAnimationTimeout() {\n if (this._backdropAnimationTimeout) {\n clearTimeout(this._backdropAnimationTimeout);\n this._backdropAnimationTimeout = undefined;\n }\n };\n\n return Modal;\n}(React.Component);\n\nModal.propTypes = propTypes;\nModal.defaultProps = defaultProps;\nModal.openCount = 0;\nexport default Modal;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/Modal.js\n// module id = 324\n// module chunks = 0","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { canUseDOM } from './utils';\nvar propTypes = {\n children: PropTypes.node.isRequired,\n node: PropTypes.any\n};\n\nvar Portal = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Portal, _React$Component);\n\n function Portal() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Portal.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.defaultNode) {\n document.body.removeChild(this.defaultNode);\n }\n\n this.defaultNode = null;\n };\n\n _proto.render = function render() {\n if (!canUseDOM) {\n return null;\n }\n\n if (!this.props.node && !this.defaultNode) {\n this.defaultNode = document.createElement('div');\n document.body.appendChild(this.defaultNode);\n }\n\n return /*#__PURE__*/ReactDOM.createPortal(this.props.children, this.props.node || this.defaultNode);\n };\n\n return Portal;\n}(React.Component);\n\nPortal.propTypes = propTypes;\nexport default Portal;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/Portal.js\n// module id = 325\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n wrapTag: tagPropType,\n toggle: PropTypes.func,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n children: PropTypes.node,\n closeAriaLabel: PropTypes.string,\n charCode: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n close: PropTypes.object\n};\nvar defaultProps = {\n tag: 'h5',\n wrapTag: 'div',\n closeAriaLabel: 'Close',\n charCode: 215\n};\n\nvar ModalHeader = function ModalHeader(props) {\n var closeButton;\n\n var className = props.className,\n cssModule = props.cssModule,\n children = props.children,\n toggle = props.toggle,\n Tag = props.tag,\n WrapTag = props.wrapTag,\n closeAriaLabel = props.closeAriaLabel,\n charCode = props.charCode,\n close = props.close,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"children\", \"toggle\", \"tag\", \"wrapTag\", \"closeAriaLabel\", \"charCode\", \"close\"]);\n\n var classes = mapToCssModules(classNames(className, 'modal-header'), cssModule);\n\n if (!close && toggle) {\n var closeIcon = typeof charCode === 'number' ? String.fromCharCode(charCode) : charCode;\n closeButton = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: toggle,\n className: mapToCssModules('close', cssModule),\n \"aria-label\": closeAriaLabel\n }, /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": \"true\"\n }, closeIcon));\n }\n\n return /*#__PURE__*/React.createElement(WrapTag, _extends({}, attributes, {\n className: classes\n }), /*#__PURE__*/React.createElement(Tag, {\n className: mapToCssModules('modal-title', cssModule)\n }, children), close || closeButton);\n};\n\nModalHeader.propTypes = propTypes;\nModalHeader.defaultProps = defaultProps;\nexport default ModalHeader;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/ModalHeader.js\n// module id = 326\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar ModalBody = function ModalBody(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, 'modal-body'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nModalBody.propTypes = propTypes;\nModalBody.defaultProps = defaultProps;\nexport default ModalBody;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/ModalBody.js\n// module id = 327\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar ModalFooter = function ModalFooter(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, 'modal-footer'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nModalFooter.propTypes = propTypes;\nModalFooter.defaultProps = defaultProps;\nexport default ModalFooter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/ModalFooter.js\n// module id = 328\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n className: PropTypes.string,\n cssModule: PropTypes.object,\n size: PropTypes.string,\n bordered: PropTypes.bool,\n borderless: PropTypes.bool,\n striped: PropTypes.bool,\n dark: PropTypes.bool,\n hover: PropTypes.bool,\n responsive: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n tag: tagPropType,\n responsiveTag: tagPropType,\n innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.string, PropTypes.object])\n};\nvar defaultProps = {\n tag: 'table',\n responsiveTag: 'div'\n};\n\nvar Table = function Table(props) {\n var className = props.className,\n cssModule = props.cssModule,\n size = props.size,\n bordered = props.bordered,\n borderless = props.borderless,\n striped = props.striped,\n dark = props.dark,\n hover = props.hover,\n responsive = props.responsive,\n Tag = props.tag,\n ResponsiveTag = props.responsiveTag,\n innerRef = props.innerRef,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"size\", \"bordered\", \"borderless\", \"striped\", \"dark\", \"hover\", \"responsive\", \"tag\", \"responsiveTag\", \"innerRef\"]);\n\n var classes = mapToCssModules(classNames(className, 'table', size ? 'table-' + size : false, bordered ? 'table-bordered' : false, borderless ? 'table-borderless' : false, striped ? 'table-striped' : false, dark ? 'table-dark' : false, hover ? 'table-hover' : false), cssModule);\n var table = /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n ref: innerRef,\n className: classes\n }));\n\n if (responsive) {\n var responsiveClassName = mapToCssModules(responsive === true ? 'table-responsive' : \"table-responsive-\" + responsive, cssModule);\n return /*#__PURE__*/React.createElement(ResponsiveTag, {\n className: responsiveClassName\n }, table);\n }\n\n return table;\n};\n\nTable.propTypes = propTypes;\nTable.defaultProps = defaultProps;\nexport default Table;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/Table.js\n// module id = 329\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n flush: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n horizontal: PropTypes.oneOfType([PropTypes.bool, PropTypes.string])\n};\nvar defaultProps = {\n tag: 'ul',\n horizontal: false\n};\n\nvar getHorizontalClass = function getHorizontalClass(horizontal) {\n if (horizontal === false) {\n return false;\n } else if (horizontal === true || horizontal === \"xs\") {\n return \"list-group-horizontal\";\n }\n\n return \"list-group-horizontal-\" + horizontal;\n};\n\nvar ListGroup = function ListGroup(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n flush = props.flush,\n horizontal = props.horizontal,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tag\", \"flush\", \"horizontal\"]);\n\n var classes = mapToCssModules(classNames(className, 'list-group', // list-group-horizontal cannot currently be mixed with list-group-flush\n // we only try to apply horizontal classes if flush is false\n flush ? 'list-group-flush' : getHorizontalClass(horizontal)), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nListGroup.propTypes = propTypes;\nListGroup.defaultProps = defaultProps;\nexport default ListGroup;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/ListGroup.js\n// module id = 330\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n children: PropTypes.node,\n inline: PropTypes.bool,\n tag: tagPropType,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'form'\n};\n\nvar Form = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Form, _Component);\n\n function Form(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n _this.getRef = _this.getRef.bind(_assertThisInitialized(_this));\n _this.submit = _this.submit.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = Form.prototype;\n\n _proto.getRef = function getRef(ref) {\n if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n\n this.ref = ref;\n };\n\n _proto.submit = function submit() {\n if (this.ref) {\n this.ref.submit();\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n className = _this$props.className,\n cssModule = _this$props.cssModule,\n inline = _this$props.inline,\n Tag = _this$props.tag,\n innerRef = _this$props.innerRef,\n attributes = _objectWithoutPropertiesLoose(_this$props, [\"className\", \"cssModule\", \"inline\", \"tag\", \"innerRef\"]);\n\n var classes = mapToCssModules(classNames(className, inline ? 'form-inline' : false), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n ref: innerRef,\n className: classes\n }));\n };\n\n return Form;\n}(Component);\n\nForm.propTypes = propTypes;\nForm.defaultProps = defaultProps;\nexport default Form;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/Form.js\n// module id = 331\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n children: PropTypes.node,\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n valid: PropTypes.bool,\n tooltip: PropTypes.bool\n};\nvar defaultProps = {\n tag: 'div',\n valid: undefined\n};\n\nvar FormFeedback = function FormFeedback(props) {\n var className = props.className,\n cssModule = props.cssModule,\n valid = props.valid,\n tooltip = props.tooltip,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"valid\", \"tooltip\", \"tag\"]);\n\n var validMode = tooltip ? 'tooltip' : 'feedback';\n var classes = mapToCssModules(classNames(className, valid ? \"valid-\" + validMode : \"invalid-\" + validMode), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nFormFeedback.propTypes = propTypes;\nFormFeedback.defaultProps = defaultProps;\nexport default FormFeedback;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/FormFeedback.js\n// module id = 332\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n children: PropTypes.node,\n row: PropTypes.bool,\n check: PropTypes.bool,\n inline: PropTypes.bool,\n disabled: PropTypes.bool,\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar FormGroup = function FormGroup(props) {\n var className = props.className,\n cssModule = props.cssModule,\n row = props.row,\n disabled = props.disabled,\n check = props.check,\n inline = props.inline,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"row\", \"disabled\", \"check\", \"inline\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, row ? 'row' : false, check ? 'form-check' : 'form-group', check && inline ? 'form-check-inline' : false, check && disabled ? 'disabled' : false), cssModule);\n\n if (Tag === 'fieldset') {\n attributes.disabled = disabled;\n }\n\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nFormGroup.propTypes = propTypes;\nFormGroup.defaultProps = defaultProps;\nexport default FormGroup;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/FormGroup.js\n// module id = 333\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n children: PropTypes.node,\n inline: PropTypes.bool,\n tag: tagPropType,\n color: PropTypes.string,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'small',\n color: 'muted'\n};\n\nvar FormText = function FormText(props) {\n var className = props.className,\n cssModule = props.cssModule,\n inline = props.inline,\n color = props.color,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"inline\", \"color\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, !inline ? 'form-text' : false, color ? \"text-\" + color : false), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nFormText.propTypes = propTypes;\nFormText.defaultProps = defaultProps;\nexport default FormText;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/FormText.js\n// module id = 334\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\n\n/* eslint react/prefer-stateless-function: 0 */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, warnOnce, tagPropType } from './utils';\nvar propTypes = {\n children: PropTypes.node,\n type: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n bsSize: PropTypes.string,\n valid: PropTypes.bool,\n invalid: PropTypes.bool,\n tag: tagPropType,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n plaintext: PropTypes.bool,\n addon: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n type: 'text'\n};\n\nvar Input = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Input, _React$Component);\n\n function Input(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.getRef = _this.getRef.bind(_assertThisInitialized(_this));\n _this.focus = _this.focus.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = Input.prototype;\n\n _proto.getRef = function getRef(ref) {\n if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n\n this.ref = ref;\n };\n\n _proto.focus = function focus() {\n if (this.ref) {\n this.ref.focus();\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n className = _this$props.className,\n cssModule = _this$props.cssModule,\n type = _this$props.type,\n bsSize = _this$props.bsSize,\n valid = _this$props.valid,\n invalid = _this$props.invalid,\n tag = _this$props.tag,\n addon = _this$props.addon,\n plaintext = _this$props.plaintext,\n innerRef = _this$props.innerRef,\n attributes = _objectWithoutPropertiesLoose(_this$props, [\"className\", \"cssModule\", \"type\", \"bsSize\", \"valid\", \"invalid\", \"tag\", \"addon\", \"plaintext\", \"innerRef\"]);\n\n var checkInput = ['radio', 'checkbox'].indexOf(type) > -1;\n var isNotaNumber = new RegExp('\\\\D', 'g');\n var fileInput = type === 'file';\n var textareaInput = type === 'textarea';\n var selectInput = type === 'select';\n var rangeInput = type === 'range';\n var Tag = tag || (selectInput || textareaInput ? type : 'input');\n var formControlClass = 'form-control';\n\n if (plaintext) {\n formControlClass = formControlClass + \"-plaintext\";\n Tag = tag || 'input';\n } else if (fileInput) {\n formControlClass = formControlClass + \"-file\";\n } else if (rangeInput) {\n formControlClass = formControlClass + \"-range\";\n } else if (checkInput) {\n if (addon) {\n formControlClass = null;\n } else {\n formControlClass = 'form-check-input';\n }\n }\n\n if (attributes.size && isNotaNumber.test(attributes.size)) {\n warnOnce('Please use the prop \"bsSize\" instead of the \"size\" to bootstrap\\'s input sizing.');\n bsSize = attributes.size;\n delete attributes.size;\n }\n\n var classes = mapToCssModules(classNames(className, invalid && 'is-invalid', valid && 'is-valid', bsSize ? \"form-control-\" + bsSize : false, formControlClass), cssModule);\n\n if (Tag === 'input' || tag && typeof tag === 'function') {\n attributes.type = type;\n }\n\n if (attributes.children && !(plaintext || type === 'select' || typeof Tag !== 'string' || Tag === 'select')) {\n warnOnce(\"Input with a type of \\\"\" + type + \"\\\" cannot have children. Please use \\\"value\\\"/\\\"defaultValue\\\" instead.\");\n delete attributes.children;\n }\n\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n ref: innerRef,\n className: classes,\n \"aria-invalid\": invalid\n }));\n };\n\n return Input;\n}(React.Component);\n\nInput.propTypes = propTypes;\nInput.defaultProps = defaultProps;\nexport default Input;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/Input.js\n// module id = 335\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n size: PropTypes.string,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar InputGroup = function InputGroup(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n size = props.size,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tag\", \"size\"]);\n\n var classes = mapToCssModules(classNames(className, 'input-group', size ? \"input-group-\" + size : null), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nInputGroup.propTypes = propTypes;\nInputGroup.defaultProps = defaultProps;\nexport default InputGroup;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/InputGroup.js\n// module id = 336\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nimport InputGroupText from './InputGroupText';\nvar propTypes = {\n tag: tagPropType,\n addonType: PropTypes.oneOf(['prepend', 'append']).isRequired,\n children: PropTypes.node,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar InputGroupAddon = function InputGroupAddon(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n addonType = props.addonType,\n children = props.children,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tag\", \"addonType\", \"children\"]);\n\n var classes = mapToCssModules(classNames(className, 'input-group-' + addonType), cssModule); // Convenience to assist with transition\n\n if (typeof children === 'string') {\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }), /*#__PURE__*/React.createElement(InputGroupText, {\n children: children\n }));\n }\n\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes,\n children: children\n }));\n};\n\nInputGroupAddon.propTypes = propTypes;\nInputGroupAddon.defaultProps = defaultProps;\nexport default InputGroupAddon;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/InputGroupAddon.js\n// module id = 337\n// module chunks = 0","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Dropdown from './Dropdown';\nvar propTypes = {\n addonType: PropTypes.oneOf(['prepend', 'append']).isRequired,\n children: PropTypes.node\n};\n\nvar InputGroupButtonDropdown = function InputGroupButtonDropdown(props) {\n return /*#__PURE__*/React.createElement(Dropdown, props);\n};\n\nInputGroupButtonDropdown.propTypes = propTypes;\nexport default InputGroupButtonDropdown;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/InputGroupButtonDropdown.js\n// module id = 338\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType, isObject } from './utils';\nvar colWidths = ['xs', 'sm', 'md', 'lg', 'xl'];\nvar stringOrNumberProp = PropTypes.oneOfType([PropTypes.number, PropTypes.string]);\nvar columnProps = PropTypes.oneOfType([PropTypes.bool, PropTypes.string, PropTypes.number, PropTypes.shape({\n size: stringOrNumberProp,\n order: stringOrNumberProp,\n offset: stringOrNumberProp\n})]);\nvar propTypes = {\n children: PropTypes.node,\n hidden: PropTypes.bool,\n check: PropTypes.bool,\n size: PropTypes.string,\n for: PropTypes.string,\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n xs: columnProps,\n sm: columnProps,\n md: columnProps,\n lg: columnProps,\n xl: columnProps,\n widths: PropTypes.array\n};\nvar defaultProps = {\n tag: 'label',\n widths: colWidths\n};\n\nvar getColumnSizeClass = function getColumnSizeClass(isXs, colWidth, colSize) {\n if (colSize === true || colSize === '') {\n return isXs ? 'col' : \"col-\" + colWidth;\n } else if (colSize === 'auto') {\n return isXs ? 'col-auto' : \"col-\" + colWidth + \"-auto\";\n }\n\n return isXs ? \"col-\" + colSize : \"col-\" + colWidth + \"-\" + colSize;\n};\n\nvar Label = function Label(props) {\n var className = props.className,\n cssModule = props.cssModule,\n hidden = props.hidden,\n widths = props.widths,\n Tag = props.tag,\n check = props.check,\n size = props.size,\n htmlFor = props.for,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"hidden\", \"widths\", \"tag\", \"check\", \"size\", \"for\"]);\n\n var colClasses = [];\n widths.forEach(function (colWidth, i) {\n var columnProp = props[colWidth];\n delete attributes[colWidth];\n\n if (!columnProp && columnProp !== '') {\n return;\n }\n\n var isXs = !i;\n var colClass;\n\n if (isObject(columnProp)) {\n var _classNames;\n\n var colSizeInterfix = isXs ? '-' : \"-\" + colWidth + \"-\";\n colClass = getColumnSizeClass(isXs, colWidth, columnProp.size);\n colClasses.push(mapToCssModules(classNames((_classNames = {}, _classNames[colClass] = columnProp.size || columnProp.size === '', _classNames[\"order\" + colSizeInterfix + columnProp.order] = columnProp.order || columnProp.order === 0, _classNames[\"offset\" + colSizeInterfix + columnProp.offset] = columnProp.offset || columnProp.offset === 0, _classNames))), cssModule);\n } else {\n colClass = getColumnSizeClass(isXs, colWidth, columnProp);\n colClasses.push(colClass);\n }\n });\n var classes = mapToCssModules(classNames(className, hidden ? 'sr-only' : false, check ? 'form-check-label' : false, size ? \"col-form-label-\" + size : false, colClasses, colClasses.length ? 'col-form-label' : false), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({\n htmlFor: htmlFor\n }, attributes, {\n className: classes\n }));\n};\n\nLabel.propTypes = propTypes;\nLabel.defaultProps = defaultProps;\nexport default Label;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/Label.js\n// module id = 339\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n body: PropTypes.bool,\n bottom: PropTypes.bool,\n children: PropTypes.node,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n heading: PropTypes.bool,\n left: PropTypes.bool,\n list: PropTypes.bool,\n middle: PropTypes.bool,\n object: PropTypes.bool,\n right: PropTypes.bool,\n tag: tagPropType,\n top: PropTypes.bool\n};\n\nvar Media = function Media(props) {\n var body = props.body,\n bottom = props.bottom,\n className = props.className,\n cssModule = props.cssModule,\n heading = props.heading,\n left = props.left,\n list = props.list,\n middle = props.middle,\n object = props.object,\n right = props.right,\n tag = props.tag,\n top = props.top,\n attributes = _objectWithoutPropertiesLoose(props, [\"body\", \"bottom\", \"className\", \"cssModule\", \"heading\", \"left\", \"list\", \"middle\", \"object\", \"right\", \"tag\", \"top\"]);\n\n var defaultTag;\n\n if (heading) {\n defaultTag = 'h4';\n } else if (attributes.href) {\n defaultTag = 'a';\n } else if (attributes.src || object) {\n defaultTag = 'img';\n } else if (list) {\n defaultTag = 'ul';\n } else {\n defaultTag = 'div';\n }\n\n var Tag = tag || defaultTag;\n var classes = mapToCssModules(classNames(className, {\n 'media-body': body,\n 'media-heading': heading,\n 'media-left': left,\n 'media-right': right,\n 'media-top': top,\n 'media-bottom': bottom,\n 'media-middle': middle,\n 'media-object': object,\n 'media-list': list,\n media: !body && !heading && !left && !right && !top && !bottom && !middle && !object && !list\n }), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nMedia.propTypes = propTypes;\nexport default Media;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/Media.js\n// module id = 340\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n children: PropTypes.node,\n className: PropTypes.string,\n listClassName: PropTypes.string,\n cssModule: PropTypes.object,\n size: PropTypes.string,\n tag: tagPropType,\n listTag: tagPropType,\n 'aria-label': PropTypes.string\n};\nvar defaultProps = {\n tag: 'nav',\n listTag: 'ul',\n 'aria-label': 'pagination'\n};\n\nvar Pagination = function Pagination(props) {\n var _classNames;\n\n var className = props.className,\n listClassName = props.listClassName,\n cssModule = props.cssModule,\n size = props.size,\n Tag = props.tag,\n ListTag = props.listTag,\n label = props['aria-label'],\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"listClassName\", \"cssModule\", \"size\", \"tag\", \"listTag\", \"aria-label\"]);\n\n var classes = mapToCssModules(classNames(className), cssModule);\n var listClasses = mapToCssModules(classNames(listClassName, 'pagination', (_classNames = {}, _classNames[\"pagination-\" + size] = !!size, _classNames)), cssModule);\n return /*#__PURE__*/React.createElement(Tag, {\n className: classes,\n \"aria-label\": label\n }, /*#__PURE__*/React.createElement(ListTag, _extends({}, attributes, {\n className: listClasses\n })));\n};\n\nPagination.propTypes = propTypes;\nPagination.defaultProps = defaultProps;\nexport default Pagination;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/Pagination.js\n// module id = 341\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n active: PropTypes.bool,\n children: PropTypes.node,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n disabled: PropTypes.bool,\n tag: tagPropType\n};\nvar defaultProps = {\n tag: 'li'\n};\n\nvar PaginationItem = function PaginationItem(props) {\n var active = props.active,\n className = props.className,\n cssModule = props.cssModule,\n disabled = props.disabled,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"active\", \"className\", \"cssModule\", \"disabled\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, 'page-item', {\n active: active,\n disabled: disabled\n }), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nPaginationItem.propTypes = propTypes;\nPaginationItem.defaultProps = defaultProps;\nexport default PaginationItem;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/PaginationItem.js\n// module id = 342\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n 'aria-label': PropTypes.string,\n children: PropTypes.node,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n next: PropTypes.bool,\n previous: PropTypes.bool,\n first: PropTypes.bool,\n last: PropTypes.bool,\n tag: tagPropType\n};\nvar defaultProps = {\n tag: 'a'\n};\n\nvar PaginationLink = function PaginationLink(props) {\n var className = props.className,\n cssModule = props.cssModule,\n next = props.next,\n previous = props.previous,\n first = props.first,\n last = props.last,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"next\", \"previous\", \"first\", \"last\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, 'page-link'), cssModule);\n var defaultAriaLabel;\n\n if (previous) {\n defaultAriaLabel = 'Previous';\n } else if (next) {\n defaultAriaLabel = 'Next';\n } else if (first) {\n defaultAriaLabel = 'First';\n } else if (last) {\n defaultAriaLabel = 'Last';\n }\n\n var ariaLabel = props['aria-label'] || defaultAriaLabel;\n var defaultCaret;\n\n if (previous) {\n defaultCaret = \"\\u2039\";\n } else if (next) {\n defaultCaret = \"\\u203A\";\n } else if (first) {\n defaultCaret = \"\\xAB\";\n } else if (last) {\n defaultCaret = \"\\xBB\";\n }\n\n var children = props.children;\n\n if (children && Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n if (!attributes.href && Tag === 'a') {\n Tag = 'button';\n }\n\n if (previous || next || first || last) {\n children = [/*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": \"true\",\n key: \"caret\"\n }, children || defaultCaret), /*#__PURE__*/React.createElement(\"span\", {\n className: \"sr-only\",\n key: \"sr\"\n }, ariaLabel)];\n }\n\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes,\n \"aria-label\": ariaLabel\n }), children);\n};\n\nPaginationLink.propTypes = propTypes;\nPaginationLink.defaultProps = defaultProps;\nexport default PaginationLink;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/PaginationLink.js\n// module id = 343\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { TabContext } from './TabContext';\nimport { mapToCssModules, omit, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n activeTab: PropTypes.any,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar TabContent = /*#__PURE__*/function (_Component) {\n _inheritsLoose(TabContent, _Component);\n\n TabContent.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n if (prevState.activeTab !== nextProps.activeTab) {\n return {\n activeTab: nextProps.activeTab\n };\n }\n\n return null;\n };\n\n function TabContent(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n _this.state = {\n activeTab: _this.props.activeTab\n };\n return _this;\n }\n\n var _proto = TabContent.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n className = _this$props.className,\n cssModule = _this$props.cssModule,\n Tag = _this$props.tag;\n var attributes = omit(this.props, Object.keys(propTypes));\n var classes = mapToCssModules(classNames('tab-content', className), cssModule);\n return /*#__PURE__*/React.createElement(TabContext.Provider, {\n value: {\n activeTabId: this.state.activeTab\n }\n }, /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n })));\n };\n\n return TabContent;\n}(Component);\n\nexport default TabContent;\nTabContent.propTypes = propTypes;\nTabContent.defaultProps = defaultProps;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/TabContent.js\n// module id = 344\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { TabContext } from './TabContext';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n tabId: PropTypes.any\n};\nvar defaultProps = {\n tag: 'div'\n};\nexport default function TabPane(props) {\n var className = props.className,\n cssModule = props.cssModule,\n tabId = props.tabId,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tabId\", \"tag\"]);\n\n var getClasses = function getClasses(activeTabId) {\n return mapToCssModules(classNames('tab-pane', className, {\n active: tabId === activeTabId\n }), cssModule);\n };\n\n return /*#__PURE__*/React.createElement(TabContext.Consumer, null, function (_ref) {\n var activeTabId = _ref.activeTabId;\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: getClasses(activeTabId)\n }));\n });\n}\nTabPane.propTypes = propTypes;\nTabPane.defaultProps = defaultProps;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/TabPane.js\n// module id = 345\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n fluid: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar Jumbotron = function Jumbotron(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n fluid = props.fluid,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tag\", \"fluid\"]);\n\n var classes = mapToCssModules(classNames(className, 'jumbotron', fluid ? 'jumbotron-fluid' : false), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nJumbotron.propTypes = propTypes;\nJumbotron.defaultProps = defaultProps;\nexport default Jumbotron;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/Jumbotron.js\n// module id = 346\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nimport Fade from './Fade';\nvar propTypes = {\n children: PropTypes.node,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n fade: PropTypes.bool,\n isOpen: PropTypes.bool,\n tag: tagPropType,\n transition: PropTypes.shape(Fade.propTypes),\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.string, PropTypes.func])\n};\nvar defaultProps = {\n isOpen: true,\n tag: 'div',\n fade: true,\n transition: _objectSpread(_objectSpread({}, Fade.defaultProps), {}, {\n unmountOnExit: true\n })\n};\n\nfunction Toast(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n isOpen = props.isOpen,\n children = props.children,\n transition = props.transition,\n fade = props.fade,\n innerRef = props.innerRef,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tag\", \"isOpen\", \"children\", \"transition\", \"fade\", \"innerRef\"]);\n\n var classes = mapToCssModules(classNames(className, 'toast'), cssModule);\n\n var toastTransition = _objectSpread(_objectSpread(_objectSpread({}, Fade.defaultProps), transition), {}, {\n baseClass: fade ? transition.baseClass : '',\n timeout: fade ? transition.timeout : 0\n });\n\n return /*#__PURE__*/React.createElement(Fade, _extends({}, attributes, toastTransition, {\n tag: Tag,\n className: classes,\n in: isOpen,\n role: \"alert\",\n innerRef: innerRef\n }), children);\n}\n\nToast.propTypes = propTypes;\nToast.defaultProps = defaultProps;\nexport default Toast;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/Toast.js\n// module id = 347\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.string, PropTypes.func])\n};\nvar defaultProps = {\n tag: 'div'\n};\n\nvar ToastBody = function ToastBody(props) {\n var className = props.className,\n cssModule = props.cssModule,\n innerRef = props.innerRef,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"innerRef\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, 'toast-body'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes,\n ref: innerRef\n }));\n};\n\nToastBody.propTypes = propTypes;\nToastBody.defaultProps = defaultProps;\nexport default ToastBody;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/ToastBody.js\n// module id = 348\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n icon: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n wrapTag: tagPropType,\n toggle: PropTypes.func,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n children: PropTypes.node,\n closeAriaLabel: PropTypes.string,\n charCode: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n close: PropTypes.object\n};\nvar defaultProps = {\n tag: 'strong',\n wrapTag: 'div',\n tagClassName: 'mr-auto',\n closeAriaLabel: 'Close',\n charCode: 215\n};\n\nvar ToastHeader = function ToastHeader(props) {\n var closeButton;\n var icon;\n\n var className = props.className,\n cssModule = props.cssModule,\n children = props.children,\n toggle = props.toggle,\n Tag = props.tag,\n WrapTag = props.wrapTag,\n closeAriaLabel = props.closeAriaLabel,\n charCode = props.charCode,\n close = props.close,\n tagClassName = props.tagClassName,\n iconProp = props.icon,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"children\", \"toggle\", \"tag\", \"wrapTag\", \"closeAriaLabel\", \"charCode\", \"close\", \"tagClassName\", \"icon\"]);\n\n var classes = mapToCssModules(classNames(className, 'toast-header'), cssModule);\n\n if (!close && toggle) {\n var closeIcon = typeof charCode === 'number' ? String.fromCharCode(charCode) : charCode;\n closeButton = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: toggle,\n className: mapToCssModules('close', cssModule),\n \"aria-label\": closeAriaLabel\n }, /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": \"true\"\n }, closeIcon));\n }\n\n if (typeof iconProp === \"string\") {\n icon = /*#__PURE__*/React.createElement(\"svg\", {\n className: mapToCssModules(\"rounded text-\" + iconProp),\n width: \"20\",\n height: \"20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n preserveAspectRatio: \"xMidYMid slice\",\n focusable: \"false\",\n role: \"img\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n fill: \"currentColor\",\n width: \"100%\",\n height: \"100%\"\n }));\n } else if (iconProp) {\n icon = iconProp;\n }\n\n return /*#__PURE__*/React.createElement(WrapTag, _extends({}, attributes, {\n className: classes\n }), icon, /*#__PURE__*/React.createElement(Tag, {\n className: mapToCssModules(classNames(tagClassName, {\n \"ml-2\": icon != null\n }), cssModule)\n }, children), close || closeButton);\n};\n\nToastHeader.propTypes = propTypes;\nToastHeader.defaultProps = defaultProps;\nexport default ToastHeader;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/ToastHeader.js\n// module id = 349\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n active: PropTypes.bool,\n disabled: PropTypes.bool,\n color: PropTypes.string,\n action: PropTypes.bool,\n className: PropTypes.any,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'li'\n};\n\nvar handleDisabledOnClick = function handleDisabledOnClick(e) {\n e.preventDefault();\n};\n\nvar ListGroupItem = function ListGroupItem(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n active = props.active,\n disabled = props.disabled,\n action = props.action,\n color = props.color,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tag\", \"active\", \"disabled\", \"action\", \"color\"]);\n\n var classes = mapToCssModules(classNames(className, active ? 'active' : false, disabled ? 'disabled' : false, action ? 'list-group-item-action' : false, color ? \"list-group-item-\" + color : false, 'list-group-item'), cssModule); // Prevent click event when disabled.\n\n if (disabled) {\n attributes.onClick = handleDisabledOnClick;\n }\n\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nListGroupItem.propTypes = propTypes;\nListGroupItem.defaultProps = defaultProps;\nexport default ListGroupItem;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/ListGroupItem.js\n// module id = 350\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n className: PropTypes.any,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'h5'\n};\n\nvar ListGroupItemHeading = function ListGroupItemHeading(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, 'list-group-item-heading'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nListGroupItemHeading.propTypes = propTypes;\nListGroupItemHeading.defaultProps = defaultProps;\nexport default ListGroupItemHeading;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/ListGroupItemHeading.js\n// module id = 351\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n className: PropTypes.any,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'p'\n};\n\nvar ListGroupItemText = function ListGroupItemText(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, 'list-group-item-text'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nListGroupItemText.propTypes = propTypes;\nListGroupItemText.defaultProps = defaultProps;\nexport default ListGroupItemText;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/ListGroupItemText.js\n// module id = 352\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n type: PropTypes.string\n};\nvar defaultProps = {\n tag: 'ul'\n};\nvar List = /*#__PURE__*/forwardRef(function (props, ref) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n type = props.type,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tag\", \"type\"]);\n\n var classes = mapToCssModules(classNames(className, type ? \"list-\" + type : false), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes,\n ref: ref\n }));\n});\nList.propTypes = propTypes;\nList.defaultProps = defaultProps;\nexport default List;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/List.js\n// module id = 353\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'li'\n};\nvar ListInlineItem = /*#__PURE__*/forwardRef(function (props, ref) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, 'list-inline-item'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes,\n ref: ref\n }));\n});\nListInlineItem.propTypes = propTypes;\nListInlineItem.defaultProps = defaultProps;\nexport default ListInlineItem;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/ListInlineItem.js\n// module id = 354\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport React, { Component } from 'react';\nimport Alert from './Alert';\n\nvar UncontrolledAlert = /*#__PURE__*/function (_Component) {\n _inheritsLoose(UncontrolledAlert, _Component);\n\n function UncontrolledAlert(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n _this.state = {\n isOpen: true\n };\n _this.toggle = _this.toggle.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = UncontrolledAlert.prototype;\n\n _proto.toggle = function toggle() {\n this.setState({\n isOpen: !this.state.isOpen\n });\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Alert, _extends({\n isOpen: this.state.isOpen,\n toggle: this.toggle\n }, this.props));\n };\n\n return UncontrolledAlert;\n}(Component);\n\nexport default UncontrolledAlert;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/UncontrolledAlert.js\n// module id = 355\n// module chunks = 0","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport ButtonDropdown from './ButtonDropdown';\nimport { omit } from './utils';\nvar omitKeys = ['defaultOpen'];\n\nvar UncontrolledButtonDropdown = /*#__PURE__*/function (_Component) {\n _inheritsLoose(UncontrolledButtonDropdown, _Component);\n\n function UncontrolledButtonDropdown(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n _this.state = {\n isOpen: props.defaultOpen || false\n };\n _this.toggle = _this.toggle.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = UncontrolledButtonDropdown.prototype;\n\n _proto.toggle = function toggle() {\n this.setState({\n isOpen: !this.state.isOpen\n });\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ButtonDropdown, _extends({\n isOpen: this.state.isOpen,\n toggle: this.toggle\n }, omit(this.props, omitKeys)));\n };\n\n return UncontrolledButtonDropdown;\n}(Component);\n\nexport { UncontrolledButtonDropdown as default };\nUncontrolledButtonDropdown.propTypes = _objectSpread({\n defaultOpen: PropTypes.bool\n}, ButtonDropdown.propTypes);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/UncontrolledButtonDropdown.js\n// module id = 356\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Collapse from './Collapse';\nimport { omit, findDOMElements, defaultToggleEvents, addMultipleEventListeners } from './utils';\nvar omitKeys = ['toggleEvents', 'defaultOpen'];\nvar propTypes = {\n defaultOpen: PropTypes.bool,\n toggler: PropTypes.string.isRequired,\n toggleEvents: PropTypes.arrayOf(PropTypes.string)\n};\nvar defaultProps = {\n toggleEvents: defaultToggleEvents\n};\n\nvar UncontrolledCollapse = /*#__PURE__*/function (_Component) {\n _inheritsLoose(UncontrolledCollapse, _Component);\n\n function UncontrolledCollapse(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n _this.togglers = null;\n _this.removeEventListeners = null;\n _this.toggle = _this.toggle.bind(_assertThisInitialized(_this));\n _this.state = {\n isOpen: props.defaultOpen || false\n };\n return _this;\n }\n\n var _proto = UncontrolledCollapse.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.togglers = findDOMElements(this.props.toggler);\n\n if (this.togglers.length) {\n this.removeEventListeners = addMultipleEventListeners(this.togglers, this.toggle, this.props.toggleEvents);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.togglers.length && this.removeEventListeners) {\n this.removeEventListeners();\n }\n };\n\n _proto.toggle = function toggle(e) {\n this.setState(function (_ref) {\n var isOpen = _ref.isOpen;\n return {\n isOpen: !isOpen\n };\n });\n e.preventDefault();\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Collapse, _extends({\n isOpen: this.state.isOpen\n }, omit(this.props, omitKeys)));\n };\n\n return UncontrolledCollapse;\n}(Component);\n\nUncontrolledCollapse.propTypes = propTypes;\nUncontrolledCollapse.defaultProps = defaultProps;\nexport default UncontrolledCollapse;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/UncontrolledCollapse.js\n// module id = 357\n// module chunks = 0","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Dropdown from './Dropdown';\nimport { omit } from './utils';\nvar omitKeys = ['defaultOpen'];\n\nvar UncontrolledDropdown = /*#__PURE__*/function (_Component) {\n _inheritsLoose(UncontrolledDropdown, _Component);\n\n function UncontrolledDropdown(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n _this.state = {\n isOpen: props.defaultOpen || false\n };\n _this.toggle = _this.toggle.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = UncontrolledDropdown.prototype;\n\n _proto.toggle = function toggle(e) {\n this.setState({\n isOpen: !this.state.isOpen\n });\n\n if (this.props.onToggle) {\n this.props.onToggle(e, !this.state.isOpen);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Dropdown, _extends({\n isOpen: this.state.isOpen,\n toggle: this.toggle\n }, omit(this.props, omitKeys)));\n };\n\n return UncontrolledDropdown;\n}(Component);\n\nexport { UncontrolledDropdown as default };\nUncontrolledDropdown.propTypes = _objectSpread({\n defaultOpen: PropTypes.bool,\n onToggle: PropTypes.func\n}, Dropdown.propTypes);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/UncontrolledDropdown.js\n// module id = 358\n// module chunks = 0","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\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(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Tooltip from './Tooltip';\nimport { omit } from './utils';\nvar omitKeys = ['defaultOpen'];\n\nvar UncontrolledTooltip = /*#__PURE__*/function (_Component) {\n _inheritsLoose(UncontrolledTooltip, _Component);\n\n function UncontrolledTooltip(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n _this.state = {\n isOpen: props.defaultOpen || false\n };\n _this.toggle = _this.toggle.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = UncontrolledTooltip.prototype;\n\n _proto.toggle = function toggle() {\n this.setState({\n isOpen: !this.state.isOpen\n });\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Tooltip, _extends({\n isOpen: this.state.isOpen,\n toggle: this.toggle\n }, omit(this.props, omitKeys)));\n };\n\n return UncontrolledTooltip;\n}(Component);\n\nexport { UncontrolledTooltip as default };\nUncontrolledTooltip.propTypes = _objectSpread({\n defaultOpen: PropTypes.bool\n}, Tooltip.propTypes);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/UncontrolledTooltip.js\n// module id = 359\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n type: PropTypes.string,\n size: PropTypes.string,\n color: PropTypes.string,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n children: PropTypes.string\n};\nvar defaultProps = {\n tag: 'div',\n type: 'border',\n children: 'Loading...'\n};\n\nvar Spinner = function Spinner(props) {\n var className = props.className,\n cssModule = props.cssModule,\n type = props.type,\n size = props.size,\n color = props.color,\n children = props.children,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"type\", \"size\", \"color\", \"children\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, size ? \"spinner-\" + type + \"-\" + size : false, \"spinner-\" + type, color ? \"text-\" + color : false), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({\n role: \"status\"\n }, attributes, {\n className: classes\n }), children && /*#__PURE__*/React.createElement(\"span\", {\n className: mapToCssModules('sr-only', cssModule)\n }, children));\n};\n\nSpinner.propTypes = propTypes;\nSpinner.defaultProps = defaultProps;\nexport default Spinner;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/Spinner.js\n// module id = 360\n// module chunks = 0","(function () {\n if (typeof window !== 'object' || typeof window.CustomEvent === 'function') return;\n\n var CustomEvent = function CustomEvent(event, params) {\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: null\n };\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n window.CustomEvent = CustomEvent;\n})();\n\n(function () {\n if (typeof Object.values === 'function') return;\n\n var values = function values(O) {\n return Object.keys(O).map(function (key) {\n return O[key];\n });\n };\n\n Object.values = values;\n})();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reactstrap/es/polyfill.js\n// module id = 361\n// module chunks = 0","import React, { Component } from 'react';\nimport { Container } from 'reactstrap';\n\nexport class Layout extends Component {\n static displayName = Layout.name;\n\n render () {\n return (\n
\n \n {this.props.children}\n \n
\n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Layout.js","import React, { Component } from 'react';\n\nimport { AdvancedSearchView } from '@easyquery/ui';\nimport '@easyquery/enterprise'\n\nimport AdhocUI from './AdhocUI';\n\nexport class KIQAdhoc extends Component {\n static displayName = KIQAdhoc.name;\n\n QUERY_KEY = 'easyquerycomponent-query';\n\n view = new AdvancedSearchView();\n\n componentDidMount() {\n const viewOptions = {\n enableExport: true,\n serverExporters: ['excel', 'csv'],\n loadModelOnStart: true,\n loadQueryOnStart: false,\n defaultModelId: \"SSPAdhoc\",\n handlers: {\n onError: (context, error) => {\n console.error(error.type + \" error:\\n\" + error.text);\n }\n },\n widgets: {\n entitiesPanel: {\n showCheckboxes: true\n },\n columnsPanel: {\n allowAggrColumns: true,\n allowCustomExpressions: true,\n attrElementFormat: \"{entity} {attr}\",\n titleElementFormat: \"{attr}\",\n showColumnCaptions: true,\n adjustEntitiesMenuHeight: false,\n customExpressionText: 2,\n showPoweredBy: false,\n menuOptions: {\n showSearchBoxAfter: 30,\n activateOnMouseOver: true\n }\n },\n queryPanel: {\n showPoweredBy: false,\n alwaysShowButtonsInPredicates: false,\n allowParameterization: true,\n allowInJoinConditions: true,\n autoEditNewCondition: true,\n buttons: {\n condition: [\"menu\"],\n predicate: [\"addCondition\", \"addPredicate\", \"enable\", \"delete\"]\n },\n menuOptions: {\n showSearchBoxAfter: 20,\n activateOnMouseOver: true\n }\n },\n easyGrid: {\n paging: {\n enabled: true,\n pageSize: 30\n }\n }\n },\n result: {\n showChart: true\n }\n }\n\n this.view = new AdvancedSearchView();\n this.context = this.view.getContext();\n\n this.context\n .useEndpoint('/api/easyquery')\n .useEnterprise(() => {\n this.view.init(viewOptions);\n });\n\n this.context.addEventListener('ready', () => {\n const query = this.context.getQuery();\n\n query.addChangedCallback(() => {\n const data = JSON.stringify({\n modified: query.isModified(),\n query: query.toJSONData()\n });\n localStorage.setItem(this.QUERY_KEY, data);\n });\n\n //add load query from local storage\n this.loadQueryFromLocalStorage();\n });\n }\n\n loadQueryFromLocalStorage() {\n const dataJson = localStorage.getItem(this.QUERY_KEY);\n if (dataJson) {\n const data = JSON.parse(dataJson);\n const query = this.context.getQuery();\n query.loadFromDataOrJson(data.query);\n if (data.modified) {\n query.fireChangedEvent();\n }\n else {\n this.view.getContext().refreshWidgets();\n this.view.syncQuery();\n }\n\n setTimeout(() => this.view.fetchData(), 100);\n }\n };\n\n render() {\n return (\n \n );\n }\n\n shouldComponentUpdate() {\n return false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/KIQAdhoc.js","export * from './widgets/entities_panel';\r\nexport * from './widgets/columns_panel';\r\nexport * from './widgets/columns_bar';\r\nexport * from './widgets/sorting_bar';\r\nexport * from './widgets/query_panel';\r\nexport * from './widgets/filter_bar';\r\nexport * from './widgets/html_content_widget';\r\nexport * from './widgets/eq_result_html_grid';\r\nexport * from './widgets/grid';\r\nexport * from './widgets/easy_grid_widget';\r\nexport * from './widgets/statement_panel';\r\nexport * from './widgets/process_widget';\r\nexport * from './widgets/manage_drilldown_widget';\r\nexport * from './widgets/result_facets_panel';\r\nexport * from './widgets/export_widget';\r\nexport * from './widgets/charts/chart_type';\r\nexport * from './widgets/charts/chart_widget';\r\nexport * from './widgets/charts/chart_widget_google';\r\nexport * from './widgets/charts/chart_widget_chartjs';\r\nexport * from './widgets/renderers/base_element_renderer';\r\nexport * from './widgets/renderers/dropdown_renderer';\r\nexport * from './widgets/renderers/columnsbar/aggrfunc_column_renderer';\r\nexport * from './widgets/renderers/columnsbar/simple_column_renderer';\r\nexport * from './widgets/renderers/columnsbar/column_renderer';\r\nexport * from './widgets/renderers/columnspanel/aggrfunc_column_renderer';\r\nexport * from './widgets/renderers/columnspanel/simple_column_renderer';\r\nexport * from './widgets/renderers/columnspanel/column_renderer';\r\nexport * from './widgets/renderers/columnspanel/customsql_column_renderer';\r\nexport * from './widgets/renderers/querypanel/input_expression_renderer';\r\nexport * from './widgets/renderers/querypanel/datetime_expression_render';\r\nexport * from './widgets/renderers/querypanel/condition_renderer';\r\nexport * from './widgets/renderers/querypanel/condition_group_renderer';\r\nexport * from './widgets/renderers/querypanel/attribute_expression_renderer';\r\nexport * from './widgets/renderers/querypanel/expression_renderer';\r\nexport * from './widgets/renderers/querypanel/operator_renderer';\r\nexport * from './widgets/renderers/querypanel/subquery_expression_renderer';\r\nexport * from './widgets/renderers/querypanel/list_expression_renderer';\r\nexport * from './widgets/renderers/querypanel/text_renderer';\r\nexport * from './widgets/renderers/querypanel/addrow_renderer';\r\nexport * from './facets/result_facet';\r\nexport * from './facets/datatable_facet';\r\nexport * from './facets/chart_facet';\r\nexport * from './facets/pivot_table_facet';\r\nexport * from './views/view';\r\nexport * from './views/adv_search_view';\r\nexport * from './views/data_filter_view';\r\nexport * from './views/html_data_filter_view';\r\nexport * from './views/report_view';\r\nexport * from './utils/dropdown';\r\nexport * from './utils/popup_menu';\r\nexport * from './types/qp_editable_part';\r\nexport * from './types/facet_type';\r\nexport * from './dialog/export_dialog';\r\nexport * from './dialog/totals_dialog';\r\nimport './i18n/text_resources';\r\nimport './extensions';\r\nif (!Element.prototype.matches) {\r\n Element.prototype.matches =\r\n Element.prototype.msMatchesSelector\r\n || Element.prototype.webkitMatchesSelector;\r\n}\r\n// support NodeList forEach in IE11\r\nif (window['NodeList'] && !window['NodeList'].prototype.forEach) {\r\n window['NodeList'].prototype.forEach = Array.prototype.forEach;\r\n}\r\n//# sourceMappingURL=public_api.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/public_api.js\n// module id = 364\n// module chunks = 0","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport { utils } from '../utils/utils';\r\nimport { HttpActionResult } from './http_action_result';\r\nimport { HttpMethod } from './http_method';\r\nimport { HttpRequest } from './http_request';\r\nvar HttpResponseError = /** @class */ (function (_super) {\r\n __extends(HttpResponseError, _super);\r\n function HttpResponseError(status, message) {\r\n var _this = _super.call(this, message) || this;\r\n _this.status = status;\r\n return _this;\r\n }\r\n return HttpResponseError;\r\n}(Error));\r\nexport { HttpResponseError };\r\nvar HttpClient = /** @class */ (function () {\r\n function HttpClient() {\r\n this.defaultHeaders = {};\r\n this.customPayload = undefined;\r\n }\r\n HttpClient.prototype.get = function (url, options) {\r\n return this.send(HttpMethod.Get, url, null, options);\r\n };\r\n HttpClient.prototype.post = function (url, data, options) {\r\n return this.send(HttpMethod.Post, url, data, options);\r\n };\r\n HttpClient.prototype.put = function (url, data, options) {\r\n return this.send(HttpMethod.Put, url, data, options);\r\n };\r\n HttpClient.prototype.delete = function (url, data, options) {\r\n return this.send(HttpMethod.Delete, url, data, options);\r\n };\r\n HttpClient.prototype.send = function (method, url, data, options) {\r\n options = options || {};\r\n var dataType = options.dataType || 'json';\r\n var contentType = options.contentType || (dataType !== 'form-data')\r\n ? 'application/json'\r\n : null;\r\n if (data && dataType != 'form-data' && this.customPayload) {\r\n data.data = utils.assignDeep(data.data || {}, this.customPayload);\r\n }\r\n var XHR = ('onload' in new XMLHttpRequest())\r\n ? XMLHttpRequest\r\n : window[\"XDomainRequest\"]; //IE support\r\n var xhr = new XHR();\r\n var desc = {\r\n method: method,\r\n url: url,\r\n headers: __assign({}, this.defaultHeaders, options.headers || {}),\r\n queryParams: options.queryParams || {},\r\n data: data\r\n };\r\n if (contentType)\r\n desc.headers['Content-Type'] = contentType;\r\n var request = new HttpRequest(xhr, desc);\r\n if (this.beforeEachRequest) {\r\n console.warn(\"HttpClient: 'beforeEachRequest' is deprecated and will be removed in future updates.\\n Use 'onRequest' instead\");\r\n this.beforeEachRequest(request);\r\n }\r\n if (this.onRequest) {\r\n this.onRequest(request);\r\n }\r\n var dataToSend = (request.data && typeof request.data !== 'string'\r\n && dataType == 'json')\r\n ? JSON.stringify(request.data)\r\n : request.data;\r\n request.open();\r\n return new HttpActionResult(request, new Promise(function (resolve, reject) {\r\n if (options.responseType)\r\n xhr.responseType = options.responseType;\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState != 4) {\r\n return;\r\n }\r\n var responseContentType = xhr.getResponseHeader('Content-Type') || '';\r\n var status = xhr.status;\r\n if (status >= 300 || status < 200) {\r\n var rtPromise = (xhr.responseType === 'arraybuffer'\r\n || xhr.responseType === 'blob')\r\n ? HttpClient.decodeArrayBuffer(xhr.response)\r\n : Promise.resolve(xhr.responseText);\r\n rtPromise.then(function (responseText) {\r\n var responseObj = (responseContentType.indexOf('application/json') == 0)\r\n ? JSON.parse(responseText)\r\n : responseText;\r\n var message = responseObj.message ||\r\n (status == 404\r\n ? \"No such endpoint: \" + url\r\n : responseObj);\r\n reject(new HttpResponseError(status, message));\r\n });\r\n return;\r\n }\r\n var responseObj = (xhr.responseType === 'arraybuffer' || xhr.responseType === 'blob')\r\n ? xhr.response\r\n : (responseContentType.indexOf('application/json') == 0)\r\n ? JSON.parse(xhr.responseText)\r\n : xhr.responseText;\r\n resolve(responseObj);\r\n };\r\n xhr.send(dataToSend);\r\n }));\r\n };\r\n HttpClient.decodeArrayBuffer = function (uintArray) {\r\n var reader = new FileReader();\r\n return new Promise(function (resolve) {\r\n reader.onloadend = function () {\r\n if (reader.readyState == FileReader.DONE) {\r\n resolve(reader.result);\r\n }\r\n };\r\n reader.readAsText(new Blob([uintArray]));\r\n });\r\n };\r\n return HttpClient;\r\n}());\r\nexport { HttpClient };\r\n//# sourceMappingURL=http_client.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easydata/core/dist/lib/http/http_client.js\n// module id = 365\n// module chunks = 0","var HttpActionResult = /** @class */ (function () {\r\n function HttpActionResult(request, promise) {\r\n this.request = request;\r\n this.promise = promise;\r\n }\r\n HttpActionResult.prototype.getPromise = function () {\r\n return this.promise;\r\n };\r\n HttpActionResult.prototype.getRequest = function () {\r\n return this.request;\r\n };\r\n HttpActionResult.prototype.then = function (onfulfilled, onrejected) {\r\n return this.promise.then(onfulfilled, onrejected);\r\n };\r\n HttpActionResult.prototype.catch = function (onrejected) {\r\n return this.promise.catch(onrejected);\r\n };\r\n HttpActionResult.prototype.finally = function (onfinally) {\r\n return this.promise.finally(onfinally);\r\n };\r\n return HttpActionResult;\r\n}());\r\nexport { HttpActionResult };\r\n//# sourceMappingURL=http_action_result.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easydata/core/dist/lib/http/http_action_result.js\n// module id = 366\n// module chunks = 0","import { i18n } from '../i18n/i18n';\r\nimport { utils } from '../utils/utils';\r\nimport { EditorTag } from '../types/editor_tag';\r\nimport { DataType } from '../types/data_type';\r\nimport { MetaEntity, MetaEntityAttr } from './meta_entity';\r\nimport { ValueEditor } from './value_editor';\r\n/**\r\n * Represents a data model\r\n */\r\nvar MetaData = /** @class */ (function () {\r\n /** The default constructor. */\r\n function MetaData() {\r\n this.mainEntity = null;\r\n this.id = '__none';\r\n this.name = 'Empty model';\r\n this.rootEntity = this.createEntity();\r\n }\r\n /**\r\n * Gets the main entity of model\r\n * @return The main entity.\r\n */\r\n MetaData.prototype.getMainEntity = function () {\r\n return this.mainEntity;\r\n };\r\n MetaData.prototype.createEntity = function (parent) {\r\n return new MetaEntity(parent);\r\n };\r\n MetaData.prototype.createEntityAttr = function (parent) {\r\n return new MetaEntityAttr(parent);\r\n };\r\n MetaData.prototype.createValueEditor = function () {\r\n return new ValueEditor();\r\n };\r\n /**\r\n * Loads data model from JSON.\r\n * @param stringJson The JSON string.\r\n */\r\n MetaData.prototype.loadFromJSON = function (stringJson) {\r\n var model = JSON.parse(stringJson);\r\n this.loadFromData(model);\r\n };\r\n /**\r\n * Loads data model from its JSON representation object.\r\n * @param data The JSON representation object.\r\n */\r\n MetaData.prototype.loadFromData = function (data) {\r\n this.id = data.id;\r\n this.name = data.name;\r\n this.version = data.vers;\r\n //Editors\r\n this.editors = new Array();\r\n if (data.editors) {\r\n for (var i = 0; i < data.editors.length; i++) {\r\n var newEditor = this.createValueEditor();\r\n newEditor.loadFromData(data.editors[i]);\r\n this.editors.push(newEditor);\r\n }\r\n }\r\n //rootEntity\r\n this.rootEntity.loadFromData(this, data.entroot);\r\n };\r\n /**\r\n * Sets data to data model.\r\n * @param model Its JSON representation object or JSON string.\r\n */\r\n MetaData.prototype.setData = function (model) {\r\n if (typeof model === 'string') {\r\n this.loadFromJSON(model);\r\n }\r\n else {\r\n this.loadFromData(model);\r\n }\r\n };\r\n /**\r\n * Checks wether the data model is empty.\r\n * @returns `true` if the data model is empty, otherwise `false`.\r\n */\r\n MetaData.prototype.isEmpty = function () {\r\n return this.rootEntity.subEntities.length === 0 && this.rootEntity.attributes.length === 0;\r\n };\r\n /**\r\n * Gets ID of the data model.\r\n * @returns The ID.\r\n */\r\n MetaData.prototype.getId = function () {\r\n return this.id;\r\n };\r\n /**\r\n * Gets name of the data model.\r\n * @returns The name.\r\n */\r\n MetaData.prototype.getName = function () {\r\n return this.name;\r\n };\r\n /**\r\n * Gets root entity of the data model.\r\n * @returns The root entity.\r\n */\r\n MetaData.prototype.getRootEntity = function () {\r\n return this.rootEntity;\r\n };\r\n /**\r\n * Finds editor by its ID.\r\n * @param editorId The editor ID.\r\n * @returns The value editor or `null`.\r\n */\r\n MetaData.prototype.getEditorById = function (editorId) {\r\n for (var _i = 0, _a = this.editors; _i < _a.length; _i++) {\r\n var editor = _a[_i];\r\n if (editor.id === editorId) {\r\n return editor;\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * Gets entity attribute by its ID.\r\n * This function runs through all attributes inside specified model (it's root entity and all its sub-entities).\r\n * @param attrId The attribute ID.\r\n * @returns The attribute or `null`.\r\n */\r\n MetaData.prototype.getAttributeById = function (attrId) {\r\n var attr = this.getEntityAttrById(this.getRootEntity(), attrId);\r\n if (!attr) {\r\n return null;\r\n }\r\n return attr;\r\n };\r\n /**\r\n * Checks wether attribute contains such property.\r\n * @param attrId The attribute ID.\r\n * @param propName The property name.\r\n * @returns `true` if the attribute contains the property, otherwise `false`.\r\n */\r\n MetaData.prototype.checkAttrProperty = function (attrId, propName) {\r\n var attribute = this.getAttributeById(attrId);\r\n if (attribute) {\r\n if (typeof attribute[propName] === 'undefined') {\r\n throw 'No such property: ' + propName;\r\n }\r\n if (attribute[propName]) {\r\n return true;\r\n }\r\n else if (attribute.lookupAttr) {\r\n attrId = attribute.lookupAttr;\r\n attribute = this.getAttributeById(attrId);\r\n return attribute && attribute[propName];\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n else\r\n return false;\r\n };\r\n /**\r\n * Gets entity attribute by its ID.\r\n * This function runs through all attributes inside specified entity and all its sub-entities.\r\n * @param entity\r\n * @param attrId\r\n * @returns The attribute or `null`.\r\n */\r\n MetaData.prototype.getEntityAttrById = function (entity, attrId) {\r\n var idx;\r\n if (entity.attributes) {\r\n var attrCount = entity.attributes.length;\r\n for (idx = 0; idx < attrCount; idx++) {\r\n if (entity.attributes[idx].id == attrId) {\r\n return entity.attributes[idx];\r\n }\r\n }\r\n }\r\n var res;\r\n if (entity.subEntities) {\r\n var subEntityCount = entity.subEntities.length;\r\n for (idx = 0; idx < subEntityCount; idx++) {\r\n res = this.getEntityAttrById(entity.subEntities[idx], attrId);\r\n if (res)\r\n return res;\r\n }\r\n }\r\n return null;\r\n };\r\n MetaData.prototype.listByEntityWithFilter = function (entity, filterFunc) {\r\n var result = new Array();\r\n var caption;\r\n var ent = null;\r\n if (entity.subEntities) {\r\n var subEntityCount = entity.subEntities.length;\r\n for (var entIdx = 0; entIdx < subEntityCount; entIdx++) {\r\n ent = entity.subEntities[entIdx];\r\n if (!filterFunc || filterFunc(ent, null)) {\r\n caption = i18n.getText('Entities', ent.name);\r\n if (!caption) {\r\n caption = ent.caption;\r\n }\r\n var newEnt = utils.assign(this.createEntity(), { id: ent.name, text: caption, items: [], isEntity: true });\r\n newEnt.items = this.listByEntityWithFilter(ent, filterFunc);\r\n if (newEnt.items.length > 0)\r\n result.push(newEnt);\r\n }\r\n }\r\n }\r\n var attr = null;\r\n if (entity.attributes) {\r\n var attrCount = entity.attributes.length;\r\n for (var attrIdx = 0; attrIdx < attrCount; attrIdx++) {\r\n attr = entity.attributes[attrIdx];\r\n if (!filterFunc || filterFunc(entity, attr)) {\r\n caption = i18n.getText('Attributes', attr.id);\r\n if (!caption)\r\n caption = attr.caption;\r\n var newEnt = utils.assign(this.createEntity(), { id: attr.id, text: caption, dataType: attr.dataType });\r\n result.push(newEnt);\r\n }\r\n }\r\n }\r\n return result;\r\n };\r\n MetaData.prototype.listByEntity = function (entity, opts, filterFunc) {\r\n opts = opts || {};\r\n var resultEntities = [];\r\n var resultAttributes = [];\r\n var caption;\r\n var ent = null;\r\n if (entity.subEntities) {\r\n var subEntityCount = entity.subEntities.length;\r\n for (var entIdx = 0; entIdx < subEntityCount; entIdx++) {\r\n ent = entity.subEntities[entIdx];\r\n if (!filterFunc || filterFunc(ent, null)) {\r\n caption = i18n.getText('Entities', ent.name) || ent.caption;\r\n var newEnt = utils.assign(this.createEntity(), {\r\n id: ent.name,\r\n text: caption,\r\n items: [],\r\n isEntity: true,\r\n description: ent.description\r\n });\r\n var newOpts = utils.assign({}, opts);\r\n newOpts.includeRootData = false;\r\n newEnt.items = this.listByEntity(ent, newOpts, filterFunc);\r\n if (newEnt.items.length > 0) {\r\n resultEntities.push(newEnt);\r\n }\r\n }\r\n }\r\n }\r\n var attr = null;\r\n if (entity.attributes) {\r\n var attrCount = entity.attributes.length;\r\n for (var attrIdx = 0; attrIdx < attrCount; attrIdx++) {\r\n attr = entity.attributes[attrIdx];\r\n if (!filterFunc || filterFunc(entity, attr)) {\r\n caption = i18n.getText('Attributes', attr.id) || attr.caption;\r\n resultAttributes.push(utils.assign(this.createEntityAttr(entity), {\r\n id: attr.id, text: caption,\r\n dataType: attr.dataType, lookupAttr: attr.lookupAttr,\r\n description: attr.description\r\n }));\r\n }\r\n }\r\n }\r\n var sortCheck = function (a, b) {\r\n if (a.text.toLowerCase() == b.text.toLowerCase()) {\r\n return 0;\r\n }\r\n if (a.text.toLowerCase() > b.text.toLowerCase()) {\r\n return 1;\r\n }\r\n return -1;\r\n };\r\n if (opts.sortEntities) {\r\n resultEntities.sort(sortCheck);\r\n resultAttributes.sort(sortCheck);\r\n }\r\n var result;\r\n if (!opts.attrPlacement || opts.attrPlacement == 0) {\r\n result = resultEntities.concat(resultAttributes);\r\n }\r\n else {\r\n result = resultAttributes.concat(resultEntities);\r\n }\r\n if (opts.attrPlacement == 2) {\r\n result.sort(sortCheck);\r\n }\r\n if (opts.includeRootData) {\r\n caption = i18n.getText('Entities', entity.name);\r\n if (!caption)\r\n caption = entity.caption;\r\n return { id: entity.name, text: caption, items: result };\r\n }\r\n else {\r\n return result;\r\n }\r\n };\r\n /**\r\n * Clears data model.\r\n */\r\n MetaData.prototype.clear = function () {\r\n this.rootEntity = this.createEntity();\r\n this.editors = [];\r\n this.version = '';\r\n };\r\n /**\r\n * Add default value editors.\r\n */\r\n MetaData.prototype.addDefaultValueEditors = function () {\r\n var ve;\r\n ve = this.addOrUpdateValueEditor('_DTE', EditorTag.Edit, DataType.String);\r\n ve.defValue = '';\r\n this.addOrUpdateValueEditor('_DPDE', EditorTag.DateTime, DataType.DateTime);\r\n this.addOrUpdateValueEditor('_DPTE', EditorTag.DateTime, DataType.DateTime);\r\n };\r\n /**\r\n * Add or update a value editor.\r\n * @param id The id.\r\n * @param tag The tag.\r\n * @param resType The result type.\r\n * @returns The value editor.\r\n */\r\n MetaData.prototype.addOrUpdateValueEditor = function (id, tag, resType) {\r\n var ve = utils.findItemById(this.editors, id);\r\n if (!ve) {\r\n ve = this.createValueEditor();\r\n ve.id = id;\r\n this.editors.push(ve);\r\n }\r\n ve.tag = tag;\r\n ve.resType = resType;\r\n return ve;\r\n };\r\n /**\r\n * Gets entities tree.\r\n * @param opts The options.\r\n * @param filterFunc The filter function.\r\n * Takes two parameters, Entity and EntityAttr (second parameter will be null for entities), and returns boolean (true if the corresponding entity or attribute).\r\n * @returns The tree of the entities and their attributes according to options and the filter function\r\n */\r\n MetaData.prototype.getEntitiesTree = function (opts, filterFunc) {\r\n return this.listByEntity(this.getRootEntity(), opts, filterFunc);\r\n };\r\n /**\r\n * Gets entities tree due to filter.\r\n * @param filterFunc The filter function.\r\n * Takes two parameters, Entity and EntityAttr (second parameter will be null for entities), and returns boolean (true if the corresponding entity or attribute).\r\n * @returns The tree of the entities and their attributes according to the filter function\r\n */\r\n MetaData.prototype.getEntitiesTreeWithFilter = function (filterFunc) {\r\n return this.listByEntityWithFilter(this.getRootEntity(), filterFunc);\r\n };\r\n /**\r\n * Finds full entity path by attribute\r\n * @param attrId The attribute id.\r\n * @param sep The separator.\r\n * @returns The path.\r\n */\r\n MetaData.prototype.getFullEntityPathByAttr = function (attrId, sep) {\r\n sep = sep || ' ';\r\n return this.getEntityPathByAttr(this.getRootEntity(), attrId, sep, true);\r\n };\r\n /**\r\n * Finds entity path by attribute\r\n * @param entity The entity.\r\n * @param attrId The attribute id.\r\n * @param sep The separator.\r\n * @param root The root option.\r\n * @returns The path.\r\n */\r\n MetaData.prototype.getEntityPathByAttr = function (entity, attrId, sep, root) {\r\n if (!entity)\r\n return '';\r\n sep = sep || ' ';\r\n var entityCaption = '';\r\n if (entity.caption && !root) {\r\n var entityText = i18n.getText('Entities', entity.caption);\r\n entityCaption = entityText ? entityText : entity.caption;\r\n }\r\n if (entity.attributes) {\r\n var attrCount = entity.attributes.length;\r\n for (var i = 0; i < attrCount; i++) {\r\n if (entity.attributes[i].id == attrId) {\r\n return entityCaption;\r\n }\r\n }\r\n }\r\n if (entity.subEntities) {\r\n var subEntityCount = entity.subEntities.length;\r\n for (var i = 0; i < subEntityCount; i++) {\r\n var ent = entity.subEntities[i];\r\n var res = this.getEntityPathByAttr(ent, attrId, sep, false);\r\n if (res !== '') {\r\n if (entityCaption !== '')\r\n res = entityCaption + sep + res;\r\n return res;\r\n }\r\n }\r\n }\r\n return '';\r\n };\r\n /**\r\n * Gets the attribute text.\r\n * @param attr The attribute.\r\n * @param format The format.\r\n * @returns Formatted text.\r\n */\r\n MetaData.prototype.getAttributeText = function (attr, format) {\r\n var attrText = i18n.getText('Attributes', attr.id);\r\n if (!attrText) {\r\n attrText = attr.caption;\r\n }\r\n if (!format) {\r\n return attrText;\r\n }\r\n var result = '';\r\n var entityPath = this.getFullEntityPathByAttr(attr.id, ' ');\r\n if (entityPath) {\r\n result = format.replace(new RegExp('{attr}', 'g'), attrText);\r\n result = result.replace(new RegExp('{entity}', 'g'), entityPath);\r\n }\r\n else {\r\n result = attrText;\r\n }\r\n return result.trim();\r\n };\r\n /**\r\n * Scans model's entity tree and calls the callback functions for each attribute and entity.\r\n * @param processAttribute The callback function which is called for each attribute in model's entity tree.\r\n * The processed attribute is passed in the first function parameter.\r\n * @param processEntity The callback function which is called for each entity in tree.\r\n * The processed entity is passed in the first function parameter.\r\n */\r\n MetaData.prototype.runThroughEntities = function (processAttribute, processEntity) {\r\n this.getRootEntity().scan(processAttribute, processEntity);\r\n };\r\n /**\r\n * Finds first attribute by filter.\r\n * @param filterFunc The filter function. Takes EntityAttr object in parameter and returns boolean\r\n */\r\n MetaData.prototype.getFirstAttributeByFilter = function (filterFunc) {\r\n var res = null;\r\n this.runThroughEntities(function (attr, opts) {\r\n if (filterFunc(attr)) {\r\n opts.stop = true;\r\n res = attr;\r\n }\r\n }, null);\r\n return res;\r\n };\r\n return MetaData;\r\n}());\r\nexport { MetaData };\r\n//# sourceMappingURL=meta_data.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easydata/core/dist/lib/meta/meta_data.js\n// module id = 367\n// module chunks = 0","import { DataColumnList } from \"./data_column\";\r\nimport { DataRow } from \"./data_row\";\r\nvar EasyDataTable = /** @class */ (function () {\r\n function EasyDataTable(options) {\r\n this._chunkSize = 1000;\r\n // object keeps number keys sorted\r\n this.chunkMap = {};\r\n this.total = 0;\r\n this.loader = null;\r\n this.needTotal = true;\r\n options = options || {};\r\n this._chunkSize = options.chunkSize || this._chunkSize;\r\n this.loader = options.loader;\r\n this._columns = new DataColumnList();\r\n if (options.columns) {\r\n for (var _i = 0, _a = options.columns; _i < _a.length; _i++) {\r\n var colDesc = _a[_i];\r\n this._columns.add(colDesc);\r\n }\r\n }\r\n if (options.rows) {\r\n for (var _b = 0, _c = options.rows; _b < _c.length; _b++) {\r\n var rowData = _c[_b];\r\n var row = this.createRow(rowData);\r\n this.addRow(row);\r\n }\r\n }\r\n }\r\n Object.defineProperty(EasyDataTable.prototype, \"columns\", {\r\n get: function () {\r\n return this._columns;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(EasyDataTable.prototype, \"chunkSize\", {\r\n get: function () {\r\n return this._chunkSize;\r\n },\r\n set: function (value) {\r\n this._chunkSize = value;\r\n this.total = 0;\r\n this.needTotal = true;\r\n this.chunkMap = {};\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n EasyDataTable.prototype.getRows = function (params) {\r\n var _this = this;\r\n var fromIndex = 0, count = this._chunkSize;\r\n if (params) {\r\n if ('page' in params) {\r\n fromIndex = params.pageSize * (params.page - 1);\r\n count = params.pageSize;\r\n }\r\n else {\r\n fromIndex = params.offset;\r\n count = params.limit;\r\n }\r\n }\r\n var endIndex = fromIndex + count; //the first index of the next page\r\n //if we don't calculate total on this request\r\n if (!this.needTotal) {\r\n if (fromIndex >= this.total) {\r\n return Promise.resolve([]);\r\n }\r\n if (endIndex > this.total) {\r\n endIndex = this.total;\r\n }\r\n }\r\n var lbChunk = Math.trunc(fromIndex / this._chunkSize);\r\n var ubChunk = Math.trunc((endIndex - 1) / this._chunkSize);\r\n var allChunksCached = true;\r\n for (var i = lbChunk; i <= ubChunk; i++) {\r\n if (!this.chunkMap[i]) {\r\n allChunksCached = false;\r\n break;\r\n }\r\n }\r\n if (allChunksCached) {\r\n var resultArr = [];\r\n for (var i = lbChunk; i <= ubChunk; i++) {\r\n resultArr = resultArr.concat(this.chunkMap[i].rows);\r\n }\r\n var firstChunkOffset = this.chunkMap[lbChunk].offset;\r\n return Promise.resolve(resultArr.slice(fromIndex - firstChunkOffset, endIndex - firstChunkOffset));\r\n }\r\n //if loader is not defined\r\n if (!this.loader) {\r\n throw \"Loader is not defined. Can't get the rows from \" + fromIndex + \" to \" + endIndex;\r\n }\r\n // we need total only for the first request\r\n var needTotal = this.needTotal;\r\n if (this.needTotal) {\r\n this.needTotal = false;\r\n }\r\n return this.loader.loadChunk({\r\n offset: lbChunk * this._chunkSize,\r\n limit: this._chunkSize * (ubChunk - lbChunk + 1),\r\n needTotal: needTotal\r\n })\r\n .then(function (result) {\r\n var chunks = result.table.getCachedChunks();\r\n if (needTotal) {\r\n _this.total = result.total;\r\n if (endIndex > _this.total) {\r\n endIndex = _this.total;\r\n }\r\n }\r\n var index = lbChunk;\r\n for (var _i = 0, chunks_1 = chunks; _i < chunks_1.length; _i++) {\r\n var chunk = chunks_1[_i];\r\n _this.chunkMap[index] = {\r\n offset: index * _this._chunkSize,\r\n rows: chunk.rows\r\n };\r\n index++;\r\n }\r\n var resultArr = [];\r\n for (var i = lbChunk; i <= ubChunk; i++) {\r\n resultArr = resultArr.concat(_this.chunkMap[i].rows);\r\n }\r\n var firstChunkOffset = _this.chunkMap[lbChunk].offset;\r\n return resultArr.slice(fromIndex - firstChunkOffset, endIndex - firstChunkOffset);\r\n });\r\n };\r\n EasyDataTable.prototype.getRow = function (index) {\r\n return this.getRows({ offset: index, limit: 1 })\r\n .then(function (rows) { return rows.length > 0 ? rows[0] : null; });\r\n };\r\n EasyDataTable.prototype.getTotal = function () {\r\n return this.total;\r\n };\r\n EasyDataTable.prototype.setTotal = function (total) {\r\n this.total = total;\r\n this.needTotal = false;\r\n this.chunkMap = {};\r\n };\r\n EasyDataTable.prototype.getCachedCount = function () {\r\n return this.getCachedRows().length;\r\n };\r\n EasyDataTable.prototype.clear = function () {\r\n this.columns.clear();\r\n this.chunkMap = {};\r\n this.total = 0;\r\n this.needTotal = true;\r\n };\r\n EasyDataTable.prototype.createRow = function (dataOrRow) {\r\n var _this = this;\r\n var dateIdx = this._columns.getDateColumnIndexes();\r\n var values = new Array(this._columns.count);\r\n var getValue = dataOrRow instanceof DataRow\r\n ? function (colId) { return dataOrRow.getValue(colId); }\r\n : function (colId) { return dataOrRow[colId]; };\r\n if (dataOrRow) {\r\n this.columns.getItems().forEach(function (column) {\r\n var value = getValue(column.id);\r\n var index = _this.columns.getIndex(column.id);\r\n values[index] = (dateIdx.indexOf(index) >= 0)\r\n ? (value ? new Date(value) : value)\r\n : value;\r\n });\r\n }\r\n return new DataRow(this._columns, values);\r\n };\r\n EasyDataTable.prototype.addRow = function (rowOrValue) {\r\n var newRow;\r\n if (Array.isArray(rowOrValue)) {\r\n var dateIdx = this._columns.getDateColumnIndexes();\r\n if (dateIdx.length > 0) {\r\n for (var _i = 0, dateIdx_1 = dateIdx; _i < dateIdx_1.length; _i++) {\r\n var idx = dateIdx_1[_i];\r\n if (rowOrValue[idx]) {\r\n rowOrValue[idx] = new Date(rowOrValue[idx]);\r\n }\r\n }\r\n }\r\n newRow = new DataRow(this._columns, rowOrValue);\r\n }\r\n else {\r\n newRow = this.createRow(rowOrValue);\r\n }\r\n var lastChunk = this.getLastChunk();\r\n if (!lastChunk || lastChunk.rows.length >= this._chunkSize) {\r\n lastChunk = this.createChunk();\r\n }\r\n lastChunk.rows.push(newRow);\r\n var cachedTotal = this.getCachedCount();\r\n if (cachedTotal > this.total) {\r\n this.total = cachedTotal;\r\n }\r\n return newRow;\r\n };\r\n EasyDataTable.prototype.createChunk = function (index) {\r\n if (typeof index == 'undefined') {\r\n index = this.getLastChunkIndex() + 1;\r\n }\r\n var chunk = { offset: index * this._chunkSize, rows: [] };\r\n this.chunkMap[index] = chunk;\r\n return chunk;\r\n };\r\n EasyDataTable.prototype.getLastChunkIndex = function () {\r\n var keys = Object.keys(this.chunkMap);\r\n return keys.length > 0\r\n ? parseInt(keys[keys.length - 1])\r\n : -1;\r\n };\r\n EasyDataTable.prototype.getLastChunk = function () {\r\n var index = this.getLastChunkIndex();\r\n return index > -1\r\n ? this.chunkMap[index]\r\n : null;\r\n };\r\n EasyDataTable.prototype.getCachedRows = function () {\r\n return this.getCachedChunks()\r\n .reduce(function (acc, v) { return acc.concat(v.rows); }, []);\r\n };\r\n EasyDataTable.prototype.getCachedChunks = function () {\r\n return Object.values(this.chunkMap);\r\n };\r\n return EasyDataTable;\r\n}());\r\nexport { EasyDataTable };\r\n//# sourceMappingURL=easy_data_table.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easydata/core/dist/lib/data/easy_data_table.js\n// module id = 368\n// module chunks = 0","import { EasyGuid } from '../utils/easy_guid';\r\n/**\r\n * The representation of event emitter.\r\n */\r\nvar EventEmitter = /** @class */ (function () {\r\n /**\r\n * The default constructor.\r\n * @param source The source.\r\n */\r\n function EventEmitter(source) {\r\n this.silentMode = 0;\r\n this.events = new Array();\r\n this.source = source;\r\n }\r\n /**\r\n * Subscries to the event.\r\n * @param eventType The event type.\r\n * @param callback The callback.\r\n * @returns The subscribtion ID.\r\n */\r\n EventEmitter.prototype.subscribe = function (eventType, callback) {\r\n var event = this.getEventRecByType(eventType);\r\n var eventCallback = {\r\n id: EasyGuid.newGuid(),\r\n callback: callback\r\n };\r\n if (event) {\r\n event.eventCallbacks.push(eventCallback);\r\n }\r\n else {\r\n event = {\r\n type: eventType,\r\n eventCallbacks: new Array(eventCallback)\r\n };\r\n this.events.push(event);\r\n }\r\n return eventCallback.id;\r\n };\r\n /**\r\n * Unsubsribes from the event.\r\n * @param eventType The event type.\r\n * @param callbackId The subscribtion ID.\r\n */\r\n EventEmitter.prototype.unsubscribe = function (eventType, callbackId) {\r\n var event = this.getEventRecByType(eventType);\r\n if (event) {\r\n var index = -1;\r\n for (index = 0; index < event.eventCallbacks.length; index++) {\r\n if (event.eventCallbacks[index].id === callbackId) {\r\n break;\r\n }\r\n }\r\n if (index >= 0) {\r\n event.eventCallbacks.splice(index, 1);\r\n }\r\n }\r\n };\r\n /**\r\n * Fires the event.\r\n * @param eventType The event type.\r\n * @param data The event data.\r\n * @param postpone The postpone.\r\n * @param force To fire force. If value is `true`, ignores silent mode.\r\n */\r\n EventEmitter.prototype.fire = function (eventType, data, postpone, force) {\r\n if (postpone === void 0) { postpone = 0; }\r\n if (force === void 0) { force = false; }\r\n if (this.silentMode && !force) {\r\n return;\r\n }\r\n var eventRec = this.getEventRecByType(eventType);\r\n if (eventRec) {\r\n var eqevent_1 = {\r\n type: eventType,\r\n source: this.source,\r\n data: data\r\n };\r\n var emitAllFunc = function () {\r\n for (var _i = 0, _a = eventRec.eventCallbacks; _i < _a.length; _i++) {\r\n var callback = _a[_i];\r\n callback.callback(eqevent_1);\r\n }\r\n };\r\n if (postpone > 0) {\r\n setTimeout(emitAllFunc, postpone);\r\n }\r\n else {\r\n emitAllFunc();\r\n }\r\n }\r\n };\r\n /**\r\n * Enters to silent mode.\r\n */\r\n EventEmitter.prototype.enterSilentMode = function () {\r\n this.silentMode++;\r\n };\r\n /**\r\n * Exits from silent mode.\r\n */\r\n EventEmitter.prototype.exitSilentMode = function () {\r\n if (this.silentMode) {\r\n this.silentMode--;\r\n }\r\n };\r\n /**\r\n * Checks if emitter is in silent mode.\r\n * @return `true`, if silent mode is enable.\r\n */\r\n EventEmitter.prototype.isSilent = function () {\r\n return this.silentMode > 0;\r\n };\r\n EventEmitter.prototype.getEventRecByType = function (eventType) {\r\n for (var _i = 0, _a = this.events; _i < _a.length; _i++) {\r\n var event_1 = _a[_i];\r\n if (event_1.type == eventType) {\r\n return event_1;\r\n }\r\n }\r\n return null;\r\n };\r\n return EventEmitter;\r\n}());\r\nexport { EventEmitter };\r\n//# sourceMappingURL=event_emitter.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easydata/core/dist/lib/event/event_emitter.js\n// module id = 369\n// module chunks = 0","import { i18n } from './i18n';\r\ni18n.resetLocales();\r\n//# sourceMappingURL=load_default_locale_settings.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easydata/core/dist/lib/i18n/load_default_locale_settings.js\n// module id = 370\n// module chunks = 0","export var eqconsts;\r\n(function (eqconsts) {\r\n /**\r\n * Defines some commonly used constants\r\n */\r\n var ConstLists = /** @class */ (function () {\r\n function ConstLists() {\r\n /**\r\n * Contains macros for the special dates (like Today, First day of the month, etc)\r\n */\r\n this.SpecDateValues = [\r\n { id: '${Today}', key: 'Today', isDefault: true },\r\n { id: '${Yesterday}', key: 'Yesterday' },\r\n { id: '${Tomorrow}', key: 'Tomorrow' },\r\n { id: '${FirstDayOfMonth}', key: 'FirstDayOfMonth' },\r\n { id: '${FirstDayOfYear}', key: 'FirstDayOfYear' }\r\n ];\r\n /**\r\n * Contains macros for the special times (like Now, Noon, etc)\r\n */\r\n this.SpecTimeValues = [\r\n { id: '${Now}', key: 'Now', isDefault: true },\r\n { id: '${HourStart}', key: 'HourStart' },\r\n { id: '${Midnight}', key: 'Midnight' },\r\n { id: '${Noon}', key: 'Noon' }\r\n ];\r\n /**\r\n * Boolean values macros (true and false)\r\n */\r\n this.BooleanValues = [\r\n { id: '${false}', key: 'False' },\r\n { id: '${true}', key: 'True', isDefault: true }\r\n ];\r\n }\r\n return ConstLists;\r\n }());\r\n /**\r\n * Contains some constants (macros) with special date/time and boolean values.\r\n */\r\n eqconsts.constLists = new ConstLists();\r\n /**\r\n * Constants representing various types of relationships between conditions\r\n */\r\n eqconsts.predicateLinkTypeList = [\r\n { id: 'All', key: 'LinkTypeAll' },\r\n { id: 'Any', key: 'LinkTypeAny' },\r\n { id: 'None', key: 'LinkTypeNone' },\r\n { id: 'NotAll', key: 'LinkTypeNotAll' }\r\n ];\r\n})(eqconsts || (eqconsts = {}));\r\n//# sourceMappingURL=constants.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/core/dist/lib/utils/constants.js\n// module id = 371\n// module chunks = 0","import { DataType } from \"@easydata/core\";\r\n/**\r\n * Represents Google data table class\r\n */\r\nvar GoogleDataConverter = /** @class */ (function () {\r\n /**\r\n * The default constructor.\r\n * @param data The table instance or its JSON representation.\r\n */\r\n function GoogleDataConverter(data) {\r\n if (!data) {\r\n data = {\r\n cols: [],\r\n rows: []\r\n };\r\n }\r\n if (typeof data === \"string\") {\r\n this.loadFromJSON(data);\r\n }\r\n else {\r\n this.tableObj = data;\r\n }\r\n }\r\n /**\r\n * Loads data table from JSON.\r\n * @param json The JSON representation.\r\n */\r\n GoogleDataConverter.prototype.loadFromJSON = function (json) {\r\n this.tableObj = JSON.parse(json);\r\n };\r\n /**\r\n * Saves data table to JSON.\r\n * @returns The JSON representation.\r\n */\r\n GoogleDataConverter.prototype.toJSON = function () {\r\n return JSON.stringify(this.tableObj);\r\n };\r\n /**\r\n * Gets the google data table object.\r\n * @returns The data table.\r\n */\r\n GoogleDataConverter.prototype.getObject = function () {\r\n return this.tableObj;\r\n };\r\n /**\r\n * Cheсks wether the table is empty\r\n * @returns `true` if the table is empty, `false` if it is not.\r\n */\r\n GoogleDataConverter.prototype.isEmpty = function () {\r\n return this.getNumberOfColumns() == 0 || this.getNumberOfRows() == 0;\r\n };\r\n /**\r\n * Gets the number of columns\r\n * @returns The number.\r\n */\r\n GoogleDataConverter.prototype.getNumberOfColumns = function () {\r\n return this.tableObj.cols.length;\r\n };\r\n /**\r\n * Gets the column object.\r\n * @param colIndex The column index.\r\n * @returns The column object.\r\n */\r\n GoogleDataConverter.prototype.getColumnObject = function (colIndex) {\r\n return colIndex < this.tableObj.cols.length ? this.tableObj.cols[colIndex] : null;\r\n };\r\n /**\r\n * Gets the column ID.\r\n * @param colIndex The column index.\r\n * @returns The column ID.\r\n */\r\n GoogleDataConverter.prototype.getColumnId = function (colIndex) {\r\n var col = this.getColumnObject(colIndex);\r\n return col ? col.id : null;\r\n };\r\n /**\r\n * Gets the column LABEL.\r\n * @param colIndex The column index.\r\n * @returns The column ID.\r\n */\r\n GoogleDataConverter.prototype.getColumnLabel = function (colIndex) {\r\n var col = this.getColumnObject(colIndex);\r\n return col ? col.label : null;\r\n };\r\n /**\r\n * Gets the column type.\r\n * @param colIndex The column index.\r\n * @returns The column type.\r\n */\r\n GoogleDataConverter.prototype.getColumnType = function (colIndex) {\r\n var col = this.getColumnObject(colIndex);\r\n return col ? col.type : null;\r\n };\r\n /**\r\n * Gets the column properties.\r\n * @param colIndex The column index.\r\n * @returns The column properties.\r\n */\r\n GoogleDataConverter.prototype.getColumnProperties = function (colIndex) {\r\n var col = this.getColumnObject(colIndex);\r\n return col ? col.p : null;\r\n };\r\n /**\r\n * Gets the number of rows.\r\n * @returns The number.\r\n */\r\n GoogleDataConverter.prototype.getNumberOfRows = function () {\r\n return this.tableObj.rows.length;\r\n };\r\n GoogleDataConverter.prototype.convertValue = function (value, colIndex) {\r\n var colType = this.googleDataTypeToDataType(this.getColumnType(colIndex));\r\n if ([DataType.Date, DataType.DateTime, DataType.Time].includes(colType)) {\r\n return eval(\"new \" + value);\r\n }\r\n return value;\r\n };\r\n /**\r\n * Gets the value.\r\n * @param rowIndex\r\n * @param colIndex\r\n */\r\n GoogleDataConverter.prototype.getValue = function (rowIndex, colIndex) {\r\n var row = rowIndex < this.tableObj.rows.length ? this.tableObj.rows[rowIndex] : null;\r\n if (row) {\r\n var cell = colIndex < this.tableObj.cols.length ? row.c[colIndex] : null;\r\n if (cell) {\r\n return this.convertValue(cell.v, colIndex);\r\n }\r\n }\r\n return null;\r\n };\r\n GoogleDataConverter.prototype.getRow = function (rowIndex) {\r\n var _this = this;\r\n var googleRow = rowIndex < this.tableObj.rows.length ? this.tableObj.rows[rowIndex] : null;\r\n var googleCells = googleRow.c;\r\n var row = googleCells.map(function (obj, idx) { return _this.convertValue(obj.v, idx); }, this);\r\n return row;\r\n };\r\n GoogleDataConverter.prototype.convertTo = function (dataTable) {\r\n var colCount = this.getNumberOfColumns();\r\n for (var i = 0; i < colCount; i++) {\r\n dataTable.columns.add({\r\n id: this.getColumnId(i),\r\n label: this.getColumnLabel(i),\r\n type: this.googleDataTypeToDataType(this.getColumnType(i))\r\n });\r\n }\r\n var rowCount = this.getNumberOfRows();\r\n for (var i = 0; i < rowCount; i++) {\r\n dataTable.addRow(this.getRow(i));\r\n }\r\n };\r\n GoogleDataConverter.prototype.googleDataTypeToDataType = function (googleDataType) {\r\n switch (googleDataType) {\r\n case 'string':\r\n return DataType.String;\r\n case 'number':\r\n return DataType.Float;\r\n case 'boolean':\r\n return DataType.Bool;\r\n case 'date':\r\n return DataType.Date;\r\n case 'datetime':\r\n return DataType.DateTime;\r\n case 'timeofday':\r\n return DataType.Time;\r\n default:\r\n return DataType.String;\r\n }\r\n };\r\n return GoogleDataConverter;\r\n}());\r\nexport { GoogleDataConverter };\r\n//# sourceMappingURL=google_data_converter.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/core/dist/lib/data/google_data_converter.js\n// module id = 372\n// module chunks = 0","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport { EasyDataTable, EventEmitter, utils as dataUtils } from '@easydata/core';\r\nimport { i18n } from '@easydata/core';\r\nimport { EqServiceProvider } from '../common/eq_services';\r\nimport { QueryChangePart } from '../query/query_events';\r\nimport { EqActionResult } from './action';\r\nimport { WidgetGroup } from '../types/widget_group';\r\nimport { equtils } from '../utils/utils';\r\nimport { EqAction } from './eq_actions';\r\nimport { EqServerExporter } from '../eqs/eqs_exporter';\r\nimport { EasyQueryDataLoader } from '../data/eq_data_loader';\r\nimport { ExprTag } from '../types/expr_tag';\r\nimport { SortDirection } from '../query/query_column';\r\n/**\r\n * Encapsulates all information about EasyQuery components on some webpage\r\n * and provides some basic operation over those components\r\n * Each context includes the following main components:\r\n * - one data model,\r\n * - one query,\r\n * - one result set\r\n * - several UI widgets.\r\n */\r\nvar EqContext = /** @class */ (function () {\r\n function EqContext() {\r\n var _this = this;\r\n this.internalListCache = {};\r\n this.useBootstrap = false;\r\n this.loadModelOnStart = true;\r\n this.loadQueryOnStart = false;\r\n this.calcTotals = false;\r\n //----------- endpoint processing functions --------------\r\n this.endpointVarsRegex = /\\{.*?\\}/g;\r\n this._predefinedListRequestHandlers = {\r\n '_DSDE': function (params, onResult) {\r\n var data = _this.getModel().getAllDateMacros()\r\n .map(function (macro) {\r\n var macroName = macro.match(/\\${{(.*?)}}/)[1];\r\n return { id: macro, text: i18n.getText(macroName) };\r\n });\r\n onResult(data);\r\n return true;\r\n },\r\n '_DSTE': function (params, onResult) {\r\n var data = _this.getModel().getAllTimeMacros()\r\n .map(function (macro) {\r\n var macroName = macro.match(/\\${{(.*?)}}/)[1];\r\n return { id: macro, text: i18n.getText(macroName) };\r\n });\r\n onResult(data);\r\n return true;\r\n }\r\n };\r\n this._listRequestHandler = function (params, onResult) {\r\n if (params == null || !params.listName)\r\n return;\r\n var query = _this.getQuery();\r\n var newParams = dataUtils.assign({ listName: params.listName }, params.editorParams);\r\n var procParams = {};\r\n var attrPattern = /@{{(.+?)}}/;\r\n for (var prop in newParams) {\r\n if (!procParams[prop])\r\n continue;\r\n var dynamicParam = newParams[prop].match(attrPattern);\r\n if (dynamicParam) {\r\n var paramValue = query.getOneValueForAttr(dynamicParam[1]);\r\n if (!paramValue) {\r\n paramValue = '';\r\n }\r\n procParams[prop] = newParams[prop].replace(attrPattern, paramValue);\r\n }\r\n }\r\n var requestPrams = {\r\n listName: procParams.listName,\r\n editorId: params.editorId,\r\n queryParams: procParams\r\n };\r\n var list = _this.getListFromCache(params);\r\n if (list && list.length > 0) {\r\n onResult(list);\r\n return;\r\n }\r\n var processed = false;\r\n var predefinedHandler = _this._predefinedListRequestHandlers[params.editorId];\r\n if (predefinedHandler) {\r\n processed = predefinedHandler(params, onResult);\r\n }\r\n if (!processed && _this.clientListRequestHandler) {\r\n processed = _this.clientListRequestHandler(params, onResult);\r\n }\r\n if (!processed) {\r\n _this.loadValueList({\r\n params: requestPrams,\r\n success: function (data) {\r\n if (data) {\r\n _this.addListToCache(params, data);\r\n }\r\n onResult(data);\r\n },\r\n error: function (message) {\r\n onResult(null);\r\n }\r\n });\r\n }\r\n };\r\n this.baseEndpoint = 'api/easyquery';\r\n this.eqServices = new EqServiceProvider(this);\r\n this.widgets = new Array();\r\n this.eventEmitter = new EventEmitter(this);\r\n this.exporters = new Map();\r\n this.endpoints = new Map();\r\n this.dataLoader = new EasyQueryDataLoader(this);\r\n this.resultTable = new EasyDataTable({\r\n loader: this.dataLoader\r\n });\r\n this.resultTable.id = 'ResultTable';\r\n }\r\n EqContext.prototype.getServices = function () {\r\n return this.eqServices;\r\n };\r\n EqContext.prototype.registerExporter = function (format, resolver) {\r\n this.exporters.set(format, resolver);\r\n };\r\n EqContext.prototype.registerServerExporter = function (format, responseType) {\r\n this.registerExporter(format, function (context) {\r\n var exporter = new EqServerExporter(context);\r\n exporter.setFormat(format, responseType);\r\n return exporter;\r\n });\r\n };\r\n EqContext.prototype.getExporter = function (format) {\r\n var resolver = this.exporters.get(format);\r\n if (resolver) {\r\n return resolver(this);\r\n }\r\n return null;\r\n };\r\n EqContext.prototype.getExportFormats = function () {\r\n return Array.from(this.exporters.keys());\r\n };\r\n EqContext.prototype.addDefaultExporters = function () {\r\n this.registerServerExporter('csv', '');\r\n this.registerServerExporter('excel-html', '');\r\n };\r\n EqContext.prototype.resolveEndpoint = function (endpointKey, options) {\r\n options = options || {};\r\n var result = this.endpoints.get(endpointKey);\r\n if (!result) {\r\n throw endpointKey + ' endpoint is not defined';\r\n }\r\n var matches = result.match(this.endpointVarsRegex);\r\n if (matches) {\r\n for (var _i = 0, matches_1 = matches; _i < matches_1.length; _i++) {\r\n var match = matches_1[_i];\r\n var opt = match.substring(1, match.length - 1);\r\n var optVal = options[opt];\r\n if (!optVal) {\r\n if (opt == 'modelId') {\r\n optVal = this.getModel().getId();\r\n }\r\n else if (opt == 'queryId') {\r\n optVal = this.getQuery().getId();\r\n }\r\n else {\r\n throw \"Parameter [\" + opt + \"] is not defined\";\r\n }\r\n }\r\n result = result.replace(match, optVal);\r\n }\r\n }\r\n return result;\r\n };\r\n EqContext.prototype.setEndpoint = function (key, value) {\r\n this.endpoints.set(key, value);\r\n };\r\n EqContext.prototype.setEnpointIfNotExist = function (key, value) {\r\n if (!this.endpoints.has(key))\r\n this.endpoints.set(key, value);\r\n };\r\n EqContext.prototype.setDefaultEndpoints = function (endpointBase) {\r\n this.setEnpointIfNotExist('GetModel', equtils.combinePath(endpointBase, 'models/{modelId}'));\r\n this.setEnpointIfNotExist('GetQuery', equtils.combinePath(endpointBase, 'models/{modelId}/queries/{queryId}'));\r\n this.setEnpointIfNotExist('SaveQuery', equtils.combinePath(endpointBase, 'models/{modelId}/queries/{queryId}'));\r\n this.setEnpointIfNotExist('SyncQuery', equtils.combinePath(endpointBase, 'models/{modelId}/queries/{queryId}/sync'));\r\n this.setEnpointIfNotExist('NewQuery', equtils.combinePath(endpointBase, 'models/{modelId}/queries'));\r\n this.setEnpointIfNotExist('RemoveQuery', equtils.combinePath(endpointBase, 'models/{modelId}/queries/{queryId}'));\r\n this.setEnpointIfNotExist('GetQueryList', equtils.combinePath(endpointBase, 'models/{modelId}/queries'));\r\n this.setEnpointIfNotExist('FetchData', equtils.combinePath(endpointBase, 'models/{modelId}/fetch'));\r\n this.setEnpointIfNotExist('GetValueList', equtils.combinePath(endpointBase, 'models/{modelId}/valuelists/{listId}'));\r\n this.setEnpointIfNotExist('ExportResult', equtils.combinePath(endpointBase, 'models/{modelId}/export/{format}'));\r\n this.setEnpointIfNotExist('GetQueryFile', equtils.combinePath(endpointBase, 'models/{modelId}/getqueryfile/{format}'));\r\n this.setEnpointIfNotExist('UploadQueryFile', equtils.combinePath(endpointBase, 'models/{modelId}/uploadqueryfile'));\r\n };\r\n /**\r\n * Initializes the context\r\n * @param options\r\n */\r\n EqContext.prototype.init = function (options) {\r\n var _this = this;\r\n options = options || {};\r\n if (typeof (options.chunkSize) !== 'undefined') {\r\n this.resultTable.chunkSize = options.chunkSize;\r\n }\r\n var query = this.getQuery();\r\n if (options.defaultQueryId) {\r\n query.setId(options.defaultQueryId);\r\n }\r\n if (options.listCache) {\r\n this.setExternalListCache(options.listCache);\r\n }\r\n if (options.locale) {\r\n i18n.setCurrentLocale(options.locale);\r\n }\r\n if (options.localeSettings) {\r\n i18n.updateLocaleSettings(options.localeSettings);\r\n }\r\n if (options.endpoint) {\r\n this.baseEndpoint = options.endpoint;\r\n console.warn('`endpoint` option is deprecated and will be ignored if you get license key from server. Use context.useEndpoint(endpoint) instead');\r\n }\r\n this.setDefaultEndpoints(this.baseEndpoint);\r\n this.loadQueryOnStart = false;\r\n if (options.loadQueryOnStart) {\r\n this.loadQueryOnStart = options.loadQueryOnStart;\r\n }\r\n this.loadModelOnStart = true;\r\n if (typeof options.loadModelOnStart !== 'undefined') {\r\n this.loadModelOnStart = options.loadModelOnStart;\r\n }\r\n if (options.handlers) {\r\n if (options.handlers.onInit) {\r\n this.addEventListener('ready', options.handlers.onInit);\r\n }\r\n if (options.handlers.afterLoadModel) {\r\n this.addEventListener('loadModel', options.handlers.afterLoadModel);\r\n }\r\n if (options.handlers.afterLoadQuery) {\r\n this.addEventListener('loadQuery', options.handlers.afterLoadQuery);\r\n }\r\n if (options.handlers.afterSyncQuery) {\r\n this.addEventListener('syncQuery', options.handlers.afterSyncQuery);\r\n }\r\n if (options.handlers.afterFetchData) {\r\n this.addEventListener('fetchData', options.handlers.afterFetchData);\r\n }\r\n if (options.handlers.afterExportResult) {\r\n this.addEventListener('exportResult', options.handlers.afterExportResult);\r\n }\r\n if (options.handlers.onProcessStart) {\r\n this.addEventListener('processStart', options.handlers.onProcessStart);\r\n }\r\n if (options.handlers.onProcessEnd) {\r\n this.addEventListener('processEnd', options.handlers.onProcessEnd);\r\n }\r\n if (options.handlers.onError) {\r\n this.addEventListener('error', options.handlers.onError);\r\n }\r\n else {\r\n this.addEventListener('error', function (context, msg) {\r\n msg.result = EqActionResult.Error;\r\n var msgTitle = msg && msg ? msg.action + ' error' : 'Error';\r\n var msgText = msg && msg.text ? msg.text : '';\r\n if (msg.sourceError.message !== msgText) {\r\n msgText += '\\n' + msg.sourceError;\r\n }\r\n console.error(msgTitle + ': ' + msgText);\r\n });\r\n }\r\n if (options.handlers.onListRequest) {\r\n this.clientListRequestHandler = options.handlers.onListRequest;\r\n }\r\n if (options.handlers.beforeLoadModel) {\r\n this.beforeLoadModel = options.handlers.beforeLoadModel;\r\n }\r\n if (options.handlers.beforeLoadQuery) {\r\n this.beforeLoadQuery = options.handlers.beforeLoadQuery;\r\n }\r\n if (options.handlers.beforeSyncQuery) {\r\n this.beforeSyncQuery = options.handlers.beforeSyncQuery;\r\n }\r\n if (options.handlers.beforeFetchData) {\r\n this.beforeFetchData = options.handlers.beforeFetchData;\r\n }\r\n if (options.handlers.beforeExportResult) {\r\n this.beforeExportResult = options.handlers.beforeExportResult;\r\n }\r\n }\r\n this.calcTotals = options.calcTotals || false;\r\n this.initialQuery = options.initialQuery;\r\n this.defaultQueryId = options.defaultQueryId || '';\r\n this.defaultModelId = options.defaultModelId || '__default';\r\n var modelLoader = this.eqServices.getModelLoader();\r\n modelLoader.init(options);\r\n var queryStorage = this.eqServices.getQueryStorage();\r\n queryStorage.init(options);\r\n if (options.useDefaultExporters !== false) {\r\n this.addDefaultExporters();\r\n }\r\n if (options.serverExporters) {\r\n for (var _i = 0, _a = options.serverExporters; _i < _a.length; _i++) {\r\n var format = _a[_i];\r\n var responseType = format == 'csv' || format == 'excel-html' ? '' : 'arraybuffer';\r\n this.registerServerExporter(format, responseType);\r\n }\r\n }\r\n //init widgets\r\n this.widgets.forEach(function (widget) {\r\n var widgetOptions = {};\r\n if (options.widgets && options.widgets[widget.getWidgetType()]) {\r\n widgetOptions = options.widgets[widget.getWidgetType()];\r\n }\r\n widget.init(_this, widgetOptions);\r\n });\r\n if (this.loadModelOnStart) {\r\n this.loadDefaultModel();\r\n }\r\n else {\r\n this.fireEvent('ready');\r\n }\r\n };\r\n /**\r\n * Sets endpoint for all EasyQuery actions. Should be called before `init` and\r\n * `useEnterprise` methods\r\n * @param endpoint\r\n * @example\r\n * ```\r\n * view.getContext()\r\n * .useEndpoint('/api/easyquery')\r\n * .useEnterprise(function () {\r\n * view.init();\r\n * });\r\n * ```\r\n */\r\n EqContext.prototype.useEndpoint = function (endpoint) {\r\n this.baseEndpoint = endpoint;\r\n return this;\r\n };\r\n /**\r\n * Add a new widget to the context.\r\n * After that the widget will start to receive messages from other context components.\r\n * @param widget\r\n */\r\n EqContext.prototype.addWidget = function (widget) {\r\n this.widgets.push(widget);\r\n };\r\n /**\r\n * Returns all widgets with current type.\r\n * @param widgetType The widget type\r\n */\r\n EqContext.prototype.getAllWidgetsByType = function (widgetType) {\r\n return this.widgets\r\n .filter(function (widget) { return widget.getWidgetType() === widgetType; });\r\n };\r\n /**\r\n * Returns first registerd widget with current type\r\n * @param widgetType The widget type\r\n */\r\n EqContext.prototype.getWidgetByType = function (widgetType) {\r\n var widgets = this.getAllWidgetsByType(widgetType);\r\n return widgets.length > 0 ? widgets[0] : null;\r\n };\r\n /**\r\n * This method is called automatically when some change was made either in context's data model or query\r\n * @param groups\r\n */\r\n EqContext.prototype.refreshWidgets = function (groups) {\r\n if (groups === void 0) { groups = WidgetGroup.All; }\r\n this.widgets.forEach(function (widget) {\r\n if (widget.belongsToGroup(groups)) {\r\n widget.refresh();\r\n }\r\n });\r\n };\r\n /**\r\n * Register a new handler for 'query changed' event\r\n * @param callback\r\n */\r\n EqContext.prototype.addQueryChangedCallback = function (callback) {\r\n this.getQuery().addChangedCallback(callback);\r\n };\r\n /**\r\n * Removes the function from the list of registerd handlers for 'query changed' event\r\n * @param callback\r\n */\r\n EqContext.prototype.removeQueryChangedCallback = function (callback) {\r\n this.getQuery().removeChangedCallback(callback);\r\n };\r\n /**\r\n * Creates a new query object using the current instance of EqServices\r\n */\r\n EqContext.prototype.createQuery = function () {\r\n return this.eqServices.createQuery();\r\n };\r\n /**\r\n * Gets the current query\r\n */\r\n EqContext.prototype.getQuery = function () {\r\n if (!this.query) {\r\n this.query = this.createQuery();\r\n }\r\n return this.query;\r\n };\r\n /**\r\n * Gets the current data model\r\n */\r\n EqContext.prototype.getModel = function () {\r\n if (!this.dataModel) {\r\n this.dataModel = this.eqServices.createDataModel();\r\n }\r\n return this.dataModel;\r\n };\r\n /**\r\n * Sets the content of the current data model\r\n */\r\n EqContext.prototype.loadModelFromData = function (modelPlainData) {\r\n this.getQuery().loadModelData(modelPlainData);\r\n this.dataModel = this.getQuery().getModel();\r\n };\r\n /**\r\n * Sets the ID of the default model\r\n * @param modelId\r\n */\r\n EqContext.prototype.setDefaultModelId = function (modelId) {\r\n this.defaultModelId = modelId;\r\n };\r\n /**\r\n * Notifies context components about starting of some long process (e.g. model loading)\r\n * This method raises onProcessStart event in the context and all its widgets\r\n * @param message\r\n * @param groups\r\n */\r\n EqContext.prototype.startProcess = function (message, groups) {\r\n this.eventEmitter.fire('processStart', message);\r\n this.widgets.forEach(function (widget) {\r\n if (widget.belongsToGroup(groups)) {\r\n widget.onProcessStart();\r\n }\r\n });\r\n };\r\n /**\r\n * Notifies all context components about the finishing of some long process\r\n * @param action\r\n * @param groups\r\n */\r\n EqContext.prototype.endProcess = function (action, groups) {\r\n this.eventEmitter.fire('processEnd', action);\r\n if (action.result === EqActionResult.Error) {\r\n this.throwError(action);\r\n }\r\n this.widgets.forEach(function (widget) {\r\n if (widget.belongsToGroup(groups)) {\r\n widget.onProcessEnd();\r\n }\r\n });\r\n };\r\n /**\r\n * Throws the error passed in the function parameter.\r\n * If onError event handler is defined - we call that method.\r\n * Otherwise - just place the error message to the browser console.\r\n * @param error\r\n */\r\n EqContext.prototype.throwError = function (action) {\r\n action.result = EqActionResult.Error;\r\n this.eventEmitter.fire('error', action);\r\n };\r\n /**\r\n * If `defaultModelId` property is define - this method calls `loadModel` function in the broker\r\n * to load the model with such ID.\r\n *\r\n */\r\n EqContext.prototype.loadDefaultModel = function () {\r\n var _this = this;\r\n this.loadModel({\r\n modelId: this.defaultModelId,\r\n silent: true,\r\n success: function () {\r\n _this.refreshWidgets(WidgetGroup.Model);\r\n var query = _this.getQuery();\r\n _this.fireEvent('initialModelLoad');\r\n if (_this.initialQuery) {\r\n query.loadFromData(_this.initialQuery, false);\r\n }\r\n if (_this.loadQueryOnStart) {\r\n _this.loadQuery({\r\n queryId: _this.defaultQueryId,\r\n modelId: _this.defaultModelId,\r\n success: function () {\r\n _this.refreshWidgets(WidgetGroup.Query);\r\n //if we load query on start - then we should call 'ready' event only after its successful loading\r\n _this.fireEvent('ready');\r\n }\r\n });\r\n }\r\n else {\r\n _this.refreshWidgets(WidgetGroup.Query);\r\n _this.fireEvent('ready');\r\n }\r\n }\r\n });\r\n };\r\n /**\r\n * Clears the content of the current query\r\n */\r\n EqContext.prototype.clearQuery = function () {\r\n var query = this.getQuery();\r\n query.clear();\r\n query.fireChangedEvent({\r\n part: QueryChangePart.All\r\n });\r\n };\r\n /**\r\n * Clears all query results (the data set and the statement, if any)\r\n */\r\n EqContext.prototype.clearResult = function () {\r\n this.resultTable.clear(); // do not set resultTable to null. Just clear\r\n this.resultStatement = null;\r\n this.resultContent = null;\r\n };\r\n /**\r\n * Sets the external 'list cache' provider - an object which implements `ExternalListCache` inteface\r\n * @param cache\r\n */\r\n EqContext.prototype.setExternalListCache = function (cache) {\r\n this.externalListCache = cache;\r\n };\r\n EqContext.prototype.getListFromCache = function (params) {\r\n var key = this.getListCacheKey(params);\r\n if (this.externalListCache) {\r\n return this.externalListCache.get(key);\r\n }\r\n else {\r\n return this.internalListCache[key];\r\n }\r\n };\r\n EqContext.prototype.getListCacheKey = function (params) {\r\n var key = params.listName == 'SQL' ? 'SQL_' + params.editorId : params.listName;\r\n if (params.queryParams) {\r\n key += '_' + Object.keys(params.queryParams).filter(function (k) { return k != 'listName'; })\r\n .map(function (k) { return params.queryParams[k]; })\r\n .join('_');\r\n }\r\n return key;\r\n };\r\n EqContext.prototype.addListToCache = function (params, list) {\r\n var key = this.getListCacheKey(params);\r\n if (this.externalListCache) {\r\n this.externalListCache.set(key, list);\r\n }\r\n else {\r\n this.internalListCache[key] = list;\r\n }\r\n };\r\n /**\r\n * Clears the current list cache.\r\n */\r\n EqContext.prototype.resetListCache = function () {\r\n if (this.externalListCache) {\r\n this.externalListCache.clear();\r\n }\r\n else {\r\n this.internalListCache = {};\r\n }\r\n };\r\n /**\r\n * Gets the handler for 'GetList' requests\r\n */\r\n EqContext.prototype.getListRequestHandler = function () {\r\n return this._listRequestHandler;\r\n };\r\n /**\r\n * Adds the translations of the EasyQuery messages for some locale\r\n * @param locale - the ISO code of the locale (like `en` or `uk`)\r\n * @param localeInfo - Locale settings and translations of EasyQuery texts and messages.\r\n * We expected an object with the struture of LocaleInfo interface here.\r\n */\r\n EqContext.prototype.addLocale = function (locale, localeInfo) {\r\n i18n.addLocale(locale, localeInfo);\r\n };\r\n EqContext.prototype.addEventListener = function (eventType, handler) {\r\n var _this = this;\r\n return this.eventEmitter.subscribe(eventType, function (event) { return handler(_this, event.data); });\r\n };\r\n /**\r\n * Remove event handler for event type .\r\n * @param eventType The event type.\r\n * @param handlerId The handler id.\r\n */\r\n EqContext.prototype.removeEventListener = function (eventType, handlerId) {\r\n this.eventEmitter.unsubscribe(eventType, handlerId);\r\n };\r\n EqContext.prototype.fireEvent = function (eventType, data) {\r\n this.eventEmitter.fire(eventType, data);\r\n };\r\n EqContext.prototype.getBaseEndpoint = function () {\r\n return this.baseEndpoint;\r\n };\r\n /**\r\n * Sends a `loadValueList` requesthe server and processes the response.\r\n * @param options A map of options to pass to `loadValueList` function.\r\n */\r\n EqContext.prototype.loadValueList = function (options) {\r\n var _this = this;\r\n options = options || {};\r\n this.startProcess({\r\n action: EqAction.GetValueList,\r\n text: 'Loading values'\r\n }, WidgetGroup.Result);\r\n var valueListResolver = this.eqServices.getValueListResolver();\r\n valueListResolver.loadValueList(options)\r\n .then(function (values) {\r\n _this.endProcess({\r\n result: EqActionResult.Success,\r\n action: EqAction.GetValueList,\r\n text: 'Values loaded'\r\n }, WidgetGroup.Result);\r\n if (options.success) {\r\n options.success(values);\r\n }\r\n })\r\n .catch(function (error) {\r\n var editorId = options && options.params ? options.params.editorId : 'undefined';\r\n var errorMessage = \"Can't load the value list for editor \" + editorId + \".\\n \" + error.message;\r\n _this.endProcess({\r\n result: EqActionResult.Error,\r\n action: EqAction.GetValueList,\r\n text: errorMessage,\r\n sourceError: error\r\n }, WidgetGroup.Result);\r\n if (options.error) {\r\n options.error(errorMessage, 'GetValueList');\r\n }\r\n });\r\n };\r\n /**\r\n * Starts the process of the model loading.\r\n * This method can initiate a request to EasyQueryServer backend or get the model from OData or GraphQL endpoint\r\n * The content of the `options` parameter depends on concrete loader implementation.\r\n * @param options A map of options to pass to `loadModel` function (can be ommited)\r\n * @example\r\n * context.loadModel()\r\n * .then(model => {\r\n * alert(\"Model loaded!\");\r\n * });\r\n */\r\n EqContext.prototype.loadModel = function (options) {\r\n var _this = this;\r\n if (this.beforeLoadModel) {\r\n this.beforeLoadModel(this, options);\r\n }\r\n var modelId = options.modelId || '__default';\r\n var silent = options.silent || false;\r\n this.startProcess({\r\n action: EqAction.LoadModel,\r\n text: 'Loading model: ' + modelId\r\n }, WidgetGroup.Model);\r\n var modelLoader = this.eqServices.getModelLoader();\r\n return modelLoader.startModelLoading(options)\r\n .then(function (value) {\r\n if (value) {\r\n _this.loadModelFromData(value);\r\n if (_this.dataModel.isEmpty()) {\r\n console.warn(\"Empty model has been loaded. Model ID: \" + _this.dataModel.getId());\r\n }\r\n }\r\n else {\r\n console.warn('Model has not been changed.');\r\n }\r\n _this.endProcess({\r\n result: EqActionResult.Success,\r\n action: EqAction.LoadModel,\r\n text: 'Model loaded: ' + modelId\r\n }, WidgetGroup.Model);\r\n if (!silent) {\r\n _this.clearQuery();\r\n _this.clearResult();\r\n _this.refreshWidgets();\r\n }\r\n if (options.success) {\r\n options.success(_this.getModel());\r\n }\r\n _this.fireEvent('loadModel');\r\n return _this.getModel();\r\n })\r\n .catch(function (error) {\r\n var errorMessage = \"Can't load model \" + modelId + \".\\n \" + error.message;\r\n _this.endProcess({\r\n result: EqActionResult.Error,\r\n action: EqAction.LoadModel,\r\n text: errorMessage,\r\n sourceError: error\r\n }, WidgetGroup.Model);\r\n if (options.error) {\r\n options.error(errorMessage, \"LoadModel\");\r\n }\r\n return _this.getModel();\r\n });\r\n };\r\n EqContext.prototype.callWhenModelLoaded = function (callFunc) {\r\n var modelLoader = this.eqServices.getModelLoader();\r\n modelLoader.getModelPromise().then(function () {\r\n callFunc();\r\n });\r\n };\r\n /**\r\n * Loads the query\r\n * @param options\r\n * The content of the `options` parameter depends on `QueryStorage` implementation.\r\n * Usually it contains `success`, `error` callbacks and `queryId` property of the query to load.\r\n * @example\r\n * context.loadQuery({\r\n * queryId: \"query-id\"\r\n * });\r\n */\r\n EqContext.prototype.loadQuery = function (options) {\r\n var _this = this;\r\n options = options || {};\r\n var modelLoader = this.eqServices.getModelLoader();\r\n this.clearResult();\r\n modelLoader.getModelPromise()\r\n .then(function () {\r\n options = options || {};\r\n var queryId = options.queryId;\r\n var silent = options.silent || false;\r\n if (_this.beforeLoadQuery) {\r\n _this.beforeLoadQuery(_this, options);\r\n }\r\n _this.startProcess({\r\n action: EqAction.LoadQuery,\r\n text: \"Query loading: \" + queryId\r\n }, WidgetGroup.Query);\r\n var queryStorage = _this.eqServices.getQueryStorage();\r\n queryStorage.loadQuery(options)\r\n .then(function (data) {\r\n _this.endProcess({\r\n result: EqActionResult.Success,\r\n action: EqAction.LoadQuery,\r\n text: 'Query loaded: ' + queryId\r\n }, WidgetGroup.Query);\r\n if (data)\r\n _this.query.loadFromData(data);\r\n _this.query.resetModified();\r\n if (!silent) {\r\n _this.query.fireChangedEvent({\r\n part: QueryChangePart.Properties,\r\n wasModified: _this.query.isModified()\r\n });\r\n _this.refreshWidgets();\r\n }\r\n _this.fireEvent('loadQuery');\r\n if (options.success) {\r\n options.success(_this.query);\r\n }\r\n })\r\n .catch(function (error) {\r\n var query = _this.getQuery();\r\n error.message = \"Can't load query [\" + query.getId() + \"]\\n\" + (error.message || \"\");\r\n if (options.error) {\r\n options.error(error.message, EqAction.LoadQuery);\r\n }\r\n _this.endProcess({\r\n result: EqActionResult.Error,\r\n action: EqAction.LoadQuery,\r\n text: error.message,\r\n sourceError: error\r\n }, WidgetGroup.Query);\r\n });\r\n })\r\n .catch(function (error) {\r\n console.error(error);\r\n });\r\n };\r\n /**\r\n * Loads the list of queries available for the current user.\r\n * @param options\r\n * The content of the `options` parameter depends on `QueryStorage` implementation.\r\n * Usually it contains `success`, `error` callbacks\r\n */\r\n EqContext.prototype.loadQueryList = function (options) {\r\n var _this = this;\r\n var modelLoader = this.eqServices.getModelLoader();\r\n modelLoader.getModelPromise()\r\n .then(function () {\r\n _this.startQueryListLoading(options);\r\n })\r\n .catch(function (error) {\r\n var errorMessage = \"Can't load the list of available queries.\\n \" + error.message;\r\n _this.throwError({\r\n action: EqAction.LoadQueryList,\r\n text: errorMessage,\r\n sourceError: error\r\n });\r\n });\r\n };\r\n EqContext.prototype.startQueryListLoading = function (options) {\r\n var _this = this;\r\n options = options || {};\r\n var queryStorage = this.eqServices.getQueryStorage();\r\n var queryListLoadingPromise = queryStorage.getQueryList(options);\r\n queryListLoadingPromise\r\n .then(function (queries) {\r\n if (options.success) {\r\n options.success(queries);\r\n }\r\n })\r\n .catch(function (error) {\r\n var errorMessage = \"Can't load the list of available queries.\\n \" + error.message;\r\n if (options.error) {\r\n options.error(errorMessage, 'LoadQueryList');\r\n }\r\n else {\r\n _this.throwError({\r\n action: EqAction.LoadQueryList,\r\n text: errorMessage,\r\n sourceError: error\r\n });\r\n }\r\n });\r\n };\r\n /**\r\n * Creates a new query and returns its content back to the client-side.\r\n * @param options\r\n * The content of the `options` parameter depends on `QueryStorage` implementation.\r\n * Usually it contains `success`, `error` callbacks and `silent` option\r\n * @example\r\n * context.newQuery({\r\n * silent: true\r\n * });\r\n */\r\n EqContext.prototype.newQuery = function (options) {\r\n var _this = this;\r\n options = options || {};\r\n var clearQuery = typeof options.clearQuery !== 'undefined' ? options.clearQuery : true;\r\n this.query.reset(clearQuery);\r\n if (options.queryId) {\r\n this.query.setId(options.queryId);\r\n }\r\n if (options.name) {\r\n this.query.setName(options.name);\r\n }\r\n var silent = options.silent || false;\r\n var useStorage = true;\r\n if (typeof options.useStorage !== 'undefined') {\r\n useStorage = options.useStorage;\r\n }\r\n var onNewQuery = function () {\r\n var query = _this.getQuery();\r\n query.isNewbie = true;\r\n if (!silent) {\r\n query.fireChangedEvent({\r\n part: QueryChangePart.All,\r\n wasModified: query.isModified()\r\n });\r\n }\r\n };\r\n if (useStorage) {\r\n this.startProcess({\r\n action: EqAction.NewQuery,\r\n text: 'New query creation...'\r\n }, WidgetGroup.Query);\r\n var queryStorage = this.eqServices.getQueryStorage();\r\n queryStorage.newQuery(options)\r\n .then(function (queryData) {\r\n if (queryData) {\r\n _this.query.loadFromData(queryData);\r\n }\r\n _this.endProcess({\r\n result: EqActionResult.Success,\r\n action: EqAction.NewQuery,\r\n text: 'A new query has been created'\r\n }, WidgetGroup.Query);\r\n onNewQuery();\r\n if (options.success) {\r\n options.success();\r\n }\r\n })\r\n .catch(function (error) {\r\n var errorMessage = \"Can't create a new query.\\n\" + error.message;\r\n _this.endProcess({\r\n result: EqActionResult.Error,\r\n action: EqAction.NewQuery,\r\n text: errorMessage,\r\n sourceError: error\r\n }, WidgetGroup.Query);\r\n if (options.error) {\r\n options.error(errorMessage, \"NewQuery\");\r\n }\r\n });\r\n }\r\n else {\r\n onNewQuery();\r\n }\r\n return this.query;\r\n };\r\n /**\r\n * Saves the current query to some storage on the server-side.\r\n * @param options\r\n * The content of the `options` parameter depends on `QueryStorage` implementation.\r\n * Usually it contains `success` and `error` callbacks\r\n */\r\n EqContext.prototype.saveQuery = function (options) {\r\n var _this = this;\r\n options = options || {};\r\n var query = this.getQuery();\r\n this.startProcess({\r\n action: EqAction.SaveQuery,\r\n text: 'Query saving: ' + query.getId()\r\n }, WidgetGroup.Query);\r\n var queryStorage = this.eqServices.getQueryStorage();\r\n queryStorage.saveQuery(options)\r\n .then(function (data) {\r\n _this.endProcess({\r\n action: EqAction.SaveQuery,\r\n result: EqActionResult.Success,\r\n text: \"Query saved: \" + query.getId()\r\n }, WidgetGroup.Query);\r\n if (data) {\r\n query.loadFromData(data);\r\n }\r\n query.resetModified();\r\n query.isNewbie = false;\r\n if (options.success) {\r\n options.success();\r\n }\r\n })\r\n .catch(function (error) {\r\n var errorMessage = \"Can't save query \" + query.getId() + \".\\n \" + error.message;\r\n _this.endProcess({\r\n action: EqAction.SaveQuery,\r\n result: EqActionResult.Error,\r\n text: errorMessage,\r\n sourceError: error\r\n }, WidgetGroup.Query);\r\n if (options.error) {\r\n options.error(errorMessage, EqAction.SaveQuery);\r\n }\r\n });\r\n };\r\n /**\r\n * Removes the current query from some storage on the server-side.\r\n * @param options\r\n * The content of the `options` parameter depends on `QueryStorage` implementation.\r\n * Usually it contains `success` and `error` callbacks\r\n */\r\n EqContext.prototype.removeQuery = function (options) {\r\n var _this = this;\r\n options = options || {};\r\n var query = this.getQuery();\r\n this.startProcess({\r\n action: EqAction.RemoveQuery,\r\n text: 'Query deleting: ' + query.getId()\r\n }, WidgetGroup.Query);\r\n var queryStorage = this.eqServices.getQueryStorage();\r\n queryStorage.removeQuery(options)\r\n .then(function () {\r\n query.reset();\r\n _this.endProcess({\r\n action: EqAction.RemoveQuery,\r\n result: EqActionResult.Success,\r\n text: \"Query deleted: \" + query.getId()\r\n }, WidgetGroup.Query);\r\n if (options.success) {\r\n options.success();\r\n }\r\n })\r\n .catch(function (error) {\r\n var errorMessage = \"Can't remove query \" + query.getId() + \".\\n \" + error.message;\r\n _this.endProcess({\r\n action: EqAction.RemoveQuery,\r\n result: EqActionResult.Error,\r\n text: errorMessage,\r\n sourceError: error\r\n }, WidgetGroup.Query);\r\n if (options.error) {\r\n options.error(errorMessage, 'RemoveQuery');\r\n }\r\n });\r\n };\r\n /**\r\n * Syncronizes the current query.\r\n * @param options\r\n * The content of the `options` parameter depends on `QuerySyncronizer` implementation.\r\n * Usually it contains `success` and `error` callbacks\r\n */\r\n EqContext.prototype.syncQuery = function (options) {\r\n var _this = this;\r\n options = options || {};\r\n var query = this.getQuery();\r\n if (this.beforeSyncQuery) {\r\n this.beforeSyncQuery(this, options);\r\n }\r\n this.startProcess({\r\n action: EqAction.SyncQuery,\r\n text: 'Query syncing: ' + query.getId()\r\n }, WidgetGroup.Query);\r\n var querySyncrhonizer = this.eqServices.getQuerySynchronizer();\r\n querySyncrhonizer.syncQuery(options)\r\n .then(function (result) {\r\n _this.endProcess({\r\n result: EqActionResult.Success,\r\n action: EqAction.SyncQuery,\r\n text: 'Query synced: ' + query.getId()\r\n }, WidgetGroup.Query);\r\n _this.resultStatement = result && result.statement\r\n ? result.statement\r\n : '';\r\n _this.refreshWidgets(WidgetGroup.Statement);\r\n if (result) {\r\n if (result.querySaved) {\r\n var q = result.query;\r\n if (q) {\r\n query.setId(q.id);\r\n query.setName(q.name);\r\n query.setDescription(q.desc);\r\n query.extraData = q.extraData;\r\n }\r\n query.resetModified();\r\n _this.refreshWidgets(WidgetGroup.QueryStatus);\r\n }\r\n _this.fireEvent('syncQuery');\r\n if (options.success) {\r\n options.success(result);\r\n }\r\n }\r\n })\r\n .catch(function (error) {\r\n var errorMessage = \"Can't synchronize query \" + query.getId() + \".\\n \" + error.message;\r\n _this.endProcess({\r\n result: EqActionResult.Error,\r\n action: EqAction.SyncQuery,\r\n text: errorMessage,\r\n sourceError: error\r\n }, WidgetGroup.Query);\r\n if (options.error) {\r\n options.error(errorMessage, 'SyncQuery');\r\n }\r\n });\r\n };\r\n EqContext.prototype.processQueryForTotals = function () {\r\n var cols = this.query.getUsedInTotalsColumns();\r\n cols.forEach(function (col) {\r\n if (col.sorting == SortDirection.None) {\r\n col.sorting = SortDirection.Ascending;\r\n }\r\n });\r\n cols = this.query.getColumns();\r\n SortDirection;\r\n cols.forEach(function (col, index) {\r\n col.sortIndex = index;\r\n });\r\n this.query.fireChangedEvent({\r\n part: QueryChangePart.Columns,\r\n wasModified: false\r\n });\r\n };\r\n /**\r\n * Fetches the data (usuall by executing current query) and processes the result.\r\n * @param options\r\n * The `options` parameter in addition to the options defined in ExecuteQueryOptions structure may also contain `success` and `error` callbacks.\r\n * @example\r\n * context.fetchData({ success: function(result) {\r\n * //do whatever you want with the result\r\n * }})\r\n *\r\n */\r\n EqContext.prototype.fetchData = function (options) {\r\n var _this = this;\r\n options = options || {};\r\n options.chunk = options.chunk ||\r\n {\r\n offset: 0,\r\n limit: this.resultTable.chunkSize,\r\n needTotal: true\r\n };\r\n if (!this.query.tryValidate({\r\n checkExpressions: true\r\n })) {\r\n return;\r\n }\r\n if (this.calcTotals && this.query.hasEnabledAggrColumns()) {\r\n this.processQueryForTotals();\r\n }\r\n this.fetchDataChunk(__assign({}, options, { success: function (result) {\r\n if (result.statement) {\r\n _this.resultStatement = result.statement;\r\n _this.refreshWidgets(WidgetGroup.Statement);\r\n }\r\n _this.resultContent = result;\r\n if (result.resultSet) {\r\n _this.resultTable.clear();\r\n var resultSet = result.resultSet;\r\n for (var _i = 0, _a = resultSet.cols; _i < _a.length; _i++) {\r\n var col = _a[_i];\r\n _this.resultTable.columns.add(col);\r\n }\r\n _this.resultTable.setTotal(result.meta.totalRecords);\r\n for (var _b = 0, _c = resultSet.rows; _b < _c.length; _b++) {\r\n var row = _c[_b];\r\n _this.resultTable.addRow(row);\r\n }\r\n }\r\n if (options.success) {\r\n options.success(result);\r\n }\r\n } }));\r\n };\r\n EqContext.prototype.getQueryFile = function (options) {\r\n var _this = this;\r\n var query = this.getQuery();\r\n this.startProcess({\r\n action: EqAction.GetQueryFile,\r\n text: 'Getting query file: ' + query.getId()\r\n }, WidgetGroup.Query);\r\n var queryFileLoader = this.getServices().getQueryFileLoader();\r\n queryFileLoader.getQueryFile(options)\r\n .then(function () {\r\n _this.endProcess({\r\n result: EqActionResult.Success,\r\n action: EqAction.GetQueryFile,\r\n text: 'Getting query file: ' + query.getId()\r\n }, WidgetGroup.Result);\r\n if (options.success) {\r\n options.success();\r\n }\r\n })\r\n .catch(function (error) {\r\n var errorMessage = \"Can't get file for query \" + query.getId() + \".\\n \" + error.message;\r\n _this.endProcess({\r\n result: EqActionResult.Error,\r\n action: EqAction.GetQueryFile,\r\n text: errorMessage,\r\n sourceError: error\r\n }, WidgetGroup.Query);\r\n if (options.error) {\r\n options.error(errorMessage, 'GetQueryFile');\r\n }\r\n });\r\n };\r\n EqContext.prototype.uploadQueryFile = function (options) {\r\n var _this = this;\r\n var query = this.getQuery();\r\n this.startProcess({\r\n action: EqAction.UploadQueryFile,\r\n text: 'Uploading query file: ' + query.getId()\r\n }, WidgetGroup.Query);\r\n var queryFileLoader = this.getServices().getQueryFileLoader();\r\n queryFileLoader.uploadQueryFile(options)\r\n .then(function (data) {\r\n query.loadFromData(data);\r\n _this.refreshWidgets();\r\n _this.endProcess({\r\n result: EqActionResult.Success,\r\n action: EqAction.UploadQueryFile,\r\n text: 'Uploading query file: ' + query.getId()\r\n }, WidgetGroup.Result);\r\n _this.fireEvent('loadQuery');\r\n if (options.success) {\r\n options.success();\r\n }\r\n })\r\n .catch(function (error) {\r\n var errorMessage = \"Can't upload a file for query \" + query.getId() + \".\\n \" + error.message;\r\n _this.endProcess({\r\n result: EqActionResult.Error,\r\n action: EqAction.UploadQueryFile,\r\n text: errorMessage,\r\n sourceError: error\r\n }, WidgetGroup.Query);\r\n if (options.error) {\r\n options.error(errorMessage, 'UploadQueryFile');\r\n }\r\n });\r\n };\r\n EqContext.prototype.fetchDataChunk = function (options) {\r\n var _this = this;\r\n if (this.beforeFetchData) {\r\n this.beforeFetchData(this, options);\r\n }\r\n var queryId = this.getQuery().getId();\r\n this.startProcess({\r\n action: EqAction.FetchData,\r\n text: 'Fetching data for query: ' + queryId\r\n }, WidgetGroup.Result);\r\n var queryExecutor = this.eqServices.getDataFetcher();\r\n queryExecutor.fetchData(options)\r\n .then(function (result) {\r\n if (result.statement) {\r\n _this.resultStatement = result.statement;\r\n }\r\n _this.resultContent = result;\r\n if (_this.calcTotals && _this.query.hasEnabledAggrColumns()) {\r\n var calculator = _this.getServices().getTotalCalculator();\r\n calculator.calculate({\r\n maxLevel: _this.query.getColumns()\r\n .filter(function (col) { return col.expr.tag == ExprTag.EntityAttribute\r\n && col.enabled; }).length\r\n });\r\n }\r\n _this.endProcess({\r\n result: EqActionResult.Success,\r\n action: EqAction.FetchData,\r\n text: 'Data fetching finished for query: ' + queryId\r\n }, WidgetGroup.Result);\r\n _this.fireEvent('fetchData');\r\n if (options.success) {\r\n options.success(result);\r\n }\r\n })\r\n .catch(function (error) {\r\n var errorMessage = \"Data fetching error for query \" + queryId + \". \\n\" + error.message;\r\n _this.endProcess({\r\n result: EqActionResult.Error,\r\n action: EqAction.FetchData,\r\n text: errorMessage,\r\n sourceError: error\r\n }, WidgetGroup.Result);\r\n if (options.error) {\r\n options.error(errorMessage, EqAction.FetchData);\r\n }\r\n });\r\n };\r\n /**\r\n * Fetches the data for a drill-down query (if defined) and processes the result.\r\n * @param options\r\n */\r\n EqContext.prototype.fetchDrillDownData = function (options) {\r\n var _this = this;\r\n options = options || {};\r\n options.chunk = options.chunk ||\r\n {\r\n offset: 0,\r\n limit: this.resultTable.chunkSize,\r\n needTotal: true\r\n };\r\n var query = options.query;\r\n var queryId = query.getId();\r\n this.startProcess({\r\n action: EqAction.FetchData,\r\n text: 'DrillDown executing: ' + queryId\r\n }, WidgetGroup.Result);\r\n var queryExecutor = this.eqServices.getDataFetcher();\r\n queryExecutor.fetchData(options)\r\n .then(function (result) {\r\n _this.endProcess({\r\n result: EqActionResult.Success,\r\n action: EqAction.FetchData,\r\n text: 'DrillDown execution error: ' + queryId\r\n }, WidgetGroup.Result);\r\n if (options.success) {\r\n options.success(result);\r\n }\r\n })\r\n .catch(function (error) {\r\n var errorMessage = \"Drill-down data fetching error for query \" + queryId + \". \\n\" + error.message;\r\n _this.endProcess({\r\n result: EqActionResult.Error,\r\n action: EqAction.FetchData,\r\n text: errorMessage,\r\n }, WidgetGroup.Result);\r\n if (options.error) {\r\n options.error(errorMessage, 'DrillDown');\r\n }\r\n else {\r\n _this.throwError({\r\n action: EqAction.FetchData,\r\n text: errorMessage\r\n });\r\n }\r\n });\r\n };\r\n /**\r\n * Fetches the data for defined by this context and exports them to the specified format.\r\n * @param options\r\n * The content of the `options` parameter depends on `EqExporter` implementation.\r\n * Usually it contains `format` property which defines the format of the exported data (e.g. `csv`),\r\n * and `success` and `error` callbacks\r\n * @example\r\n * context.exportResult({\r\n * format: csv\r\n * });\r\n *\r\n */\r\n EqContext.prototype.exportResult = function (options) {\r\n var _this = this;\r\n options = options || {};\r\n if (this.beforeExportResult) {\r\n this.beforeExportResult(this, options);\r\n }\r\n var format = options.format;\r\n if (format) {\r\n var exporter = this.getExporter(format);\r\n if (exporter) {\r\n var queryId_1 = this.getQuery().getId();\r\n this.startProcess({\r\n action: EqAction.ExportResult,\r\n text: 'Exporting result for query: ' + queryId_1\r\n }, WidgetGroup.Result);\r\n var localeSettings = i18n.getLocaleSettings();\r\n options.settings = localeSettings;\r\n exporter.export(options)\r\n .then(function (result) {\r\n _this.endProcess({\r\n result: EqActionResult.Success,\r\n action: EqAction.ExportResult,\r\n text: \"The result set for query [\" + queryId_1 + \"] has been successfully exported\"\r\n }, WidgetGroup.Result);\r\n _this.fireEvent('exportResult');\r\n if (options.success) {\r\n options.success();\r\n }\r\n })\r\n .catch(function (error) {\r\n var errorMessage = \"Error on exporting data for query \" + queryId_1 + \". \\n\" + error.message;\r\n _this.endProcess({\r\n result: EqActionResult.Error,\r\n action: EqAction.ExportResult,\r\n text: errorMessage,\r\n sourceError: error\r\n }, WidgetGroup.Result);\r\n if (options.error) {\r\n options.error(errorMessage, 'ExportResult');\r\n }\r\n });\r\n }\r\n }\r\n };\r\n EqContext.prototype.getDefaultTotalsSettings = function () {\r\n var aggr = this.getQuery().getAggregatedColumns();\r\n if (aggr.length === 0)\r\n return { calcGrandTotals: false, cols: {} };\r\n var model = this.getModel();\r\n var settings = {\r\n calcGrandTotals: true,\r\n cols: {}\r\n };\r\n var cols = this.getQuery().getUsedInTotalsColumns();\r\n var prevEntity;\r\n cols.forEach(function (col, index) {\r\n settings.cols[col.id] = {};\r\n var attr = model.getAttributeById(col.expr.value);\r\n var entity = attr.entity;\r\n if (prevEntity === entity) {\r\n settings.cols[cols[index - 1].id].calcSubTotals = false;\r\n }\r\n settings.cols[col.id].calcSubTotals = true;\r\n prevEntity = entity;\r\n });\r\n return settings;\r\n };\r\n EqContext.prototype.getTotalsSettings = function () {\r\n var settings = dataUtils.assign(this.getDefaultTotalsSettings(), this.query.innerData.totalsSettings);\r\n if (this.wereTotalsColumnsChanged(settings)) {\r\n settings.cols = this.getDefaultTotalsSettings().cols;\r\n }\r\n return settings;\r\n };\r\n EqContext.prototype.setTotalsSettings = function (settings, silent) {\r\n if (silent === void 0) { silent = false; }\r\n this.query.innerData.totalsSettings = settings;\r\n if (!silent) {\r\n this.query.fireChangedEvent({\r\n part: QueryChangePart.Properties,\r\n wasModified: true\r\n });\r\n }\r\n };\r\n EqContext.prototype.wereTotalsColumnsChanged = function (settings) {\r\n settings = settings || this.query.innerData.totalsSettings;\r\n var cols = this.query.getUsedInTotalsColumns();\r\n var sCols = settings.cols || {};\r\n if (cols.length != Object.keys(sCols).length)\r\n return true;\r\n for (var _i = 0, cols_1 = cols; _i < cols_1.length; _i++) {\r\n var col = cols_1[_i];\r\n if (typeof sCols[col.id] === 'undefined')\r\n return true;\r\n }\r\n var aggrs = this.query.getAggregatedColumns();\r\n if (aggrs.length === 0)\r\n return true;\r\n return false;\r\n };\r\n return EqContext;\r\n}());\r\nexport { EqContext };\r\n//# sourceMappingURL=context.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/core/dist/lib/main/context.js\n// module id = 373\n// module chunks = 0","import { utils } from '@easydata/core';\r\n/**\r\n * Represents a widget - a visual element with \"knows\" how to render itself.\r\n * Some widgets just display some information from the context (like the generated SQL or the result set).\r\n * Others - allow user to interact with them to define query conditions or columns.\r\n */\r\nvar Widget = /** @class */ (function () {\r\n /**\r\n Initializes a new instance of the `Widget` class\r\n * @param slot - an HTML element in which we should place our widget.\r\n */\r\n function Widget(slot) {\r\n this.slot = slot;\r\n this._id = utils.generateId(this.getWidgetType());\r\n }\r\n Object.defineProperty(Widget.prototype, \"id\", {\r\n get: function () {\r\n return this._id;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Initializes the widget and assign it to some context\r\n * @param context\r\n * @param options\r\n */\r\n Widget.prototype.init = function (context, options) {\r\n this.context = context;\r\n };\r\n /**\r\n * Returns current context (the one this widget belongs to)\r\n */\r\n Widget.prototype.getContext = function () {\r\n return this.context;\r\n };\r\n /**\r\n * Refreshes the widget's content\r\n */\r\n Widget.prototype.refresh = function () {\r\n this.refreshCore();\r\n };\r\n /**\r\n * This function is called from `refresh` function.\r\n * It does nothing in the base `Widget` class\r\n * but can be overridden in derived classes\r\n * to implement the functionality specific for a particular widget\r\n */\r\n Widget.prototype.refreshCore = function () {\r\n };\r\n /**\r\n * This function is called on the start of some process this widget participates in.\r\n * For example, some widgets can show a spinner or a progress bar\r\n * at the beginning of some long process (e.g. model loading).\r\n */\r\n Widget.prototype.onProcessStart = function () {\r\n this.onProcessStartCore();\r\n };\r\n /**\r\n * This function is called from `onProcessStart` function.\r\n * It does nothing in the base `Widget` class\r\n * but can be overridden in derived classes\r\n * to implement the functionality specific for a particular widget.\r\n */\r\n Widget.prototype.onProcessStartCore = function () {\r\n };\r\n /**\r\n * This function is called on the end of some process this widget participates in.\r\n * For example, some widgets should be updated on model loading\r\n * or after the execution of the current query\r\n */\r\n Widget.prototype.onProcessEnd = function () {\r\n this.onProcessEndCore();\r\n };\r\n /**\r\n * This function is called from `onProcessEnd` function.\r\n * It does nothing in the base `Widget` class\r\n * but can be overridden in derived classes\r\n * to implement the functionality specific for a particular widget.\r\n */\r\n Widget.prototype.onProcessEndCore = function () {\r\n };\r\n /**\r\n * Returns `true` if the widget belongs to one of the groups specified in the parameter\r\n * @param groups\r\n */\r\n Widget.prototype.belongsToGroup = function (groups) {\r\n if (typeof groups != 'undefined' && groups != null) {\r\n if ((groups & this.group) === 0)\r\n return false;\r\n }\r\n return true;\r\n };\r\n Widget.prototype.destroy = function () {\r\n this.destroyCore();\r\n };\r\n Widget.prototype.destroyCore = function () {\r\n };\r\n return Widget;\r\n}());\r\nexport { Widget };\r\n//# sourceMappingURL=widget.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/core/dist/lib/main/widget.js\n// module id = 374\n// module chunks = 0","var EqVersionInfo = /** @class */ (function () {\r\n function EqVersionInfo(major, minor, update) {\r\n this.major = major;\r\n this.minor = minor;\r\n this.update = update;\r\n }\r\n EqVersionInfo.prototype.toString = function () {\r\n return this.major + \".\" + this.minor + \".\" + this.update;\r\n };\r\n return EqVersionInfo;\r\n}());\r\nexport var versionInfo = new EqVersionInfo(6, 2, 0);\r\n//# sourceMappingURL=version_info.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/core/dist/lib/utils/version_info.js\n// module id = 375\n// module chunks = 0","import { i18n } from '@easydata/core';\r\nfunction addEasyQueryCoreTexts() {\r\n i18n.updateDefaultTexts({\r\n NewQueryName: '[New query]',\r\n //DateTime macroses\r\n Today: 'Today',\r\n Yesterday: 'Yesterday',\r\n Tomorrow: 'Tomorrow',\r\n FirstDayOfMonth: 'First day of the month',\r\n LastDayOfMonth: 'Last day of the month',\r\n FirstDayOfWeek: 'First day of the week',\r\n FirstDayOfYear: 'First day of the year',\r\n FirstDayOfNextWeek: 'First day of the next week',\r\n FirstDayOfNextMonth: 'First day of the next month',\r\n FirstDayOfNextYear: 'First day of the next year',\r\n Now: 'Now',\r\n HourStart: 'This hour start',\r\n Midnight: 'Midnight',\r\n Noon: 'Noon',\r\n Entities: {},\r\n Attributes: {},\r\n Operators: {},\r\n AggreateFunctions: {}\r\n });\r\n}\r\naddEasyQueryCoreTexts();\r\n//# sourceMappingURL=text_resources.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/core/dist/lib/i18n/text_resources.js\n// module id = 376\n// module chunks = 0","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport { EventEmitter, DataRow, utils, i18n } from '@easydata/core';\r\nimport { eqDragManager, DropEffect } from '../utils/drag_manager';\r\nimport { domel } from '../utils/dom_elem_builder';\r\nimport { getElementAbsolutePos, eqCssPrefix } from '../utils/ui-utils';\r\nimport { GridColumnList, GridColumnAlign } from './easy_grid_columns';\r\nimport { GridCellRendererStore } from './easy_grid_cell_renderer';\r\nvar DEFAULT_ROW_HEIGHT = 36;\r\nvar DEFAULT_ROW_COUNT = 15;\r\nvar EasyGrid = /** @class */ (function () {\r\n function EasyGrid(options) {\r\n this.cssPrefix = \"keg\";\r\n this.pagination = { page: 1, pageSize: 30, total: 0 };\r\n this.paginationOptions = {\r\n maxButtonCount: 10,\r\n useBootstrap: false //true\r\n };\r\n this.defaultDataGridOptions = {\r\n slot: null,\r\n dataTable: null,\r\n fixHeightOnFirstRender: false,\r\n syncGridColumns: true,\r\n useRowNumeration: true,\r\n allowDragDrop: false,\r\n totals: {\r\n calcGrandTotals: false,\r\n calculator: null\r\n },\r\n paging: {\r\n enabled: true,\r\n pageSize: 30\r\n },\r\n addColumns: false,\r\n viewportRowsCount: null,\r\n showActiveRow: true\r\n };\r\n this.rowsOnPagePromise = null;\r\n this.containerInitialHeight = 0;\r\n this.firstRender = true;\r\n this.prevRowTotals = null;\r\n this.landingIndex = -1;\r\n this.landingSlot = domel('div')\r\n .addClass(this.cssPrefix + \"-col-landing-slot\")\r\n .addChildElement(domel('div')\r\n .toDOM())\r\n .toDOM();\r\n this._activeRowIndex = -1;\r\n if (options && options.paging) {\r\n options.paging = utils.assign(this.defaultDataGridOptions.paging, options.paging);\r\n }\r\n this.options = __assign({}, this.defaultDataGridOptions, options);\r\n if (!this.options.slot)\r\n throw Error('\"slot\" parameter is required to initialize EasyDataGrid');\r\n if (!this.options.dataTable)\r\n throw Error('\"dataTable\" parameter is required to initialize EasyDataGrid');\r\n this.dataTable = options.dataTable;\r\n this.eventEmitter = new EventEmitter(this);\r\n this.cellRendererStore = new GridCellRendererStore(options);\r\n this.columns = new GridColumnList(this.dataTable.columns, this);\r\n this.setSlot(this.options.slot);\r\n this.init(this.options);\r\n }\r\n EasyGrid.prototype.setSlot = function (slot) {\r\n if (typeof slot === 'string') {\r\n if (slot.length) {\r\n if (slot[0] === '#') {\r\n this.slot = document.getElementById(slot.substring(1));\r\n }\r\n else if (slot[0] === '.') {\r\n var result = document.getElementsByClassName(slot.substring(1));\r\n if (result.length)\r\n this.slot = result[0];\r\n }\r\n else {\r\n throw Error('Unrecognized slot parameter ' +\r\n '(Must be id, class or HTMLElement): ' + slot);\r\n }\r\n }\r\n }\r\n else {\r\n this.slot = slot;\r\n }\r\n };\r\n EasyGrid.prototype.init = function (options) {\r\n var _this = this;\r\n if (options.onInit) {\r\n this.addEventListener('init', options.onInit);\r\n }\r\n if (options.onRowClick) {\r\n this.addEventListener('rowClick', options.onRowClick);\r\n }\r\n if (options.onRowDbClick) {\r\n this.addEventListener('rowDbClick', options.onRowDbClick);\r\n }\r\n if (options.onAddColumnClick) {\r\n this.addEventListener('addColumnClick', options.onAddColumnClick);\r\n }\r\n if (options.onColumnChanged) {\r\n this.addEventListener('columnChanged', options.onColumnChanged);\r\n }\r\n if (options.onColumnDeleted) {\r\n this.addEventListener('columnDeleted', options.onColumnDeleted);\r\n }\r\n if (options.onColumnMoved) {\r\n this.addEventListener('columnMoved', options.onColumnMoved);\r\n }\r\n if (options.onPageChanged) {\r\n this.addEventListener('pageChanged', options.onPageChanged);\r\n }\r\n if (options.onActiveRowChanged) {\r\n this.addEventListener('activeRowChanged', options.onActiveRowChanged);\r\n }\r\n this.addEventListener('pageChanged', function (ev) { return _this.activeRowIndex = -1; });\r\n utils.assignDeep(this.paginationOptions, options.pagination);\r\n this.pagination.pageSize = this.options.paging.pageSize\r\n || this.pagination.pageSize;\r\n if (this.options.allowDragDrop) {\r\n eqDragManager.registerDropContainer({\r\n element: this.slot,\r\n scopes: [\"gridColumnMove\"],\r\n onDragEnter: function (_, ev) {\r\n _this.slot.classList.add(eqCssPrefix + \"-drophover\");\r\n _this.showLandingSlot(ev.pageX, ev.pageY);\r\n },\r\n onDragOver: function (_, ev) {\r\n _this.showLandingSlot(ev.pageX, ev.pageY);\r\n },\r\n onDragLeave: function (_, ev) {\r\n ev.dropEffect = DropEffect.Forbid;\r\n _this.slot.classList.remove(eqCssPrefix + \"-drophover\");\r\n _this.hideLandingSlot();\r\n },\r\n onDrop: function (_, ev) {\r\n _this.dataTable.columns.move(ev.data.column, _this.landingIndex);\r\n _this.refresh();\r\n _this.fireEvent({\r\n type: 'columnMoved',\r\n columnId: ev.data.column.id,\r\n newIndex: _this.landingIndex\r\n });\r\n }\r\n });\r\n }\r\n this.refresh();\r\n this.fireEvent('init');\r\n };\r\n EasyGrid.prototype.fireEvent = function (event) {\r\n if (typeof event === \"string\") {\r\n this.eventEmitter.fire(event);\r\n }\r\n else {\r\n this.eventEmitter.fire(event.type, event);\r\n }\r\n };\r\n EasyGrid.prototype.setData = function (data) {\r\n this.dataTable = data;\r\n this.clear();\r\n this.refresh();\r\n };\r\n EasyGrid.prototype.getData = function () {\r\n return this.dataTable;\r\n };\r\n EasyGrid.prototype.getColumns = function () {\r\n return this.columns;\r\n };\r\n EasyGrid.prototype.destroy = function () {\r\n this.slot.innerHTML = \"\";\r\n };\r\n EasyGrid.prototype.refresh = function () {\r\n this.clearDOM();\r\n this.render();\r\n };\r\n EasyGrid.prototype.clearDOM = function () {\r\n this.slot.innerHTML = '';\r\n };\r\n EasyGrid.prototype.clear = function () {\r\n this.pagination.page = 1;\r\n this.clearDOM();\r\n };\r\n EasyGrid.prototype.render = function () {\r\n var _this = this;\r\n if (!this.hasData() && !this.options.addColumns)\r\n return;\r\n this.containerInitialHeight = this.slot.clientHeight;\r\n this.rootDiv = document.createElement('div');\r\n this.rootDiv.style.width = '100%';\r\n this.rootDiv.classList.add(this.cssPrefix + \"-root\");\r\n this.columns.sync(this.dataTable.columns, this.options.useRowNumeration);\r\n this.renderHeader();\r\n this.rootDiv.appendChild(this.headerDiv);\r\n this.renderBody();\r\n this.rootDiv.appendChild(this.bodyDiv);\r\n this.renderFooter();\r\n this.rootDiv.appendChild(this.footerDiv);\r\n var gridContainer = document.createElement('div');\r\n gridContainer.classList.add(this.cssPrefix + \"-container\");\r\n gridContainer.appendChild(this.rootDiv);\r\n this.slot.appendChild(gridContainer);\r\n if (this.rowsOnPagePromise) {\r\n this.rowsOnPagePromise\r\n .then(function () { return _this.updateHeight(); })\r\n .then(function () {\r\n _this.firstRender = false;\r\n _this.rowsOnPagePromise = null;\r\n });\r\n }\r\n else {\r\n setTimeout(function () {\r\n _this.updateHeight();\r\n _this.firstRender = false;\r\n }, 100);\r\n }\r\n };\r\n EasyGrid.prototype.updateHeight = function () {\r\n var _this = this;\r\n return new Promise(function (resolve) {\r\n if (_this.options.viewportRowsCount) {\r\n var firstRow = _this.bodyCellContainerDiv.firstElementChild;\r\n var rowHeight = firstRow ? firstRow.offsetHeight : DEFAULT_ROW_HEIGHT;\r\n var rowCount = _this.options.viewportRowsCount; // || DEFAULT_ROW_COUNT;\r\n var bodyHeight_1 = rowHeight * rowCount;\r\n domel(_this.bodyDiv)\r\n .setStyle('height', bodyHeight_1 + \"px\");\r\n setTimeout(function () {\r\n var sbHeight = _this.bodyViewportDiv.offsetHeight - _this.bodyViewportDiv.clientHeight;\r\n bodyHeight_1 = bodyHeight_1 + sbHeight;\r\n domel(_this.bodyDiv)\r\n .setStyle('height', bodyHeight_1 + \"px\");\r\n resolve();\r\n }, 100);\r\n return;\r\n }\r\n else if (_this.containerInitialHeight > 0) {\r\n // const bodyHeight = this.containerInitialHeight - this.headerDiv.offsetHeight - this.footerDiv.offsetHeight;\r\n // domel(this.bodyDiv)\r\n // .setStyle('height', `${bodyHeight}px`);\r\n }\r\n resolve();\r\n })\r\n .then(function () {\r\n if (_this.options.fixHeightOnFirstRender && _this.firstRender) {\r\n _this.slot.style.height = _this.slot.offsetHeight + \"px\";\r\n }\r\n });\r\n };\r\n EasyGrid.prototype.renderHeader = function () {\r\n var _this = this;\r\n this.headerDiv = domel('div')\r\n .addClass(this.cssPrefix + \"-header\")\r\n .toDOM();\r\n this.headerViewportDiv = domel('div', this.headerDiv)\r\n .addClass(this.cssPrefix + \"-header-viewport\")\r\n .toDOM();\r\n this.headerCellContainerDiv = domel('div', this.headerViewportDiv)\r\n .addClass(this.cssPrefix + \"-header-cell-container\")\r\n .toDOM();\r\n this.headerRowDiv = domel('div', this.headerCellContainerDiv)\r\n .addClass(this.cssPrefix + \"-header-row\")\r\n .toDOM();\r\n this.columns.getItems().forEach(function (column, index) {\r\n if (!column.isVisible) {\r\n return;\r\n }\r\n var hd = _this.renderColumnHeader(column, index);\r\n _this.headerRowDiv.appendChild(hd);\r\n if (column.isRowNum) {\r\n domel(hd)\r\n .addChildElement(_this.renderAddColumnButton());\r\n }\r\n });\r\n var containerWidth = this.columns.getItems().map(function (column) { return column.width; }).reduce(function (sum, current) { return sum + current; });\r\n domel(this.headerCellContainerDiv)\r\n .setStyle('width', containerWidth + \"px\");\r\n };\r\n EasyGrid.prototype.hasData = function () {\r\n return this.dataTable.columns.count > 0;\r\n };\r\n EasyGrid.prototype.renderColumnHeader = function (column, index) {\r\n var _this = this;\r\n var colBuilder = domel('div')\r\n .addClass(this.cssPrefix + \"-header-cell\")\r\n .data('col-idx', \"\" + (index + 1))\r\n .setStyle('width', column.width + \"px\");\r\n if (column.dataColumn) {\r\n colBuilder\r\n .data('col-id', \"\" + column.dataColumn.id);\r\n }\r\n var colDiv = colBuilder.toDOM();\r\n domel('div', colDiv)\r\n .addClass(this.cssPrefix + \"-header-cell-resize\");\r\n if (!column.isRowNum) {\r\n domel('div', colDiv)\r\n .addClass(this.cssPrefix + \"-header-cell-label\")\r\n .text(column.label);\r\n }\r\n if (this.options.allowDragDrop) {\r\n eqDragManager.registerDraggableItem({\r\n element: colDiv,\r\n scope: \"gridColumnMove\",\r\n data: { column: column },\r\n renderer: function (dragImage) {\r\n dragImage.innerHTML = '';\r\n var attrLabel = document.createElement('div');\r\n attrLabel.innerText = column.label;\r\n dragImage.classList.add(_this.cssPrefix + \"-sortable-helper\");\r\n dragImage.appendChild(attrLabel);\r\n },\r\n onDragStart: function (ev) {\r\n ev.dropEffect = DropEffect.Allow;\r\n }\r\n });\r\n }\r\n return colDiv;\r\n };\r\n EasyGrid.prototype.renderBody = function () {\r\n var _this = this;\r\n this.bodyDiv = domel('div')\r\n .addClass(this.cssPrefix + \"-body\")\r\n .toDOM();\r\n this.bodyViewportDiv = domel('div', this.bodyDiv)\r\n .addClass(this.cssPrefix + \"-body-viewport\")\r\n .attr('tabIndex', '0')\r\n .toDOM();\r\n this.bodyCellContainerDiv = domel('div', this.bodyViewportDiv)\r\n .addClass(this.cssPrefix + \"-cell-container\")\r\n .toDOM();\r\n if (this.dataTable) {\r\n this.showProgress();\r\n this.rowsOnPagePromise = this.getRowsToRender()\r\n .then(function (rows) {\r\n _this.hideProgress();\r\n //prevent double rendering (bad solution, we have to figure out how to avoid this behavior properly)\r\n _this.bodyCellContainerDiv.innerHTML = '';\r\n _this.prevRowTotals = null;\r\n if (rows.length) {\r\n var calcTotals_1 = _this.calcTotals();\r\n var keyCols_1 = _this.getTotalsKeyCols();\r\n rows.forEach(function (row, index) {\r\n if (calcTotals_1)\r\n _this.updateTotalsState(keyCols_1, row);\r\n var tr = _this.renderRow(row, index);\r\n _this.bodyCellContainerDiv.appendChild(tr);\r\n });\r\n var showGrandTotalsOnEachPage = _this.options.totals && _this.options.totals.showGrandTotalsOnEachPage;\r\n if (calcTotals_1 && (_this.isLastPage() || showGrandTotalsOnEachPage)) {\r\n var row = new DataRow(_this.dataTable.columns, new Array(_this.dataTable.columns.count));\r\n _this.updateTotalsState(keyCols_1, row, true);\r\n }\r\n }\r\n var containerWidth = _this.columns.getItems()\r\n .map(function (column) { return column.width; }).reduce(function (sum, current) { return sum + current; });\r\n domel(_this.bodyCellContainerDiv)\r\n .setStyle('width', containerWidth + \"px\");\r\n return rows.length;\r\n })\r\n .catch(function (error) { console.error(error); return 0; });\r\n }\r\n this.bodyViewportDiv.addEventListener('scroll', function (ev) {\r\n domel(_this.headerViewportDiv)\r\n .setStyle('margin-left', \"-\" + _this.bodyViewportDiv.scrollLeft + \"px\");\r\n });\r\n this.bodyViewportDiv.addEventListener('keydown', this.onVieportKeydown.bind(this));\r\n };\r\n EasyGrid.prototype.isLastPage = function () {\r\n return this.pagination.page * this.pagination.pageSize >= this.pagination.total;\r\n };\r\n EasyGrid.prototype.calcTotals = function () {\r\n return this.options.totals\r\n && (this.options.totals.calcGrandTotals || this.calcSubTotalsCols())\r\n && this.dataTable.columns.getItems()\r\n .filter(function (col) { return col.isAggr; }).length > 0;\r\n };\r\n EasyGrid.prototype.calcSubTotalsCols = function () {\r\n return this.options.totals.cols && Object.values(this.options.totals.cols)\r\n .map(function (val) { return val.calcSubTotals; })\r\n .reduce(function (prev, value) {\r\n return prev || value;\r\n }, false);\r\n };\r\n EasyGrid.prototype.getTotalsKeyCols = function () {\r\n var keyCols = this.dataTable.columns.getItems()\r\n .filter(function (col) { return !col.isAggr; });\r\n keyCols.pop();\r\n return keyCols;\r\n };\r\n EasyGrid.prototype.updateTotalsState = function (keyCols, newRow, isLast) {\r\n if (isLast === void 0) { isLast = false; }\r\n if (this.prevRowTotals && this.calcSubTotalsCols()) {\r\n var changeLevel = -1;\r\n for (var i = 0; i < keyCols.length; i++) {\r\n var col = keyCols[i];\r\n if (this.prevRowTotals.getValue(col.id) !== newRow.getValue(col.id)) {\r\n changeLevel = i;\r\n break;\r\n }\r\n }\r\n if (changeLevel != -1) {\r\n var totalsOpts = this.options.totals;\r\n for (var i = keyCols.length; i > changeLevel; i--) {\r\n var col = keyCols[i - 1];\r\n var totalColOpts = totalsOpts.cols ? totalsOpts.cols[col.id] : null;\r\n if (!totalColOpts || !totalColOpts.calcSubTotals)\r\n continue;\r\n var row = new DataRow(this.dataTable.columns, this.prevRowTotals.toArray());\r\n var tr = this.renderTotalsRow(i, row);\r\n this.bodyCellContainerDiv.appendChild(tr);\r\n }\r\n }\r\n }\r\n if (isLast && this.options.totals.calcGrandTotals) {\r\n var tr = this.renderTotalsRow(0, newRow);\r\n this.bodyCellContainerDiv.appendChild(tr);\r\n }\r\n this.prevRowTotals = newRow;\r\n };\r\n EasyGrid.prototype.renderTotalsRow = function (level, row) {\r\n var _this = this;\r\n var rowBuilder = domel('div')\r\n .addClass(this.cssPrefix + \"-row\")\r\n .addClass(this.cssPrefix + \"-row-totals\")\r\n .addClass(this.cssPrefix + \"-totals-lv\" + level)\r\n .data('totals-level', \"\" + level)\r\n .attr('tabindex', '-1');\r\n var rowElement = rowBuilder.toDOM();\r\n this.columns.getItems().forEach(function (column, index) {\r\n if (!column.isVisible) {\r\n return;\r\n }\r\n var colIndex = column.isRowNum ? -1 : _this.dataTable.columns.getIndex(column.dataColumn.id);\r\n var val = (colIndex == level || level == 0 && colIndex == 0) ? _this.getTotalsTitle(level) : '';\r\n if (colIndex == _this.dataTable.columns.count - 1) {\r\n val = 'Calculating...';\r\n }\r\n rowElement.appendChild(_this.renderCell(column, colIndex, val, rowElement));\r\n });\r\n var totals = this.options.totals.calculator.getTotals();\r\n totals.fillTotals(level, row)\r\n .then(function () {\r\n rowElement.innerHTML = '';\r\n _this.columns.getItems().forEach(function (column, index) {\r\n if (!column.isVisible) {\r\n return;\r\n }\r\n var colIndex = column.isRowNum ? -1 : _this.dataTable.columns.getIndex(column.dataColumn.id);\r\n var val = (colIndex == level || level == 0 && colIndex == 0) ? _this.getTotalsTitle(level) : '';\r\n if (!column.isRowNum && column.dataColumn.isAggr) {\r\n val = row.getValue(colIndex);\r\n }\r\n rowElement.appendChild(_this.renderCell(column, colIndex, val, rowElement));\r\n });\r\n })\r\n .catch(function (error) { return console.error(error); });\r\n return rowElement;\r\n };\r\n EasyGrid.prototype.getTotalsTitle = function (level) {\r\n return (level) ? 'Sub totals: ' : 'Grand totals: ';\r\n };\r\n EasyGrid.prototype.onVieportKeydown = function (ev) {\r\n if (this.options.showActiveRow) {\r\n var rowCount = this.bodyCellContainerDiv.querySelectorAll(\".\" + this.cssPrefix + \"-row\").length;\r\n var newValue = void 0;\r\n switch (ev.key) {\r\n case 'ArrowLeft':\r\n break;\r\n case 'ArrowRight':\r\n break;\r\n case 'ArrowUp':\r\n ev.preventDefault();\r\n newValue = this.activeRowIndex < 0 || this.activeRowIndex >= rowCount ? rowCount - 1 : this.activeRowIndex - 1;\r\n this.activeRowIndex = newValue >= 0 ? newValue : 0;\r\n break;\r\n case 'ArrowDown':\r\n ev.preventDefault();\r\n newValue = this.activeRowIndex < 0 || this.activeRowIndex >= rowCount ? 0 : this.activeRowIndex + 1;\r\n this.activeRowIndex = newValue < rowCount ? newValue : rowCount - 1;\r\n break;\r\n }\r\n }\r\n };\r\n EasyGrid.prototype.ensureRowVisibility = function (rowOrIndex) {\r\n var row = typeof rowOrIndex === 'number'\r\n ? this.getDataRow(rowOrIndex)\r\n : rowOrIndex;\r\n if (row) {\r\n var rowRect = row.getBoundingClientRect();\r\n var viewportRect = this.bodyViewportDiv.getBoundingClientRect();\r\n var rowTop = rowRect.top - viewportRect.top;\r\n var rowBottom = rowRect.bottom - viewportRect.top;\r\n var viewportHeight = this.bodyViewportDiv.clientHeight;\r\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\r\n if (rowTop > 0 &&\r\n rowBottom <= viewportHeight &&\r\n rowRect.top > 0 &&\r\n rowRect.bottom < windowHeight) {\r\n return;\r\n }\r\n if (rowTop < 0) {\r\n this.bodyViewportDiv.scrollTop = this.bodyViewportDiv.scrollTop + rowTop;\r\n }\r\n else if (rowBottom > viewportHeight) {\r\n this.bodyViewportDiv.scrollTop = this.bodyViewportDiv.scrollTop + rowBottom - viewportHeight;\r\n }\r\n rowRect = row.getBoundingClientRect();\r\n if (rowRect.top < 0) {\r\n document.documentElement.scrollTop = document.documentElement.scrollTop + rowRect.top;\r\n }\r\n else if (rowRect.bottom > windowHeight) {\r\n document.documentElement.scrollTop = document.documentElement.scrollTop + rowRect.bottom - windowHeight;\r\n }\r\n }\r\n };\r\n EasyGrid.prototype.getRowsToRender = function () {\r\n if (this.options.paging.enabled === false) {\r\n return Promise.resolve(this.dataTable.getCachedRows());\r\n }\r\n return this.dataTable.getRows({\r\n page: this.pagination.page,\r\n pageSize: this.pagination.pageSize\r\n })\r\n .catch(function (error) {\r\n console.error(error);\r\n return [];\r\n });\r\n };\r\n EasyGrid.prototype.renderFooter = function () {\r\n this.footerDiv = domel('div')\r\n .addClass(this.cssPrefix + \"-footer\")\r\n .toDOM();\r\n this.footerPaginateDiv = this.renderPageNavigator();\r\n this.footerDiv.appendChild(this.footerPaginateDiv);\r\n var pageInfoBlock = this.renderPageInfoBlock();\r\n this.footerDiv.appendChild(pageInfoBlock);\r\n };\r\n EasyGrid.prototype.renderPageInfoBlock = function () {\r\n var _this = this;\r\n var pageInfoDiv = domel('div')\r\n .addClass(this.cssPrefix + \"-page-info\")\r\n .toDOM();\r\n if (this.rowsOnPagePromise) {\r\n this.rowsOnPagePromise.then(function (count) {\r\n var fistPageRecordNum = count ? (_this.pagination.page - 1) * _this.pagination.pageSize + 1 : 0;\r\n var lastPageRecordNum = count ? fistPageRecordNum + count - 1 : 0;\r\n var total = _this.dataTable.getTotal();\r\n pageInfoDiv.innerHTML = i18n.getText('GridPageInfo')\r\n .replace('{FirstPageRecordNum}', \"\" + fistPageRecordNum.toString() + \"\")\r\n .replace('{LastPageRecordNum}', \"\" + lastPageRecordNum.toString() + \"\")\r\n .replace('{Total}', \"\" + total.toString() + \"\");\r\n });\r\n }\r\n return pageInfoDiv;\r\n };\r\n EasyGrid.prototype.showProgress = function () {\r\n };\r\n EasyGrid.prototype.hideProgress = function () {\r\n };\r\n EasyGrid.prototype.getLocalIndexByGlobal = function (index) {\r\n if (this.pagination) {\r\n return index % this.pagination.pageSize;\r\n }\r\n else {\r\n return index;\r\n }\r\n };\r\n EasyGrid.prototype.getGlobalIndexByLocal = function (index) {\r\n if (this.pagination) {\r\n return (this.pagination.page - 1) * this.pagination.pageSize + index;\r\n }\r\n else {\r\n return index;\r\n }\r\n };\r\n EasyGrid.prototype.renderRow = function (row, index) {\r\n var _this = this;\r\n var indexGlobal = this.getGlobalIndexByLocal(index);\r\n var rowBuilder = domel('div')\r\n .addClass(this.cssPrefix + \"-row\")\r\n .addClass(this.cssPrefix + \"-row-\" + (index % 2 == 1 ? 'odd' : 'even'))\r\n .data('row-idx', \"\" + indexGlobal)\r\n .attr('tabindex', '-1')\r\n .on('click', function (ev) {\r\n _this.activeRowIndex = index;\r\n _this.fireEvent({\r\n type: 'rowClick',\r\n row: row,\r\n rowIndex: index,\r\n sourceEvent: ev\r\n });\r\n })\r\n .on('dblclick', function (ev) {\r\n _this.fireEvent({\r\n type: 'rowDbClick',\r\n row: row,\r\n rowIndex: index,\r\n sourceEvent: ev\r\n });\r\n });\r\n if (index == 0) {\r\n rowBuilder.addClass(this.cssPrefix + \"-row-first\");\r\n }\r\n var rowElement = rowBuilder.toDOM();\r\n if (this.options.showActiveRow && index == this.activeRowIndex) {\r\n rowBuilder.addClass(this.cssPrefix + \"-row-active\");\r\n }\r\n this.columns.getItems().forEach(function (column) {\r\n if (!column.isVisible) {\r\n return;\r\n }\r\n var colindex = column.isRowNum ? -1 : _this.dataTable.columns.getIndex(column.dataColumn.id);\r\n var val = column.isRowNum ? indexGlobal + 1 : row.getValue(colindex);\r\n rowElement.appendChild(_this.renderCell(column, colindex, val, rowElement));\r\n });\r\n return rowElement;\r\n };\r\n EasyGrid.prototype.renderCell = function (column, colIndex, value, rowElement) {\r\n var builder = domel('div')\r\n .addClass(this.cssPrefix + \"-cell\")\r\n .data('col-idx', \"\" + colIndex)\r\n .attr('tabindex', '-1')\r\n .setStyle('width', column.width + \"px\");\r\n if (column.align == GridColumnAlign.LEFT) {\r\n builder.addClass(this.cssPrefix + \"-cell-align-left\");\r\n }\r\n else if (column.align == GridColumnAlign.RIGHT) {\r\n builder.addClass(this.cssPrefix + \"-cell-align-right\");\r\n }\r\n else if (column.align == GridColumnAlign.CENTER) {\r\n builder.addClass(this.cssPrefix + \"-cell-align-center\");\r\n }\r\n if (column.cellRenderer) {\r\n column.cellRenderer(value, column, builder.toDOM(), rowElement);\r\n }\r\n return builder.toDOM();\r\n };\r\n EasyGrid.prototype.renderPageNavigator = function () {\r\n var _this = this;\r\n var paginateDiv = document.createElement('div');\r\n paginateDiv.className = this.cssPrefix + \"-pagination-wrapper\";\r\n this.pagination.total = this.dataTable.getTotal();\r\n if (this.options.paging && this.options.paging.enabled\r\n && this.pagination.total > this.pagination.pageSize) {\r\n var prefix = this.paginationOptions.useBootstrap ? '' : this.cssPrefix + \"-\";\r\n paginateDiv.innerHTML = \"\";\r\n var pageIndex = this.pagination.page || 1;\r\n var pageCount = Math.ceil(this.pagination.total / this.pagination.pageSize) || 1;\r\n var buttonClickHandler = function (ev) {\r\n var element = ev.target;\r\n if (element.hasAttribute('data-page')) {\r\n var page = parseInt(element.getAttribute('data-page'));\r\n _this.pagination.page = page;\r\n _this.fireEvent({ type: \"pageChanged\", page: page });\r\n _this.refresh();\r\n _this.bodyViewportDiv.focus();\r\n }\r\n };\r\n var maxButtonCount = this.paginationOptions.maxButtonCount || 10;\r\n var zeroBasedIndex = pageIndex - 1;\r\n var firstPageIndex = zeroBasedIndex - (zeroBasedIndex % maxButtonCount) + 1;\r\n var lastPageIndex = firstPageIndex + maxButtonCount - 1;\r\n if (lastPageIndex > pageCount) {\r\n lastPageIndex = pageCount;\r\n }\r\n var ul = document.createElement('ul');\r\n ul.className = prefix + \"pagination\";\r\n var li = document.createElement('li');\r\n li.className = prefix + \"page-item\";\r\n var a = document.createElement('span');\r\n a.setAttribute(\"aria-hidden\", 'true');\r\n a.className = prefix + \"page-link\";\r\n if (firstPageIndex == 1) {\r\n li.className += \" disabled\";\r\n }\r\n else {\r\n if (this.paginationOptions.useBootstrap) {\r\n a = document.createElement('a');\r\n a.setAttribute('href', 'javascript:void(0)');\r\n a.setAttribute(\"data-page\", \"\" + (firstPageIndex - 1));\r\n }\r\n else {\r\n var newA = document.createElement('a');\r\n newA.setAttribute('href', 'javascript:void(0)');\r\n newA.setAttribute(\"data-page\", \"\" + (firstPageIndex - 1));\r\n a = newA;\r\n }\r\n a.className = prefix + \"page-link\";\r\n a.addEventListener(\"click\", buttonClickHandler);\r\n }\r\n a.innerHTML = \"«\";\r\n li.appendChild(a);\r\n ul.appendChild(li);\r\n for (var i = firstPageIndex; i <= lastPageIndex; i++) {\r\n li = document.createElement('li');\r\n li.className = prefix + \"page-item\";\r\n if (i == pageIndex)\r\n li.className += \" active\";\r\n a = document.createElement('a');\r\n a.setAttribute('href', 'javascript:void(0)');\r\n a.innerHTML = i.toString();\r\n a.setAttribute('data-page', i.toString());\r\n a.className = prefix + \"page-link\";\r\n a.addEventListener(\"click\", buttonClickHandler);\r\n li.appendChild(a);\r\n ul.appendChild(li);\r\n }\r\n li = document.createElement('li');\r\n li.className = prefix + \"page-item\";\r\n a = document.createElement(\"span\");\r\n a.setAttribute('aria-hidden', 'true');\r\n a.className = prefix + \"page-link\";\r\n if (lastPageIndex == pageCount) {\r\n li.className += \" disabled\";\r\n }\r\n else {\r\n if (this.paginationOptions.useBootstrap) {\r\n a = document.createElement('a');\r\n a.setAttribute('href', 'javascript:void(0)');\r\n a.setAttribute(\"data-page\", \"\" + (lastPageIndex + 1));\r\n }\r\n else {\r\n var newA = document.createElement('a');\r\n newA.setAttribute('href', 'javascript:void(0)');\r\n newA.setAttribute(\"data-page\", \"\" + (lastPageIndex + 1));\r\n a = newA;\r\n }\r\n a.className = prefix + \"page-link\";\r\n a.addEventListener(\"click\", buttonClickHandler);\r\n }\r\n a.innerHTML = \"»\";\r\n li.appendChild(a);\r\n ul.appendChild(li);\r\n paginateDiv.appendChild(ul);\r\n }\r\n return paginateDiv;\r\n };\r\n EasyGrid.prototype.addEventListener = function (eventType, handler) {\r\n return this.eventEmitter.subscribe(eventType, function (event) { return handler(event.data); });\r\n };\r\n EasyGrid.prototype.removeEventListener = function (eventType, handlerId) {\r\n this.eventEmitter.unsubscribe(eventType, handlerId);\r\n };\r\n EasyGrid.prototype.renderAddColumnButton = function () {\r\n var _this = this;\r\n if (this.options.addColumns) {\r\n return domel('div')\r\n .addClass(this.cssPrefix + \"-addrow\")\r\n .title(this.options.addColumnsTitle || 'Add column')\r\n .addChild('a', function (builder) { return builder\r\n .attr('href', 'javascript:void(0)')\r\n .on('click', function (e) {\r\n e.preventDefault();\r\n _this.fireEvent({\r\n type: 'addColumnClick',\r\n sourceEvent: e\r\n });\r\n }); })\r\n .toDOM();\r\n }\r\n return domel('span')\r\n .addText('#')\r\n .toDOM();\r\n };\r\n EasyGrid.prototype.showLandingSlot = function (pageX, pageY) {\r\n var colElems = this.headerRowDiv.querySelectorAll(\"[class*=\" + this.cssPrefix + \"-table-col]\");\r\n var cols = [];\r\n for (var i = 1; i < colElems.length; i++) {\r\n var rowElem = colElems[i];\r\n if (rowElem.style.display === 'none')\r\n continue;\r\n cols.push(rowElem);\r\n }\r\n if (cols.length === 0) {\r\n this.landingIndex = 0;\r\n this.headerRowDiv.appendChild(this.landingSlot);\r\n return;\r\n }\r\n var landingPos = getElementAbsolutePos(this.landingSlot);\r\n if (pageX >= landingPos.x && pageX <= landingPos.x + this.landingSlot.offsetWidth) {\r\n return;\r\n }\r\n var newLandingIndex = this.landingIndex;\r\n for (var _i = 0, cols_1 = cols; _i < cols_1.length; _i++) {\r\n var col = cols_1[_i];\r\n var colPos = getElementAbsolutePos(col);\r\n var width = col.offsetWidth;\r\n if (pageX > colPos.x && pageX < colPos.x + width) {\r\n // -1 as we don't need to count add button here\r\n newLandingIndex = parseInt(col.getAttribute('data-col-idx')) - 1;\r\n }\r\n }\r\n if (newLandingIndex != this.landingIndex) {\r\n this.landingIndex = newLandingIndex;\r\n if (this.landingIndex < cols.length) {\r\n this.headerRowDiv.insertBefore(this.landingSlot, cols[this.landingIndex]);\r\n }\r\n else {\r\n this.headerRowDiv.appendChild(this.landingSlot);\r\n }\r\n }\r\n };\r\n EasyGrid.prototype.hideLandingSlot = function () {\r\n var _this = this;\r\n this.landingIndex = -1;\r\n setTimeout(function () {\r\n if (_this.landingSlot.parentElement) {\r\n _this.landingSlot.parentElement.removeChild(_this.landingSlot);\r\n }\r\n }, 10);\r\n };\r\n Object.defineProperty(EasyGrid.prototype, \"activeRowIndex\", {\r\n get: function () {\r\n return this._activeRowIndex;\r\n },\r\n set: function (value) {\r\n if (value !== this._activeRowIndex) {\r\n var oldValue = this._activeRowIndex;\r\n this._activeRowIndex = value;\r\n this.updateActiveRow();\r\n this.fireEvent({\r\n type: 'activeRowChanged',\r\n oldValue: oldValue,\r\n newValue: this.activeRowIndex,\r\n rowIndex: this.getGlobalIndexByLocal(this.activeRowIndex)\r\n });\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n EasyGrid.prototype.updateActiveRow = function () {\r\n var _this = this;\r\n if (this.options.showActiveRow) {\r\n var rows = this.bodyCellContainerDiv.querySelectorAll(\"[class*=\" + this.cssPrefix + \"-row-active]\");\r\n rows.forEach(function (el) { el.classList.remove(_this.cssPrefix + \"-row-active\"); });\r\n var activeRow = this.getActiveRow();\r\n if (activeRow) {\r\n activeRow.classList.add(this.cssPrefix + \"-row-active\");\r\n this.ensureRowVisibility(this.activeRowIndex);\r\n }\r\n }\r\n };\r\n EasyGrid.prototype.getActiveRow = function () {\r\n return this.getDataRow(this.activeRowIndex);\r\n };\r\n EasyGrid.prototype.getDataRow = function (index) {\r\n var rows = Array.from(this.bodyCellContainerDiv.querySelectorAll(\".\" + this.cssPrefix + \"-row:not(.\" + this.cssPrefix + \"-row-totals)\"));\r\n if (index >= 0 && index < rows.length)\r\n return rows[index];\r\n return null;\r\n };\r\n EasyGrid.prototype.focus = function () {\r\n this.bodyViewportDiv.focus();\r\n };\r\n return EasyGrid;\r\n}());\r\nexport { EasyGrid };\r\n//# sourceMappingURL=easy_grid.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easydata/ui/dist/lib/grid/easy_grid.js\n// module id = 377\n// module chunks = 0","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { i18n } from '@easydata/core';\r\nimport { domel } from '../utils/dom_elem_builder';\r\nimport { DateTimePicker } from './date_time_picker';\r\nimport { DefaultCalendar } from './default_calendar';\r\nimport { DefaultTimePicker } from './default_time_picker';\r\nimport { getElementAbsolutePos } from '../utils/ui-utils';\r\nvar DefaultDateTimePicker = /** @class */ (function (_super) {\r\n __extends(DefaultDateTimePicker, _super);\r\n function DefaultDateTimePicker() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DefaultDateTimePicker.prototype.render = function () {\r\n var _this = this;\r\n var sb = domel('div', document.body)\r\n .addClass(\"\" + this.cssPrefix)\r\n .attr('tabIndex', '0')\r\n .setStyle('position', 'absolute')\r\n .setStyle('top', '-1000px')\r\n .setStyle('left', '-1000px')\r\n .on('keydown', function (ev) {\r\n if (ev.keyCode === 27) { // ESC is pressed\r\n _this.cancel();\r\n }\r\n else if (ev.keyCode === 13) { // Enter is pressed\r\n _this.apply(_this.getDateTime());\r\n }\r\n return false;\r\n });\r\n if (this.options.zIndex) {\r\n sb.setStyle('z-index', \"\" + this.options.zIndex);\r\n }\r\n this.slot = sb.toDOM();\r\n _super.prototype.render.call(this);\r\n this.renderButtons();\r\n this.globalMouseDownHandler = function (e) {\r\n var event = window.event || e;\r\n var o = event.srcElement || event.target;\r\n var isOutside = !_this.slot.contains(event.target);\r\n if (isOutside) {\r\n document.removeEventListener('mousedown', _this.globalMouseDownHandler, true);\r\n _this.cancel();\r\n }\r\n return true;\r\n };\r\n };\r\n DefaultDateTimePicker.prototype.renderButtons = function () {\r\n var _this = this;\r\n var builder = domel('div', this.slot)\r\n .addClass(this.cssPrefix + \"-buttons\")\r\n .addChild('button', function (b) { return _this.nowButton = b\r\n .addClass(_this.cssPrefix + \"-button \" + _this.cssPrefix + \"-button-now\")\r\n .text(i18n.getText('ButtonNow'))\r\n .on('click', function () {\r\n _this.setDateTime(new Date());\r\n _this.dateTimeChanged();\r\n return false;\r\n })\r\n .toDOM(); });\r\n if (this.options.showTimePicker || !this.options.oneClickDateSelection) {\r\n builder.addChild('button', function (b) { return _this.submitButton = b\r\n .addClass(_this.cssPrefix + \"-button \" + _this.cssPrefix + \"-button-apply\")\r\n .text(i18n.getText('ButtonApply'))\r\n .on('click', function () {\r\n _this.apply(_this.getDateTime());\r\n return false;\r\n })\r\n .toDOM(); });\r\n }\r\n builder.addChild('button', function (b) { return _this.submitButton = b\r\n .addClass(_this.cssPrefix + \"-button \" + _this.cssPrefix + \"-button-cancel\")\r\n .text(i18n.getText('ButtonCancel'))\r\n .on('click', function () {\r\n _this.cancel();\r\n return false;\r\n })\r\n .toDOM(); });\r\n };\r\n DefaultDateTimePicker.prototype.createCalendar = function (options) {\r\n this.calendarSlot =\r\n domel('div', this.slot)\r\n .addClass(this.cssPrefix + \"-cal\")\r\n .toDOM();\r\n return new DefaultCalendar(this.calendarSlot, options);\r\n };\r\n DefaultDateTimePicker.prototype.createTimePicker = function (options) {\r\n this.timePickerSlot =\r\n domel('div', this.slot)\r\n .addClass(this.cssPrefix + \"-tp\")\r\n .toDOM();\r\n return new DefaultTimePicker(this.timePickerSlot, options);\r\n };\r\n DefaultDateTimePicker.prototype.show = function (anchor) {\r\n var _this = this;\r\n if (this.options.showDateTimeInput) {\r\n if (this.options.beforeShow) {\r\n this.options.beforeShow();\r\n }\r\n var anchorPos = getElementAbsolutePos(anchor || document.body);\r\n var parentPos = getElementAbsolutePos(anchor ? anchor.parentElement || anchor : document.body);\r\n this.slot.style.top = parentPos.y + 'px';\r\n this.slot.style.left = anchorPos.x + 'px';\r\n }\r\n else {\r\n _super.prototype.show.call(this, anchor);\r\n this.slot.focus();\r\n }\r\n setTimeout(function () {\r\n document.addEventListener('mousedown', _this.globalMouseDownHandler, true);\r\n }, 1);\r\n };\r\n return DefaultDateTimePicker;\r\n}(DateTimePicker));\r\nexport { DefaultDateTimePicker };\r\n//# sourceMappingURL=default_date_time_picker.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easydata/ui/dist/lib/datetimepicker/default_date_time_picker.js\n// module id = 378\n// module chunks = 0","import { i18n } from '@easydata/core';\r\nfunction addEasyDataUITexts() {\r\n i18n.updateDefaultTexts({\r\n GridPageInfo: '{FirstPageRecordNum} - {LastPageRecordNum} of {Total} records',\r\n ButtonOK: \"OK\",\r\n ButtonCancel: \"Cancel\",\r\n ButtonApply: 'Apply',\r\n ButtonNow: 'Now'\r\n });\r\n}\r\naddEasyDataUITexts();\r\n//# sourceMappingURL=text_resources.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easydata/ui/dist/lib/i18n/text_resources.js\n// module id = 379\n// module chunks = 0","var DisplayFormatParser = /** @class */ (function () {\r\n function DisplayFormatParser() {\r\n this.formatStr = '';\r\n this.pos = 0;\r\n this.token = 'text';\r\n this.tokenText = '';\r\n }\r\n DisplayFormatParser.prototype.start = function (s) {\r\n this.formatStr = s;\r\n this.pos = 0;\r\n this.tokenText = '';\r\n };\r\n DisplayFormatParser.prototype.skipSpaces = function () {\r\n while (this.pos < this.formatStr.length && this.formatStr.charAt(this.pos) === ' ')\r\n this.pos++;\r\n };\r\n DisplayFormatParser.prototype.getToken = function () {\r\n return this.token;\r\n };\r\n DisplayFormatParser.prototype.getTokenText = function () {\r\n return this.tokenText;\r\n };\r\n DisplayFormatParser.prototype.next = function () {\r\n this.skipSpaces();\r\n if (this.pos >= this.formatStr.length)\r\n return false;\r\n var npos = 0;\r\n if (this.formatStr.charAt(this.pos) === '{') {\r\n npos = this.formatStr.indexOf('}', this.pos);\r\n if (npos < 0)\r\n return false;\r\n this.tokenText = this.formatStr.substring(this.pos, npos + 1);\r\n if (this.tokenText.indexOf('{expr') === 0 || this.tokenText.indexOf('{attr') === 0) {\r\n this.token = 'expression';\r\n }\r\n this.pos = npos + 1;\r\n }\r\n else if (this.formatStr.charAt(this.pos) === '[' && this.pos < this.formatStr.length - 1 && this.formatStr.charAt(this.pos + 1) === '[') {\r\n this.pos += 2;\r\n npos = this.formatStr.indexOf(']]', this.pos);\r\n this.token = 'function';\r\n this.tokenText = this.formatStr.substring(this.pos, npos);\r\n this.pos = npos + 2;\r\n }\r\n else {\r\n this.token = 'text';\r\n var npos1 = this.formatStr.indexOf('{', this.pos);\r\n if (npos1 < 0)\r\n npos1 = this.formatStr.length;\r\n var npos2 = this.formatStr.indexOf('[[', this.pos);\r\n if (npos2 < 0)\r\n npos2 = this.formatStr.length;\r\n npos = Math.min(npos1, npos2);\r\n this.tokenText = this.formatStr.substring(this.pos, npos).trim();\r\n this.pos = npos;\r\n }\r\n return true;\r\n };\r\n return DisplayFormatParser;\r\n}());\r\nexport { DisplayFormatParser };\r\n//# sourceMappingURL=display_format_parser.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/utils/display_format_parser.js\n// module id = 380\n// module chunks = 0","import { i18n } from '@easydata/core';\r\nimport { QueryChangeAction, SortDirection } from '@easyquery/core';\r\nimport { domel } from '@easydata/ui';\r\nimport { eqCssPrefix } from '../../../utils/utils';\r\nimport { browserUtils } from '../../../utils/browser_utils';\r\nvar ColumnRendererSB = /** @class */ (function () {\r\n function ColumnRendererSB(bar, column, slot) {\r\n this.functionMenu = null;\r\n this.isMouseOverBlock = false;\r\n this.keepShowingButtons = false;\r\n this.bar = bar;\r\n this.column = column;\r\n this.element = slot;\r\n }\r\n Object.defineProperty(ColumnRendererSB.prototype, \"cssPrefix\", {\r\n get: function () {\r\n return 'eqjs-sb';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ColumnRendererSB.prototype.render = function () {\r\n this.baseAttr = this.getAttribute();\r\n var builder = domel('div');\r\n builder.data('id', this.column.id);\r\n if (this.element) {\r\n //to remove all event listeners\r\n this.element.parentNode\r\n .replaceChild(builder.toDOM(), this.element);\r\n }\r\n this.element = builder.toDOM();\r\n builder\r\n .addClass(this.getClassesToAdd())\r\n .addClass(browserUtils.getMobileCssClass())\r\n .addChildElement(this.renderCaptionBlock());\r\n if (this.isEditable()) {\r\n builder\r\n .addChildElement(this.renderSortingButton());\r\n }\r\n return this.element;\r\n };\r\n ColumnRendererSB.prototype.fireColumnChanged = function () {\r\n this.column.fireChangedEvent();\r\n };\r\n ColumnRendererSB.prototype.refresh = function () {\r\n this.render();\r\n };\r\n ColumnRendererSB.prototype.getAttribute = function () {\r\n var model = this.bar.getContext().getModel();\r\n return model.getAttributeById(this.column.expr.value);\r\n };\r\n ColumnRendererSB.prototype.isEditable = function () {\r\n return this.column.enabled && !this.column.isReadOnly();\r\n };\r\n ColumnRendererSB.prototype.renderCaptionBlock = function () {\r\n var _this = this;\r\n if (!this.column.caption || this.column.caption == '') {\r\n this.column.caption = this.getDefaultCaption();\r\n }\r\n function getArrow(sd) {\r\n switch (sd) {\r\n case SortDirection.Ascending:\r\n return ' ↑';\r\n case SortDirection.Descending:\r\n return ' ↓';\r\n default:\r\n return '';\r\n }\r\n }\r\n var text = this.column.caption;\r\n if (!this.isEditable()) {\r\n text += getArrow(this.column.sorting);\r\n }\r\n return domel('div')\r\n .addClass(this.cssPrefix + \"-colelement\", this.cssPrefix + \"-captionelement\")\r\n .addClass(browserUtils.getMobileCssClass())\r\n .addChild('div', function (b) { return b\r\n .title(_this.column.caption)\r\n .text(text); })\r\n .toDOM();\r\n };\r\n ColumnRendererSB.prototype.renderSortingButton = function () {\r\n var _this = this;\r\n var sortButtonCssClass = eqCssPrefix + \"-column-sortbutton\";\r\n var sortButtonDirectionCssClass = sortButtonCssClass;\r\n switch (this.column.sorting) {\r\n case SortDirection.None:\r\n sortButtonDirectionCssClass = sortButtonCssClass + \"-none\";\r\n break;\r\n case SortDirection.Ascending:\r\n sortButtonDirectionCssClass = sortButtonCssClass + \"-asc\";\r\n break;\r\n case SortDirection.Descending:\r\n sortButtonDirectionCssClass = sortButtonCssClass + \"-desc\";\r\n break;\r\n }\r\n var builder = domel('div')\r\n .addClass(this.cssPrefix + \"-colelement\", this.cssPrefix + \"-sortimage-placeholder\")\r\n .addClass(browserUtils.getMobileCssClass())\r\n .addChild('div', function (builder) { return builder\r\n .addClass(_this.cssPrefix + \"-img-sorting\", sortButtonDirectionCssClass)\r\n .title(i18n.getText('ButtonSorting')); })\r\n .on('touchstart click', function (ev) { return _this.buttonSortingClickHandler(ev, builder.toDOM()); });\r\n return builder.toDOM();\r\n };\r\n ColumnRendererSB.prototype.buttonSortingClickHandler = function (ev, anchor) {\r\n var _this = this;\r\n ev.stopPropagation();\r\n this.keepShowingButtons = true;\r\n var menu = this.bar.sortMenu;\r\n menu.showMenu({\r\n anchor: anchor,\r\n selectedIds: null,\r\n itemSelectedCallback: function (data, items) {\r\n var strToSortDirection = function (str) {\r\n if (str == 'None') {\r\n return SortDirection.None;\r\n }\r\n else if (str == \"Ascending\") {\r\n return SortDirection.Ascending;\r\n }\r\n else if (str == \"Descending\") {\r\n return SortDirection.Descending;\r\n }\r\n };\r\n if (data.id == 'None' || data.id == \"Ascending\" || data.id == \"Descending\") {\r\n var query = _this.bar.getContext().getQuery();\r\n if (_this.column.isJustSorted() && data.id == 'None') {\r\n query.removeColumn(_this.column, _this.bar);\r\n query.fireColumnsChangedEvent(QueryChangeAction.Delete, _this.column, true);\r\n }\r\n else {\r\n _this.column.sorting = strToSortDirection(data.id);\r\n _this.column.sortIndex = query.getColumnSortIndex(_this.column);\r\n _this.fireColumnChanged();\r\n }\r\n }\r\n },\r\n menuClosedCallback: function () {\r\n _this.keepShowingButtons = false;\r\n }\r\n });\r\n return false;\r\n };\r\n ColumnRendererSB.prototype.getDefaultCaption = function () {\r\n return this.getDefaultTitleText(this.baseAttr);\r\n };\r\n ColumnRendererSB.prototype.getDefaultTitleText = function (attr) {\r\n var format = this.bar.options.titleElementFormat || this.bar.options.attrElementFormat;\r\n var model = this.bar.getContext().getModel();\r\n return model.getAttributeText(attr, format);\r\n };\r\n ColumnRendererSB.prototype.getClassesToAdd = function () {\r\n return this.cssPrefix + \"-row \" + this.cssPrefix + \"-row-column-entattr\";\r\n };\r\n ColumnRendererSB.prototype.getUIS = function () {\r\n return this.bar\r\n .getContext().getModel()\r\n .checkAttrProperty(this.column.expr.value, \"useInSorting\");\r\n };\r\n return ColumnRendererSB;\r\n}());\r\nexport { ColumnRendererSB };\r\n//# sourceMappingURL=column_renderer.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/widgets/renderers/sortingbar/column_renderer.js\n// module id = 381\n// module chunks = 0","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { ExprTag } from \"@easyquery/core\";\r\nimport { CustomListExpressionRenderer } from \"./list_expression_renderer\";\r\nvar BindToParentColumnExpressionRenderer = /** @class */ (function (_super) {\r\n __extends(BindToParentColumnExpressionRenderer, _super);\r\n function BindToParentColumnExpressionRenderer(panel, expression, editor, slot) {\r\n var _this = _super.call(this, panel, expression, editor, slot) || this;\r\n _this.expression.tag = ExprTag.ParentColumn;\r\n return _this;\r\n }\r\n BindToParentColumnExpressionRenderer.prototype.fillMenuItemsList = function (onComplete) {\r\n var query = this.panel.getQuery().getParentQuery();\r\n var parent = this.expression.getParent();\r\n var attrDataType = parent.expressions[0].dataType;\r\n this.menuItemsList = query\r\n .getColumns()\r\n .filter(function (col) { return col.expr.dataType == attrDataType; })\r\n .map(function (col) {\r\n return { id: col.id, text: col.caption };\r\n });\r\n if (onComplete) {\r\n onComplete();\r\n }\r\n };\r\n return BindToParentColumnExpressionRenderer;\r\n}(CustomListExpressionRenderer));\r\nexport { BindToParentColumnExpressionRenderer };\r\n//# sourceMappingURL=bind_to_parent_column_expression_renderer.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/widgets/renderers/querypanel/bind_to_parent_column_expression_renderer.js\n// module id = 382\n// module chunks = 0","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { Widget, WidgetGroup, Query, DataKind } from \"@easyquery/core\";\r\nimport { DataType, utils as dataUtils } from '@easydata/core';\r\nimport { domel } from '@easydata/ui';\r\nimport { ColumnsBar } from './columns_bar';\r\nimport { QueryPanel } from './query_panel';\r\nimport { eqCssPrefix } from '../utils/utils';\r\nvar ManageDrillDownWidget = /** @class */ (function (_super) {\r\n __extends(ManageDrillDownWidget, _super);\r\n function ManageDrillDownWidget(slot) {\r\n var _this = _super.call(this, slot) || this;\r\n _this.clickHandler = function () { return _this.openDialog(); };\r\n _this.columnsBar = null;\r\n _this.queryPanel = null;\r\n _this.ddQuery = null;\r\n _this.cssPrefix = eqCssPrefix;\r\n _this.group = WidgetGroup.None;\r\n return _this;\r\n }\r\n ManageDrillDownWidget.prototype.getWidgetType = function () {\r\n return 'manageDrillDown';\r\n };\r\n ManageDrillDownWidget.prototype.init = function (context, options) {\r\n _super.prototype.init.call(this, context, options);\r\n this.options = options;\r\n this.refresh();\r\n this.slot.addEventListener('click', this.clickHandler);\r\n };\r\n ManageDrillDownWidget.prototype.destroyCore = function () {\r\n this.slot.removeEventListener('click', this.clickHandler);\r\n };\r\n ManageDrillDownWidget.prototype.openDialog = function () {\r\n var _this = this;\r\n var dialogService = this.context.getServices().getDialogService();\r\n var query = this.context.getQuery();\r\n var model = this.context.getModel();\r\n var dialogBody = domel('div')\r\n .addClass(this.cssPrefix + \"-manage-drilldown\")\r\n .addChildElement(this.renderColumnsBarBlock())\r\n .addChildElement(this.renderQueryPanelBlock())\r\n .toDOM();\r\n var op = model.addOrUpdateOperator({\r\n id: 'BindToParentColumn',\r\n caption: 'is bound to',\r\n format: '{expr1} [[is bound to]] {expr2}',\r\n paramCount: 2,\r\n kind: DataKind.ParentColumn,\r\n appliedTypes: [DataType.String, DataType.Bool, DataType.Float, DataType.Int32, DataType.Int64, DataType.Word]\r\n });\r\n op.defaultOperand.dataType = DataType.String;\r\n op.defaultOperand.kind = DataKind.ParentColumn;\r\n model.runThroughEntities(function (attr) {\r\n var opIdx = attr.operators.indexOf(op.id);\r\n if (opIdx > 0) {\r\n dataUtils.moveArrayItem(attr.operators, opIdx, 0);\r\n }\r\n }, null);\r\n this.ddQuery = new Query(model, null, {\r\n parent: query\r\n });\r\n var dds = this.context.getQuery().getDrillDowns();\r\n if (dds.length) {\r\n var dd = dds[0];\r\n this.ddQuery.loadFromData(dd.toJSONData());\r\n }\r\n dialogService.open({\r\n title: 'Manage Drill Down',\r\n body: dialogBody,\r\n cancelable: true,\r\n closable: false,\r\n beforeOpen: function () {\r\n var columnsBarSlot = dialogBody.getElementsByClassName(_this.cssPrefix + \"-columnsbar-slot\")[0];\r\n _this.columnsBar = new ColumnsBar(columnsBarSlot, _this.ddQuery);\r\n _this.columnsBar.init(_this.context, _this.options.columnsBar);\r\n var queryPanelSlot = dialogBody.getElementsByClassName(_this.cssPrefix + \"-querypanel-slot\")[0];\r\n _this.queryPanel = new QueryPanel(queryPanelSlot, _this.ddQuery);\r\n _this.queryPanel.init(_this.context, _this.options.queryPanel);\r\n _this.columnsBar.refresh();\r\n _this.queryPanel.refresh();\r\n },\r\n onSubmit: function () {\r\n return _this.submitDialog();\r\n },\r\n onDestroy: function () {\r\n _this.destroyDialog();\r\n }\r\n });\r\n };\r\n ManageDrillDownWidget.prototype.renderQueryPanelBlock = function () {\r\n var _this = this;\r\n return domel('div')\r\n .addClass(this.cssPrefix + \"-querypanel-block\")\r\n .addChild('div', function (b) { return b\r\n .addClass(_this.cssPrefix + \"-querypanel-caption\"); })\r\n .addChild('div', function (b) { return b\r\n .addClass(_this.cssPrefix + \"-querypanel-slot\"); })\r\n .toDOM();\r\n };\r\n ManageDrillDownWidget.prototype.renderColumnsBarBlock = function () {\r\n var _this = this;\r\n return domel('div')\r\n .addClass(this.cssPrefix + \"-columnsbar-block\")\r\n .addChild('div', function (b) { return b\r\n .addClass(_this.cssPrefix + \"-columnsbar-caption\"); })\r\n .addChild('div', function (b) { return b\r\n .addClass(_this.cssPrefix + \"-columnsbar-slot\"); })\r\n .toDOM();\r\n };\r\n ManageDrillDownWidget.prototype.submitDialog = function () {\r\n if (this.ddQuery.tryValidate({\r\n checkExpressions: true\r\n })) {\r\n var dds = this.context.getQuery().getDrillDowns();\r\n if (dds.length) {\r\n dds[0].loadFromData(this.ddQuery.toJSONData());\r\n this.context.getQuery().fireChangedEvent();\r\n }\r\n else {\r\n if (!this.ddQuery.isEmpty()) {\r\n var dd = this.context.getQuery().addDrillDown();\r\n dd.loadFromData(this.ddQuery.toJSONData());\r\n this.context.getQuery().fireChangedEvent();\r\n }\r\n }\r\n return true;\r\n }\r\n return false;\r\n };\r\n ManageDrillDownWidget.prototype.destroyDialog = function () {\r\n var model = this.context.getModel();\r\n model.removeOperator('BindToParentColumn', true);\r\n this.ddQuery = null;\r\n this.columnsBar && this.columnsBar.destroy();\r\n this.columnsBar = null;\r\n this.queryPanel && this.queryPanel.destroy();\r\n this.queryPanel = null;\r\n };\r\n return ManageDrillDownWidget;\r\n}(Widget));\r\nexport { ManageDrillDownWidget };\r\n//# sourceMappingURL=manage_drilldown_widget.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/widgets/manage_drilldown_widget.js\n// module id = 383\n// module chunks = 0","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { Widget, WidgetGroup } from '@easyquery/core';\r\nimport { FacetType } from '../types/facet_type';\r\nimport { ChartFacet } from '../facets/chart_facet';\r\nimport { PivotTableFacet } from '../facets/pivot_table_facet';\r\nimport { DataTableFacet } from '../facets/datatable_facet';\r\nvar FacetContainer = /** @class */ (function (_super) {\r\n __extends(FacetContainer, _super);\r\n function FacetContainer(slot) {\r\n var _this = _super.call(this, slot) || this;\r\n _this.facets = [];\r\n _this.options = {};\r\n _this.group = WidgetGroup.Result;\r\n return _this;\r\n }\r\n FacetContainer.prototype.destroyCore = function () {\r\n for (var _i = 0, _a = this.facets; _i < _a.length; _i++) {\r\n var facet = _a[_i];\r\n facet.destroy();\r\n }\r\n this.clear();\r\n };\r\n FacetContainer.prototype.createFacetTab = function (type) {\r\n var options = this.options[type];\r\n switch (type) {\r\n case FacetType.Chart:\r\n return new ChartFacet(this, options);\r\n case FacetType.PivotTable:\r\n return new PivotTableFacet(this, options);\r\n default:\r\n return new DataTableFacet(this, options);\r\n }\r\n };\r\n FacetContainer.prototype.getQuery = function () {\r\n return this.getContext().getQuery();\r\n };\r\n return FacetContainer;\r\n}(Widget));\r\nexport { FacetContainer };\r\n//# sourceMappingURL=facet_container.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/widgets/facet_container.js\n// module id = 384\n// module chunks = 0","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { i18n } from '@easydata/core';\r\nimport { Widget, WidgetGroup } from '@easyquery/core';\r\nvar LocaleWidget = /** @class */ (function (_super) {\r\n __extends(LocaleWidget, _super);\r\n /**\r\n * The default constructor.\r\n * @param slot The html element.\r\n */\r\n function LocaleWidget(slot) {\r\n var _this = _super.call(this, slot) || this;\r\n _this.changeLocale = function () {\r\n var newLocale = _this.selectEl.value;\r\n i18n.setCurrentLocale(newLocale);\r\n _this.context.refreshWidgets(WidgetGroup.All);\r\n };\r\n _this.group = WidgetGroup.None;\r\n return _this;\r\n }\r\n LocaleWidget.prototype.init = function (context, options) {\r\n _super.prototype.init.call(this, context, options);\r\n this.clear();\r\n this.render();\r\n };\r\n LocaleWidget.prototype.getWidgetType = function () {\r\n return 'changeLocale';\r\n };\r\n LocaleWidget.prototype.render = function () {\r\n var locales = i18n.getLocales();\r\n if (locales.length > 1) {\r\n this.selectEl = document.createElement('select');\r\n for (var _i = 0, locales_1 = locales; _i < locales_1.length; _i++) {\r\n var locale = locales_1[_i];\r\n var optionEl = document.createElement('option');\r\n optionEl.value = locale.locale;\r\n optionEl.innerHTML = this.displayLocaleName(locale);\r\n this.selectEl.appendChild(optionEl);\r\n }\r\n this.selectEl.value = i18n.getCurrentLocale();\r\n this.selectEl.classList.add('eqv-select');\r\n this.selectEl.addEventListener('change', this.changeLocale);\r\n this.slot.appendChild(this.selectEl);\r\n }\r\n };\r\n LocaleWidget.prototype.displayLocaleName = function (locale) {\r\n if (locale.englishName && locale.displayName) {\r\n return locale.englishName + \" - \" + locale.displayName;\r\n }\r\n else if (locale.englishName) {\r\n return locale.englishName;\r\n }\r\n else if (locale.displayName) {\r\n return locale.displayName;\r\n }\r\n return locale.locale;\r\n };\r\n LocaleWidget.prototype.clear = function () {\r\n this.slot.innerHTML = \"\";\r\n };\r\n LocaleWidget.prototype.destroyCore = function () {\r\n this.clear();\r\n };\r\n return LocaleWidget;\r\n}(Widget));\r\nexport { LocaleWidget };\r\n//# sourceMappingURL=locale_widget.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/widgets/locale_widget.js\n// module id = 385\n// module chunks = 0","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { Widget, WidgetGroup } from '@easyquery/core';\r\nimport { browserUtils } from '../utils/browser_utils';\r\n/**\r\n * The widget responsed for rendering the name of the current query.\r\n */\r\nvar QueryNameWidget = /** @class */ (function (_super) {\r\n __extends(QueryNameWidget, _super);\r\n /**\r\n * The default constructor.\r\n * @param slot The HTML element where our widget should be placed.\r\n */\r\n function QueryNameWidget(slot) {\r\n var _this = _super.call(this, slot) || this;\r\n _this.queryEventCallbackId = null;\r\n _this.group = WidgetGroup.Query | WidgetGroup.QueryStatus;\r\n return _this;\r\n }\r\n QueryNameWidget.prototype.init = function (context, options) {\r\n _super.prototype.init.call(this, context, options);\r\n this.destroyCore();\r\n this.attachQueryObserver();\r\n };\r\n Object.defineProperty(QueryNameWidget.prototype, \"cssPrefix\", {\r\n get: function () {\r\n return 'eqjs-query-name';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n QueryNameWidget.prototype.getWidgetType = function () {\r\n return 'queryName';\r\n };\r\n /**\r\n * Refresh widget implementation\r\n */\r\n QueryNameWidget.prototype.refreshCore = function () {\r\n this.render();\r\n };\r\n QueryNameWidget.prototype.render = function () {\r\n this.slot.classList.add(\"\" + this.cssPrefix);\r\n var mobClass = browserUtils.getMobileCssClass();\r\n if (mobClass) {\r\n this.slot.classList.add(mobClass);\r\n }\r\n if (!this.nameSlot) {\r\n this.nameSlot = document.createElement('div');\r\n this.nameSlot.classList.add(this.cssPrefix + \"-text\");\r\n this.nameSlot.classList.add(this.cssPrefix + \"-theme\");\r\n this.slot.appendChild(this.nameSlot);\r\n }\r\n if (!this.asteriskSlot) {\r\n this.asteriskSlot = document.createElement('span');\r\n this.asteriskSlot.innerHTML = \"*\";\r\n this.asteriskSlot.classList.add(this.cssPrefix + \"-asterisk\");\r\n this.slot.appendChild(this.asteriskSlot);\r\n }\r\n if (!this.tooltipSlot) {\r\n this.tooltipSlot = document.createElement('span');\r\n this.tooltipSlot.classList.add(this.cssPrefix + \"-tooltip\");\r\n this.tooltipSlot.classList.add(this.cssPrefix + \"-theme\");\r\n this.slot.appendChild(this.tooltipSlot);\r\n }\r\n // Update\r\n var queryName = this.context.getQuery().getName();\r\n this.nameSlot.textContent = queryName;\r\n this.tooltipSlot.textContent = queryName;\r\n this.asteriskSlot.style.visibility = this.context.getQuery().isModified() ? \"visible\" : \"hidden\";\r\n };\r\n QueryNameWidget.prototype.clear = function () {\r\n this.slot.innerHTML = \"\";\r\n this.nameSlot = null;\r\n this.tooltipSlot = null;\r\n this.asteriskSlot = null;\r\n };\r\n QueryNameWidget.prototype.attachQueryObserver = function () {\r\n var _this = this;\r\n var query = this.context.getQuery();\r\n this.queryEventCallbackId = query.addChangedCallback(function (event) {\r\n _this.refreshCore();\r\n });\r\n };\r\n QueryNameWidget.prototype.detachQueryObserver = function () {\r\n if (this.queryEventCallbackId) {\r\n var query = this.context.getQuery();\r\n query.removeChangedCallback(this.queryEventCallbackId);\r\n }\r\n };\r\n QueryNameWidget.prototype.destroyCore = function () {\r\n this.clear();\r\n this.detachQueryObserver();\r\n };\r\n return QueryNameWidget;\r\n}(Widget));\r\nexport { QueryNameWidget };\r\n//# sourceMappingURL=queryname_widget.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/widgets/queryname_widget.js\n// module id = 386\n// module chunks = 0","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { i18n } from '@easydata/core';\r\nimport { QueryChangePart, WidgetGroup } from '@easyquery/core';\r\nimport { domel } from '@easydata/ui';\r\nimport { PopupMenu } from '../utils/popup_menu';\r\nimport { browserUtils } from '../utils/browser_utils';\r\nimport { View } from '../views/view';\r\n/**\r\n * The EasyQuery client-side view that represents the UI for advanced search page\r\n */\r\nvar AdvancedSearchView = /** @class */ (function (_super) {\r\n __extends(AdvancedSearchView, _super);\r\n function AdvancedSearchView() {\r\n var _this = _super.call(this) || this;\r\n _this.exportButtons = [];\r\n // Name of the class to add to disabled elements.\r\n _this.disabledClass = \"eqjs-disabled\";\r\n _this.dropdownContainerClass = \"eqv-dropdown-container\";\r\n _this.dropdownButtonClass = \"eqv-drop-button\";\r\n _this.dropdownContentClass = \"eqv-dropdown-content\";\r\n _this.dropdownShowClass = \"eqv-dropdown-show\";\r\n _this._querySaveTemplate = \"
\\n
\\n \\n \\n
\\n
\";\r\n _this.queryListMenu = null;\r\n _this.fetchDataButtonClickHandler = _this.fetchDataButtonClick.bind(_this);\r\n _this.clearQueryButtonClickHandler = _this.clearQueryButtonClick.bind(_this);\r\n _this.newQueryButtonClickHandler = _this.newQueryButtonClick.bind(_this);\r\n _this.loadQueryButtonClickHandler = _this.loadQueryButtonClick.bind(_this);\r\n _this.saveQueryButtonClickHandler = _this.saveQueryButtonClick.bind(_this);\r\n _this.copyQueryButtonClickHandler = _this.copyQueryButtonClick.bind(_this);\r\n _this.removeQueryButtonClickHandler = _this.removeQueryButtonClick.bind(_this);\r\n _this.storageButtonClickHandler = _this.storageDropButtonClick.bind(_this);\r\n _this.saveQueryToFileButtonClickHandler = _this.saveQueryToFileButtonClick.bind(_this);\r\n _this.loadQueryFromFileButtonClickHandler = _this.loadQueryFromFileButtonClick.bind(_this);\r\n var self = _this;\r\n _this.exportButtonClickHandler = function (e) {\r\n if (!this.classList.contains(self.disabledClass)) {\r\n var format = this.getAttribute(\"data-format\");\r\n self.getContext().exportResult({ format: format });\r\n }\r\n };\r\n _this.queryChangedHandler = function (ev) {\r\n var eventData = ev.data;\r\n if (_this.resultOptions.clearResultOnQueryChange) {\r\n _this.context.clearResult();\r\n _this.context.refreshWidgets(WidgetGroup.Result);\r\n }\r\n _this.disableExportButtons();\r\n if (_this.resultCountSlot) {\r\n _this.resultCountSlot.style.display = \"none\";\r\n }\r\n if (_this.options.syncQueryOnChange) {\r\n _this.syncQuery();\r\n }\r\n // if (this.options.executeQueryOnChange) {\r\n // console.warn('`options.executeQueryOnChange` is deprecated. Use fetchDataOnChange instead');\r\n // this.options.fetchDataOnChange = true;\r\n // }\r\n if (_this.options.fetchDataOnChange) {\r\n if (!eventData || (eventData.part != QueryChangePart.ExtraData\r\n && eventData.part != QueryChangePart.Facets)) {\r\n _this.fetchData();\r\n }\r\n }\r\n };\r\n _this.outsideClickHandler = function (event) {\r\n var currentContent = null;\r\n if (event.target.matches(\".\" + _this.dropdownButtonClass)) {\r\n currentContent = event.target.parentElement.querySelector(\".\" + _this.dropdownContentClass);\r\n }\r\n else if (event.target.matches(\".\" + _this.dropdownButtonClass + \" > span\")) {\r\n currentContent = event.target.parentElement.parentElement.querySelector(\".\" + _this.dropdownContentClass);\r\n }\r\n var dropdowns = _this.resolveElementsByClassName(_this.dropdownContentClass);\r\n for (var i = 0; i < dropdowns.length; i++) {\r\n var openDropdown = dropdowns[i];\r\n if (currentContent != openDropdown) {\r\n if (openDropdown.classList.contains(_this.dropdownShowClass)) {\r\n openDropdown.classList.remove(_this.dropdownShowClass);\r\n }\r\n }\r\n }\r\n };\r\n return _this;\r\n }\r\n AdvancedSearchView.prototype.refreshQueryList = function () {\r\n var _this = this;\r\n if (this.queryListPanel) {\r\n this.queryListPanel.innerHTML = '';\r\n this.context.loadQueryList({\r\n success: function (data) {\r\n var b = domel('ul', _this.queryListPanel)\r\n .addClass('list-group list-group-flush');\r\n data.map(function (item) {\r\n b.addChild('li', function (b) {\r\n b.addClass('list-group-item')\r\n .setStyle('cursor', 'pointer')\r\n .data('id', item.id)\r\n .text(item.name)\r\n .on('click', function () {\r\n _this.checkIfQueryModified(function () { return _this.loadQuery(item.id); });\r\n });\r\n });\r\n });\r\n }\r\n });\r\n }\r\n };\r\n AdvancedSearchView.prototype.initOptions = function (options) {\r\n this.options = _super.prototype.initOptions.call(this, options);\r\n if (typeof (this.options.syncQueryOnChange) == 'undefined') {\r\n this.options.syncQueryOnChange = true;\r\n }\r\n var query = this.context.getQuery();\r\n query.addChangedCallback(this.queryChangedHandler);\r\n // hide any dropdown menu when user clicks somewhere\r\n window.addEventListener('click', this.outsideClickHandler);\r\n return this.options;\r\n };\r\n AdvancedSearchView.prototype.initWidgets = function (options) {\r\n var _this = this;\r\n _super.prototype.initWidgets.call(this, options);\r\n var exportClass = \"eqjs-export\";\r\n var queryContentInputId = \"QueryContentJson\";\r\n var clearQueryButtonId = \"ClearQueryButton\";\r\n var newQueryButtonId = \"NewQueryButton\";\r\n var loadQueryButtonId = \"LoadQueryButton\";\r\n var saveQueryButtonId = \"SaveQueryButton\";\r\n var copyQueryButtonId = \"CopyQueryButton\";\r\n var removeQueryButtonId = \"RemoveQueryButton\";\r\n var storageButtonId = \"StorageDropButton\";\r\n var fetchDataButtonId = \"FetchDataButton\";\r\n var loadQueryFromFileButtonId = \"LoadQueryFromFileButton\";\r\n var saveQueryToFileButtonId = \"SaveQueryToFileButton\";\r\n var queryListPanelId = \"QueryListPanel\";\r\n if (options.slots) {\r\n queryContentInputId = options.slots.queryContentInput || queryContentInputId;\r\n fetchDataButtonId = options.slots.fetchDataButton || fetchDataButtonId;\r\n clearQueryButtonId = options.slots.clearQueryButton || clearQueryButtonId;\r\n newQueryButtonId = options.slots.newQueryButton || newQueryButtonId;\r\n loadQueryButtonId = options.slots.loadQueryButton || loadQueryButtonId;\r\n saveQueryButtonId = options.slots.saveQueryButton || saveQueryButtonId;\r\n copyQueryButtonId = options.slots.copyQueryButton || copyQueryButtonId;\r\n removeQueryButtonId = options.slots.removeQueryButton || removeQueryButtonId;\r\n storageButtonId = options.slots.storageButton || storageButtonId;\r\n exportClass = options.slots.exportClass || exportClass;\r\n loadQueryFromFileButtonId = options.slots.loadQueryFromFileButton || loadQueryFromFileButtonId;\r\n saveQueryToFileButtonId = options.slots.saveQueryToFileButton || saveQueryToFileButtonId;\r\n queryListPanelId = options.slots.queryListPanel || queryListPanelId;\r\n }\r\n this.exportButtons = this.domRoots.reduce(function (elems, root) {\r\n return elems.concat(Array.from(root.querySelectorAll(\".\" + exportClass)));\r\n }, []);\r\n if (!options.enableExport) {\r\n this.hideExportButtons();\r\n }\r\n this.disableExportButtons();\r\n //Add event listener for export buttons\r\n var self = this;\r\n this.exportButtons.forEach(function (button) {\r\n button.addEventListener('click', _this.exportButtonClickHandler);\r\n });\r\n if (!this.fetchDataButton) {\r\n this.fetchDataButton = this.resolveElement(fetchDataButtonId);\r\n if (!this.fetchDataButton) {\r\n this.fetchDataButton = this.resolveElement('ExecuteQueryButton'); //deprecated, should be removed on the next major update\r\n }\r\n if (this.fetchDataButton) {\r\n this.fetchDataButton.addEventListener('click', this.fetchDataButtonClickHandler);\r\n }\r\n }\r\n if (!this.clearQueryButton) {\r\n this.clearQueryButton = this.resolveElement(clearQueryButtonId);\r\n if (this.clearQueryButton) {\r\n this.clearQueryButton.addEventListener('click', this.clearQueryButtonClickHandler);\r\n }\r\n }\r\n if (!this.newQueryButton) {\r\n this.newQueryButton = this.resolveElement(newQueryButtonId);\r\n if (this.newQueryButton) {\r\n this.newQueryButton.addEventListener('click', this.newQueryButtonClickHandler);\r\n }\r\n }\r\n if (!this.loadQueryButton) {\r\n this.loadQueryButton = this.resolveElement(loadQueryButtonId);\r\n if (this.loadQueryButton) {\r\n this.loadQueryButton.addEventListener('click', this.loadQueryButtonClickHandler);\r\n }\r\n }\r\n if (!this.saveQueryButton) {\r\n this.saveQueryButton = this.resolveElement(saveQueryButtonId);\r\n if (this.saveQueryButton) {\r\n this.saveQueryButton.addEventListener('click', this.saveQueryButtonClickHandler);\r\n }\r\n }\r\n if (!this.copyQueryButton) {\r\n this.copyQueryButton = this.resolveElement(copyQueryButtonId);\r\n if (this.copyQueryButton) {\r\n this.copyQueryButton.addEventListener('click', this.copyQueryButtonClickHandler);\r\n }\r\n }\r\n if (!this.removeQueryButton) {\r\n this.removeQueryButton = this.resolveElement(removeQueryButtonId);\r\n if (this.removeQueryButton) {\r\n this.removeQueryButton.addEventListener('click', this.removeQueryButtonClickHandler);\r\n }\r\n }\r\n if (!this.storageDropButton) {\r\n this.storageDropButton = this.resolveElement(storageButtonId);\r\n if (this.storageDropButton) {\r\n this.storageDropButton.addEventListener('click', this.storageButtonClickHandler);\r\n }\r\n }\r\n if (!this.saveQueryToFileButton) {\r\n this.saveQueryToFileButton = this.resolveElement(saveQueryToFileButtonId);\r\n if (this.saveQueryToFileButton) {\r\n this.saveQueryToFileButton.addEventListener('click', this.saveQueryToFileButtonClickHandler);\r\n }\r\n }\r\n if (!this.queryListPanel) {\r\n this.queryListPanel = this.resolveElement(queryListPanelId);\r\n //For backward compatibility. Remove on the next update\r\n if (!this.queryListPanel) {\r\n this.queryListPanel = this.resolveElement('QueryListSlot');\r\n }\r\n if (this.queryListPanel) {\r\n this.context.addEventListener('ready', function () {\r\n _this.refreshQueryList();\r\n });\r\n }\r\n }\r\n if (!this.loadQueryFromFileButton) {\r\n this.loadQueryFromFileButton = this.resolveElement(loadQueryFromFileButtonId);\r\n if (this.loadQueryFromFileButton) {\r\n this.loadQueryFromFileInput = document.createElement('input');\r\n this.loadQueryFromFileInput.type = 'file';\r\n this.loadQueryFromFileInput.accept = options.queryFileExtensions;\r\n this.loadQueryFromFileInput.style.display = 'none';\r\n document.body.appendChild(this.loadQueryFromFileInput);\r\n this.loadQueryFromFileInput.addEventListener('change', this.loadQueryFromFileInputSelect.bind(this));\r\n this.loadQueryFromFileButton.addEventListener('click', this.loadQueryFromFileButtonClickHandler);\r\n }\r\n }\r\n };\r\n /**\r\n * Sends current query to the backend.\r\n */\r\n AdvancedSearchView.prototype.syncQuery = function () {\r\n var _this = this;\r\n this.context.syncQuery({\r\n success: function (responseData) {\r\n if (responseData.statement) {\r\n _this.context.refreshWidgets(WidgetGroup.Statement);\r\n }\r\n }\r\n });\r\n };\r\n /**\r\n * Disables export buttons.\r\n */\r\n AdvancedSearchView.prototype.disableExportButtons = function () {\r\n var _this = this;\r\n this.exportButtons.forEach(function (button) {\r\n button.disabled = true;\r\n if (!button.classList.contains(_this.disabledClass)) {\r\n button.classList.add(_this.disabledClass);\r\n }\r\n });\r\n };\r\n /**\r\n * Enables export buttons.\r\n */\r\n AdvancedSearchView.prototype.enableExportButtons = function () {\r\n var _this = this;\r\n this.exportButtons.forEach(function (button) {\r\n button.disabled = false;\r\n if (button.classList.contains(_this.disabledClass)) {\r\n button.classList.remove(_this.disabledClass);\r\n }\r\n });\r\n };\r\n /**\r\n * Hides export buttons.\r\n */\r\n AdvancedSearchView.prototype.hideExportButtons = function () {\r\n this.exportButtons.forEach(function (button) {\r\n button.style.display = \"none\";\r\n });\r\n };\r\n AdvancedSearchView.prototype.clearQueryButtonClick = function () {\r\n this.context.clearQuery();\r\n this.context.refreshWidgets(WidgetGroup.Statement);\r\n };\r\n AdvancedSearchView.prototype.createNewQuery = function (options) {\r\n return this.context.newQuery(options);\r\n };\r\n AdvancedSearchView.prototype.loadQuery = function (queryId) {\r\n if (!queryId)\r\n return;\r\n this.context.loadQuery({\r\n queryId: queryId,\r\n silent: false\r\n });\r\n };\r\n AdvancedSearchView.prototype.saveQuery = function (success, error) {\r\n var _this = this;\r\n this.context.saveQuery({\r\n success: function () {\r\n if (success)\r\n success();\r\n _this.context.getQuery().fireChangedEvent({\r\n part: QueryChangePart.Properties,\r\n wasModified: false\r\n });\r\n _this.refreshQueryList();\r\n },\r\n error: error\r\n });\r\n };\r\n AdvancedSearchView.prototype.saveCurrentQuery = function (copyQuery, callback) {\r\n var _this = this;\r\n if (copyQuery === void 0) { copyQuery = false; }\r\n var query = this.context.getQuery();\r\n if (query.isNewbie || copyQuery) {\r\n this.showSaveQueryDialog(function (result) { return new Promise(function (resolve) {\r\n if (!result)\r\n return;\r\n query.regenerateId();\r\n query.setName(result);\r\n query.fireChangedEvent({\r\n part: QueryChangePart.Properties,\r\n wasModified: true\r\n });\r\n _this.saveQuery(function () { resolve({ success: true }); callback; }, function (error) { return resolve({ success: false, message: error }); });\r\n }); });\r\n }\r\n else {\r\n this.saveQuery(callback);\r\n }\r\n };\r\n AdvancedSearchView.prototype.checkIfQueryModified = function (callback) {\r\n var _this = this;\r\n if (this.context.getQuery().isModified()\r\n && !this.options.disableConfirmationOnQueryChange) {\r\n this.showQueryChangedDialog(function (result) {\r\n if (result) {\r\n _this.saveCurrentQuery(false, callback);\r\n }\r\n else {\r\n callback();\r\n }\r\n });\r\n }\r\n else {\r\n callback();\r\n }\r\n };\r\n AdvancedSearchView.prototype.removeCurrentQuery = function () {\r\n var _this = this;\r\n this.context.removeQuery({\r\n success: function () {\r\n _this.createNewQuery({\r\n useStorage: false\r\n });\r\n if (_this.resultCountSlot) {\r\n _this.resultCountSlot.style.display = \"none\";\r\n }\r\n _this.context.clearResult();\r\n _this.refreshQueryList();\r\n }\r\n });\r\n };\r\n // ------------------ Dialog wrappers ---------------------\r\n AdvancedSearchView.prototype.showNewQueryDialog = function (callback) {\r\n var ds = this.context.getServices().getDialogService();\r\n var defVal = i18n.getText('NewQueryDefName');\r\n var dlg = ds.open({\r\n title: i18n.getText('NewQueryTitle'),\r\n body: this._querySaveTemplate,\r\n submitable: true,\r\n closable: true,\r\n cancelable: true,\r\n submitOnEnter: true,\r\n arrangeParents: false,\r\n beforeOpen: function () {\r\n var input = document.getElementById(\"kdlg-dialog-form-input\");\r\n if (defVal) {\r\n input.value = defVal;\r\n }\r\n var content = document.getElementById('kdlg-dialog-form-content');\r\n content.innerHTML = i18n.getText('NewQueryContent');\r\n input.focus();\r\n },\r\n onSubmit: function () {\r\n var input = document.getElementById(\"kdlg-dialog-form-input\");\r\n var value = input.value;\r\n if (value && value.replace(/\\s/g, '').length > 0) {\r\n if (!callback)\r\n return true;\r\n dlg.disableButtons();\r\n var header_1 = dlg.getRootElement().querySelector('header');\r\n var processEl_1 = domel('div', header_1)\r\n .addClass('eqjs-process-bar local')\r\n .toDOM();\r\n callback(value)\r\n .then(function (result) {\r\n header_1.removeChild(processEl_1);\r\n dlg.enableButtons();\r\n if (result.success) {\r\n dlg.close();\r\n }\r\n else {\r\n dlg.showAlert(result.message, 'error');\r\n }\r\n });\r\n }\r\n return false;\r\n }\r\n });\r\n };\r\n AdvancedSearchView.prototype.showQueryChangedDialog = function (callback) {\r\n var ds = this.context.getServices().getDialogService();\r\n ds.openConfirm(i18n.getText('QueryChangedTitle'), i18n.getText('QueryChangedContent'), callback);\r\n };\r\n AdvancedSearchView.prototype.showSaveQueryDialog = function (callback) {\r\n var ds = this.context.getServices().getDialogService();\r\n var query = this.context.getQuery();\r\n var newQueryName = query.isNewbie\r\n ? query.getName()\r\n : i18n.getText('SaveQueryDefName').replace('{queryName}', query.getName());\r\n var dlg = ds.open({\r\n title: i18n.getText('SaveQueryTitle'),\r\n body: this._querySaveTemplate,\r\n submitable: true,\r\n closable: true,\r\n cancelable: true,\r\n submitOnEnter: true,\r\n arrangeParents: false,\r\n beforeOpen: function () {\r\n var input = document.getElementById(\"kdlg-dialog-form-input\");\r\n input.value = newQueryName;\r\n var content = document.getElementById('kdlg-dialog-form-content');\r\n content.innerHTML = i18n.getText('SaveQueryContent');\r\n input.focus();\r\n },\r\n onSubmit: function () {\r\n var input = document.getElementById(\"kdlg-dialog-form-input\");\r\n var value = input.value;\r\n if (value && value.replace(/\\s/g, '').length > 0) {\r\n if (!callback)\r\n return true;\r\n dlg.disableButtons();\r\n var header_2 = dlg.getRootElement().querySelector('header');\r\n var processEl_2 = domel('div', header_2)\r\n .addClass('eqjs-process-bar local')\r\n .toDOM();\r\n callback(value)\r\n .then(function (result) {\r\n dlg.enableButtons();\r\n header_2.removeChild(processEl_2);\r\n if (result.success) {\r\n dlg.close();\r\n }\r\n else {\r\n dlg.showAlert(result.message, 'error');\r\n }\r\n });\r\n }\r\n return false;\r\n }\r\n });\r\n };\r\n AdvancedSearchView.prototype.showRemoveQueryDialog = function (callback) {\r\n var ds = this.context.getServices().getDialogService();\r\n var query = this.context.getQuery();\r\n ds.openConfirm(i18n.getText('RemoveQueryTitle'), i18n.getText('RemoveQueryContent').replace('{queryName}', query.getName()), callback);\r\n };\r\n AdvancedSearchView.prototype.showSaveQueryToFileDialog = function (callback) {\r\n var ds = this.getContext().getServices().getDialogService();\r\n var query = this.context.getQuery();\r\n var body = this.renderSaveToFileDialogBody(query.getName());\r\n var dlg = ds.open({\r\n title: i18n.getText('SaveQueryToFileDlgTitle'),\r\n body: body,\r\n onSubmit: function () {\r\n var fileNameInput = body.querySelector('#kdlgFileNameInput');\r\n var fileName = fileNameInput ? fileNameInput.value : \"Query\";\r\n var formatSelector = body.querySelector('#kdlgFileFormatSelector');\r\n var format = formatSelector ? formatSelector.value : 'json';\r\n if (callback) {\r\n dlg.disableButtons();\r\n var header_3 = dlg.getRootElement().querySelector('header');\r\n var processEl_3 = domel('div', header_3)\r\n .addClass('eqjs-process-bar local')\r\n .toDOM();\r\n callback(fileName, format)\r\n .then(function (result) {\r\n dlg.enableButtons();\r\n header_3.removeChild(processEl_3);\r\n if (result.success) {\r\n dlg.close();\r\n }\r\n else {\r\n dlg.showAlert(result.message, 'error');\r\n }\r\n });\r\n return false;\r\n }\r\n return true;\r\n }\r\n });\r\n };\r\n AdvancedSearchView.prototype.renderSaveToFileDialogBody = function (name, format) {\r\n if (format === void 0) { format = \"json\"; }\r\n var isIE = browserUtils.IsIE();\r\n var fieldsClass = isIE\r\n ? 'kfrm-fields-ie col-ie-1-4 label-align-right'\r\n : 'kfrm-fields col-a-1 label-align-right';\r\n var horizClass = isIE\r\n ? 'kfrm-fields-ie is-horizontal'\r\n : 'kfrm-fields is-horizontal';\r\n return domel('div')\r\n .addClass('kfrm-form')\r\n .addChild('div', function (b) {\r\n b.addClass(fieldsClass)\r\n .addChild('label', function (b) { return b\r\n .attr('for', 'file_name')\r\n .addText(i18n.getText('FileNameLabel')); })\r\n .addChild('div', function (b) { return b\r\n .addClass(horizClass)\r\n .addChild('input', function (b) { return b\r\n .id('kdlgFileNameInput')\r\n .name('file_name')\r\n .type('text')\r\n .attr('value', name); })\r\n .addChild('label', function (b) { return b\r\n .addText('.'); })\r\n .addChild('div', function (b) { return b\r\n .addClass('kfrm-select')\r\n .addChild('select', function (b) { return b\r\n .id('kdlgFileFormatSelector')\r\n .addClass('kdlg-form-control')\r\n .addOption({\r\n value: 'xml',\r\n selected: 'xml' === format\r\n })\r\n .addOption({\r\n value: 'json',\r\n selected: 'json' === format\r\n }); }); }); });\r\n })\r\n .toDOM();\r\n };\r\n // ------------------ Query management buttons handler ---------------------\r\n AdvancedSearchView.prototype.newQueryButtonClick = function () {\r\n var _this = this;\r\n this.checkIfQueryModified(function () {\r\n _this.createNewQuery();\r\n });\r\n };\r\n AdvancedSearchView.prototype.saveQueryToFileButtonClick = function () {\r\n var _this = this;\r\n this.showSaveQueryToFileDialog(function (fileName, format) { return new Promise(function (resolve) {\r\n _this.context.getQueryFile({\r\n fileName: fileName,\r\n format: format,\r\n success: function () { return resolve({ success: true }); },\r\n error: function (error) { return resolve({ success: false, message: error }); }\r\n });\r\n }); });\r\n };\r\n AdvancedSearchView.prototype.loadQueryFromFileButtonClick = function () {\r\n var _this = this;\r\n this.checkIfQueryModified(function () {\r\n _this.showLoadQueryFromFileDialog();\r\n });\r\n };\r\n AdvancedSearchView.prototype.showLoadQueryFromFileDialog = function () {\r\n this.loadQueryFromFileInput.click();\r\n };\r\n AdvancedSearchView.prototype.loadQueryFromFileInputSelect = function () {\r\n var _this = this;\r\n var files = this.loadQueryFromFileInput.files;\r\n var file = files.item(0);\r\n var data = new FormData();\r\n data.append(file.name, file);\r\n this.loadQueryFromFileInput.value = \"\";\r\n this.context.uploadQueryFile({\r\n data: data,\r\n success: function () {\r\n _this.syncQuery();\r\n _this.refreshQueryList();\r\n }\r\n });\r\n };\r\n AdvancedSearchView.prototype.loadQueryButtonClick = function () {\r\n var _this = this;\r\n this.context.loadQueryList({\r\n success: function (data) {\r\n _this.fillLoadQueryButtonMenu(data);\r\n _this.queryListMenu.showMenu({\r\n anchor: _this.loadQueryButton,\r\n adjustHeight: false,\r\n itemSelectedCallback: function (data) {\r\n _this.checkIfQueryModified(function () { return _this.loadQuery(data.id); });\r\n }\r\n });\r\n }\r\n });\r\n };\r\n AdvancedSearchView.prototype.fillLoadQueryButtonMenu = function (queryList) {\r\n var query = this.getContext().getQuery();\r\n this.queryListMenu = new PopupMenu({\r\n items: queryList.map(function (item) { return ({ id: item.id, text: item.name }); }),\r\n selectedIds: query.getId()\r\n });\r\n };\r\n AdvancedSearchView.prototype.saveQueryButtonClick = function () {\r\n this.saveCurrentQuery();\r\n };\r\n AdvancedSearchView.prototype.copyQueryButtonClick = function () {\r\n this.saveCurrentQuery(true);\r\n };\r\n AdvancedSearchView.prototype.removeQueryButtonClick = function () {\r\n var _this = this;\r\n this.showRemoveQueryDialog(function (result) {\r\n if (result) {\r\n _this.removeCurrentQuery();\r\n }\r\n });\r\n };\r\n AdvancedSearchView.prototype.storageDropButtonClick = function () {\r\n var _this = this;\r\n var container = this.storageDropButton.parentElement;\r\n var content = container.querySelector(\".\" + this.dropdownContentClass);\r\n if (content) {\r\n window.setTimeout(function () { return content.classList.toggle(_this.dropdownShowClass); }, 100);\r\n }\r\n };\r\n AdvancedSearchView.prototype.fetchDataButtonClick = function () {\r\n this.fetchData();\r\n };\r\n AdvancedSearchView.prototype.detach = function () {\r\n var _this = this;\r\n this.enableExportButtons();\r\n this.exportButtons.forEach(function (button) {\r\n button.removeEventListener('click', _this.exportButtonClickHandler);\r\n });\r\n this.exportButtons = [];\r\n if (this.fetchDataButton) {\r\n this.fetchDataButton.removeEventListener('click', this.fetchDataButtonClickHandler);\r\n this.fetchDataButton = null;\r\n }\r\n if (this.clearQueryButton) {\r\n this.clearQueryButton.removeEventListener('click', this.clearQueryButtonClickHandler);\r\n this.clearQueryButton = null;\r\n }\r\n if (this.newQueryButton) {\r\n this.newQueryButton.removeEventListener('click', this.newQueryButtonClickHandler);\r\n this.newQueryButton = null;\r\n }\r\n if (this.loadQueryButton) {\r\n this.loadQueryButton.removeEventListener('click', this.loadQueryButtonClickHandler);\r\n this.loadQueryButton = null;\r\n }\r\n if (this.saveQueryButton) {\r\n this.saveQueryButton.removeEventListener('click', this.saveQueryButtonClickHandler);\r\n this.saveQueryButton = null;\r\n }\r\n if (this.copyQueryButton) {\r\n this.copyQueryButton.removeEventListener('click', this.copyQueryButtonClickHandler);\r\n this.copyQueryButton = null;\r\n }\r\n if (this.removeQueryButton) {\r\n this.removeQueryButton.removeEventListener('click', this.removeQueryButtonClickHandler);\r\n this.removeQueryButton = null;\r\n }\r\n if (this.storageDropButton) {\r\n this.storageDropButton.removeEventListener('click', this.storageButtonClickHandler);\r\n this.storageDropButton = null;\r\n }\r\n if (this.saveQueryToFileButton) {\r\n this.saveQueryToFileButton.removeEventListener('click', this.saveQueryToFileButtonClickHandler);\r\n this.saveQueryToFileButton = null;\r\n }\r\n if (this.queryListPanel) {\r\n this.queryListPanel = null;\r\n }\r\n if (this.loadQueryFromFileButton) {\r\n if (this.loadQueryFromFileInput) {\r\n document.body.removeChild(this.loadQueryFromFileInput);\r\n }\r\n this.loadQueryFromFileButton.removeEventListener('click', this.loadQueryFromFileButtonClickHandler);\r\n this.loadQueryFromFileButton = null;\r\n }\r\n _super.prototype.detach.call(this);\r\n };\r\n return AdvancedSearchView;\r\n}(View));\r\nexport { AdvancedSearchView };\r\n//left for backward compatibility\r\nvar AdvancedSearchViewJQuery = /** @class */ (function (_super) {\r\n __extends(AdvancedSearchViewJQuery, _super);\r\n function AdvancedSearchViewJQuery() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return AdvancedSearchViewJQuery;\r\n}(AdvancedSearchView));\r\nexport { AdvancedSearchViewJQuery };\r\n//# sourceMappingURL=adv_search_view.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/views/adv_search_view.js\n// module id = 387\n// module chunks = 0","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { EqHtmlGrid } from \"../widgets/eq_result_html_grid\";\r\nimport { DataFilterView } from \"./data_filter_view\";\r\n/**\r\n * The EasyQuery client-side view that represents the UI for data filtering page\r\n */\r\nvar HtmlDataFilterView = /** @class */ (function (_super) {\r\n __extends(HtmlDataFilterView, _super);\r\n function HtmlDataFilterView() {\r\n return _super.call(this) || this;\r\n }\r\n /**\r\n * Creates the widget that represents Grid Widget.\r\n * @param slot The HTMLElement to place the created widget in.\r\n * @returns the created Widget object.\r\n */\r\n HtmlDataFilterView.prototype.createResultGridWidget = function (element) {\r\n return new EqHtmlGrid(element);\r\n };\r\n /**\r\n * Obsolete. Left for backward compatibility.\r\n * Use fetchData() instead\r\n */\r\n HtmlDataFilterView.prototype.applyQueryFilter = function () {\r\n console.warn('applyQueryFilter is obsolete. Use fetchData instead');\r\n this.fetchData();\r\n };\r\n return HtmlDataFilterView;\r\n}(DataFilterView));\r\nexport { HtmlDataFilterView };\r\n//# sourceMappingURL=html_data_filter_view.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/views/html_data_filter_view.js\n// module id = 388\n// module chunks = 0","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { WidgetGroup, QueryChangePart } from '@easyquery/core';\r\nimport { i18n, utils as dataUtils } from '@easydata/core';\r\nimport { domel } from '@easydata/ui';\r\nimport { browserUtils } from '../utils/browser_utils';\r\nimport { View } from './view';\r\n/**\r\n * The view that represents the \"ad-hoc reporting\" scenario\r\n */\r\nvar ReportView = /** @class */ (function (_super) {\r\n __extends(ReportView, _super);\r\n function ReportView() {\r\n var _this = _super.call(this) || this;\r\n _this.reports = [];\r\n _this.reportCache = [];\r\n _this.exportButtons = [];\r\n _this.exportClass = \"eqjs-export\";\r\n _this.disabledClass = \"eqjs-disabled\";\r\n _this.enableExport = false;\r\n _this.useReportCache = true;\r\n _this._reportSaveTemplate = \"
\\n
\\n \\n \\n
\\n
\";\r\n var self = _this;\r\n _this.exportButtonClickHandler = function (e) {\r\n if (!this.classList.contains(self.disabledClass)) {\r\n var format = this.getAttribute(\"data-format\");\r\n self.getContext().exportResult({ format: format });\r\n }\r\n };\r\n _this.clearReportButtonClickHandler = _this.clearReportButtonClick.bind(_this);\r\n _this.newReportButtonClickHandler = _this.newReportButtonClick.bind(_this);\r\n _this.loadReportButtonClickHandler = _this.loadReportButtonClick.bind(_this);\r\n _this.saveReportButtonClickHandler = _this.saveReportButtonClick.bind(_this);\r\n _this.removeReportButtonClickHandler = _this.removeReportButtonClick.bind(_this);\r\n _this.updateReportButtonClickHandler = _this.updateReportButtonClick.bind(_this);\r\n browserUtils.onMobileModeChanged(function (_) {\r\n document.location.reload();\r\n });\r\n return _this;\r\n }\r\n ReportView.prototype.initOptions = function (options) {\r\n var _this = this;\r\n options = _super.prototype.initOptions.call(this, options);\r\n if (typeof (options.syncReportOnChange) === \"undefined\") {\r\n options.syncReportOnChange = true;\r\n }\r\n if (typeof (options.syncQueryOnChange) == \"undefined\") {\r\n options.syncQueryOnChange = options.syncReportOnChange;\r\n }\r\n if (typeof (options.useReportCache) !== \"undefined\") {\r\n this.useReportCache = options.useReportCache;\r\n }\r\n this.defaultReportId = options.defaultReportId;\r\n var query = this.context.getQuery();\r\n query.addChangedCallback(function (event) {\r\n var eventData = event.data;\r\n if (eventData) {\r\n if (eventData.changeType == \"query.switched\") {\r\n _this.context.refreshWidgets(WidgetGroup.Query);\r\n }\r\n else {\r\n _this.disableExportButtons();\r\n if (_this.resultCountSlot) {\r\n _this.resultCountSlot.style.display = \"none\";\r\n }\r\n }\r\n }\r\n if (options.syncQueryOnChange) {\r\n var needSync = eventData && eventData.changeType != \"query.switched\" && !eventData.noSync;\r\n if (needSync) {\r\n _this.syncReport();\r\n }\r\n }\r\n //clear dataset result on query change\r\n if (_this.resultOptions.clearResultOnQueryChange) {\r\n if (!eventData\r\n || eventData.changeType == \"query.switched\"\r\n || eventData.part == QueryChangePart.ExtraData\r\n || eventData.part == QueryChangePart.Facets) {\r\n return;\r\n }\r\n _this.context.clearResult();\r\n _this.context.refreshWidgets(WidgetGroup.Result);\r\n }\r\n });\r\n return options;\r\n };\r\n ReportView.prototype.initDone = function () {\r\n var _this = this;\r\n _super.prototype.initDone.call(this);\r\n window.setTimeout(function () {\r\n _this.context.loadQueryList({\r\n success: function (data) {\r\n if (Array.isArray(data)) {\r\n _this.reports = data;\r\n var exists = _this.reports.filter(function (r) { return r.id == _this.defaultReportId; }).length > 0;\r\n if (exists) {\r\n _this.renderReportList({ reportId: _this.defaultReportId });\r\n }\r\n else {\r\n _this.renderReportList();\r\n }\r\n }\r\n }\r\n });\r\n }, 100);\r\n };\r\n ReportView.prototype.initWidgets = function (options) {\r\n var _this = this;\r\n _super.prototype.initWidgets.call(this, options);\r\n var clearReportButton = \"ClearReportButton\";\r\n var newReportButton = \"NewReportButton\";\r\n var loadReportButton = \"LoadReportButton\";\r\n var saveReportButton = \"SaveReportButton\";\r\n var removeReportButton = \"RemoveReportButton\";\r\n var updateReportButton = \"UpdateReportButton\";\r\n var resultCountSpan = \"ResultCount\";\r\n var exportButtons = \"ResultExportButtons\";\r\n var exportClass = this.exportClass;\r\n if (options.slots) {\r\n resultCountSpan = options.slots.resultCountSpan || resultCountSpan;\r\n exportButtons = options.slots.exportButtons || exportButtons;\r\n clearReportButton = options.slots.clearReportButton || clearReportButton;\r\n newReportButton = options.slots.newReportButton || newReportButton;\r\n loadReportButton = options.slots.loadReportButton || loadReportButton;\r\n saveReportButton = options.slots.saveReportButton || saveReportButton;\r\n removeReportButton = options.slots.removeReportButton || removeReportButton;\r\n updateReportButton = options.slots.updateReportButton || updateReportButton;\r\n exportClass = options.slots.exportClass || exportClass;\r\n }\r\n this.exportButtons = this.domRoots.reduce(function (elems, root) {\r\n return elems.concat(Array.from(root.querySelectorAll(\".\" + exportClass)));\r\n }, []);\r\n this.enableExport = options.enableExport;\r\n if (this.enableExport) {\r\n //Add event listener for export buttons\r\n this.exportButtons.forEach(function (button) {\r\n button.addEventListener('click', _this.exportButtonClickHandler);\r\n });\r\n }\r\n else {\r\n this.hideExportButtons();\r\n }\r\n this.exportButtonsContainer = this.resolveElement(exportButtons);\r\n if (!this.clearReportButton) {\r\n this.clearReportButton = this.resolveElement(clearReportButton);\r\n if (this.clearReportButton) {\r\n this.clearReportButton.addEventListener('click', this.clearReportButtonClickHandler);\r\n }\r\n }\r\n if (!this.newReportButton) {\r\n this.newReportButton = this.resolveElement(newReportButton);\r\n if (this.newReportButton) {\r\n this.newReportButton.addEventListener('click', this.newReportButtonClickHandler);\r\n }\r\n }\r\n if (!this.loadReportButton) {\r\n this.loadReportButton = this.resolveElement(loadReportButton);\r\n if (this.loadReportButton) {\r\n this.loadReportButton.addEventListener('click', this.loadReportButtonClickHandler);\r\n }\r\n }\r\n if (!this.saveReportButton) {\r\n this.saveReportButton = this.resolveElement(saveReportButton);\r\n if (this.saveReportButton) {\r\n this.saveReportButton.addEventListener('click', this.saveReportButtonClickHandler);\r\n }\r\n }\r\n if (!this.removeReportButton) {\r\n this.removeReportButton = this.resolveElement(removeReportButton);\r\n if (this.removeReportButton) {\r\n this.removeReportButton.addEventListener('click', this.removeReportButtonClickHandler);\r\n }\r\n }\r\n if (!this.updateReportButton) {\r\n this.updateReportButton = this.resolveElement(updateReportButton);\r\n if (this.updateReportButton) {\r\n this.updateReportButton.addEventListener('click', this.updateReportButtonClickHandler);\r\n }\r\n }\r\n this.reportListSlot = document.getElementById('ReportList');\r\n this.resultCountSlot = this.resolveElement(resultCountSpan);\r\n };\r\n /**\r\n * Creates a new report.\r\n */\r\n ReportView.prototype.newReport = function () {\r\n var _this = this;\r\n var ds = this.context.getServices().getDialogService();\r\n var dlg = ds.open({\r\n title: i18n.getText('NewReportDlgTitle'),\r\n body: this._reportSaveTemplate,\r\n submitable: true,\r\n closable: true,\r\n cancelable: true,\r\n submitOnEnter: true,\r\n arrangeParents: false,\r\n beforeOpen: function () {\r\n var input = document.getElementById(\"kdlg-dialog-form-input\");\r\n input.value = i18n.getText('NewReportDefName');\r\n var content = document.getElementById('kdlg-dialog-form-content');\r\n content.innerHTML = i18n.getText('SaveReportDlgLabel');\r\n input.focus();\r\n },\r\n onSubmit: function () {\r\n var input = document.getElementById(\"kdlg-dialog-form-input\");\r\n var value = input.value;\r\n if (value && value.replace(/\\s/g, '').length > 0) {\r\n dlg.clearAlert();\r\n dlg.disableButtons();\r\n var header_1 = dlg.getRootElement().querySelector('header');\r\n var processEl_1 = domel('div', header_1)\r\n .addClass('eqjs-process-bar local')\r\n .toDOM();\r\n var query = _this.context.getQuery();\r\n query.reset();\r\n _this.context.newQuery({\r\n name: value,\r\n success: function () {\r\n dlg.close();\r\n var query = _this.context.getQuery();\r\n var reportId = query.getId();\r\n _this.insertIntoReportList({ id: reportId, name: query.getName() });\r\n _this.renderReportList({ reportId: reportId });\r\n },\r\n error: function (error) {\r\n header_1.removeChild(processEl_1);\r\n dlg.enableButtons();\r\n dlg.showAlert(error, 'error');\r\n }\r\n });\r\n }\r\n return false;\r\n }\r\n });\r\n };\r\n /**\r\n * Loads report by ID.\r\n * @param reportId The ID of the report to load.\r\n */\r\n ReportView.prototype.loadReport = function (reportId) {\r\n var _this = this;\r\n if (!reportId) {\r\n throw 'Empty report ID!';\r\n }\r\n var reportToLoad = this.findReportById(reportId);\r\n if (!reportToLoad)\r\n return;\r\n var self = this;\r\n var query = self.context.getQuery();\r\n var reportLoaded = function () {\r\n _this.renderReportProps();\r\n query.fireChangedEvent({\r\n part: QueryChangePart.All,\r\n noSync: true,\r\n changeType: 'query.switched'\r\n });\r\n _this.fetchData();\r\n };\r\n var reportContent = this.useReportCache ? this.getReportContentFromCache(reportToLoad) : null;\r\n if (reportContent) {\r\n query.clear();\r\n query.loadFromJson(reportContent);\r\n reportLoaded();\r\n }\r\n else {\r\n this.context.loadQuery({\r\n queryId: reportId,\r\n silent: true,\r\n success: function () {\r\n _this.saveReportContentInCache(reportToLoad, query.toJSON());\r\n reportLoaded();\r\n }\r\n });\r\n }\r\n this.setActiveReport(reportId);\r\n };\r\n /**\r\n * Shows the dialog to save the report with new name.\r\n */\r\n ReportView.prototype.saveCurrentReportAs = function () {\r\n var _this = this;\r\n var query = this.context.getQuery();\r\n var ds = this.context.getServices().getDialogService();\r\n var dlg = ds.open({\r\n title: i18n.getText('SaveReportDlgTitle'),\r\n body: this._reportSaveTemplate,\r\n submitable: true,\r\n closable: true,\r\n cancelable: true,\r\n submitOnEnter: true,\r\n arrangeParents: false,\r\n beforeOpen: function () {\r\n var input = document.getElementById(\"kdlg-dialog-form-input\");\r\n input.value = query.getName();\r\n var content = document.getElementById('kdlg-dialog-form-content');\r\n content.innerHTML = i18n.getText('SaveReportDlgLabel');\r\n input.focus();\r\n },\r\n onSubmit: function () {\r\n var input = document.getElementById(\"kdlg-dialog-form-input\");\r\n var value = input.value;\r\n if (value && value.replace(/\\s/g, '').length > 0) {\r\n query.setId(dataUtils.generateId(value.replace(/\\s/g, '')));\r\n dlg.clearAlert();\r\n dlg.disableButtons();\r\n var header_2 = dlg.getRootElement().querySelector('header');\r\n var processEl_2 = domel('div', header_2)\r\n .addClass('eqjs-process-bar local')\r\n .toDOM();\r\n _this.context.newQuery({\r\n clearQuery: false,\r\n name: value,\r\n success: function () {\r\n dlg.close();\r\n _this.context.refreshWidgets(WidgetGroup.Query);\r\n var savedQuery = _this.context.getQuery();\r\n var reportId = savedQuery.getId();\r\n _this.fetchData();\r\n _this.insertIntoReportList({ id: reportId, name: query.getName() });\r\n _this.renderReportList({ reportId: reportId });\r\n _this.setActiveReport(reportId);\r\n _this.renderReportProps();\r\n },\r\n error: function (error) {\r\n header_2.removeChild(processEl_2);\r\n dlg.enableButtons();\r\n dlg.showAlert(error, 'error');\r\n }\r\n });\r\n }\r\n return false;\r\n }\r\n });\r\n };\r\n /**\r\n * Removes current report.\r\n */\r\n ReportView.prototype.removeCurrentReport = function () {\r\n var _this = this;\r\n var report = this.context.getQuery();\r\n var ds = this.context.getServices().getDialogService();\r\n ds.openConfirm(i18n.getText('RemoveReportDlgTitle'), i18n.getText('RemoveReportContent').replace('{reportName}', report.getName()))\r\n .then(function (result) {\r\n if (result) {\r\n var reportId_1 = report.getId();\r\n _this.context.removeQuery({\r\n queryId: reportId_1,\r\n success: function () {\r\n var index = _this.removeFromReportList(reportId_1);\r\n _this.renderReportList({ reportIndex: index });\r\n }\r\n });\r\n }\r\n });\r\n };\r\n /**\r\n * Sends current report's query to back-end.\r\n */\r\n ReportView.prototype.syncReport = function () {\r\n var _this = this;\r\n if (this.useReportCache) {\r\n var query = this.context.getQuery();\r\n var currentReport = this.findReportById(query.getId());\r\n if (currentReport) {\r\n currentReport.lastUpdated = Date.now();\r\n this.saveReportContentInCache(currentReport, query.toJSON());\r\n }\r\n }\r\n this.context.syncQuery({\r\n success: function (responseData) {\r\n if (responseData.query)\r\n _this.context.refreshWidgets(WidgetGroup.Query);\r\n if (responseData.statement)\r\n _this.context.refreshWidgets(WidgetGroup.Statement);\r\n }\r\n });\r\n };\r\n /**\r\n * Sets active report.\r\n * @param reportId The ID of the report to make active.\r\n */\r\n ReportView.prototype.setActiveReport = function (reportId) {\r\n var rlItems = this.reportListSlot.querySelectorAll('li');\r\n for (var i = 0; i < rlItems.length; i++) {\r\n var item = rlItems[i];\r\n item.classList.remove('active');\r\n var rid = item.getAttribute('data-rid');\r\n if (rid === reportId) {\r\n item.classList.add('active');\r\n }\r\n }\r\n ;\r\n };\r\n /**\r\n * Renders current report.\r\n */\r\n ReportView.prototype.renderReportProps = function () {\r\n var query = this.context.getQuery();\r\n var titleElem = document.getElementById('ReportTitle');\r\n titleElem.innerHTML = query.getName();\r\n var columnsPanel = document.querySelector('.columns-bar');\r\n if (columnsPanel) {\r\n columnsPanel.innerHTML = 'Columns:';\r\n var columns = query.getColumns();\r\n for (var _i = 0, columns_1 = columns; _i < columns_1.length; _i++) {\r\n var column = columns_1[_i];\r\n columnsPanel.innerHTML += '' + column.caption + ' ';\r\n }\r\n }\r\n };\r\n /**\r\n * Renders the list of reports.\r\n * @param options The options. In particular, `options.reportIndex` defines which report should be active.\r\n */\r\n ReportView.prototype.renderReportList = function (options) {\r\n this.renderReportPanels();\r\n if (!this.reportListSlot.matches('li')) {\r\n this.reportListSlot.innerHTML = \"\";\r\n options = options || { reportId: (this.reports.length > 0 ? this.reports[0].id : null) };\r\n var ul = document.createElement('ul');\r\n ul.className = 'list-group list-group-flush';\r\n this.reportListSlot.appendChild(ul);\r\n for (var _i = 0, _a = this.reports; _i < _a.length; _i++) {\r\n var report = _a[_i];\r\n this.renderReportItemInList(report, ul);\r\n }\r\n if (options.reportId) {\r\n this.loadReport(options.reportId);\r\n }\r\n if (typeof (options.reportIndex) !== \"undefined\") {\r\n var idx = options.reportIndex;\r\n if (idx >= this.reports.length)\r\n idx = this.reports.length - 1;\r\n if (idx < 0 && this.reports.length > 0)\r\n idx = 0;\r\n if (idx >= 0)\r\n this.loadReport(this.reports[idx].id);\r\n }\r\n }\r\n };\r\n ReportView.prototype.detach = function () {\r\n var _this = this;\r\n if (this.exportButtonsContainer) {\r\n this.showExportButtons();\r\n this.exportButtons.forEach(function (button) {\r\n button.removeEventListener('click', _this.exportButtonClickHandler);\r\n });\r\n this.exportButtons = [];\r\n this.exportButtonsContainer = null;\r\n }\r\n if (this.clearReportButton) {\r\n this.clearReportButton.removeEventListener('click', this.clearReportButtonClickHandler);\r\n this.clearReportButton = null;\r\n }\r\n if (this.newReportButton) {\r\n this.newReportButton.removeEventListener('click', this.newReportButtonClickHandler);\r\n this.newReportButton = null;\r\n }\r\n if (!this.loadReportButton) {\r\n this.loadReportButton.removeEventListener('click', this.loadReportButtonClickHandler);\r\n this.loadReportButton = null;\r\n }\r\n if (this.saveReportButton) {\r\n this.saveReportButton.addEventListener('click', this.saveReportButtonClickHandler);\r\n this.saveReportButton = null;\r\n }\r\n if (!this.removeReportButton) {\r\n this.removeReportButton.removeEventListener('click', this.removeReportButtonClickHandler);\r\n this.removeReportButton = null;\r\n }\r\n if (this.updateReportButton) {\r\n this.updateReportButton.removeEventListener('click', this.updateReportButtonClickHandler);\r\n this.removeReportButton = null;\r\n }\r\n if (this.reportListSlot) {\r\n this.reportListSlot.innerHTML = '';\r\n this.reportListSlot = null;\r\n }\r\n if (this.resultCountSlot) {\r\n this.resultCountSlot.innerHTML = '';\r\n this.resultCountSlot = null;\r\n }\r\n _super.prototype.detach.call(this);\r\n };\r\n /**\r\n * Renders a single item in the list of reports.\r\n * @param report The [[Report]] object to render.\r\n * @param ul The [[HTMLUListElement]] to add the item to.\r\n */\r\n ReportView.prototype.renderReportItemInList = function (report, ul) {\r\n if (!ul) {\r\n ul = this.reportListSlot.querySelector(\"ul\");\r\n }\r\n var reportName = report.name || report.description || \"\";\r\n var li = document.createElement('li');\r\n li.className = \"list-group-item\";\r\n li.style.cursor = 'pointer';\r\n li.setAttribute('data-rid', report.id);\r\n li.innerText = reportName;\r\n var self = this;\r\n li.addEventListener('click', function (e) {\r\n var target = e.target;\r\n var rid = target.getAttribute('data-rid');\r\n self.loadReport(rid);\r\n self.setActiveReport(rid);\r\n });\r\n ul.appendChild(li);\r\n };\r\n /**\r\n * Renders report panels.\r\n */\r\n ReportView.prototype.renderReportPanels = function () {\r\n var reportsContainer = document.getElementById(\"ReportsContainer\");\r\n var noReportPanel = document.getElementById(\"NoReportPanel\");\r\n if (this.reports.length > 0) {\r\n this.hideElement(noReportPanel);\r\n this.showElement(reportsContainer);\r\n }\r\n else {\r\n this.hideElement(reportsContainer);\r\n this.showElement(noReportPanel);\r\n }\r\n };\r\n //TODO: Move these two functions to @easydata/ui\r\n ReportView.prototype.hideElement = function (element) {\r\n if (element) {\r\n element.style.visibility = 'hidden';\r\n }\r\n };\r\n ReportView.prototype.showElement = function (element) {\r\n if (element) {\r\n element.style.removeProperty('visibility');\r\n }\r\n };\r\n /**\r\n * Inserts the report to the list of reports.\r\n * @param report The [[Report]] object to be inserted.\r\n */\r\n ReportView.prototype.insertIntoReportList = function (report) {\r\n this.reports.push(report);\r\n };\r\n /**\r\n * Removes the report from the list of reports.\r\n * @param reportId The ID of the report to be removed.\r\n * @returns the index of removed report.\r\n */\r\n ReportView.prototype.removeFromReportList = function (reportId) {\r\n var index = this.indexOfReportById(reportId);\r\n if (index >= 0)\r\n this.reports.splice(index, 1);\r\n return index;\r\n };\r\n ReportView.prototype.indexOfReportById = function (reportId) {\r\n for (var i = 0; i < this.reports.length; i++) {\r\n if (this.reports[i].id === reportId)\r\n return i;\r\n }\r\n return -1;\r\n };\r\n /**\r\n * The handler of the \"Clear\" button click.\r\n */\r\n ReportView.prototype.clearReportButtonClick = function () {\r\n this.clearErrors();\r\n this.context.clearQuery();\r\n };\r\n /**\r\n * The handler of the \"Update\" button click.\r\n */\r\n ReportView.prototype.updateReportButtonClick = function () {\r\n this.fetchData();\r\n };\r\n /**\r\n * The handler of the \"Save\" button click.\r\n */\r\n ReportView.prototype.saveReportButtonClick = function () {\r\n this.saveCurrentReportAs();\r\n };\r\n /**\r\n * The handler of the \"Load\" button click.\r\n */\r\n ReportView.prototype.loadReportButtonClick = function () {\r\n this.loadReport(\"LastQuery\");\r\n };\r\n /**\r\n * The handler of the \"Remove\" button click.\r\n */\r\n ReportView.prototype.removeReportButtonClick = function () {\r\n this.removeCurrentReport();\r\n };\r\n /**\r\n * The handler of the \"New\" button click.\r\n */\r\n ReportView.prototype.newReportButtonClick = function () {\r\n this.newReport();\r\n };\r\n /**\r\n * The handler of errors.\r\n * @param error The error object.\r\n */\r\n ReportView.prototype.errorHandler = function (error) {\r\n };\r\n /**\r\n * Clears the errors.\r\n */\r\n ReportView.prototype.clearErrors = function () {\r\n };\r\n /**\r\n * Disables export buttons.\r\n */\r\n ReportView.prototype.disableExportButtons = function () {\r\n this.hideExportButtons();\r\n };\r\n /**\r\n * Enables export buttons.\r\n */\r\n ReportView.prototype.enableExportButtons = function () {\r\n this.showExportButtons();\r\n };\r\n /**\r\n * Hides export buttons.\r\n */\r\n ReportView.prototype.hideExportButtons = function () {\r\n if (this.exportButtonsContainer) {\r\n this.exportButtonsContainer.style.display = \"none\";\r\n }\r\n };\r\n /**\r\n * Shows export buttons.\r\n */\r\n ReportView.prototype.showExportButtons = function () {\r\n if (this.exportButtonsContainer) {\r\n this.exportButtonsContainer.style.display = \"initial\";\r\n }\r\n };\r\n /**\r\n * Saves reports content to the cache.\r\n * @param report The report.\r\n * @param content The content (Query serialized into JSON).\r\n */\r\n ReportView.prototype.saveReportContentInCache = function (report, content) {\r\n var item = this.findReportCacheItem(report.id);\r\n if (!item) {\r\n item = { id: report.id };\r\n this.reportCache.push(item);\r\n }\r\n item.lastUpdated = report.lastUpdated;\r\n item.content = content;\r\n };\r\n /**\r\n * Gets the report content from cache.\r\n * @param report The report.\r\n * @returns Content of the report (Query in JSOn string)\r\n */\r\n ReportView.prototype.getReportContentFromCache = function (report) {\r\n var item = this.findReportCacheItem(report.id);\r\n if (item && item.lastUpdated === report.lastUpdated) {\r\n return item.content;\r\n }\r\n return null;\r\n };\r\n ReportView.prototype.findReportById = function (id) {\r\n for (var _i = 0, _a = this.reports; _i < _a.length; _i++) {\r\n var item = _a[_i];\r\n if (item.id === id) {\r\n return item;\r\n }\r\n }\r\n return null;\r\n };\r\n ReportView.prototype.findReportCacheItem = function (id) {\r\n for (var _i = 0, _a = this.reportCache; _i < _a.length; _i++) {\r\n var item = _a[_i];\r\n if (item.id === id) {\r\n return item;\r\n }\r\n }\r\n return null;\r\n };\r\n return ReportView;\r\n}(View));\r\nexport { ReportView };\r\n//left for backward compatibility\r\nvar ReportViewJQuery = /** @class */ (function (_super) {\r\n __extends(ReportViewJQuery, _super);\r\n function ReportViewJQuery() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return ReportViewJQuery;\r\n}(ReportView));\r\nexport { ReportViewJQuery };\r\n//# sourceMappingURL=report_view.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/views/report_view.js\n// module id = 389\n// module chunks = 0","import { i18n } from '@easydata/core';\r\nfunction addOldEasyQueryUIMapper() {\r\n i18n.addMapper(function (info) {\r\n if (!info && !info.texts)\r\n return;\r\n for (var prop in info.texts) {\r\n switch (prop) {\r\n case 'PredicateTitle':\r\n info.texts['ConditionGroupTitle'] = info.texts[prop];\r\n break;\r\n case 'RootPredicateTitle':\r\n info.texts['RootConditionGroupTitle'] = info.texts[prop];\r\n break;\r\n case 'ErrIncorrectPredicateTitleFormat':\r\n info.texts['ErrIncorrectGroupTitleFormat'] = info.texts[prop];\r\n break;\r\n case 'ButtonAddPredicate':\r\n info.texts['ButtonAddGroup'] = info.texts[prop];\r\n break;\r\n case 'ButtonDelete':\r\n info.texts['CmdDelete'] = info.texts[prop];\r\n break;\r\n case 'ButtonClear':\r\n info.texts['CmdClear'] = info.texts[prop];\r\n break;\r\n case 'ButtonEnable':\r\n info.texts['CmdToggleEnable'] = info.texts[prop];\r\n break;\r\n case 'ButtonAddCondition':\r\n info.texts['CmdAddCondition'] = info.texts[prop];\r\n break;\r\n case 'ButtonAddGroup':\r\n info.texts['CmdAddCondGroup'] = info.texts[prop];\r\n break;\r\n default:\r\n //do nothing\r\n break;\r\n }\r\n }\r\n });\r\n}\r\nfunction addEasyQueryUITexts() {\r\n i18n.updateDefaultTexts({\r\n AltMenuAttribute: 'Attribute',\r\n AltMenuConstantExpression: 'Constant expression',\r\n ButtonApply: 'Apply',\r\n ButtonCancel: 'Cancel',\r\n ButtonClose: 'Close',\r\n ButtonNext: 'Next',\r\n ButtonPrev: 'Prev',\r\n ButtonNow: 'Now',\r\n ButtonOK: 'OK',\r\n MenuEnable: 'Enabled',\r\n MenuParameterization: 'Parameterized',\r\n MenuJoinCond: 'Use in JOIN',\r\n CmdClear: 'Clear',\r\n CmdDelete: 'Delete',\r\n CmdToggleEnable: 'Toggle enable',\r\n CmdAddCondition: 'Add condition',\r\n CmdAddCondGroup: 'Add group of conditions',\r\n ButtonSelectAll: 'Select all',\r\n ButtonDeselectAll: 'Clear selection',\r\n ButtonAddColumns: 'Add column(s)',\r\n ButtonAddConditions: 'Add condition(s)',\r\n CmdClickToAddCondition: '[Add new condition]',\r\n CmdDeleteRow: 'Delete this row',\r\n ErrIncorrectGroupTitleFormat: 'Incorrect condition group title format',\r\n ErrNotNumber: ' is not a number',\r\n ErrIncorrectInteger: 'Incorrect integer value',\r\n ErrIncorrectNumberList: 'Incorrect list format',\r\n False: 'False',\r\n LinkTypeAll: 'all',\r\n LinkTypeAny: 'any',\r\n LinkTypeNone: 'none',\r\n LinkTypeNotAll: 'not all',\r\n ConjAll: 'and',\r\n ConjAny: 'or',\r\n ConjNotAll: 'and',\r\n ConjNone: 'or',\r\n MsgApplySelection: '[Apply selection]',\r\n MsgAs: 'as',\r\n MsgEmptyList: '(empty list)',\r\n MsgEmptyListValue: '[select value]',\r\n MsgEmptyScalarValue: '[enter value]',\r\n MsgSubQueryValue: '[edit sub-query]',\r\n MsgEmptyAttrValue: '[select attribute]',\r\n MsgEmptyOperator: '[Unrecognized operator]',\r\n MsgEmptyCustomSql: '[enter SQL expression]',\r\n MsgCustomSql: '[Custom SQL]',\r\n MsgNoResult: 'No result',\r\n MsgResultCount: '{0} records found',\r\n MsgOf: 'of',\r\n ConditionGroupTitle: '{lt} of the following apply',\r\n RootConditionGroupTitle: 'Select records where {lt} of the following apply',\r\n StrAddConditions: 'Add conditions',\r\n SubQueryDialogTitle: 'Edit sub-query',\r\n SubQueryColumnTitle: 'Column:',\r\n SubQueryEmptyColumn: '[select column]',\r\n SubQueryQueryPanelCaption: 'Conditions',\r\n True: 'True',\r\n ButtonSorting: 'Sorting',\r\n ButtonToAggr: 'Change to aggregate column',\r\n ButtonToSimple: 'Change to simple column',\r\n CmdAscending: 'Ascending',\r\n CmdClickToAddColumn: '[Add new column]',\r\n CmdDeleteColumn: 'Delete column',\r\n CmdDeleteSorting: 'Delete sorting',\r\n CmdDescending: 'Descending',\r\n CmdGroupSort: 'Sorting',\r\n CmdNotSorted: 'Not sorted',\r\n ColTypeAggrFunc: 'Aggregate function',\r\n ColTypeCompound: 'Calculated',\r\n ColTypeGroup: 'Column type',\r\n ColTypeSimple: 'Simple column',\r\n HeaderExpression: 'Expression',\r\n HeaderSorting: 'Sorting',\r\n HeaderTitle: 'Title',\r\n SortHeaderColumn: 'Column',\r\n SortHeaderSorting: 'Sorting',\r\n StrAddColumns: 'Add columns',\r\n CustomExpression: 'Custom Expression',\r\n CmdMoveToStart: 'Move to start',\r\n CmdMoveRight: 'Move right',\r\n CmdMoveLeft: 'Move left',\r\n CmdMoveToEnd: 'Move to the end',\r\n CmdMoveUp: 'Move up',\r\n CmdMoveDown: 'Move down',\r\n ButtonMenu: 'Show menu',\r\n CmdToSimple: 'Not aggregated',\r\n CmdMoveToFirst: 'Move to the first',\r\n CmdMoveToPrev: 'Move to the previous',\r\n CmdMoveToNext: 'Move to the next',\r\n CmdMoveToLast: 'Move to the last',\r\n CmdHiddenColumn: 'Hidden',\r\n RowButtonTitle: 'Click to see the available options',\r\n EntityToggle: 'Toggle entity',\r\n //FilterBar\r\n StrNoFilterDefined: 'No filter defined',\r\n StrNoFilterClickToAdd: 'No filter defined. Click to add a new condition',\r\n //Time picker\r\n HintHours: 'Hours',\r\n HintMinutes: 'Minutes',\r\n //advanced search view texts\r\n RemoveQueryTitle: 'Confirmation',\r\n RemoveQueryContent: 'Remove query [{queryName}]?',\r\n NewQueryTitle: 'New query',\r\n NewQueryContent: 'New query name: ',\r\n NewQueryDefName: 'New query',\r\n SaveQueryTitle: 'Save query',\r\n SaveQueryContent: 'Query name: ',\r\n SaveQueryDefName: '{queryName} copy',\r\n QueryChangedTitle: 'Confirmation',\r\n QueryChangedContent: 'The query was changed. Do you want to save it first?',\r\n UpdateQuerySelector: '[click here to load the query]',\r\n FileNameLabel: 'File name: ',\r\n SaveQueryToFileDlgTitle: 'Save query to file',\r\n //report view texts\r\n NewReportDefName: 'New report',\r\n NewReportDlgTitle: 'New report',\r\n SaveReportDlgTitle: 'Save report',\r\n SaveReportDlgLabel: 'Report name:',\r\n RemoveReportDlgTitle: 'Remove report',\r\n RemoveReportContent: 'Are you shure you want to remove report \\'{reportName}\\'?',\r\n //facets\r\n Facets: {\r\n TotalRecordsLabel: 'Total records:',\r\n AddMenuItems: {\r\n Chart: 'Chart',\r\n Pivot: 'Pivot table',\r\n DataTable: 'Data table'\r\n },\r\n LoadDataDlgTitle: 'Downloading data',\r\n LoadDataDlgContent: 'Records loaded: {loadedRecs}/{totalRecs}',\r\n RefreshBtnTitle: 'Refresh',\r\n ExportBtnTitle: 'Export',\r\n MaximizeBtnTitle: 'Maximize',\r\n RestoreBtnTitle: 'Restore Down',\r\n RemoveFacetDlgTitle: 'Remove facet',\r\n RemoveFacetDlgContent: \"Are you sure, that you want to delete {facetTitle} tab?\",\r\n DefaultDlgTitle: 'Setup facet',\r\n DefaultFacetTitle: '',\r\n NewFacetTitle: 'New Facet',\r\n TabNameLabel: 'Tab name',\r\n ErrQueryChanged: 'FAILED TO DISPLAY. QUERY WAS CHANGED',\r\n ErrNotEnoughData: \"We can't display the graph because not all data for this query is loaded. \\n The total number of records: {totalRecs}, currently loaded: {cachedRecs}. \\n You can [download the result]. Please note: this may take some time and consume a lot of memory.\",\r\n Chart: {\r\n FacetTitle: 'Chart',\r\n DlgTitle: 'Chart settings',\r\n DataColumnSelectorLabel: 'Data column',\r\n LabelColumnSelectorLabel: 'Label column',\r\n ChartTypeSelectorLabel: 'Chart type',\r\n ShowLegendLabel: 'Show legend (if available)'\r\n },\r\n Pivot: {\r\n FacetTitle: 'Pivot table',\r\n DlgTitle: 'Pivot settings',\r\n SwipeBtnTitle: 'Swipe column and row fields',\r\n ColumnFieldSelectorLabel: 'Column field',\r\n RowFieldSelectorLabel: 'Row field',\r\n CellDataSelectorLabel: 'Cell data',\r\n TotalsRowLabel: 'Totals row',\r\n TotalsColLabel: 'Totals column',\r\n TotalGridLabel: 'Total'\r\n },\r\n DataTable: {\r\n FacetTitle: 'Result table',\r\n DlgTitle: 'Table facet settings'\r\n }\r\n },\r\n TotalsDlgLabel: 'Totals',\r\n GrandTotalsLabel: 'Grand totals',\r\n TotalsDlgTitle: 'Select totals',\r\n //formats\r\n ExportDlgTitle: 'Export result',\r\n ExportDlgFmtLabel: 'Format',\r\n 'csv': 'CSV',\r\n 'excel': 'Excel',\r\n 'pdf': 'PDF',\r\n 'excel-html': 'HTML (Excel-compatible)'\r\n });\r\n}\r\naddOldEasyQueryUIMapper();\r\naddEasyQueryUITexts();\r\n//# sourceMappingURL=text_resources.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/i18n/text_resources.js\n// module id = 390\n// module chunks = 0","import { EqServiceProvider } from \"@easyquery/core\";\r\nEqServiceProvider.prototype.registerDialogServiceResolver = function (resolver) {\r\n this['dialogServiceResolver'] = resolver;\r\n};\r\nEqServiceProvider.prototype.getDialogService = function () {\r\n if (!this['dialogService']) {\r\n if (!this['dialogServiceResolver']) {\r\n throw 'DialogServiceResolver is not defined';\r\n }\r\n this['dialogService'] = this['dialogServiceResolver']();\r\n }\r\n return this['dialogService'];\r\n};\r\n//# sourceMappingURL=extensions.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/ui/dist/lib/extensions.js\n// module id = 391\n// module chunks = 0","import './extensions';\r\nexport * from './data/eqs_totals_calculator';\r\nexport * from './query/query_ex';\r\nexport * from './query/query_column_ex';\r\nexport * from './query/condition_ex';\r\nexport * from './dm/model_ex';\r\nexport * from './main/eqs_query_storage';\r\n//# sourceMappingURL=public_api.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/enterprise/dist/lib/public_api.js\n// module id = 392\n// module chunks = 0","import { EqContext, equtils } from '@easyquery/core';\r\nimport { QueryEx } from './query/query_ex';\r\nimport { EqServerQueryStorage } from './main/eqs_query_storage';\r\nimport { DataModelEx } from './dm/model_ex';\r\nimport { lcv } from './utils/lcv';\r\nimport { EqTotalsCalculator } from './data/eqs_totals_calculator';\r\nEqContext.prototype.setLicenseKeyEndpoint = function (endpoint) {\r\n console.warn('This method is deprecated and will be ignored. Starting version 7.0.0 endpoint set for EasyQuery actions will be used via adding \\'./easyquery/lck\\'');\r\n};\r\nEqContext.prototype.useEnterprise = function (keyOrInitCallback) {\r\n var _this = this;\r\n var func = function (key) {\r\n lcv.ck(key);\r\n if (lcv.__kt) {\r\n var services = _this.getServices();\r\n services.registerDataModelResolver(function (context) { return new DataModelEx(); });\r\n services.registerQueryResolver(function (context) { return new QueryEx(context.getModel()); });\r\n services.registerQueryStorageResolver(function (context) { return new EqServerQueryStorage(context); });\r\n services.registerTotalCalculator(function (context) { return new EqTotalsCalculator(context); });\r\n if (lcv.__kt === 1) {\r\n console.warn('EasyQuery.JS is working in TRIAL MODE! Please order a license to get a proper product key (https://korzh.com/eq).');\r\n createTrialWM();\r\n setTimeout(function () {\r\n showTrialWM();\r\n setTimeout(hideTrialWM, 6000);\r\n }, 3000);\r\n }\r\n }\r\n else {\r\n console.error(\"INVALID KEY! EasyQuery.JS is working in Community edition mode! Please contact the vendor (https://korzh.com/support) to resolve this issue\");\r\n }\r\n };\r\n if (typeof (keyOrInitCallback) === \"string\") {\r\n func(keyOrInitCallback);\r\n }\r\n else if (typeof (keyOrInitCallback) === \"function\") {\r\n var http = this.getServices().getHttpClient();\r\n var url = equtils.combinePath(this.getBaseEndpoint(), 'lck');\r\n http.get(url)\r\n .then(function (result) { func(result.split(\"\").reverse().join(\"\")); keyOrInitCallback(); })\r\n .catch(function (error) { return console.error(error); });\r\n }\r\n else {\r\n throw new Error(\"Wrong type of 'keyOrInitCallback' parameter. It must be a string with a license key or a callback function.\");\r\n }\r\n};\r\nvar trialDiv;\r\nfunction createTrialWM() {\r\n // we can rewrite it using shadow dom\r\n // to make it impossible to hide using JS :)\r\n trialDiv = document.createElement(\"div\");\r\n trialDiv.style.position = \"fixed\";\r\n trialDiv.style.bottom = \"0\";\r\n trialDiv.style.right = \"-400px\";\r\n trialDiv.style.width = \"400px\";\r\n trialDiv.style.height = \"100px\";\r\n trialDiv.style.color = \"grey\";\r\n trialDiv.style.textAlign = \"center\";\r\n trialDiv.style.opacity = \"0.7\";\r\n trialDiv.style.font = \"bold 1em Trebuchet MS, Tahoma, Verdana, Geneva, Arial, Helvetica, sans-serif\";\r\n trialDiv.style.transition = \"right 3s ease-out\";\r\n var header = document.createElement(\"div\");\r\n var eq = document.createElement(\"span\");\r\n eq.innerText = \"EasyQuery\";\r\n eq.style.color = \"#3A94D4\";\r\n eq.style.lineHeight = \"50px\";\r\n header.appendChild(eq);\r\n var korzh = document.createElement(\"span\");\r\n korzh.innerText = \"by Korzh.com\";\r\n korzh.style.marginLeft = \"10px\";\r\n header.appendChild(korzh);\r\n trialDiv.appendChild(header);\r\n var trialOnly = document.createElement(\"div\");\r\n trialOnly.innerText = \"FOR TRIAL USE ONLY\";\r\n trialOnly.style.fontSize = \"1.2em\";\r\n trialOnly.style.fontWeight = \"1000\";\r\n trialDiv.appendChild(trialOnly);\r\n document.body.appendChild(trialDiv);\r\n}\r\nfunction showTrialWM() {\r\n if (trialDiv) {\r\n trialDiv.style.right = \"0\";\r\n }\r\n}\r\nfunction hideTrialWM() {\r\n if (trialDiv) {\r\n trialDiv.style.right = \"-400px\";\r\n setTimeout(function () {\r\n trialDiv.parentNode.removeChild(trialDiv);\r\n }, 5000);\r\n }\r\n}\r\n//# sourceMappingURL=extensions.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@easyquery/enterprise/dist/lib/extensions.js\n// module id = 393\n// module chunks = 0","import React from 'react';\n\nconst AdhocUI = () => (\n
\n )\n\nexport default AdhocUI;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/AdhocUI.js","// In production, we register a service worker to serve assets from local cache.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport default function register () {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl);\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl);\n }\n });\n }\n}\n\nfunction registerValidSW (swUrl) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n console.log('New content is available; please refresh.');\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker (swUrl) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (\n response.status === 404 ||\n response.headers.get('content-type').indexOf('javascript') === -1\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister () {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/registerServiceWorker.js"],"sourceRoot":""}