@deephaven/components 0.22.3-beta.7 → 0.22.3-deep-bot-test.14

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.
package/dist/Button.d.ts CHANGED
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
3
3
  declare const BUTTON_KINDS: readonly ["primary", "secondary", "tertiary", "success", "danger", "inline", "ghost"];
4
4
  declare type ButtonTuple = typeof BUTTON_KINDS;
5
- declare type ButtonKind = ButtonTuple[number];
5
+ export declare type ButtonKind = ButtonTuple[number];
6
6
  declare const VARIANT_KINDS: readonly ["group-end"];
7
7
  declare type VariantTuple = typeof VARIANT_KINDS;
8
8
  declare type VariantKind = VariantTuple[number];
@@ -1 +1 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../src/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAGnE,QAAA,MAAM,YAAY,uFAQR,CAAC;AACX,aAAK,WAAW,GAAG,OAAO,YAAY,CAAC;AACvC,aAAK,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AAEtC,QAAA,MAAM,aAAa,wBAAyB,CAAC;AAC7C,aAAK,YAAY,GAAG,OAAO,aAAa,CAAC;AACzC,aAAK,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAExC,aAAK,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEjD,UAAU,eAAgB,SAAQ,KAAK,CAAC,qBAAqB,CAAC,QAAQ,CAAC;IACrE,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IAC/B,IAAI,CAAC,EAAE,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,aAAK,kBAAkB,GAAG,eAAe,GAAG;IAC1C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,aAAK,2BAA2B,GAAG,eAAe,GAAG;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC;IACnC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,aAAK,wBAAwB,GAAG,eAAe,GAAG;IAChD,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC;IACnC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAmCF,QAAA,MAAM,MAAM,4wcAyGX,CAAC;AA+EF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../src/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAGnE,QAAA,MAAM,YAAY,uFAQR,CAAC;AACX,aAAK,WAAW,GAAG,OAAO,YAAY,CAAC;AACvC,oBAAY,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AAE7C,QAAA,MAAM,aAAa,wBAAyB,CAAC;AAC7C,aAAK,YAAY,GAAG,OAAO,aAAa,CAAC;AACzC,aAAK,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAExC,aAAK,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEjD,UAAU,eAAgB,SAAQ,KAAK,CAAC,qBAAqB,CAAC,QAAQ,CAAC;IACrE,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IAC/B,IAAI,CAAC,EAAE,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,aAAK,kBAAkB,GAAG,eAAe,GAAG;IAC1C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,aAAK,2BAA2B,GAAG,eAAe,GAAG;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC;IACnC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,aAAK,wBAAwB,GAAG,eAAe,GAAG;IAChD,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC;IACnC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAmCF,QAAA,MAAM,MAAM,4wcAyGX,CAAC;AA+EF,eAAe,MAAM,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","names":["React","PropTypes","classNames","FontAwesomeIcon","Tooltip","BUTTON_KINDS","VARIANT_KINDS","getClassName","kind","iconOnly","getVariantClasses","Button","forwardRef","props","ref","variant","type","tooltip","icon","disabled","active","onClick","onContextMenu","onMouseDown","onMouseUp","onMouseEnter","onMouseLeave","onKeyDown","className","style","children","tabIndex","dataTestId","ariaLabel","Boolean","btnClassName","variantClassName","iconElem","isValidElement","tooltipElem","undefined","ariaLabelString","button","displayName","propTypes","oneOf","isRequired","Error","iconName","bool","func","number","node","string","object","defaultProps"],"sources":["../src/Button.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { IconDefinition } from '@fortawesome/fontawesome-svg-core';\nimport { Tooltip } from './popper';\n\nconst BUTTON_KINDS = [\n 'primary',\n 'secondary',\n 'tertiary',\n 'success',\n 'danger',\n 'inline',\n 'ghost',\n] as const;\ntype ButtonTuple = typeof BUTTON_KINDS;\ntype ButtonKind = ButtonTuple[number];\n\nconst VARIANT_KINDS = ['group-end'] as const;\ntype VariantTuple = typeof VARIANT_KINDS;\ntype VariantKind = VariantTuple[number];\n\ntype ButtonTypes = 'submit' | 'reset' | 'button';\n\ninterface BaseButtonProps extends React.ComponentPropsWithRef<'button'> {\n kind: ButtonKind;\n type?: ButtonTypes;\n variant?: VariantKind;\n tooltip?: string | JSX.Element;\n icon?: IconDefinition | JSX.Element;\n active?: boolean;\n 'data-testid'?: string;\n}\n\ntype ButtonWithChildren = BaseButtonProps & {\n children: React.ReactNode;\n};\n\ntype IconOnlyButtonStringTooltip = BaseButtonProps & {\n tooltip: string;\n icon: IconDefinition | JSX.Element;\n children?: undefined;\n};\n\ntype IconOnlyButtonJsxTooltip = BaseButtonProps & {\n tooltip: JSX.Element;\n 'aria-label': string;\n icon: IconDefinition | JSX.Element;\n children?: undefined;\n};\n\ntype IconOnlyButton = IconOnlyButtonStringTooltip | IconOnlyButtonJsxTooltip;\n\ntype ButtonProps = IconOnlyButton | ButtonWithChildren;\n\nfunction getClassName(kind: ButtonKind, iconOnly: boolean): string {\n switch (kind) {\n case 'primary':\n return 'btn-primary';\n case 'secondary':\n return 'btn-outline-primary';\n case 'tertiary':\n return 'btn-secondary';\n case 'success':\n return 'btn-success';\n case 'danger':\n return 'btn-danger';\n case 'inline':\n return 'btn-inline';\n case 'ghost':\n return classNames('btn-link', {\n 'btn-link-icon': iconOnly,\n 'btn-link-icon-only': iconOnly,\n });\n }\n}\n\nfunction getVariantClasses(kind: VariantKind): string {\n switch (kind) {\n case 'group-end':\n return classNames('pl-2', 'pr-3');\n }\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (props: ButtonProps, ref) => {\n const {\n kind,\n variant,\n type,\n tooltip,\n icon,\n disabled,\n active,\n onClick,\n onContextMenu,\n onMouseDown,\n onMouseUp,\n onMouseEnter,\n onMouseLeave,\n onKeyDown,\n className,\n style,\n children,\n tabIndex,\n 'data-testid': dataTestId,\n 'aria-label': ariaLabel,\n } = props;\n\n const iconOnly = Boolean(icon && children == null);\n const btnClassName = getClassName(kind, iconOnly);\n\n let variantClassName;\n if (variant) {\n variantClassName = getVariantClasses(variant);\n }\n\n let iconElem: JSX.Element | undefined;\n if (icon) {\n iconElem = React.isValidElement(icon) ? (\n icon\n ) : (\n <FontAwesomeIcon icon={icon as IconDefinition} />\n );\n }\n\n let tooltipElem: JSX.Element | undefined;\n if (tooltip !== undefined) {\n tooltipElem =\n typeof tooltip === 'string' ? <Tooltip>{tooltip}</Tooltip> : tooltip;\n }\n\n // use tooltip as arial-label for iconOnly buttons only\n // if tooltip is also a string and aria-label is not set\n let ariaLabelString = ariaLabel;\n if (\n ariaLabel === undefined &&\n iconOnly &&\n tooltip != null &&\n typeof tooltip === 'string'\n ) {\n ariaLabelString = tooltip;\n }\n\n const button = (\n <button\n data-testid={dataTestId}\n ref={ref}\n // eslint-disable-next-line react/button-has-type\n type={type}\n className={classNames(\n 'btn',\n btnClassName,\n variantClassName,\n { active },\n className\n )}\n onClick={onClick}\n onContextMenu={onContextMenu}\n onMouseUp={onMouseUp}\n onMouseDown={onMouseDown}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onKeyDown={onKeyDown}\n style={style}\n disabled={disabled}\n tabIndex={tabIndex}\n aria-label={ariaLabelString}\n >\n {icon && iconElem}\n {children}\n {tooltip != null &&\n (disabled === undefined || !disabled) &&\n tooltipElem}\n </button>\n );\n\n // disabled buttons tooltips need a wrapped element to receive pointer events\n // https://jakearchibald.com/2017/events-and-disabled-form-fields/\n\n return disabled !== undefined && disabled ? (\n <span className=\"btn-disabled-wrapper\">\n {button}\n {tooltip !== undefined && tooltipElem}\n </span>\n ) : (\n button\n );\n }\n);\n\nButton.displayName = 'Button';\n\nButton.propTypes = {\n kind: PropTypes.oneOf(BUTTON_KINDS).isRequired,\n variant: PropTypes.oneOf(VARIANT_KINDS),\n type: PropTypes.oneOf<ButtonTypes>(['submit', 'reset', 'button']),\n tooltip(props) {\n const { tooltip, icon, children } = props;\n if (tooltip === undefined && icon != null && children == null) {\n return new Error('Tooltip is required for icon only buttons');\n }\n return null;\n },\n icon(props) {\n const { children, icon } = props;\n if (icon == null && children == null) {\n return new Error('Icon is required if no children are provided');\n }\n\n if (\n children == null &&\n !React.isValidElement(icon) &&\n (icon == null || icon.iconName === '' || icon.iconName == null)\n ) {\n return new Error(\n 'Icon must be react element or fontawesome IconDefinition'\n );\n }\n\n return null;\n },\n disabled: PropTypes.bool,\n active: PropTypes.bool,\n onClick(props) {\n const { onClick, type } = props;\n if (type === 'button' && typeof onClick !== 'function') {\n return new Error('type button requires an onClick function');\n }\n if (onClick !== undefined && typeof onClick !== 'function') {\n return new Error('onClick must be a function');\n }\n return null;\n },\n onContextMenu: PropTypes.func,\n onMouseUp: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onKeyDown: PropTypes.func,\n tabIndex: PropTypes.number,\n children: PropTypes.node,\n className: PropTypes.string,\n style: PropTypes.object,\n 'data-testid': PropTypes.string,\n};\n\nButton.defaultProps = {\n type: 'button',\n onClick: undefined,\n onContextMenu: undefined,\n onMouseUp: undefined,\n onMouseDown: undefined,\n onMouseEnter: undefined,\n onMouseLeave: undefined,\n onKeyDown: undefined,\n variant: undefined,\n tooltip: undefined,\n icon: undefined,\n disabled: false,\n active: undefined,\n tabIndex: undefined,\n children: undefined,\n className: undefined,\n style: {},\n 'data-testid': undefined,\n};\n\nexport default Button;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Button.js","names":["React","PropTypes","classNames","FontAwesomeIcon","Tooltip","BUTTON_KINDS","VARIANT_KINDS","getClassName","kind","iconOnly","getVariantClasses","Button","forwardRef","props","ref","variant","type","tooltip","icon","disabled","active","onClick","onContextMenu","onMouseDown","onMouseUp","onMouseEnter","onMouseLeave","onKeyDown","className","style","children","tabIndex","dataTestId","ariaLabel","Boolean","btnClassName","variantClassName","iconElem","isValidElement","tooltipElem","undefined","ariaLabelString","button","displayName","propTypes","oneOf","isRequired","Error","iconName","bool","func","number","node","string","object","defaultProps"],"sources":["../src/Button.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { IconDefinition } from '@fortawesome/fontawesome-svg-core';\nimport { Tooltip } from './popper';\n\nconst BUTTON_KINDS = [\n 'primary',\n 'secondary',\n 'tertiary',\n 'success',\n 'danger',\n 'inline',\n 'ghost',\n] as const;\ntype ButtonTuple = typeof BUTTON_KINDS;\nexport type ButtonKind = ButtonTuple[number];\n\nconst VARIANT_KINDS = ['group-end'] as const;\ntype VariantTuple = typeof VARIANT_KINDS;\ntype VariantKind = VariantTuple[number];\n\ntype ButtonTypes = 'submit' | 'reset' | 'button';\n\ninterface BaseButtonProps extends React.ComponentPropsWithRef<'button'> {\n kind: ButtonKind;\n type?: ButtonTypes;\n variant?: VariantKind;\n tooltip?: string | JSX.Element;\n icon?: IconDefinition | JSX.Element;\n active?: boolean;\n 'data-testid'?: string;\n}\n\ntype ButtonWithChildren = BaseButtonProps & {\n children: React.ReactNode;\n};\n\ntype IconOnlyButtonStringTooltip = BaseButtonProps & {\n tooltip: string;\n icon: IconDefinition | JSX.Element;\n children?: undefined;\n};\n\ntype IconOnlyButtonJsxTooltip = BaseButtonProps & {\n tooltip: JSX.Element;\n 'aria-label': string;\n icon: IconDefinition | JSX.Element;\n children?: undefined;\n};\n\ntype IconOnlyButton = IconOnlyButtonStringTooltip | IconOnlyButtonJsxTooltip;\n\ntype ButtonProps = IconOnlyButton | ButtonWithChildren;\n\nfunction getClassName(kind: ButtonKind, iconOnly: boolean): string {\n switch (kind) {\n case 'primary':\n return 'btn-primary';\n case 'secondary':\n return 'btn-outline-primary';\n case 'tertiary':\n return 'btn-secondary';\n case 'success':\n return 'btn-success';\n case 'danger':\n return 'btn-danger';\n case 'inline':\n return 'btn-inline';\n case 'ghost':\n return classNames('btn-link', {\n 'btn-link-icon': iconOnly,\n 'btn-link-icon-only': iconOnly,\n });\n }\n}\n\nfunction getVariantClasses(kind: VariantKind): string {\n switch (kind) {\n case 'group-end':\n return classNames('pl-2', 'pr-3');\n }\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (props: ButtonProps, ref) => {\n const {\n kind,\n variant,\n type,\n tooltip,\n icon,\n disabled,\n active,\n onClick,\n onContextMenu,\n onMouseDown,\n onMouseUp,\n onMouseEnter,\n onMouseLeave,\n onKeyDown,\n className,\n style,\n children,\n tabIndex,\n 'data-testid': dataTestId,\n 'aria-label': ariaLabel,\n } = props;\n\n const iconOnly = Boolean(icon && children == null);\n const btnClassName = getClassName(kind, iconOnly);\n\n let variantClassName;\n if (variant) {\n variantClassName = getVariantClasses(variant);\n }\n\n let iconElem: JSX.Element | undefined;\n if (icon) {\n iconElem = React.isValidElement(icon) ? (\n icon\n ) : (\n <FontAwesomeIcon icon={icon as IconDefinition} />\n );\n }\n\n let tooltipElem: JSX.Element | undefined;\n if (tooltip !== undefined) {\n tooltipElem =\n typeof tooltip === 'string' ? <Tooltip>{tooltip}</Tooltip> : tooltip;\n }\n\n // use tooltip as arial-label for iconOnly buttons only\n // if tooltip is also a string and aria-label is not set\n let ariaLabelString = ariaLabel;\n if (\n ariaLabel === undefined &&\n iconOnly &&\n tooltip != null &&\n typeof tooltip === 'string'\n ) {\n ariaLabelString = tooltip;\n }\n\n const button = (\n <button\n data-testid={dataTestId}\n ref={ref}\n // eslint-disable-next-line react/button-has-type\n type={type}\n className={classNames(\n 'btn',\n btnClassName,\n variantClassName,\n { active },\n className\n )}\n onClick={onClick}\n onContextMenu={onContextMenu}\n onMouseUp={onMouseUp}\n onMouseDown={onMouseDown}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onKeyDown={onKeyDown}\n style={style}\n disabled={disabled}\n tabIndex={tabIndex}\n aria-label={ariaLabelString}\n >\n {icon && iconElem}\n {children}\n {tooltip != null &&\n (disabled === undefined || !disabled) &&\n tooltipElem}\n </button>\n );\n\n // disabled buttons tooltips need a wrapped element to receive pointer events\n // https://jakearchibald.com/2017/events-and-disabled-form-fields/\n\n return disabled !== undefined && disabled ? (\n <span className=\"btn-disabled-wrapper\">\n {button}\n {tooltip !== undefined && tooltipElem}\n </span>\n ) : (\n button\n );\n }\n);\n\nButton.displayName = 'Button';\n\nButton.propTypes = {\n kind: PropTypes.oneOf(BUTTON_KINDS).isRequired,\n variant: PropTypes.oneOf(VARIANT_KINDS),\n type: PropTypes.oneOf<ButtonTypes>(['submit', 'reset', 'button']),\n tooltip(props) {\n const { tooltip, icon, children } = props;\n if (tooltip === undefined && icon != null && children == null) {\n return new Error('Tooltip is required for icon only buttons');\n }\n return null;\n },\n icon(props) {\n const { children, icon } = props;\n if (icon == null && children == null) {\n return new Error('Icon is required if no children are provided');\n }\n\n if (\n children == null &&\n !React.isValidElement(icon) &&\n (icon == null || icon.iconName === '' || icon.iconName == null)\n ) {\n return new Error(\n 'Icon must be react element or fontawesome IconDefinition'\n );\n }\n\n return null;\n },\n disabled: PropTypes.bool,\n active: PropTypes.bool,\n onClick(props) {\n const { onClick, type } = props;\n if (type === 'button' && typeof onClick !== 'function') {\n return new Error('type button requires an onClick function');\n }\n if (onClick !== undefined && typeof onClick !== 'function') {\n return new Error('onClick must be a function');\n }\n return null;\n },\n onContextMenu: PropTypes.func,\n onMouseUp: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onKeyDown: PropTypes.func,\n tabIndex: PropTypes.number,\n children: PropTypes.node,\n className: PropTypes.string,\n style: PropTypes.object,\n 'data-testid': PropTypes.string,\n};\n\nButton.defaultProps = {\n type: 'button',\n onClick: undefined,\n onContextMenu: undefined,\n onMouseUp: undefined,\n onMouseDown: undefined,\n onMouseEnter: undefined,\n onMouseLeave: undefined,\n onKeyDown: undefined,\n variant: undefined,\n tooltip: undefined,\n icon: undefined,\n disabled: false,\n active: undefined,\n tabIndex: undefined,\n children: undefined,\n className: undefined,\n style: {},\n 'data-testid': undefined,\n};\n\nexport default Button;\n"],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+ import { ButtonKind } from './Button';
3
+ declare type CopyButtonProps = {
4
+ /** The value to copy when clicked, accepts string or function returning a string. */
5
+ copy: string | (() => string);
6
+ /** The kind of button */
7
+ kind?: ButtonKind;
8
+ /** Optional tooltip label ex. 'Copy column name' */
9
+ tooltip?: string;
10
+ /** Optional extra classname */
11
+ className?: string;
12
+ /** Optional extra testid */
13
+ 'data-testid'?: string;
14
+ /** Optional button children */
15
+ children?: React.ReactNode;
16
+ };
17
+ /**
18
+ * Button that has a copy icon, and copies text to a clipboard when clicked.
19
+ */
20
+ declare const CopyButton: ({ copy, kind, tooltip, className, "data-testid": dataTestId, children, }: CopyButtonProps) => JSX.Element;
21
+ export default CopyButton;
22
+ //# sourceMappingURL=CopyButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CopyButton.d.ts","sourceRoot":"","sources":["../src/CopyButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAe,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE9C,aAAK,eAAe,GAAG;IACrB,qFAAqF;IACrF,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAC9B,yBAAyB;IACzB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,UAAU,6EAOb,eAAe,KAAG,WAgBpB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,32 @@
1
+ import React from 'react';
2
+ import { vsPassFilled, vsCopy } from '@deephaven/icons';
3
+ import { useCopyToClipboard } from '@deephaven/react-hooks';
4
+ import Button from "./Button.js";
5
+
6
+ /**
7
+ * Button that has a copy icon, and copies text to a clipboard when clicked.
8
+ */
9
+ var CopyButton = _ref => {
10
+ var {
11
+ copy,
12
+ kind = 'ghost',
13
+ tooltip = 'Copy',
14
+ className,
15
+ 'data-testid': dataTestId,
16
+ children
17
+ } = _ref;
18
+ var [copied, copyToClipboard] = useCopyToClipboard();
19
+ return /*#__PURE__*/React.createElement(Button, {
20
+ kind: kind,
21
+ className: className,
22
+ "data-testid": dataTestId,
23
+ icon: copied ? vsPassFilled : vsCopy,
24
+ tooltip: copied ? 'Copied' : tooltip,
25
+ onClick: () => {
26
+ copyToClipboard(typeof copy === 'function' ? copy() : copy);
27
+ }
28
+ }, children);
29
+ };
30
+
31
+ export default CopyButton;
32
+ //# sourceMappingURL=CopyButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CopyButton.js","names":["React","vsPassFilled","vsCopy","useCopyToClipboard","Button","CopyButton","copy","kind","tooltip","className","dataTestId","children","copied","copyToClipboard"],"sources":["../src/CopyButton.tsx"],"sourcesContent":["import React from 'react';\nimport { vsPassFilled, vsCopy } from '@deephaven/icons';\nimport { useCopyToClipboard } from '@deephaven/react-hooks';\nimport Button, { ButtonKind } from './Button';\n\ntype CopyButtonProps = {\n /** The value to copy when clicked, accepts string or function returning a string. */\n copy: string | (() => string);\n /** The kind of button */\n kind?: ButtonKind;\n /** Optional tooltip label ex. 'Copy column name' */\n tooltip?: string;\n /** Optional extra classname */\n className?: string;\n /** Optional extra testid */\n 'data-testid'?: string;\n /** Optional button children */\n children?: React.ReactNode;\n};\n\n/**\n * Button that has a copy icon, and copies text to a clipboard when clicked.\n */\nconst CopyButton = ({\n copy,\n kind = 'ghost',\n tooltip = 'Copy',\n className,\n 'data-testid': dataTestId,\n children,\n}: CopyButtonProps): JSX.Element => {\n const [copied, copyToClipboard] = useCopyToClipboard();\n return (\n <Button\n kind={kind}\n className={className}\n data-testid={dataTestId}\n icon={copied ? vsPassFilled : vsCopy}\n tooltip={copied ? 'Copied' : tooltip}\n onClick={() => {\n copyToClipboard(typeof copy === 'function' ? copy() : copy);\n }}\n >\n {children}\n </Button>\n );\n};\n\nexport default CopyButton;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,YAAT,EAAuBC,MAAvB,QAAqC,kBAArC;AACA,SAASC,kBAAT,QAAmC,wBAAnC;OACOC,M;;AAiBP;AACA;AACA;AACA,IAAMC,UAAU,GAAG,QAOiB;EAAA,IAPhB;IAClBC,IADkB;IAElBC,IAAI,GAAG,OAFW;IAGlBC,OAAO,GAAG,MAHQ;IAIlBC,SAJkB;IAKlB,eAAeC,UALG;IAMlBC;EANkB,CAOgB;EAClC,IAAM,CAACC,MAAD,EAASC,eAAT,IAA4BV,kBAAkB,EAApD;EACA,oBACE,oBAAC,MAAD;IACE,IAAI,EAAEI,IADR;IAEE,SAAS,EAAEE,SAFb;IAGE,eAAaC,UAHf;IAIE,IAAI,EAAEE,MAAM,GAAGX,YAAH,GAAkBC,MAJhC;IAKE,OAAO,EAAEU,MAAM,GAAG,QAAH,GAAcJ,OAL/B;IAME,OAAO,EAAE,MAAM;MACbK,eAAe,CAAC,OAAOP,IAAP,KAAgB,UAAhB,GAA6BA,IAAI,EAAjC,GAAsCA,IAAvC,CAAf;IACD;EARH,GAUGK,QAVH,CADF;AAcD,CAvBD;;AAyBA,eAAeN,UAAf"}
@@ -48,18 +48,6 @@ declare class ContextActionUtils {
48
48
  * @param event The event to get the meta key status from
49
49
  */
50
50
  static isModifierKeyDown(event: KeyboardEvent | MouseEvent | React.KeyboardEvent | React.MouseEvent): boolean;
51
- /**
52
- * Copy the passed in text to the clipboard.
53
- * @param text The text to copy
54
- * @returns Promise Resolved on success, rejected on failure
55
- */
56
- static copyToClipboard(text: string): Promise<void>;
57
- /**
58
- * Copy the passed in text to the clipboard using the `execCommand` functionality
59
- * Throws on error/failure
60
- * @param text The text to copy
61
- */
62
- static copyToClipboardExecCommand(text: string): void;
63
51
  /**
64
52
  * Returns the menu items for the provided context actions, or empty array if none found.
65
53
  * @param actionsParam The actions to get menu items for
@@ -1 +1 @@
1
- {"version":3,"file":"ContextActionUtils.d.ts","sourceRoot":"","sources":["../../src/context-actions/ContextActionUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContextActionUtils.d.ts","sourceRoot":"","sources":["../../src/context-actions/ContextActionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,oBAAY,uBAAuB,GAC/B,aAAa,GACb,OAAO,CAAC,aAAa,EAAE,CAAC,GACxB,CAAC,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC,GAAG,aAAa,EAAE,GAAG,aAAa,CAAC,CAAC;AAEvE,oBAAY,QAAQ,GAAG,aAAa,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;AAEhE,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,OAAO,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACpC,IAAI,CAAC,EAAE,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,cAAc,EAAE,uBAAuB,EAAE,CAAC;CAC3C;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,CAE1E;AAED,cAAM,kBAAkB;IACtB,MAAM,CAAC,eAAe,UAAS;IAE/B,MAAM,CAAC,iBAAiB,IAAI,IAAI;IAIhC,MAAM,CAAC,gBAAgB,IAAI,IAAI;IAI/B,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,IAAI,kBAAkB;IAInE;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,MAAM;IAoBjE;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE;IAU7D,MAAM,CAAC,aAAa,IAAI,OAAO;IAK/B;;OAEG;IACH,MAAM,CAAC,cAAc,IAAI,SAAS,GAAG,SAAS;IAQ9C;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CACtB,KAAK,EAAE,aAAa,GAAG,UAAU,GAAG,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,UAAU,GACzE,OAAO;IAKV;;;;OAIG;IACH,MAAM,CAAC,YAAY,CACjB,YAAY,EAAE,uBAAuB,GAAG,uBAAuB,EAAE,EACjE,eAAe,CAAC,EAAE,IAAI,GACrB,QAAQ,EAAE;IAGb,MAAM,CAAC,YAAY,CACjB,YAAY,EAAE,uBAAuB,GAAG,uBAAuB,EAAE,EACjE,eAAe,EAAE,KAAK,GACrB,aAAa,EAAE;IA+ClB;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CACpB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,EACb,SAAS,EAAE,QAAQ,EAAE,GACpB,MAAM;CAiBV;AAED,eAAe,kBAAkB,CAAC"}
@@ -92,52 +92,6 @@ class ContextActionUtils {
92
92
  var modifierKey = ContextActionUtils.getModifierKey();
93
93
  return event[modifierKey];
94
94
  }
95
- /**
96
- * Copy the passed in text to the clipboard.
97
- * @param text The text to copy
98
- * @returns Promise Resolved on success, rejected on failure
99
- */
100
-
101
-
102
- static copyToClipboard(text) {
103
- var {
104
- clipboard
105
- } = navigator;
106
-
107
- if (clipboard === undefined) {
108
- ContextActionUtils.copyToClipboardExecCommand(text);
109
- return Promise.resolve();
110
- }
111
-
112
- return navigator.clipboard.writeText(text).catch(() => {
113
- ContextActionUtils.copyToClipboardExecCommand(text);
114
- });
115
- }
116
- /**
117
- * Copy the passed in text to the clipboard using the `execCommand` functionality
118
- * Throws on error/failure
119
- * @param text The text to copy
120
- */
121
-
122
-
123
- static copyToClipboardExecCommand(text) {
124
- var oldFocus = document.activeElement;
125
- var textArea = document.createElement('textarea');
126
- textArea.value = text;
127
- document.body.appendChild(textArea);
128
- textArea.focus();
129
- textArea.select();
130
-
131
- if (!document.execCommand('copy')) {
132
- throw new Error('Unable to execute copy command');
133
- }
134
-
135
- document.body.removeChild(textArea);
136
-
137
- if (oldFocus instanceof HTMLElement) {
138
- oldFocus.focus();
139
- }
140
- }
141
95
  /**
142
96
  * Returns the menu items for the provided context actions, or empty array if none found.
143
97
  * @param actionsParam The actions to get menu items for
@@ -1 +1 @@
1
- {"version":3,"file":"ContextActionUtils.js","names":["isPromise","value","then","undefined","ContextActionUtils","disableAllActions","actionsDisabled","enableAllActions","isContextActionEvent","e","Array","isArray","contextActions","compareActions","a","b","group","order","title","sortActions","actions","sortedActions","slice","sort","isMacPlatform","platform","window","navigator","startsWith","getModifierKey","isModifierKeyDown","event","modifierKey","copyToClipboard","text","clipboard","copyToClipboardExecCommand","Promise","resolve","writeText","catch","oldFocus","document","activeElement","textArea","createElement","body","appendChild","focus","select","execCommand","Error","removeChild","HTMLElement","getMenuItems","actionsParam","includePromises","menuItems","i","length","action","newMenuItems","push","concat","filter","menuElement","getNextMenuItem","startIndex","delta","firstIndex","menuIndex","item","disabled"],"sources":["../../src/context-actions/ContextActionUtils.ts"],"sourcesContent":["import { IconDefinition } from '@deephaven/icons';\nimport React from 'react';\nimport type { Shortcut } from '../shortcuts';\n\nexport type ResolvableContextAction =\n | ContextAction\n | Promise<ContextAction[]>\n | (() => Promise<ContextAction[]> | ContextAction[] | ContextAction);\n\nexport type MenuItem = ContextAction | Promise<ContextAction[]>;\n\nexport interface ContextAction {\n title?: string;\n description?: string;\n action?(event?: KeyboardEvent): void;\n actions?: ResolvableContextAction[];\n icon?: IconDefinition | React.ReactElement;\n iconColor?: string;\n shortcut?: Shortcut;\n isGlobal?: boolean;\n group?: number;\n order?: number;\n disabled?: boolean;\n menuElement?: React.ReactElement;\n iconOutline?: boolean;\n}\n\nexport interface ContextActionEvent extends MouseEvent {\n contextActions: ResolvableContextAction[];\n}\n\nexport function isPromise<A, T>(value: A | Promise<T>): value is Promise<T> {\n return (value as Promise<T>).then !== undefined;\n}\n\nclass ContextActionUtils {\n static actionsDisabled = false;\n\n static disableAllActions(): void {\n ContextActionUtils.actionsDisabled = true;\n }\n\n static enableAllActions(): void {\n ContextActionUtils.actionsDisabled = false;\n }\n\n static isContextActionEvent(e: MouseEvent): e is ContextActionEvent {\n return Array.isArray((e as ContextActionEvent).contextActions);\n }\n\n /**\n * Compare two action items. Useful in Array.sort\n * @param a First context action to compare\n * @param b Second context action to compare\n */\n static compareActions(a: ContextAction, b: ContextAction): number {\n if (a.group !== b.group) {\n return (a.group ?? 0) > (b.group ?? 0) ? 1 : -1;\n }\n\n if (a.order !== b.order) {\n return (a.order ?? 0) > (b.order ?? 0) ? 1 : -1;\n }\n\n if (a.title !== b.title) {\n return (a.title ?? '') > (b.title ?? '') ? 1 : -1;\n }\n\n if (a !== b) {\n return a > b ? 1 : -1;\n }\n\n return 0;\n }\n\n /**\n *\n * @param actions The array of actions to sort\n */\n static sortActions(actions: ContextAction[]): ContextAction[] {\n if (actions == null || !Array.isArray(actions)) {\n return [];\n }\n\n const sortedActions = actions.slice();\n sortedActions.sort(ContextActionUtils.compareActions);\n return sortedActions;\n }\n\n static isMacPlatform(): boolean {\n const { platform } = window.navigator;\n return platform.startsWith('Mac');\n }\n\n /**\n * Retrieve the preferred modifier key based on the current platform\n */\n static getModifierKey(): 'metaKey' | 'ctrlKey' {\n if (ContextActionUtils.isMacPlatform()) {\n return 'metaKey';\n }\n\n return 'ctrlKey';\n }\n\n /**\n * Returns true if the modifier key for the current platform is down for the event (Ctrl for windows/linux, Command (meta) for mac)\n * @param event The event to get the meta key status from\n */\n static isModifierKeyDown(\n event: KeyboardEvent | MouseEvent | React.KeyboardEvent | React.MouseEvent\n ): boolean {\n const modifierKey = ContextActionUtils.getModifierKey();\n return event[modifierKey];\n }\n\n /**\n * Copy the passed in text to the clipboard.\n * @param text The text to copy\n * @returns Promise Resolved on success, rejected on failure\n */\n static copyToClipboard(text: string): Promise<void> {\n const { clipboard } = navigator;\n if (clipboard === undefined) {\n ContextActionUtils.copyToClipboardExecCommand(text);\n return Promise.resolve();\n }\n return navigator.clipboard.writeText(text).catch(() => {\n ContextActionUtils.copyToClipboardExecCommand(text);\n });\n }\n\n /**\n * Copy the passed in text to the clipboard using the `execCommand` functionality\n * Throws on error/failure\n * @param text The text to copy\n */\n static copyToClipboardExecCommand(text: string): void {\n const oldFocus = document.activeElement;\n const textArea = document.createElement('textarea');\n textArea.value = text;\n document.body.appendChild(textArea);\n textArea.focus();\n textArea.select();\n\n if (!document.execCommand('copy')) {\n throw new Error('Unable to execute copy command');\n }\n\n document.body.removeChild(textArea);\n\n if (oldFocus instanceof HTMLElement) {\n oldFocus.focus();\n }\n }\n\n /**\n * Returns the menu items for the provided context actions, or empty array if none found.\n * @param actionsParam The actions to get menu items for\n * @param includePromises Whether or not to include promises in the returned menu items\n */\n static getMenuItems(\n actionsParam: ResolvableContextAction | ResolvableContextAction[],\n includePromises?: true\n ): MenuItem[];\n\n // If ignoring promises, then the return type is narrowed\n static getMenuItems(\n actionsParam: ResolvableContextAction | ResolvableContextAction[],\n includePromises: false\n ): ContextAction[];\n\n static getMenuItems(\n actionsParam: ResolvableContextAction | ResolvableContextAction[],\n includePromises = true\n ): MenuItem[] {\n let menuItems: MenuItem[] = [];\n let actions = actionsParam;\n if (!Array.isArray(actions)) {\n actions = [actions];\n }\n\n for (let i = 0; i < actions.length; i += 1) {\n const action = actions[i];\n let newMenuItems:\n | ContextAction\n | ContextAction[]\n | Promise<ContextAction[]>;\n if (typeof action === 'function') {\n newMenuItems = action();\n } else {\n newMenuItems = action;\n }\n\n if (newMenuItems != null) {\n if (newMenuItems instanceof Promise) {\n if (includePromises) {\n menuItems.push(newMenuItems);\n }\n } else if (Array.isArray(newMenuItems)) {\n menuItems = menuItems.concat(newMenuItems);\n } else {\n menuItems.push(newMenuItems);\n }\n }\n }\n\n menuItems = menuItems.filter(\n action =>\n (action as ContextAction).title !== undefined ||\n (action as Promise<ContextAction[]>).then ||\n (action as ContextAction).menuElement\n );\n\n return menuItems;\n }\n\n /**\n * Returns the index of the next menu item in a list that doesn't have a disabled=true prop\n * @param startIndex the starting position for the iteration\n * @param delta the direction of travel, -1 or 1\n * @param menuItems an array of menuItems\n */\n static getNextMenuItem(\n startIndex: number,\n delta: -1 | 1,\n menuItems: MenuItem[]\n ): number {\n let firstIndex = startIndex;\n if (firstIndex < 0 && delta < 0) {\n // if menu index is -1 and delta -1 manually set start point\n firstIndex = menuItems.length;\n }\n // find the next non disabled menu option, iterating the list only once\n for (let i = 1; i < menuItems.length + 1; i += 1) {\n const menuIndex =\n (firstIndex + delta * i + menuItems.length) % menuItems.length;\n const item = menuItems[menuIndex];\n if (!(item instanceof Promise) && item.disabled !== true) {\n return menuIndex;\n }\n }\n return startIndex;\n }\n}\n\nexport default ContextActionUtils;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ContextActionUtils.js","names":["isPromise","value","then","undefined","ContextActionUtils","disableAllActions","actionsDisabled","enableAllActions","isContextActionEvent","e","Array","isArray","contextActions","compareActions","a","b","group","order","title","sortActions","actions","sortedActions","slice","sort","isMacPlatform","platform","window","navigator","startsWith","getModifierKey","isModifierKeyDown","event","modifierKey","getMenuItems","actionsParam","includePromises","menuItems","i","length","action","newMenuItems","Promise","push","concat","filter","menuElement","getNextMenuItem","startIndex","delta","firstIndex","menuIndex","item","disabled"],"sources":["../../src/context-actions/ContextActionUtils.ts"],"sourcesContent":["import { IconDefinition } from '@deephaven/icons';\nimport React from 'react';\nimport type { Shortcut } from '../shortcuts';\n\nexport type ResolvableContextAction =\n | ContextAction\n | Promise<ContextAction[]>\n | (() => Promise<ContextAction[]> | ContextAction[] | ContextAction);\n\nexport type MenuItem = ContextAction | Promise<ContextAction[]>;\n\nexport interface ContextAction {\n title?: string;\n description?: string;\n action?(event?: KeyboardEvent): void;\n actions?: ResolvableContextAction[];\n icon?: IconDefinition | React.ReactElement;\n iconColor?: string;\n shortcut?: Shortcut;\n isGlobal?: boolean;\n group?: number;\n order?: number;\n disabled?: boolean;\n menuElement?: React.ReactElement;\n iconOutline?: boolean;\n}\n\nexport interface ContextActionEvent extends MouseEvent {\n contextActions: ResolvableContextAction[];\n}\n\nexport function isPromise<A, T>(value: A | Promise<T>): value is Promise<T> {\n return (value as Promise<T>).then !== undefined;\n}\n\nclass ContextActionUtils {\n static actionsDisabled = false;\n\n static disableAllActions(): void {\n ContextActionUtils.actionsDisabled = true;\n }\n\n static enableAllActions(): void {\n ContextActionUtils.actionsDisabled = false;\n }\n\n static isContextActionEvent(e: MouseEvent): e is ContextActionEvent {\n return Array.isArray((e as ContextActionEvent).contextActions);\n }\n\n /**\n * Compare two action items. Useful in Array.sort\n * @param a First context action to compare\n * @param b Second context action to compare\n */\n static compareActions(a: ContextAction, b: ContextAction): number {\n if (a.group !== b.group) {\n return (a.group ?? 0) > (b.group ?? 0) ? 1 : -1;\n }\n\n if (a.order !== b.order) {\n return (a.order ?? 0) > (b.order ?? 0) ? 1 : -1;\n }\n\n if (a.title !== b.title) {\n return (a.title ?? '') > (b.title ?? '') ? 1 : -1;\n }\n\n if (a !== b) {\n return a > b ? 1 : -1;\n }\n\n return 0;\n }\n\n /**\n *\n * @param actions The array of actions to sort\n */\n static sortActions(actions: ContextAction[]): ContextAction[] {\n if (actions == null || !Array.isArray(actions)) {\n return [];\n }\n\n const sortedActions = actions.slice();\n sortedActions.sort(ContextActionUtils.compareActions);\n return sortedActions;\n }\n\n static isMacPlatform(): boolean {\n const { platform } = window.navigator;\n return platform.startsWith('Mac');\n }\n\n /**\n * Retrieve the preferred modifier key based on the current platform\n */\n static getModifierKey(): 'metaKey' | 'ctrlKey' {\n if (ContextActionUtils.isMacPlatform()) {\n return 'metaKey';\n }\n\n return 'ctrlKey';\n }\n\n /**\n * Returns true if the modifier key for the current platform is down for the event (Ctrl for windows/linux, Command (meta) for mac)\n * @param event The event to get the meta key status from\n */\n static isModifierKeyDown(\n event: KeyboardEvent | MouseEvent | React.KeyboardEvent | React.MouseEvent\n ): boolean {\n const modifierKey = ContextActionUtils.getModifierKey();\n return event[modifierKey];\n }\n\n /**\n * Returns the menu items for the provided context actions, or empty array if none found.\n * @param actionsParam The actions to get menu items for\n * @param includePromises Whether or not to include promises in the returned menu items\n */\n static getMenuItems(\n actionsParam: ResolvableContextAction | ResolvableContextAction[],\n includePromises?: true\n ): MenuItem[];\n\n // If ignoring promises, then the return type is narrowed\n static getMenuItems(\n actionsParam: ResolvableContextAction | ResolvableContextAction[],\n includePromises: false\n ): ContextAction[];\n\n static getMenuItems(\n actionsParam: ResolvableContextAction | ResolvableContextAction[],\n includePromises = true\n ): MenuItem[] {\n let menuItems: MenuItem[] = [];\n let actions = actionsParam;\n if (!Array.isArray(actions)) {\n actions = [actions];\n }\n\n for (let i = 0; i < actions.length; i += 1) {\n const action = actions[i];\n let newMenuItems:\n | ContextAction\n | ContextAction[]\n | Promise<ContextAction[]>;\n if (typeof action === 'function') {\n newMenuItems = action();\n } else {\n newMenuItems = action;\n }\n\n if (newMenuItems != null) {\n if (newMenuItems instanceof Promise) {\n if (includePromises) {\n menuItems.push(newMenuItems);\n }\n } else if (Array.isArray(newMenuItems)) {\n menuItems = menuItems.concat(newMenuItems);\n } else {\n menuItems.push(newMenuItems);\n }\n }\n }\n\n menuItems = menuItems.filter(\n action =>\n (action as ContextAction).title !== undefined ||\n (action as Promise<ContextAction[]>).then ||\n (action as ContextAction).menuElement\n );\n\n return menuItems;\n }\n\n /**\n * Returns the index of the next menu item in a list that doesn't have a disabled=true prop\n * @param startIndex the starting position for the iteration\n * @param delta the direction of travel, -1 or 1\n * @param menuItems an array of menuItems\n */\n static getNextMenuItem(\n startIndex: number,\n delta: -1 | 1,\n menuItems: MenuItem[]\n ): number {\n let firstIndex = startIndex;\n if (firstIndex < 0 && delta < 0) {\n // if menu index is -1 and delta -1 manually set start point\n firstIndex = menuItems.length;\n }\n // find the next non disabled menu option, iterating the list only once\n for (let i = 1; i < menuItems.length + 1; i += 1) {\n const menuIndex =\n (firstIndex + delta * i + menuItems.length) % menuItems.length;\n const item = menuItems[menuIndex];\n if (!(item instanceof Promise) && item.disabled !== true) {\n return menuIndex;\n }\n }\n return startIndex;\n }\n}\n\nexport default ContextActionUtils;\n"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -10,6 +10,7 @@ export * from './context-actions';
10
10
  export { default as Collapse } from './Collapse';
11
11
  export { default as Checkbox } from './Checkbox';
12
12
  export { default as ComboBox } from './ComboBox';
13
+ export { default as CopyButton } from './CopyButton';
13
14
  export { default as CustomTimeSelect } from './CustomTimeSelect';
14
15
  export { default as DateTimeInput } from './DateTimeInput';
15
16
  export { default as DateInput } from './DateInput';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -9,6 +9,7 @@ export * from "./context-actions/index.js";
9
9
  export { default as Collapse } from "./Collapse.js";
10
10
  export { default as Checkbox } from "./Checkbox.js";
11
11
  export { default as ComboBox } from "./ComboBox.js";
12
+ export { default as CopyButton } from "./CopyButton.js";
12
13
  export { default as CustomTimeSelect } from "./CustomTimeSelect.js";
13
14
  export { default as DateTimeInput } from "./DateTimeInput.js";
14
15
  export { default as DateInput } from "./DateInput.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","AutoCompleteInput","AutoResizeTextarea","BasicModal","Button","ButtonGroup","ButtonOld","CardFlip","Collapse","Checkbox","ComboBox","CustomTimeSelect","DateTimeInput","DateInput","DebouncedSearchInput","DraggableItemList","DragUtils","EditableItemList","HierarchicalCheckboxMenu","ItemListItem","LoadingOverlay","LoadingSpinner","DropdownMenu","MaskedInput","Option","RadioGroup","RadioItem","Select","SearchInput","SelectValueList","SocketedButton","ThemeExport","TimeInput","TimeSlider","ToastNotification","UISwitch","ValidateLabelInput"],"sources":["../src/index.ts"],"sourcesContent":["export type { Range } from '@deephaven/utils';\nexport { default as AutoCompleteInput } from './AutoCompleteInput';\nexport { default as AutoResizeTextarea } from './AutoResizeTextarea';\nexport { default as BasicModal } from './BasicModal';\nexport { default as Button } from './Button';\nexport { default as ButtonGroup } from './ButtonGroup';\nexport { default as ButtonOld } from './ButtonOld';\nexport { default as CardFlip } from './CardFlip';\nexport * from './context-actions';\nexport { default as Collapse } from './Collapse';\nexport { default as Checkbox } from './Checkbox';\nexport { default as ComboBox } from './ComboBox';\nexport { default as CustomTimeSelect } from './CustomTimeSelect';\nexport { default as DateTimeInput } from './DateTimeInput';\nexport { default as DateInput } from './DateInput';\nexport { default as DebouncedSearchInput } from './DebouncedSearchInput';\nexport { default as DraggableItemList } from './DraggableItemList';\nexport * from './DraggableItemList';\nexport { default as DragUtils } from './DragUtils';\nexport { default as EditableItemList } from './EditableItemList';\nexport { default as HierarchicalCheckboxMenu } from './HierarchicalCheckboxMenu';\nexport * from './HierarchicalCheckboxMenu';\nexport * from './ItemList';\nexport { default as ItemListItem } from './ItemListItem';\nexport { default as LoadingOverlay } from './LoadingOverlay';\nexport { default as LoadingSpinner } from './LoadingSpinner';\nexport { default as DropdownMenu } from './menu-actions';\nexport * from './menu-actions';\nexport { default as MaskedInput } from './MaskedInput';\nexport * from './MaskedInput';\nexport * from './navigation';\nexport { default as Option } from './Option';\nexport * from './popper';\nexport * from './modal';\nexport { default as RadioGroup } from './RadioGroup';\nexport { default as RadioItem } from './RadioItem';\nexport { default as Select } from './Select';\nexport { default as SearchInput } from './SearchInput';\nexport { default as SelectValueList } from './SelectValueList';\nexport * from './SelectValueList';\nexport * from './shortcuts';\nexport { default as SocketedButton } from './SocketedButton';\nexport { default as ThemeExport } from './ThemeExport';\nexport { default as TimeInput } from './TimeInput';\nexport { default as TimeSlider } from './TimeSlider';\nexport { default as ToastNotification } from './ToastNotification';\nexport { default as UISwitch } from './UISwitch';\nexport { default as ValidateLabelInput } from './ValidateLabelInput';\n"],"mappings":"SACSA,OAAO,IAAIC,iB;SACXD,OAAO,IAAIE,kB;SACXF,OAAO,IAAIG,U;SACXH,OAAO,IAAII,M;SACXJ,OAAO,IAAIK,W;SACXL,OAAO,IAAIM,S;SACXN,OAAO,IAAIO,Q;;SAEXP,OAAO,IAAIQ,Q;SACXR,OAAO,IAAIS,Q;SACXT,OAAO,IAAIU,Q;SACXV,OAAO,IAAIW,gB;SACXX,OAAO,IAAIY,a;SACXZ,OAAO,IAAIa,S;SACXb,OAAO,IAAIc,oB;SACXd,OAAO,IAAIe,iB;;SAEXf,OAAO,IAAIgB,S;SACXhB,OAAO,IAAIiB,gB;SACXjB,OAAO,IAAIkB,wB;;;SAGXlB,OAAO,IAAImB,Y;SACXnB,OAAO,IAAIoB,c;SACXpB,OAAO,IAAIqB,c;SACXrB,OAAO,IAAIsB,Y;;SAEXtB,OAAO,IAAIuB,W;;;SAGXvB,OAAO,IAAIwB,M;;;SAGXxB,OAAO,IAAIyB,U;SACXzB,OAAO,IAAI0B,S;SACX1B,OAAO,IAAI2B,M;SACX3B,OAAO,IAAI4B,W;SACX5B,OAAO,IAAI6B,e;;;SAGX7B,OAAO,IAAI8B,c;SACX9B,OAAO,IAAI+B,W;SACX/B,OAAO,IAAIgC,S;SACXhC,OAAO,IAAIiC,U;SACXjC,OAAO,IAAIkC,iB;SACXlC,OAAO,IAAImC,Q;SACXnC,OAAO,IAAIoC,kB"}
1
+ {"version":3,"file":"index.js","names":["default","AutoCompleteInput","AutoResizeTextarea","BasicModal","Button","ButtonGroup","ButtonOld","CardFlip","Collapse","Checkbox","ComboBox","CopyButton","CustomTimeSelect","DateTimeInput","DateInput","DebouncedSearchInput","DraggableItemList","DragUtils","EditableItemList","HierarchicalCheckboxMenu","ItemListItem","LoadingOverlay","LoadingSpinner","DropdownMenu","MaskedInput","Option","RadioGroup","RadioItem","Select","SearchInput","SelectValueList","SocketedButton","ThemeExport","TimeInput","TimeSlider","ToastNotification","UISwitch","ValidateLabelInput"],"sources":["../src/index.ts"],"sourcesContent":["export type { Range } from '@deephaven/utils';\nexport { default as AutoCompleteInput } from './AutoCompleteInput';\nexport { default as AutoResizeTextarea } from './AutoResizeTextarea';\nexport { default as BasicModal } from './BasicModal';\nexport { default as Button } from './Button';\nexport { default as ButtonGroup } from './ButtonGroup';\nexport { default as ButtonOld } from './ButtonOld';\nexport { default as CardFlip } from './CardFlip';\nexport * from './context-actions';\nexport { default as Collapse } from './Collapse';\nexport { default as Checkbox } from './Checkbox';\nexport { default as ComboBox } from './ComboBox';\nexport { default as CopyButton } from './CopyButton';\nexport { default as CustomTimeSelect } from './CustomTimeSelect';\nexport { default as DateTimeInput } from './DateTimeInput';\nexport { default as DateInput } from './DateInput';\nexport { default as DebouncedSearchInput } from './DebouncedSearchInput';\nexport { default as DraggableItemList } from './DraggableItemList';\nexport * from './DraggableItemList';\nexport { default as DragUtils } from './DragUtils';\nexport { default as EditableItemList } from './EditableItemList';\nexport { default as HierarchicalCheckboxMenu } from './HierarchicalCheckboxMenu';\nexport * from './HierarchicalCheckboxMenu';\nexport * from './ItemList';\nexport { default as ItemListItem } from './ItemListItem';\nexport { default as LoadingOverlay } from './LoadingOverlay';\nexport { default as LoadingSpinner } from './LoadingSpinner';\nexport { default as DropdownMenu } from './menu-actions';\nexport * from './menu-actions';\nexport { default as MaskedInput } from './MaskedInput';\nexport * from './MaskedInput';\nexport * from './navigation';\nexport { default as Option } from './Option';\nexport * from './popper';\nexport * from './modal';\nexport { default as RadioGroup } from './RadioGroup';\nexport { default as RadioItem } from './RadioItem';\nexport { default as Select } from './Select';\nexport { default as SearchInput } from './SearchInput';\nexport { default as SelectValueList } from './SelectValueList';\nexport * from './SelectValueList';\nexport * from './shortcuts';\nexport { default as SocketedButton } from './SocketedButton';\nexport { default as ThemeExport } from './ThemeExport';\nexport { default as TimeInput } from './TimeInput';\nexport { default as TimeSlider } from './TimeSlider';\nexport { default as ToastNotification } from './ToastNotification';\nexport { default as UISwitch } from './UISwitch';\nexport { default as ValidateLabelInput } from './ValidateLabelInput';\n"],"mappings":"SACSA,OAAO,IAAIC,iB;SACXD,OAAO,IAAIE,kB;SACXF,OAAO,IAAIG,U;SACXH,OAAO,IAAII,M;SACXJ,OAAO,IAAIK,W;SACXL,OAAO,IAAIM,S;SACXN,OAAO,IAAIO,Q;;SAEXP,OAAO,IAAIQ,Q;SACXR,OAAO,IAAIS,Q;SACXT,OAAO,IAAIU,Q;SACXV,OAAO,IAAIW,U;SACXX,OAAO,IAAIY,gB;SACXZ,OAAO,IAAIa,a;SACXb,OAAO,IAAIc,S;SACXd,OAAO,IAAIe,oB;SACXf,OAAO,IAAIgB,iB;;SAEXhB,OAAO,IAAIiB,S;SACXjB,OAAO,IAAIkB,gB;SACXlB,OAAO,IAAImB,wB;;;SAGXnB,OAAO,IAAIoB,Y;SACXpB,OAAO,IAAIqB,c;SACXrB,OAAO,IAAIsB,c;SACXtB,OAAO,IAAIuB,Y;;SAEXvB,OAAO,IAAIwB,W;;;SAGXxB,OAAO,IAAIyB,M;;;SAGXzB,OAAO,IAAI0B,U;SACX1B,OAAO,IAAI2B,S;SACX3B,OAAO,IAAI4B,M;SACX5B,OAAO,IAAI6B,W;SACX7B,OAAO,IAAI8B,e;;;SAGX9B,OAAO,IAAI+B,c;SACX/B,OAAO,IAAIgC,W;SACXhC,OAAO,IAAIiC,S;SACXjC,OAAO,IAAIkC,U;SACXlC,OAAO,IAAImC,iB;SACXnC,OAAO,IAAIoC,Q;SACXpC,OAAO,IAAIqC,kB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/components",
3
- "version": "0.22.3-beta.7+544971a",
3
+ "version": "0.22.3-deep-bot-test.14+c0d1d46",
4
4
  "description": "Deephaven React component library",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -23,10 +23,10 @@
23
23
  "build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist ./scss/BaseStyleSheet.scss:./css/BaseStyleSheet.css"
24
24
  },
25
25
  "dependencies": {
26
- "@deephaven/icons": "^0.22.3-beta.7+544971a",
27
- "@deephaven/log": "^0.22.3-beta.7+544971a",
28
- "@deephaven/react-hooks": "^0.22.3-beta.7+544971a",
29
- "@deephaven/utils": "^0.22.3-beta.7+544971a",
26
+ "@deephaven/icons": "^0.22.3-deep-bot-test.14+c0d1d46",
27
+ "@deephaven/log": "^0.22.3-deep-bot-test.14+c0d1d46",
28
+ "@deephaven/react-hooks": "^0.22.3-deep-bot-test.14+c0d1d46",
29
+ "@deephaven/utils": "^0.22.3-deep-bot-test.14+c0d1d46",
30
30
  "@fortawesome/fontawesome-svg-core": "^6.1.1",
31
31
  "@fortawesome/react-fontawesome": "^0.1.18",
32
32
  "bootstrap": "4.6.2",
@@ -49,8 +49,8 @@
49
49
  "react-dom": "^17.x"
50
50
  },
51
51
  "devDependencies": {
52
- "@deephaven/mocks": "^0.22.3-beta.7+544971a",
53
- "@deephaven/tsconfig": "^0.22.3-beta.7+544971a"
52
+ "@deephaven/mocks": "^0.22.3-deep-bot-test.14+c0d1d46",
53
+ "@deephaven/tsconfig": "^0.22.3-deep-bot-test.14+c0d1d46"
54
54
  },
55
55
  "files": [
56
56
  "dist",
@@ -63,5 +63,5 @@
63
63
  "publishConfig": {
64
64
  "access": "public"
65
65
  },
66
- "gitHead": "544971ada49b6ed155b3f4b401387df194011f72"
66
+ "gitHead": "c0d1d4666f35b21fc8601a6f59a348710f03ca13"
67
67
  }