UNPKG

@reaqtive/components

Version:

A react library to speed up the development of Qlik mash ups and data visualization apps

144 lines (123 loc) 4.32 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _q = require("@reaqtive/q"); var _index = require("../index"); var _rqtvCurrentSelectionsObject = _interopRequireDefault(require("./rqtv-current-selections-object")); var _layout = _interopRequireDefault(require("./layout")); var _jsxFileName = "/Users/paolo_d/Projects/React/reaqtive/packages/components/src/lib/current-selections/index.js"; const useQCurrentSelectionsObjectDef = qState => (0, _react.useMemo)(() => { return { "qInfo": { "qId": "", "qType": "SessionLists" }, "qSelectionObjectDef": { "qStateName": qState }, qSelections: null, qFields: null }; }, [qState]); /** * RqtvCurrentSelections * * it is a toolbar that displays the current selection status and the buttons to go back, forward and clear current selections. * Clicking on the button displayin the number of current selections, a modal will appear showing the current selection box (fields and selected values) * It currently does not support alternate states. It always display the default state. * Styles can be customized via css (or scss) * */ const RqtvCurrentSelections = props => { const appData = (0, _react.useContext)(_index.RqtvAppContext); const hidePrefix = props.hidePrefix ? props.hidePrefix : appData.hidePrefix; const excludeHidden = props.excludeHidden ? props.excludeHidden : appData.excludeHidden; const qCurrentSelectionsObjectDef = useQCurrentSelectionsObjectDef(props.qState); return _react.default.createElement("div", { className: "rqtv-current-selections", hidden: props.hidden, __source: { fileName: _jsxFileName, lineNumber: 40 }, __self: void 0 }, _react.default.createElement(_q.QGenericObject, { qObjectDef: qCurrentSelectionsObjectDef, __source: { fileName: _jsxFileName, lineNumber: 41 }, __self: void 0 }, _react.default.createElement(_rqtvCurrentSelectionsObject.default, { __source: { fileName: _jsxFileName, lineNumber: 42 }, __self: void 0 }, _react.default.createElement(_layout.default, { isResponsive: props.isResponsive, showModalToggler: props.showModalToggler, useCurrentSelectionModal: props.useCurrentSelectionModal, excludeHidden: excludeHidden, hidePrefix: hidePrefix, alwaysShowToolbar: props.alwaysShowToolbar, customLoading: props.customLoading, breakPoint: props.breakPoint, qState: props.qState, __source: { fileName: _jsxFileName, lineNumber: 43 }, __self: void 0 })))); }; RqtvCurrentSelections.propTypes = { /** * it allows to turnoff the current selections box modal */ useCurrentSelectionModal: _propTypes.default.bool, /** * when true it transform the toolbar into a fixed positioned floating button */ isResponsive: _propTypes.default.bool, /** * screentype from which current selections are responsive */ breakPoint: _propTypes.default.oneOf(['xl', 'lg', 'md', 'sm']), /** * it allows to show/hide the modal toggler */ showModalToggler: _propTypes.default.bool, /** * if true the current selection toolbar is always shown even if no selection history exists (0 current, selection 0 back-count and 0 forward count) */ alwaysShowToolbar: _propTypes.default.bool, /** * prefix of the fields to be hidden from current selections modal */ hidePrefix: _propTypes.default.string, /** * if true field hidden from current selections are not considered in selection count */ excludeHidden: _propTypes.default.bool, /** * the alternate state from which to display current selections */ qState: _propTypes.default.string }; RqtvCurrentSelections.defaultProps = { useCurrentSelectionModal: true, isResponsive: true, showModalToggler: true, alwaysShowToolbar: false, breakPoint: 'lg', qState: '' }; var _default = RqtvCurrentSelections; exports.default = _default;