UNPKG

@reaqtive/components

Version:

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

183 lines (154 loc) 4.87 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray")); var _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _q = require("@reaqtive/q"); var _rqtvListObject = _interopRequireDefault(require("../rqtv-list-object")); var _index = require("../helpers/index"); var _layout = _interopRequireDefault(require("./layout")); var _jsxFileName = "/Users/paolo_d/Projects/React/reaqtive/packages/components/src/lib/filters/rqtv-search-field/index.js"; /** * RqtvSearchField * It provides you an input field to search a listbox. * When the user starts typing a dropdown menu appears under the input field. * * You can tweak its behaviour using props * * You can customize style using props and css */ const RqtvSearchField = props => { //const {qFieldExpr, qSortObject, qState, qObjectDef} = props const qObjectDef = (0, _index.useMapPropsToDef)(props); const _useState = (0, _react.useState)(), _useState2 = (0, _slicedToArray2.default)(_useState, 2), show = _useState2[0], setShow = _useState2[1]; return _react.default.createElement("div", { className: "dropdown ".concat(true ? 'show' : '', " rqtv-dropdown"), __source: { fileName: _jsxFileName, lineNumber: 22 }, __self: void 0 }, _react.default.createElement(_q.QGenericObject, { qObjectDef: qObjectDef, quickSelectionMode: props.quickSelectionMode, __source: { fileName: _jsxFileName, lineNumber: 23 }, __self: void 0 }, _react.default.createElement(_rqtvListObject.default, Object.assign({}, props, { __source: { fileName: _jsxFileName, lineNumber: 27 }, __self: void 0 }), _react.default.createElement(_layout.default, Object.assign({}, props, { show: show, setShow: setShow, __source: { fileName: _jsxFileName, lineNumber: 28 }, __self: void 0 }))))); }; RqtvSearchField.propTypes = { /** * The expression which will be used in the listbox. It can be a fieldname or a valid expression */ qFieldExpr: _propTypes.default.string.isRequired, qSortObject: _propTypes.default.shape({ /** * Sorts the field values according to their logical state (selected, optional, alternative or excluded). */ qSortByState: _propTypes.default.number, /** * Sorts the field values by frequency (number of occurrences in the field). */ qSortByFrequency: _propTypes.default.number, /** * Sorts the field values by numeric value. */ qSortByNumeric: _propTypes.default.number, /** * Sorts the field by alphabetical order. */ qSortByAscii: _propTypes.default.number, /** * Sorts the field values by the initial load order. */ qSortByLoadOrder: _propTypes.default.number, /** * Sorts the field by expression. */ qSortByExpression: _propTypes.default.number, /** * Sort by expression. */ qExpression: _propTypes.default.shape({ qv: _propTypes.default.string }), qSortByGreyness: _propTypes.default.number }), /** * state of the listbox */ qState: _propTypes.default.string, /** * Height of the dropdown when is open */ dropdownMenuHeight: _propTypes.default.number, /** * Width of the dropdown when is open */ dropdownMenuWidth: _propTypes.default.number, /** * Show/hide overflowX */ hideHorizontalScrollbar: _propTypes.default.bool, /** * if true uses Qlik Sense selection behaviour (begin selection and asks confirmation to apply), * if false it uses Qlik View selection behaviour (apply selections immediately) */ quickSelectionMode: _propTypes.default.bool, /** * The text shown in the input field when not searching */ placeholder: _propTypes.default.string, /** * if true uses toggle select */ toggle: _propTypes.default.bool, /** * if true selections are accepted when clicking away from the listbox in selection mode */ clickAwayAccept: _propTypes.default.bool }; RqtvSearchField.defaultProps = { qSortObject: { qSortByState: 1, qSortByFrequency: 0, qSortByNumeric: 0, qSortByAscii: 0, qSortByLoadOrder: 0, qSortByExpression: 0 }, quickSelectionMode: false, qState: "", dropdownMenuHeight: 300, dropdownMenuWidth: 265, hideHorizontalScrollbar: false, placeholder: 'Search', toggle: true, clickAwayAccept: false }; var _default = RqtvSearchField; exports.default = _default;