@elliemae/ds-query-builder 3.70.0-next.14 → 3.70.0-next.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/components/ConditionController/ConditionController.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable react/prop-types */\nimport React from 'react';\nimport { convertPropToCssClassName } from '@elliemae/ds-classnames';\nimport { DSTooltip, TooltipType } from '@elliemae/ds-tooltip';\nimport { PopperInteractions as Interaction, PopperPositions as Position } from '@elliemae/ds-legacy-popper';\nimport { DSIconSizes } from '@elliemae/ds-icon';\nimport { QueryRemove, MoreOptionsVert, QueryAdd, ParenthesisAdd } from '@elliemae/ds-icons';\nimport { DSButton } from '@elliemae/ds-legacy-button-v1';\nimport { ToolBarAnimation } from '../ToolBarAnimation/ToolBarAnimation.js';\nimport { DELAY_CLOSE, DELAY_OPEN, TOOLBAR_ANIMATION_DURATION } from '../helpers/constants.js';\n\nconst ConditionController = ({\n onAddFilter = () => null,\n onAddRuleContainer = () => null,\n onRemoveFilter = () => null,\n handleTooltipRow = () => null,\n buttonTriggerSize = DSIconSizes.M,\n buttonTriggerType = 'text',\n buttonActionSize = DSIconSizes.M,\n buttonActionType = 'text',\n delayClose = DELAY_CLOSE,\n delayOpen = DELAY_OPEN,\n isOpen = false,\n toolTipZIndex,\n}) => {\n const { cssClassName, classNameBlock, classNameElement } = convertPropToCssClassName(\n 'query-builder-condition-controller',\n );\n return (\n <div className={cssClassName}>\n <DSTooltip\n delayClose={delayClose}\n delayOpen={delayOpen}\n interactionType={Interaction.CLICK}\n isOpen={isOpen}\n onOpen={handleTooltipRow}\n placement={Position.LEFT}\n springAnimationComponent={<ToolBarAnimation duration={TOOLBAR_ANIMATION_DURATION} />}\n title={\n <div className={classNameBlock('actions')}>\n <DSTooltip\n title=\"Remove condition\"\n triggerComponent={\n <DSButton\n buttonType={buttonActionType}\n className={classNameElement('remove-rule')}\n icon={<QueryRemove />}\n onClick={onRemoveFilter}\n size={buttonActionSize}\n containerProps={{\n 'data-testid': 'query-remove-button',\n }}\n />\n }\n />\n\n <DSTooltip\n title=\"Add condition\"\n triggerComponent={\n <DSButton\n buttonType={buttonActionType}\n className={classNameElement('add-rule')}\n icon={<QueryAdd />}\n onClick={onAddFilter}\n size={buttonActionSize}\n containerProps={{\n 'data-testid': 'query-add-button',\n }}\n />\n }\n />\n\n <DSTooltip\n title=\"Add group\"\n triggerComponent={\n <DSButton\n buttonType={buttonActionType}\n className={`${classNameElement('add-rule-container')} no-border-right`}\n icon={<ParenthesisAdd />}\n onClick={onAddRuleContainer}\n size={buttonActionSize}\n containerProps={{\n 'data-testid': 'parenthesis-add-button',\n }}\n />\n }\n />\n </div>\n }\n tooltipType={TooltipType.TOOLBAR}\n triggerComponent={\n <DSButton\n buttonType={buttonTriggerType}\n icon={<MoreOptionsVert color={['neutral', '500']} />}\n onClick={handleTooltipRow}\n size={buttonTriggerSize}\n containerProps={{\n 'data-testid': 'condition-more-options-button',\n }}\n />\n }\n zIndex={toolTipZIndex}\n />\n </div>\n );\n};\n\nexport default ConditionController;\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACqCW,cAExB,YAFwB;AAnClC,SAAS,iCAAiC;AAC1C,SAAS,WAAW,mBAAmB;AACvC,SAAS,sBAAsB,aAAa,mBAAmB,gBAAgB;AAC/E,SAAS,mBAAmB;AAC5B,SAAS,aAAa,iBAAiB,UAAU,sBAAsB;AACvE,SAAS,gBAAgB;AACzB,SAAS,wBAAwB;AACjC,SAAS,aAAa,YAAY,kCAAkC;AAEpE,MAAM,sBAAsB,CAAC;AAAA,EAC3B,cAAc,MAAM;AAAA,EACpB,qBAAqB,MAAM;AAAA,EAC3B,iBAAiB,MAAM;AAAA,EACvB,mBAAmB,MAAM;AAAA,EACzB,oBAAoB,YAAY;AAAA,EAChC,oBAAoB;AAAA,EACpB,mBAAmB,YAAY;AAAA,EAC/B,mBAAmB;AAAA,EACnB,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,SAAS;AAAA,EACT;AACF,MAAM;AACJ,QAAM,EAAE,cAAc,gBAAgB,iBAAiB,IAAI;AAAA,IACzD;AAAA,EACF;AACA,SACE,oBAAC,SAAI,WAAW,cACd;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,iBAAiB,YAAY;AAAA,MAC7B;AAAA,MACA,QAAQ;AAAA,MACR,WAAW,SAAS;AAAA,MACpB,0BAA0B,oBAAC,oBAAiB,UAAU,4BAA4B;AAAA,MAClF,OACE,qBAAC,SAAI,WAAW,eAAe,SAAS,GACtC;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,OAAM;AAAA,YACN,kBACE;AAAA,cAAC;AAAA;AAAA,gBACC,YAAY;AAAA,gBACZ,WAAW,iBAAiB,aAAa;AAAA,gBACzC,MAAM,oBAAC,eAAY;AAAA,gBACnB,SAAS;AAAA,gBACT,MAAM;AAAA,gBACN,gBAAgB;AAAA,kBACd,eAAe;AAAA,gBACjB;AAAA;AAAA,YACF;AAAA;AAAA,QAEJ;AAAA,QAEA;AAAA,UAAC;AAAA;AAAA,YACC,OAAM;AAAA,YACN,kBACE;AAAA,cAAC;AAAA;AAAA,gBACC,YAAY;AAAA,gBACZ,WAAW,iBAAiB,UAAU;AAAA,gBACtC,MAAM,oBAAC,YAAS;AAAA,gBAChB,SAAS;AAAA,gBACT,MAAM;AAAA,gBACN,gBAAgB;AAAA,kBACd,eAAe;AAAA,gBACjB;AAAA;AAAA,YACF;AAAA;AAAA,QAEJ;AAAA,QAEA;AAAA,UAAC;AAAA;AAAA,YACC,OAAM;AAAA,YACN,kBACE;AAAA,cAAC;AAAA;AAAA,gBACC,YAAY;AAAA,gBACZ,WAAW,GAAG,iBAAiB,oBAAoB,CAAC;AAAA,gBACpD,MAAM,oBAAC,kBAAe;AAAA,gBACtB,SAAS;AAAA,gBACT,MAAM;AAAA,gBACN,gBAAgB;AAAA,kBACd,eAAe;AAAA,gBACjB;AAAA;AAAA,YACF;AAAA;AAAA,QAEJ;AAAA,SACF;AAAA,MAEF,aAAa,YAAY;AAAA,MACzB,kBACE;AAAA,QAAC;AAAA;AAAA,UACC,YAAY;AAAA,UACZ,MAAM,oBAAC,mBAAgB,OAAO,CAAC,WAAW,KAAK,GAAG;AAAA,UAClD,SAAS;AAAA,UACT,MAAM;AAAA,UACN,gBAAgB;AAAA,YACd,eAAe;AAAA,UACjB;AAAA;AAAA,MACF;AAAA,MAEF,QAAQ;AAAA;AAAA,EACV,GACF;AAEJ;AAEA,IAAO,8BAAQ;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/unbound-method */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React from 'react';\nimport { convertPropToCssClassName } from '@elliemae/ds-classnames';\nimport { useFloatingContext, FloatingWrapper } from '@elliemae/ds-floating-context';\nimport { DSTooltipV3 } from '@elliemae/ds-tooltip-v3';\nimport { DSIconSizes } from '@elliemae/ds-icon';\nimport { QueryRemove, MoreOptionsVert, QueryAdd, ParenthesisAdd } from '@elliemae/ds-icons';\nimport { DSButton } from '@elliemae/ds-legacy-button-v1';\n\nconst ConditionToolbarContent = ({\n classNameBlock,\n classNameElement,\n onRemoveFilter,\n onAddFilter,\n onAddRuleContainer,\n buttonActionType,\n buttonActionSize,\n}: Record<string, any>) => (\n <div className={classNameBlock('actions')}>\n <DSTooltipV3 text=\"Remove condition\">\n <DSButton\n buttonType={buttonActionType}\n className={classNameElement('remove-rule')}\n icon={<QueryRemove />}\n onClick={onRemoveFilter}\n size={buttonActionSize}\n containerProps={{ 'data-testid': 'query-remove-button' }}\n />\n </DSTooltipV3>\n\n <DSTooltipV3 text=\"Add condition\">\n <DSButton\n buttonType={buttonActionType}\n className={classNameElement('add-rule')}\n icon={<QueryAdd />}\n onClick={onAddFilter}\n size={buttonActionSize}\n containerProps={{ 'data-testid': 'query-add-button' }}\n />\n </DSTooltipV3>\n\n <DSTooltipV3 text=\"Add group\">\n <DSButton\n buttonType={buttonActionType}\n className={`${classNameElement('add-rule-container')} no-border-right`}\n icon={<ParenthesisAdd />}\n onClick={onAddRuleContainer}\n size={buttonActionSize}\n containerProps={{ 'data-testid': 'parenthesis-add-button' }}\n />\n </DSTooltipV3>\n </div>\n);\n\nconst ConditionController = ({\n onAddFilter = () => null,\n onAddRuleContainer = () => null,\n onRemoveFilter = () => null,\n handleTooltipRow = (() => null) as (isOpen?: boolean) => null,\n buttonTriggerSize = DSIconSizes.M,\n buttonTriggerType = 'text',\n buttonActionSize = DSIconSizes.M,\n buttonActionType = 'text',\n isOpen = false,\n}) => {\n const { cssClassName, classNameBlock, classNameElement } = convertPropToCssClassName(\n 'query-builder-condition-controller',\n );\n\n const { refs, floatingStyles, context } = useFloatingContext({\n externallyControlledIsOpen: isOpen,\n placement: 'left',\n });\n\n return (\n <div className={cssClassName}>\n <DSButton\n buttonType={buttonTriggerType}\n icon={<MoreOptionsVert color={['neutral', '500']} />}\n onClick={() => handleTooltipRow(!isOpen)}\n size={buttonTriggerSize}\n containerProps={{ 'data-testid': 'condition-more-options-button', ref: refs.setReference }}\n />\n <FloatingWrapper innerRef={refs.setFloating} isOpen={isOpen} floatingStyles={floatingStyles} context={context}>\n <ConditionToolbarContent\n classNameBlock={classNameBlock}\n classNameElement={classNameElement}\n onRemoveFilter={onRemoveFilter}\n onAddFilter={onAddFilter}\n onAddRuleContainer={onAddRuleContainer}\n buttonActionType={buttonActionType}\n buttonActionSize={buttonActionSize}\n />\n </FloatingWrapper>\n </div>\n );\n};\n\nexport default ConditionController;\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACsBrB,SAKY,KALZ;AAhBF,SAAS,iCAAiC;AAC1C,SAAS,oBAAoB,uBAAuB;AACpD,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAC5B,SAAS,aAAa,iBAAiB,UAAU,sBAAsB;AACvE,SAAS,gBAAgB;AAEzB,MAAM,0BAA0B,CAAC;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MACE,qBAAC,SAAI,WAAW,eAAe,SAAS,GACtC;AAAA,sBAAC,eAAY,MAAK,oBAChB;AAAA,IAAC;AAAA;AAAA,MACC,YAAY;AAAA,MACZ,WAAW,iBAAiB,aAAa;AAAA,MACzC,MAAM,oBAAC,eAAY;AAAA,MACnB,SAAS;AAAA,MACT,MAAM;AAAA,MACN,gBAAgB,EAAE,eAAe,sBAAsB;AAAA;AAAA,EACzD,GACF;AAAA,EAEA,oBAAC,eAAY,MAAK,iBAChB;AAAA,IAAC;AAAA;AAAA,MACC,YAAY;AAAA,MACZ,WAAW,iBAAiB,UAAU;AAAA,MACtC,MAAM,oBAAC,YAAS;AAAA,MAChB,SAAS;AAAA,MACT,MAAM;AAAA,MACN,gBAAgB,EAAE,eAAe,mBAAmB;AAAA;AAAA,EACtD,GACF;AAAA,EAEA,oBAAC,eAAY,MAAK,aAChB;AAAA,IAAC;AAAA;AAAA,MACC,YAAY;AAAA,MACZ,WAAW,GAAG,iBAAiB,oBAAoB,CAAC;AAAA,MACpD,MAAM,oBAAC,kBAAe;AAAA,MACtB,SAAS;AAAA,MACT,MAAM;AAAA,MACN,gBAAgB,EAAE,eAAe,yBAAyB;AAAA;AAAA,EAC5D,GACF;AAAA,GACF;AAGF,MAAM,sBAAsB,CAAC;AAAA,EAC3B,cAAc,MAAM;AAAA,EACpB,qBAAqB,MAAM;AAAA,EAC3B,iBAAiB,MAAM;AAAA,EACvB,oBAAoB,MAAM;AAAA,EAC1B,oBAAoB,YAAY;AAAA,EAChC,oBAAoB;AAAA,EACpB,mBAAmB,YAAY;AAAA,EAC/B,mBAAmB;AAAA,EACnB,SAAS;AACX,MAAM;AACJ,QAAM,EAAE,cAAc,gBAAgB,iBAAiB,IAAI;AAAA,IACzD;AAAA,EACF;AAEA,QAAM,EAAE,MAAM,gBAAgB,QAAQ,IAAI,mBAAmB;AAAA,IAC3D,4BAA4B;AAAA,IAC5B,WAAW;AAAA,EACb,CAAC;AAED,SACE,qBAAC,SAAI,WAAW,cACd;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,YAAY;AAAA,QACZ,MAAM,oBAAC,mBAAgB,OAAO,CAAC,WAAW,KAAK,GAAG;AAAA,QAClD,SAAS,MAAM,iBAAiB,CAAC,MAAM;AAAA,QACvC,MAAM;AAAA,QACN,gBAAgB,EAAE,eAAe,iCAAiC,KAAK,KAAK,aAAa;AAAA;AAAA,IAC3F;AAAA,IACA,oBAAC,mBAAgB,UAAU,KAAK,aAAa,QAAgB,gBAAgC,SAC3F;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,8BAAQ;",
6
6
  "names": []
7
7
  }
@@ -2,7 +2,7 @@ import * as React from "react";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import React2, { Component } from "react";
4
4
  import { AlertsDetail } from "@elliemae/ds-icons";
5
- import { DSTooltipV3 } from "@elliemae/ds-tooltip";
5
+ import { DSTooltipV3 } from "@elliemae/ds-tooltip-v3";
6
6
  import { convertPropToCssClassName } from "@elliemae/ds-classnames";
7
7
  import { styled } from "@elliemae/ds-system";
8
8
  import { resolveDependencies } from "../helpers/dependencies.js";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/components/QueryBuilderRow/QueryBuilderRow.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable @typescript-eslint/no-unsafe-argument, max-params */\n/* eslint-disable @typescript-eslint/ban-ts-comment, @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any */\n/* eslint-disable max-lines, complexity, @typescript-eslint/no-unsafe-call */\n/* eslint-disable no-unused-vars, @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-assignment */\n/* tslint:disable */\n// @ts-nocheck\n// What's with all the above disables?\n// this is what a legacy 7 year old codebase looks like.\n// also, react class components.\n\nimport React, { Component } from 'react';\nimport { AlertsDetail } from '@elliemae/ds-icons';\nimport { DSTooltipV3 } from '@elliemae/ds-tooltip';\nimport { convertPropToCssClassName } from '@elliemae/ds-classnames';\nimport { styled } from '@elliemae/ds-system';\nimport { resolveDependencies } from '../helpers/dependencies.js';\nimport ConditionController from '../ConditionController/ConditionController.js';\nimport DragControllerRow from '../DragControllerRow/DragControllerRow.js';\n\nconst StyledDiv = styled.div`\n .em-ds-query-builder-row__input-controller {\n padding-top: 0.1538rem; // 2px converted to rem based on 1rem = 13px\n }\n`;\n\nconst RenderField = ({\n target,\n component,\n valueProp,\n additionalInfo,\n handleMouseEnterInput,\n handleMouseLeaveInput,\n onChangeHandler,\n hasError,\n}) => {\n const ref = React.useRef<HTMLElement>();\n const id = React.useMemo(() => `el_${String.fromCharCode(65 + Math.floor(Math.random() * 26))}`, []);\n const UserComponent = component;\n const componentNewProps = {\n id,\n onChange: (e, extraData) => onChangeHandler(e, target, extraData),\n value: valueProp != null ? valueProp : '',\n checked: valueProp === true,\n additionalInfo: additionalInfo ? additionalInfo[target] : additionalInfo || {},\n 'aria-invalid': Boolean(hasError),\n };\n\n return (\n <StyledDiv\n className={`em-ds-query-builder-row-input child-type-${target} ${\n hasError && hasError.error ? 'row-input-error' : ''\n }`}\n onMouseDownCapture={() => {\n // eslint-disable-next-line no-underscore-dangle\n const refInput = ref.current?.querySelector(`#${id}`);\n // eslint-disable-next-line @typescript-eslint/no-implied-eval\n if (refInput && refInput.focus) setTimeout(refInput.focus());\n handleMouseEnterInput();\n }}\n onMouseEnter={() => handleMouseEnterInput()}\n onMouseLeave={() => handleMouseLeaveInput()}\n >\n <div ref={ref} className=\"em-ds-query-builder-row__input-controller\">\n {React.isValidElement(UserComponent) ? (\n React.cloneElement(UserComponent, componentNewProps)\n ) : (\n <UserComponent {...componentNewProps} />\n )}\n </div>\n {hasError && hasError.errorMessage ? (\n <div style={{ width: '40px' }}>\n <DSTooltipV3 text={hasError.errorMessage}>\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <div tabIndex={0} className=\"row-icon-alert\" data-testid=\"qb-error-state-icon\" role=\"alert\">\n <AlertsDetail width={20} height={20} color={['danger', 900]} title={hasError.errorMessage} />\n </div>\n </DSTooltipV3>\n </div>\n ) : null}\n </StyledDiv>\n );\n // return React.useMemo(\n // () => (\n // <div\n // className={`em-ds-query-builder-row-input child-type-${target}`}\n // onMouseDownCapture={() => {\n // // eslint-disable-next-line no-underscore-dangle\n // const _refInput = ref.current.querySelector(`#${id}`);\n // if (_refInput && _refInput.focus) setTimeout(_refInput.focus());\n // handleMouseEnterInput();\n // }}\n // onMouseEnter={() => handleMouseEnterInput()}\n // onMouseLeave={() => handleMouseLeaveInput()}\n // >\n // <div ref={ref} className=\"em-ds-query-builder-row__input-controller\">\n // {React.cloneElement(component, {\n // id,\n // onChange: (e, extraData) => onChangeHandler(e, target, extraData),\n // value: valueProp != null ? valueProp : '',\n // checked: valueProp === true,\n // additionalInfo: additionalInfo ? additionalInfo[target] : {},\n // })}\n // </div>\n // </div>\n // ),\n // [target, component, valueProp, additionalInfo],\n // );\n};\nclass QueryBuilderRow extends Component<any, any> {\n constructor(props: any) {\n super(props);\n this.state = {\n isOpen: false,\n };\n\n this.onChangeHandler = this.onChangeHandler.bind(this);\n }\n\n onChangeHandler(e, target, extraData, hasError) {\n const { handleFieldChange, idFilter, idGroup, additionalInfo, field, operator, value } = this.props;\n let eventValue = e;\n if (e && e.target) {\n const { value: targetValue, checked } = e.target;\n if (targetValue || targetValue === '' || typeof targetValue === 'boolean') eventValue = targetValue;\n else eventValue = checked || e;\n }\n handleFieldChange({\n [target]: eventValue,\n idFilter,\n idGroup,\n additionalInfo: {\n ...additionalInfo,\n [target]: extraData,\n [`${target}_error`]: hasError,\n [`${target}_touched`]: true,\n },\n target,\n });\n }\n\n handleMouseEnterRow = () => {};\n\n handleMouseLeaveRow = () => {\n this.handleTooltipRow(false);\n };\n\n handleMouseEnterInput = () => {\n const { setDraggableItems } = this.props;\n setDraggableItems(false);\n };\n\n handleMouseLeaveInput = () => {\n const { setDraggableItems } = this.props;\n setDraggableItems(true);\n };\n\n handleTooltipRow = (isOpen) => {\n this.setState({ isOpen });\n };\n\n render() {\n const { isOpen } = this.state;\n const {\n fields,\n onAddFilter,\n onRemoveFilter,\n onAddRuleContainer,\n field,\n operator,\n value,\n additionalInfo,\n items,\n singleRow,\n toolTipZIndex,\n error,\n } = this.props;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { cssClassName, classNameBlock, classNameElement } = convertPropToCssClassName(\n 'query-builder-row',\n isOpen ? 'has-open-tooltip' : 'has-close-tooltip',\n singleRow ? 'is-single-row' : 'is-multiple-row',\n );\n const test = resolveDependencies(\n {\n field,\n operator,\n value,\n additionalInfo,\n },\n fields,\n );\n\n const gridTemplateColumns = [\n singleRow ? '' : '24px',\n ...test.map((r) => {\n if (r.handleWidth) {\n return r.handleWidth(this.props[r.target], {\n field,\n operator,\n value,\n additionalInfo,\n });\n }\n return 'minmax(0, 1fr)';\n }),\n '30px',\n ].join(' ');\n\n return (\n <div\n className={cssClassName}\n onMouseEnter={this.handleMouseEnterRow}\n onMouseLeave={this.handleMouseLeaveRow}\n style={{\n gridTemplateColumns,\n }}\n >\n {!singleRow && (\n <DragControllerRow\n className={classNameElement('drag-controller')}\n onMouseDownCapture={() => this.handleMouseLeaveInput()}\n />\n )}\n {test.map((renderField) => {\n const { target, component } = renderField;\n const { [target]: valueProp } = this.props;\n\n const isTouched = additionalInfo && additionalInfo[`${target}_touched`];\n const hasError =\n renderField && renderField.validation\n ? renderField.validation(valueProp, {\n field,\n operator,\n value,\n additionalInfo,\n })\n : false;\n return (\n <RenderField\n component={component}\n target={target}\n valueProp={valueProp}\n onChangeHandler={(e, changeTarget, extraData) => {\n this.onChangeHandler(e, changeTarget, extraData, hasError);\n }}\n handleMouseEnterInput={this.handleMouseEnterInput}\n handleMouseLeaveInput={this.handleMouseLeaveInput}\n additionalInfo={additionalInfo}\n hasError={isTouched && hasError}\n />\n );\n })}\n {!singleRow && (\n <div className={classNameBlock('controller')}>\n <ConditionController\n handleTooltipRow={this.handleTooltipRow}\n isOpen={isOpen}\n items={items}\n onAddFilter={onAddFilter}\n onAddRuleContainer={onAddRuleContainer}\n onRemoveFilter={onRemoveFilter}\n toolTipZIndex={toolTipZIndex}\n />\n </div>\n )}\n </div>\n );\n }\n}\n\nexport default QueryBuilderRow;\n"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable @typescript-eslint/no-unsafe-argument, max-params */\n/* eslint-disable @typescript-eslint/ban-ts-comment, @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any */\n/* eslint-disable max-lines, complexity, @typescript-eslint/no-unsafe-call */\n/* eslint-disable no-unused-vars, @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-assignment */\n/* tslint:disable */\n// @ts-nocheck\n// What's with all the above disables?\n// this is what a legacy 7 year old codebase looks like.\n// also, react class components.\n\nimport React, { Component } from 'react';\nimport { AlertsDetail } from '@elliemae/ds-icons';\nimport { DSTooltipV3 } from '@elliemae/ds-tooltip-v3';\nimport { convertPropToCssClassName } from '@elliemae/ds-classnames';\nimport { styled } from '@elliemae/ds-system';\nimport { resolveDependencies } from '../helpers/dependencies.js';\nimport ConditionController from '../ConditionController/ConditionController.js';\nimport DragControllerRow from '../DragControllerRow/DragControllerRow.js';\n\nconst StyledDiv = styled.div`\n .em-ds-query-builder-row__input-controller {\n padding-top: 0.1538rem; // 2px converted to rem based on 1rem = 13px\n }\n`;\n\nconst RenderField = ({\n target,\n component,\n valueProp,\n additionalInfo,\n handleMouseEnterInput,\n handleMouseLeaveInput,\n onChangeHandler,\n hasError,\n}) => {\n const ref = React.useRef<HTMLElement>();\n const id = React.useMemo(() => `el_${String.fromCharCode(65 + Math.floor(Math.random() * 26))}`, []);\n const UserComponent = component;\n const componentNewProps = {\n id,\n onChange: (e, extraData) => onChangeHandler(e, target, extraData),\n value: valueProp != null ? valueProp : '',\n checked: valueProp === true,\n additionalInfo: additionalInfo ? additionalInfo[target] : additionalInfo || {},\n 'aria-invalid': Boolean(hasError),\n };\n\n return (\n <StyledDiv\n className={`em-ds-query-builder-row-input child-type-${target} ${\n hasError && hasError.error ? 'row-input-error' : ''\n }`}\n onMouseDownCapture={() => {\n // eslint-disable-next-line no-underscore-dangle\n const refInput = ref.current?.querySelector(`#${id}`);\n // eslint-disable-next-line @typescript-eslint/no-implied-eval\n if (refInput && refInput.focus) setTimeout(refInput.focus());\n handleMouseEnterInput();\n }}\n onMouseEnter={() => handleMouseEnterInput()}\n onMouseLeave={() => handleMouseLeaveInput()}\n >\n <div ref={ref} className=\"em-ds-query-builder-row__input-controller\">\n {React.isValidElement(UserComponent) ? (\n React.cloneElement(UserComponent, componentNewProps)\n ) : (\n <UserComponent {...componentNewProps} />\n )}\n </div>\n {hasError && hasError.errorMessage ? (\n <div style={{ width: '40px' }}>\n <DSTooltipV3 text={hasError.errorMessage}>\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <div tabIndex={0} className=\"row-icon-alert\" data-testid=\"qb-error-state-icon\" role=\"alert\">\n <AlertsDetail width={20} height={20} color={['danger', 900]} title={hasError.errorMessage} />\n </div>\n </DSTooltipV3>\n </div>\n ) : null}\n </StyledDiv>\n );\n // return React.useMemo(\n // () => (\n // <div\n // className={`em-ds-query-builder-row-input child-type-${target}`}\n // onMouseDownCapture={() => {\n // // eslint-disable-next-line no-underscore-dangle\n // const _refInput = ref.current.querySelector(`#${id}`);\n // if (_refInput && _refInput.focus) setTimeout(_refInput.focus());\n // handleMouseEnterInput();\n // }}\n // onMouseEnter={() => handleMouseEnterInput()}\n // onMouseLeave={() => handleMouseLeaveInput()}\n // >\n // <div ref={ref} className=\"em-ds-query-builder-row__input-controller\">\n // {React.cloneElement(component, {\n // id,\n // onChange: (e, extraData) => onChangeHandler(e, target, extraData),\n // value: valueProp != null ? valueProp : '',\n // checked: valueProp === true,\n // additionalInfo: additionalInfo ? additionalInfo[target] : {},\n // })}\n // </div>\n // </div>\n // ),\n // [target, component, valueProp, additionalInfo],\n // );\n};\nclass QueryBuilderRow extends Component<any, any> {\n constructor(props: any) {\n super(props);\n this.state = {\n isOpen: false,\n };\n\n this.onChangeHandler = this.onChangeHandler.bind(this);\n }\n\n onChangeHandler(e, target, extraData, hasError) {\n const { handleFieldChange, idFilter, idGroup, additionalInfo, field, operator, value } = this.props;\n let eventValue = e;\n if (e && e.target) {\n const { value: targetValue, checked } = e.target;\n if (targetValue || targetValue === '' || typeof targetValue === 'boolean') eventValue = targetValue;\n else eventValue = checked || e;\n }\n handleFieldChange({\n [target]: eventValue,\n idFilter,\n idGroup,\n additionalInfo: {\n ...additionalInfo,\n [target]: extraData,\n [`${target}_error`]: hasError,\n [`${target}_touched`]: true,\n },\n target,\n });\n }\n\n handleMouseEnterRow = () => {};\n\n handleMouseLeaveRow = () => {\n this.handleTooltipRow(false);\n };\n\n handleMouseEnterInput = () => {\n const { setDraggableItems } = this.props;\n setDraggableItems(false);\n };\n\n handleMouseLeaveInput = () => {\n const { setDraggableItems } = this.props;\n setDraggableItems(true);\n };\n\n handleTooltipRow = (isOpen) => {\n this.setState({ isOpen });\n };\n\n render() {\n const { isOpen } = this.state;\n const {\n fields,\n onAddFilter,\n onRemoveFilter,\n onAddRuleContainer,\n field,\n operator,\n value,\n additionalInfo,\n items,\n singleRow,\n toolTipZIndex,\n error,\n } = this.props;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { cssClassName, classNameBlock, classNameElement } = convertPropToCssClassName(\n 'query-builder-row',\n isOpen ? 'has-open-tooltip' : 'has-close-tooltip',\n singleRow ? 'is-single-row' : 'is-multiple-row',\n );\n const test = resolveDependencies(\n {\n field,\n operator,\n value,\n additionalInfo,\n },\n fields,\n );\n\n const gridTemplateColumns = [\n singleRow ? '' : '24px',\n ...test.map((r) => {\n if (r.handleWidth) {\n return r.handleWidth(this.props[r.target], {\n field,\n operator,\n value,\n additionalInfo,\n });\n }\n return 'minmax(0, 1fr)';\n }),\n '30px',\n ].join(' ');\n\n return (\n <div\n className={cssClassName}\n onMouseEnter={this.handleMouseEnterRow}\n onMouseLeave={this.handleMouseLeaveRow}\n style={{\n gridTemplateColumns,\n }}\n >\n {!singleRow && (\n <DragControllerRow\n className={classNameElement('drag-controller')}\n onMouseDownCapture={() => this.handleMouseLeaveInput()}\n />\n )}\n {test.map((renderField) => {\n const { target, component } = renderField;\n const { [target]: valueProp } = this.props;\n\n const isTouched = additionalInfo && additionalInfo[`${target}_touched`];\n const hasError =\n renderField && renderField.validation\n ? renderField.validation(valueProp, {\n field,\n operator,\n value,\n additionalInfo,\n })\n : false;\n return (\n <RenderField\n component={component}\n target={target}\n valueProp={valueProp}\n onChangeHandler={(e, changeTarget, extraData) => {\n this.onChangeHandler(e, changeTarget, extraData, hasError);\n }}\n handleMouseEnterInput={this.handleMouseEnterInput}\n handleMouseLeaveInput={this.handleMouseLeaveInput}\n additionalInfo={additionalInfo}\n hasError={isTouched && hasError}\n />\n );\n })}\n {!singleRow && (\n <div className={classNameBlock('controller')}>\n <ConditionController\n handleTooltipRow={this.handleTooltipRow}\n isOpen={isOpen}\n items={items}\n onAddFilter={onAddFilter}\n onAddRuleContainer={onAddRuleContainer}\n onRemoveFilter={onRemoveFilter}\n toolTipZIndex={toolTipZIndex}\n />\n </div>\n )}\n </div>\n );\n }\n}\n\nexport default QueryBuilderRow;\n"],
5
5
  "mappings": "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",
6
6
  "names": ["React"]
7
7
  }
@@ -20,16 +20,11 @@ declare class AndOrController extends Component {
20
20
  toogleActionSize: "s";
21
21
  onAddFilter: () => null;
22
22
  multipleSize: boolean;
23
- delayClose: number;
24
- delayOpen: number;
25
23
  step: null;
26
- toolBarAnimationDuration: number;
27
- toolBarInteractionType: string;
28
24
  toolBarPosition: string;
29
25
  };
30
26
  constructor(props: any);
31
27
  handleMouseEnterRow: (e: any) => void;
32
- handleMouseMove: (e: any) => void;
33
28
  handleMouseLeaveRow: () => void;
34
29
  handleTooltipRow: (isOpen: any) => void;
35
30
  render(): import("react/jsx-runtime.js").JSX.Element;
@@ -1,15 +1,12 @@
1
- declare const ConditionController: ({ onAddFilter, onAddRuleContainer, onRemoveFilter, handleTooltipRow, buttonTriggerSize, buttonTriggerType, buttonActionSize, buttonActionType, delayClose, delayOpen, isOpen, toolTipZIndex, }: {
1
+ declare const ConditionController: ({ onAddFilter, onAddRuleContainer, onRemoveFilter, handleTooltipRow, buttonTriggerSize, buttonTriggerType, buttonActionSize, buttonActionType, isOpen, }: {
2
2
  onAddFilter?: (() => null) | undefined;
3
3
  onAddRuleContainer?: (() => null) | undefined;
4
4
  onRemoveFilter?: (() => null) | undefined;
5
- handleTooltipRow?: (() => null) | undefined;
5
+ handleTooltipRow?: ((isOpen?: boolean) => null) | undefined;
6
6
  buttonTriggerSize?: "m" | undefined;
7
7
  buttonTriggerType?: string | undefined;
8
8
  buttonActionSize?: "m" | undefined;
9
9
  buttonActionType?: string | undefined;
10
- delayClose?: number | undefined;
11
- delayOpen?: number | undefined;
12
10
  isOpen?: boolean | undefined;
13
- toolTipZIndex: any;
14
- }) => import("react/jsx-runtime.js").JSX.Element;
11
+ }) => import("react/jsx-runtime").JSX.Element;
15
12
  export default ConditionController;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elliemae/ds-query-builder",
3
- "version": "3.70.0-next.14",
3
+ "version": "3.70.0-next.16",
4
4
  "license": "MIT",
5
5
  "description": "ICE MT - Dimsum - Query Builder",
6
6
  "files": [
@@ -38,22 +38,22 @@
38
38
  "dependencies": {
39
39
  "@elliemae/ds-legacy-button-v1": "1.0.16",
40
40
  "@elliemae/ds-legacy-form": "1.0.16",
41
- "@elliemae/ds-legacy-popper": "1.0.16",
42
41
  "classnames": "~2.3.2",
43
42
  "react-addons-update": "~15.6.3",
44
- "@elliemae/ds-accordion": "3.70.0-next.14",
45
- "@elliemae/ds-grid": "3.70.0-next.14",
46
- "@elliemae/ds-classnames": "3.70.0-next.14",
47
- "@elliemae/ds-icon": "3.70.0-next.14",
48
- "@elliemae/ds-shared": "3.70.0-next.14",
49
- "@elliemae/ds-props-helpers": "3.70.0-next.14",
50
- "@elliemae/ds-tooltip": "3.70.0-next.14",
51
- "@elliemae/ds-icons": "3.70.0-next.14"
43
+ "@elliemae/ds-accordion": "3.70.0-next.16",
44
+ "@elliemae/ds-floating-context": "3.70.0-next.16",
45
+ "@elliemae/ds-classnames": "3.70.0-next.16",
46
+ "@elliemae/ds-grid": "3.70.0-next.16",
47
+ "@elliemae/ds-icon": "3.70.0-next.16",
48
+ "@elliemae/ds-props-helpers": "3.70.0-next.16",
49
+ "@elliemae/ds-icons": "3.70.0-next.16",
50
+ "@elliemae/ds-shared": "3.70.0-next.16",
51
+ "@elliemae/ds-tooltip-v3": "3.70.0-next.16"
52
52
  },
53
53
  "devDependencies": {
54
54
  "jest": "^30.0.0",
55
55
  "styled-components": "~5.3.9",
56
- "@elliemae/ds-monorepo-devops": "3.70.0-next.14"
56
+ "@elliemae/ds-monorepo-devops": "3.70.0-next.16"
57
57
  },
58
58
  "peerDependencies": {
59
59
  "lodash-es": "^4.17.21",